РК_ПроверкаСерий 1.3.1.89: UUID в форме и запись исправлений (#17).
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -62,7 +62,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
|
||||
</DefaultRoles>
|
||||
<Vendor/>
|
||||
<Version>1.3.1.88</Version>
|
||||
<Version>1.3.1.89</Version>
|
||||
<DefaultStyle/>
|
||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||
<BriefInformation/>
|
||||
|
||||
@@ -26,23 +26,6 @@
|
||||
<ContextMenu name="РежимТестКонтекстноеМеню" id="6"/>
|
||||
<ExtendedTooltip name="РежимТестРасширеннаяПодсказка" id="7"/>
|
||||
</CheckBoxField>
|
||||
<InputField name="ТекстПоследнейОшибки" id="157">
|
||||
<DataPath>ТекстПоследнейОшибки</DataPath>
|
||||
<ReadOnly>true</ReadOnly>
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Последняя ошибка</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<TitleLocation>Top</TitleLocation>
|
||||
<Height>3</Height>
|
||||
<AutoMaxHeight>false</AutoMaxHeight>
|
||||
<VerticalStretch>false</VerticalStretch>
|
||||
<MultiLine>true</MultiLine>
|
||||
<ContextMenu name="ТекстПоследнейОшибкиКонтекстноеМеню" id="158"/>
|
||||
<ExtendedTooltip name="ТекстПоследнейОшибкиРасширеннаяПодсказка" id="159"/>
|
||||
</InputField>
|
||||
<Pages name="ГруппаСтраницы" id="70">
|
||||
<Title>
|
||||
<v8:item>
|
||||
@@ -182,6 +165,9 @@
|
||||
<ContextMenu name="ПроблемныеСерииУправлениеПоискомКонтекстноеМеню" id="29"/>
|
||||
<ExtendedTooltip name="ПроблемныеСерииУправлениеПоискомРасширеннаяПодсказка" id="30"/>
|
||||
</SearchControlAddition>
|
||||
<Events>
|
||||
<Event name="OnActivateRow">ПроблемныеСерииПриАктивизацииСтроки</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<CheckBoxField name="ПроблемныеСерииОтметка" id="31">
|
||||
<DataPath>Объект.ПроблемныеСерии.Отметка</DataPath>
|
||||
@@ -307,6 +293,19 @@
|
||||
</InputField>
|
||||
</ChildItems>
|
||||
</Table>
|
||||
<InputField name="UUIDВыбраннойСерии" id="193">
|
||||
<DataPath>UUIDВыбраннойСерии</DataPath>
|
||||
<ReadOnly>true</ReadOnly>
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>UUID выбранной серии</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<TitleLocation>Top</TitleLocation>
|
||||
<ContextMenu name="UUIDВыбраннойСерииКонтекстноеМеню" id="194"/>
|
||||
<ExtendedTooltip name="UUIDВыбраннойСерииРасширеннаяПодсказка" id="195"/>
|
||||
</InputField>
|
||||
</ChildItems>
|
||||
</Page>
|
||||
<Page name="СтраницаДубли" id="74">
|
||||
@@ -516,6 +515,34 @@
|
||||
</Table>
|
||||
</ChildItems>
|
||||
</Page>
|
||||
<Page name="СтраницаОтчетность" id="196">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Отчетность</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ExtendedTooltip name="СтраницаОтчетностьРасширеннаяПодсказка" id="197"/>
|
||||
<ChildItems>
|
||||
<InputField name="ТекстПоследнейОшибки" id="157">
|
||||
<DataPath>ТекстПоследнейОшибки</DataPath>
|
||||
<ReadOnly>true</ReadOnly>
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Последняя ошибка</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<TitleLocation>Top</TitleLocation>
|
||||
<Height>3</Height>
|
||||
<AutoMaxHeight>false</AutoMaxHeight>
|
||||
<VerticalStretch>false</VerticalStretch>
|
||||
<MultiLine>true</MultiLine>
|
||||
<ContextMenu name="ТекстПоследнейОшибкиКонтекстноеМеню" id="158"/>
|
||||
<ExtendedTooltip name="ТекстПоследнейОшибкиРасширеннаяПодсказка" id="159"/>
|
||||
</InputField>
|
||||
</ChildItems>
|
||||
</Page>
|
||||
</ChildItems>
|
||||
</Pages>
|
||||
</ChildItems>
|
||||
@@ -558,6 +585,21 @@
|
||||
<Field>ТолькоСОстатком</Field>
|
||||
</Save>
|
||||
</Attribute>
|
||||
<Attribute name="UUIDВыбраннойСерии" id="4">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>UUID выбранной серии</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
<Commands>
|
||||
<Command name="НайтиПроблемы" id="1">
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
// Заполнение номера — из наименования; при пустом номере и наличии срока — a-YYMMDD (#17).
|
||||
// Дубли: вид + номер + ГоденДо (ДатаПроизводства в ключ не входит).
|
||||
|
||||
&НаКлиенте
|
||||
Перем ПоследняяАктивированнаяСерия;
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
Объект.РежимТест = Истина;
|
||||
UUIDВыбраннойСерии = "";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -26,6 +30,8 @@
|
||||
КонецПопытки;
|
||||
ОчиститьТекстПоследнейОшибки();
|
||||
ПрименитьОтборПроблемныхСерий();
|
||||
ПоследняяАктивированнаяСерия = Неопределено;
|
||||
ОбновитьUUIDВыбраннойСерии();
|
||||
ПоказатьОповещениеПользователя("Проверка серий", ,
|
||||
"Найдено проблем: " + Формат(Количество, "ЧН=0; ЧГ=0"));
|
||||
|
||||
@@ -81,6 +87,7 @@
|
||||
Формат(Результат.Исправлено, "ЧН=0; ЧГ=0"),
|
||||
Формат(Результат.Ошибок, "ЧН=0; ЧГ=0"),
|
||||
?(Объект.РежимТест, " (тест)", ""));
|
||||
ОбновитьUUIDВыбраннойСерии();
|
||||
ПоказатьОповещениеПользователя("Проверка серий", , Текст);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -105,6 +112,7 @@
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
ОчиститьТекстПоследнейОшибки();
|
||||
ОбновитьUUIDВыбраннойСерии();
|
||||
ПоказатьОповещениеПользователя("Проверка серий", ,
|
||||
"Заполнено полей в строках: " + Формат(Количество, "ЧН=0; ЧГ=0"));
|
||||
|
||||
@@ -130,6 +138,7 @@
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
ОчиститьТекстПоследнейОшибки();
|
||||
ОбновитьUUIDВыбраннойСерии();
|
||||
ПоказатьОповещениеПользователя("Проверка серий", ,
|
||||
СтрШаблон("Предложений: номер %1, годен до %2, наименование %3, номенклатура %4",
|
||||
Формат(Результат.Номеров, "ЧН=0; ЧГ=0"),
|
||||
@@ -168,6 +177,28 @@
|
||||
ПрименитьОтборПроблемныхСерий();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПроблемныеСерииПриАктивизацииСтроки(Элемент)
|
||||
|
||||
ТекущаяСтрока = ТекущаяСтрокаПроблемнойСерии();
|
||||
Если ТекущаяСтрока = Неопределено Тогда
|
||||
UUIDВыбраннойСерии = "";
|
||||
ПоследняяАктивированнаяСерия = Неопределено;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьUUIDВыбраннойСерии();
|
||||
Если ЗначениеЗаполнено(ПоследняяАктивированнаяСерия)
|
||||
И ПоследняяАктивированнаяСерия = ТекущаяСтрока.Серия Тогда
|
||||
ОткрытьФормуСерии(ТекущаяСтрока.Серия);
|
||||
ПоследняяАктивированнаяСерия = Неопределено;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПоследняяАктивированнаяСерия = ТекущаяСтрока.Серия;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Отметить(Команда)
|
||||
УстановитьОтметкуВыделенныхСтрок("ПроблемныеСерии", Истина);
|
||||
@@ -333,6 +364,41 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ТекущаяСтрокаПроблемнойСерии()
|
||||
|
||||
Если Элементы.ПроблемныеСерии.ТекущиеДанные = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Элементы.ПроблемныеСерии.ТекущиеДанные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьUUIDВыбраннойСерии()
|
||||
|
||||
ТекущаяСтрока = ТекущаяСтрокаПроблемнойСерии();
|
||||
Если ТекущаяСтрока = Неопределено Или Не ЗначениеЗаполнено(ТекущаяСтрока.Серия) Тогда
|
||||
UUIDВыбраннойСерии = "";
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
UUIDВыбраннойСерии = НРег(XMLСтрока(ТекущаяСтрока.Серия.УникальныйИдентификатор()));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОткрытьФормуСерии(Серия)
|
||||
|
||||
Если Не ЗначениеЗаполнено(Серия) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОткрытьФорму("Catalog.СерииНоменклатуры.Form.ФормаЭлемента", Новый Структура("Ключ", Серия));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьОтметкуВыделенныхСтрок(ИмяТаблицы, Отметка)
|
||||
|
||||
@@ -479,7 +545,7 @@
|
||||
Процедура ДобавитьСтрокуПроблемы(ДанныеСтроки, НомерСтроки, ОстаткиИНоменклатура)
|
||||
|
||||
НовСтр = Объект.ПроблемныеСерии.Добавить();
|
||||
НовСтр.Отметка = Истина;
|
||||
НовСтр.Отметка = Ложь;
|
||||
НовСтр.ПорядковыйНомер = НомерСтроки;
|
||||
НовСтр.НомерГруппы = 0;
|
||||
НовСтр.КоличествоВГруппе = 0;
|
||||
@@ -685,43 +751,39 @@
|
||||
ГоденДоЗаписи = ГоденДоДляИсправленияСтроки(Стр);
|
||||
НаименованиеЗаписи = НаименованиеДляИсправленияСтроки(Стр);
|
||||
|
||||
Если Не ЗначениеЗаполнено(СокрЛП(Стр.Номер))
|
||||
И ЗначениеЗаполнено(НомерЗаписи) Тогда
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(Стр.Проблема, "Пустой срок годности") > 0
|
||||
И СрокГодностиЗаполнен(ГоденДоЗаписи) Тогда
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(СокрЛП(Стр.Наименование))
|
||||
И ЗначениеЗаполнено(НаименованиеЗаписи) Тогда
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЕстьИзменения Тогда
|
||||
Стр.Комментарий = "Нет данных для исправления";
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ОбСерии = Стр.Серия.ПолучитьОбъект();
|
||||
ЕстьИзменения = ТребуетсяЗаписьИсправленияСерии(
|
||||
ОбСерии, НомерЗаписи, ГоденДоЗаписи, НаименованиеЗаписи);
|
||||
Если Не ЕстьИзменения Тогда
|
||||
Стр.Комментарий = "Нет данных для исправления";
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект.РежимТест Тогда
|
||||
Если ЗначениеЗаполнено(НомерЗаписи) Тогда
|
||||
Стр.Номер = НомерЗаписи;
|
||||
КонецЕсли;
|
||||
Если СрокГодностиЗаполнен(ГоденДоЗаписи) Тогда
|
||||
Стр.ГоденДо = ГоденДоЗаписи;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(НаименованиеЗаписи) Тогда
|
||||
Стр.Наименование = НаименованиеЗаписи;
|
||||
КонецЕсли;
|
||||
Стр.Исправлено = Истина;
|
||||
Результат.Исправлено = Результат.Исправлено + 1;
|
||||
СинхронизироватьСтрокиСерии(Стр.Серия, Стр);
|
||||
Иначе
|
||||
ОбСерии = Стр.Серия.ПолучитьОбъект();
|
||||
Если Не ЗначениеЗаполнено(СокрЛП(Стр.Номер))
|
||||
И ЗначениеЗаполнено(НомерЗаписи) Тогда
|
||||
Если ЗначениеЗаполнено(НомерЗаписи)
|
||||
И СокрЛП(ОбСерии.Номер) <> НомерЗаписи Тогда
|
||||
ОбСерии.Номер = НомерЗаписи;
|
||||
КонецЕсли;
|
||||
Если СтрНайти(Стр.Проблема, "Пустой срок годности") > 0
|
||||
И СрокГодностиЗаполнен(ГоденДоЗаписи) Тогда
|
||||
Если СрокГодностиЗаполнен(ГоденДоЗаписи)
|
||||
И ОбСерии.ГоденДо <> ГоденДоЗаписи Тогда
|
||||
ОбСерии.ГоденДо = ГоденДоЗаписи;
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(СокрЛП(Стр.Наименование))
|
||||
И ЗначениеЗаполнено(НаименованиеЗаписи) Тогда
|
||||
Если ЗначениеЗаполнено(НаименованиеЗаписи)
|
||||
И СокрЛП(ОбСерии.Наименование) <> НаименованиеЗаписи Тогда
|
||||
ОбСерии.Наименование = НаименованиеЗаписи;
|
||||
КонецЕсли;
|
||||
ОбСерии.Записать();
|
||||
@@ -754,6 +816,28 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ТребуетсяЗаписьИсправленияСерии(ОбСерии, НомерЗаписи, ГоденДоЗаписи, НаименованиеЗаписи)
|
||||
|
||||
Если ЗначениеЗаполнено(НомерЗаписи)
|
||||
И СокрЛП(ОбСерии.Номер) <> НомерЗаписи Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если СрокГодностиЗаполнен(ГоденДоЗаписи)
|
||||
И ОбСерии.ГоденДо <> ГоденДоЗаписи Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(НаименованиеЗаписи)
|
||||
И СокрЛП(ОбСерии.Наименование) <> НаименованиеЗаписи Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ГоденДоДляИсправленияСтроки(Стр)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user