РК_ПроверкаСерий 1.3.1.75: остатки, № строки, заполнение по предложениям.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -589,6 +589,74 @@
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
<Attribute uuid="f14e0031-0031-4000-8000-000000000031">
|
||||
<Properties>
|
||||
<Name>НомерСтроки</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>№</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type><v8:Type>xs:decimal</v8:Type><v8:NumberQualifiers><v8:Digits>10</v8:Digits><v8:FractionDigits>0</v8:FractionDigits><v8:AllowedSign>Nonnegative</v8:AllowedSign></v8:NumberQualifiers></Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
<EditFormat/>
|
||||
<ToolTip/>
|
||||
<MarkNegatives>false</MarkNegatives>
|
||||
<Mask/>
|
||||
<MultiLine>false</MultiLine>
|
||||
<ExtendedEdit>false</ExtendedEdit>
|
||||
<MinValue xsi:nil="true"/>
|
||||
<MaxValue xsi:nil="true"/>
|
||||
<FillFromFillingValue>false</FillFromFillingValue>
|
||||
<FillValue xsi:nil="true"/>
|
||||
<FillChecking>DontCheck</FillChecking>
|
||||
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||
<ChoiceParameterLinks/>
|
||||
<ChoiceParameters/>
|
||||
<QuickChoice>Auto</QuickChoice>
|
||||
<CreateOnInput>Auto</CreateOnInput>
|
||||
<ChoiceForm/>
|
||||
<LinkByType/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
<Attribute uuid="f14e0032-0032-4000-8000-000000000032">
|
||||
<Properties>
|
||||
<Name>Остаток</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Остаток</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Type><v8:Type>xs:decimal</v8:Type><v8:NumberQualifiers><v8:Digits>15</v8:Digits><v8:FractionDigits>3</v8:FractionDigits><v8:AllowedSign>Any</v8:AllowedSign></v8:NumberQualifiers></Type>
|
||||
<PasswordMode>false</PasswordMode>
|
||||
<Format/>
|
||||
<EditFormat/>
|
||||
<ToolTip/>
|
||||
<MarkNegatives>false</MarkNegatives>
|
||||
<Mask/>
|
||||
<MultiLine>false</MultiLine>
|
||||
<ExtendedEdit>false</ExtendedEdit>
|
||||
<MinValue xsi:nil="true"/>
|
||||
<MaxValue xsi:nil="true"/>
|
||||
<FillFromFillingValue>false</FillFromFillingValue>
|
||||
<FillValue xsi:nil="true"/>
|
||||
<FillChecking>DontCheck</FillChecking>
|
||||
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
|
||||
<ChoiceParameterLinks/>
|
||||
<ChoiceParameters/>
|
||||
<QuickChoice>Auto</QuickChoice>
|
||||
<CreateOnInput>Auto</CreateOnInput>
|
||||
<ChoiceForm/>
|
||||
<LinkByType/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
</Properties>
|
||||
</Attribute>
|
||||
</ChildObjects>
|
||||
</TabularSection>
|
||||
<TabularSection uuid="f14e0020-0020-4000-8000-000000000020">
|
||||
|
||||
@@ -97,6 +97,11 @@
|
||||
<CommandName>Form.Command.ИсправитьОтмеченные</CommandName>
|
||||
<ExtendedTooltip name="ПроблемныеСерииИсправитьОтмеченныеРасширеннаяПодсказка" id="4"/>
|
||||
</Button>
|
||||
<Button name="ПроблемныеСерииЗаполнитьПоПредложениям" id="160">
|
||||
<Type>CommandBarButton</Type>
|
||||
<CommandName>Form.Command.ЗаполнитьПоПредложениям</CommandName>
|
||||
<ExtendedTooltip name="ПроблемныеСерииЗаполнитьПоПредложениямРасширеннаяПодсказка" id="161"/>
|
||||
</Button>
|
||||
<Button name="ПроблемныеСерииОтметить" id="17">
|
||||
<Type>CommandBarButton</Type>
|
||||
<CommandName>Form.Command.Отметить</CommandName>
|
||||
@@ -142,6 +147,14 @@
|
||||
<ContextMenu name="ПроблемныеСерииОтметкаКонтекстноеМеню" id="32"/>
|
||||
<ExtendedTooltip name="ПроблемныеСерииОтметкаРасширеннаяПодсказка" id="33"/>
|
||||
</CheckBoxField>
|
||||
<LabelField name="ПроблемныеСерииНомерСтроки" id="162">
|
||||
<DataPath>Объект.ПроблемныеСерии.НомерСтроки</DataPath>
|
||||
<ReadOnly>true</ReadOnly>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<Width>4</Width>
|
||||
<ContextMenu name="ПроблемныеСерииНомерСтрокиКонтекстноеМеню" id="163"/>
|
||||
<ExtendedTooltip name="ПроблемныеСерииНомерСтрокиРасширеннаяПодсказка" id="164"/>
|
||||
</LabelField>
|
||||
<InputField name="ПроблемныеСерииСерия" id="34">
|
||||
<DataPath>Объект.ПроблемныеСерии.Серия</DataPath>
|
||||
<ReadOnly>true</ReadOnly>
|
||||
@@ -150,6 +163,14 @@
|
||||
<ContextMenu name="ПроблемныеСерииСерияКонтекстноеМеню" id="35"/>
|
||||
<ExtendedTooltip name="ПроблемныеСерииСерияРасширеннаяПодсказка" id="36"/>
|
||||
</InputField>
|
||||
<InputField name="ПроблемныеСерииОстаток" id="165">
|
||||
<DataPath>Объект.ПроблемныеСерии.Остаток</DataPath>
|
||||
<ReadOnly>true</ReadOnly>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<Width>8</Width>
|
||||
<ContextMenu name="ПроблемныеСерииОстатокКонтекстноеМеню" id="166"/>
|
||||
<ExtendedTooltip name="ПроблемныеСерииОстатокРасширеннаяПодсказка" id="167"/>
|
||||
</InputField>
|
||||
<InputField name="ПроблемныеСерииПроблема" id="37">
|
||||
<DataPath>Объект.ПроблемныеСерии.Проблема</DataPath>
|
||||
<ReadOnly>true</ReadOnly>
|
||||
@@ -495,7 +516,7 @@
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Записать предложенные значения в отмеченные серии</v8:content>
|
||||
<v8:content>Записать значения из таблицы в справочник серий</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Picture>
|
||||
@@ -504,6 +525,25 @@
|
||||
</Picture>
|
||||
<Action>ИсправитьОтмеченные</Action>
|
||||
</Command>
|
||||
<Command name="ЗаполнитьПоПредложениям" id="157">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Заполнить по предложениям</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Для отмеченных строк перенести предложенные номер, срок и наименование в колонки таблицы (без записи в базу)</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Picture>
|
||||
<xr:Ref>StdPicture.InputFieldOpen</xr:Ref>
|
||||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||||
</Picture>
|
||||
<Action>ЗаполнитьПоПредложениям</Action>
|
||||
</Command>
|
||||
<Command name="Отметить" id="3">
|
||||
<Title>
|
||||
<v8:item>
|
||||
|
||||
@@ -83,6 +83,31 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПоПредложениям(Команда)
|
||||
|
||||
Если Объект.ПроблемныеСерии.Количество() = 0 Тогда
|
||||
ПоказатьПредупреждение(, "Сначала выполните поиск проблем");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЕстьОтмеченныеСтроки() Тогда
|
||||
ПоказатьПредупреждение(, "Отметьте строки для заполнения");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
Количество = ЗаполнитьПоПредложениямНаСервере();
|
||||
Исключение
|
||||
СообщитьОшибкуОперации(ИнформацияОбОшибке(), "Заполнить по предложениям");
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
ОчиститьТекстПоследнейОшибки();
|
||||
ПоказатьОповещениеПользователя("Проверка серий", ,
|
||||
"Заполнено полей в строках: " + Формат(Количество, "ЧН=0; ЧГ=0"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Отметить(Команда)
|
||||
УстановитьОтметкуВыделенныхСтрок("ПроблемныеСерии", Истина);
|
||||
@@ -274,8 +299,24 @@
|
||||
| )";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
СтрокиДанных = Новый Массив;
|
||||
Серии = Новый Массив;
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
ДобавитьСтрокуПроблемы(Выборка, КэшНастроек);
|
||||
ДанныеСтроки = ПодготовитьДанныеСтрокиПроблемы(Выборка, КэшНастроек);
|
||||
Если ДанныеСтроки = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
СтрокиДанных.Добавить(ДанныеСтроки);
|
||||
Серии.Добавить(ДанныеСтроки.Серия);
|
||||
КонецЦикла;
|
||||
|
||||
Остатки = ОстаткиПоСериям(Серии);
|
||||
НомерСтроки = 0;
|
||||
|
||||
Для Каждого ДанныеСтроки Из СтрокиДанных Цикл
|
||||
НомерСтроки = НомерСтроки + 1;
|
||||
ДобавитьСтрокуПроблемы(ДанныеСтроки, НомерСтроки, Остатки);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Объект.ПроблемныеСерии.Количество();
|
||||
@@ -283,7 +324,7 @@
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьСтрокуПроблемы(Выборка, КэшНастроек)
|
||||
Функция ПодготовитьДанныеСтрокиПроблемы(Выборка, КэшНастроек)
|
||||
|
||||
Настройки = НастройкиСерийВида(Выборка.ВидНоменклатуры, КэшНастроек);
|
||||
ИспНомер = Настройки.ИспользоватьНомерСерии;
|
||||
@@ -317,21 +358,112 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Проблемы.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Данные = Новый Структура;
|
||||
Данные.Вставить("Серия", Выборка.Серия);
|
||||
Данные.Вставить("ВидНоменклатуры", Выборка.ВидНоменклатуры);
|
||||
Данные.Вставить("Наименование", Выборка.Наименование);
|
||||
Данные.Вставить("Номер", Выборка.Номер);
|
||||
Данные.Вставить("ГоденДо", Выборка.ГоденДо);
|
||||
Данные.Вставить("Проблема", СтрСоединить(Проблемы, "; "));
|
||||
Данные.Вставить("ПредложенныйНомер", ПредложенныйНомер);
|
||||
Данные.Вставить("ПредложенныйГоденДо", ПредложенныйГоденДо);
|
||||
Данные.Вставить("ПредложенноеНаименование", ПредложенноеНаименование);
|
||||
Возврат Данные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьСтрокуПроблемы(ДанныеСтроки, НомерСтроки, Остатки)
|
||||
|
||||
НовСтр = Объект.ПроблемныеСерии.Добавить();
|
||||
НовСтр.Отметка = Истина;
|
||||
НовСтр.Серия = Выборка.Серия;
|
||||
НовСтр.НомерСтроки = НомерСтроки;
|
||||
НовСтр.Серия = ДанныеСтроки.Серия;
|
||||
НовСтр.Номенклатура = Справочники.Номенклатура.ПустаяСсылка();
|
||||
НовСтр.ВидНоменклатуры = Выборка.ВидНоменклатуры;
|
||||
НовСтр.Наименование = Выборка.Наименование;
|
||||
НовСтр.Номер = Выборка.Номер;
|
||||
НовСтр.ГоденДо = Выборка.ГоденДо;
|
||||
НовСтр.Проблема = СтрСоединить(Проблемы, "; ");
|
||||
НовСтр.ПредложенныйНомер = ПредложенныйНомер;
|
||||
НовСтр.ПредложенныйГоденДо = ПредложенныйГоденДо;
|
||||
НовСтр.ПредложенноеНаименование = ПредложенноеНаименование;
|
||||
НовСтр.ВидНоменклатуры = ДанныеСтроки.ВидНоменклатуры;
|
||||
НовСтр.Наименование = ДанныеСтроки.Наименование;
|
||||
НовСтр.Номер = ДанныеСтроки.Номер;
|
||||
НовСтр.ГоденДо = ДанныеСтроки.ГоденДо;
|
||||
НовСтр.Проблема = ДанныеСтроки.Проблема;
|
||||
НовСтр.ПредложенныйНомер = ДанныеСтроки.ПредложенныйНомер;
|
||||
НовСтр.ПредложенныйГоденДо = ДанныеСтроки.ПредложенныйГоденДо;
|
||||
НовСтр.ПредложенноеНаименование = ДанныеСтроки.ПредложенноеНаименование;
|
||||
НовСтр.Остаток = ОстатокСерииИзСоответствия(Остатки, ДанныеСтроки.Серия);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ЗаполнитьПоПредложениямНаСервере()
|
||||
|
||||
КэшНастроек = Новый Соответствие;
|
||||
Заполнено = 0;
|
||||
|
||||
Для Каждого Стр Из Объект.ПроблемныеСерии Цикл
|
||||
|
||||
Если Не Стр.Отметка Или Стр.Исправлено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПересчитатьПредложенияСтрокиПроблемы(Стр, КэшНастроек);
|
||||
ИзмененийВСтроке = 0;
|
||||
|
||||
Если СтрНайти(Стр.Проблема, "Пустой номер") > 0
|
||||
И ЗначениеЗаполнено(СокрЛП(Стр.ПредложенныйНомер))
|
||||
И Не ЗначениеЗаполнено(СокрЛП(Стр.Номер)) Тогда
|
||||
Стр.Номер = СокрЛП(Стр.ПредложенныйНомер);
|
||||
ИзмененийВСтроке = ИзмененийВСтроке + 1;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(Стр.Проблема, "Пустой срок годности") > 0
|
||||
И СрокГодностиЗаполнен(Стр.ПредложенныйГоденДо)
|
||||
И Не СрокГодностиЗаполнен(Стр.ГоденДо) Тогда
|
||||
Стр.ГоденДо = Стр.ПредложенныйГоденДо;
|
||||
ИзмененийВСтроке = ИзмененийВСтроке + 1;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(Стр.Проблема, "Пустое наименование") > 0
|
||||
И ЗначениеЗаполнено(СокрЛП(Стр.ПредложенноеНаименование))
|
||||
И Не ЗначениеЗаполнено(СокрЛП(Стр.Наименование)) Тогда
|
||||
Стр.Наименование = СокрЛП(Стр.ПредложенноеНаименование);
|
||||
ИзмененийВСтроке = ИзмененийВСтроке + 1;
|
||||
КонецЕсли;
|
||||
|
||||
Если ИзмененийВСтроке > 0 Тогда
|
||||
Заполнено = Заполнено + 1;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Заполнено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ПересчитатьПредложенияСтрокиПроблемы(Стр, КэшНастроек)
|
||||
|
||||
Настройки = НастройкиСерийВида(Стр.ВидНоменклатуры, КэшНастроек);
|
||||
ИспНомер = Настройки.ИспользоватьНомерСерии;
|
||||
ИспСрок = Настройки.ИспользоватьСрокГодностиСерии;
|
||||
ТекстНаименования = Стр.Наименование;
|
||||
|
||||
Если ИспНомер И СтрНайти(Стр.Проблема, "Пустой номер") > 0 Тогда
|
||||
Стр.ПредложенныйНомер = ИзвлечьНомерИзНаименования(ТекстНаименования);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИспСрок И СтрНайти(Стр.Проблема, "Пустой срок годности") > 0 Тогда
|
||||
Стр.ПредложенныйГоденДо = ИзвлечьГоденДоИзНаименования(ТекстНаименования);
|
||||
Если Не СрокГодностиЗаполнен(Стр.ПредложенныйГоденДо) Тогда
|
||||
Стр.ПредложенныйГоденДо = '00010101';
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ИспНомер И СтрНайти(Стр.Проблема, "Пустое наименование") > 0
|
||||
И СрокГодностиЗаполнен(Стр.ГоденДо) Тогда
|
||||
Стр.ПредложенноеНаименование = "до " + Формат(Стр.ГоденДо, "ДФ=dd.MM.yy");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -348,22 +480,22 @@
|
||||
|
||||
Стр.Комментарий = "";
|
||||
ЕстьИзменения = Ложь;
|
||||
НомерЗаписи = НомерДляИсправленияСтроки(Стр);
|
||||
ГоденДоЗаписи = ГоденДоДляИсправленияСтроки(Стр);
|
||||
НаименованиеЗаписи = НаименованиеДляИсправленияСтроки(Стр);
|
||||
|
||||
Если СтрНайти(Стр.Проблема, "Пустой номер") > 0
|
||||
И ЗначениеЗаполнено(СокрЛП(Стр.ПредложенныйНомер))
|
||||
И Не ЗначениеЗаполнено(СокрЛП(Стр.Номер)) Тогда
|
||||
И ЗначениеЗаполнено(НомерЗаписи) Тогда
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(Стр.Проблема, "Пустой срок годности") > 0
|
||||
И СрокГодностиЗаполнен(Стр.ПредложенныйГоденДо)
|
||||
И Не СрокГодностиЗаполнен(Стр.ГоденДо) Тогда
|
||||
И СрокГодностиЗаполнен(ГоденДоЗаписи) Тогда
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(Стр.Проблема, "Пустое наименование") > 0
|
||||
И ЗначениеЗаполнено(СокрЛП(Стр.ПредложенноеНаименование))
|
||||
И Не ЗначениеЗаполнено(СокрЛП(Стр.Наименование)) Тогда
|
||||
И ЗначениеЗаполнено(НаименованиеЗаписи) Тогда
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -379,16 +511,16 @@
|
||||
Иначе
|
||||
ОбСерии = Стр.Серия.ПолучитьОбъект();
|
||||
Если СтрНайти(Стр.Проблема, "Пустой номер") > 0
|
||||
И ЗначениеЗаполнено(СокрЛП(Стр.ПредложенныйНомер)) Тогда
|
||||
ОбСерии.Номер = СокрЛП(Стр.ПредложенныйНомер);
|
||||
И ЗначениеЗаполнено(НомерЗаписи) Тогда
|
||||
ОбСерии.Номер = НомерЗаписи;
|
||||
КонецЕсли;
|
||||
Если СтрНайти(Стр.Проблема, "Пустой срок годности") > 0
|
||||
И СрокГодностиЗаполнен(Стр.ПредложенныйГоденДо) Тогда
|
||||
ОбСерии.ГоденДо = Стр.ПредложенныйГоденДо;
|
||||
И СрокГодностиЗаполнен(ГоденДоЗаписи) Тогда
|
||||
ОбСерии.ГоденДо = ГоденДоЗаписи;
|
||||
КонецЕсли;
|
||||
Если СтрНайти(Стр.Проблема, "Пустое наименование") > 0
|
||||
И ЗначениеЗаполнено(СокрЛП(Стр.ПредложенноеНаименование)) Тогда
|
||||
ОбСерии.Наименование = СокрЛП(Стр.ПредложенноеНаименование);
|
||||
И ЗначениеЗаполнено(НаименованиеЗаписи) Тогда
|
||||
ОбСерии.Наименование = НаименованиеЗаписи;
|
||||
КонецЕсли;
|
||||
ОбСерии.Записать();
|
||||
Стр.Исправлено = Истина;
|
||||
@@ -408,6 +540,38 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция НомерДляИсправленияСтроки(Стр)
|
||||
|
||||
Номер = СокрЛП(Стр.Номер);
|
||||
Если ЗначениеЗаполнено(Номер) Тогда
|
||||
Возврат Номер;
|
||||
КонецЕсли;
|
||||
Возврат СокрЛП(Стр.ПредложенныйНомер);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ГоденДоДляИсправленияСтроки(Стр)
|
||||
|
||||
Если СрокГодностиЗаполнен(Стр.ГоденДо) Тогда
|
||||
Возврат Стр.ГоденДо;
|
||||
КонецЕсли;
|
||||
Возврат Стр.ПредложенныйГоденДо;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция НаименованиеДляИсправленияСтроки(Стр)
|
||||
|
||||
Наименование = СокрЛП(Стр.Наименование);
|
||||
Если ЗначениеЗаполнено(Наименование) Тогда
|
||||
Возврат Наименование;
|
||||
КонецЕсли;
|
||||
Возврат СокрЛП(Стр.ПредложенноеНаименование);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция НастройкиСерийВида(ВидНоменклатуры, КэшНастроек)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user