5320dc603f
Co-authored-by: Cursor <cursoragent@cursor.com>
1125 lines
94 KiB
Plaintext
1125 lines
94 KiB
Plaintext
#Область ОбработчикиСобытийФормы
|
|
|
|
&НаСервере
|
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
|
|
|
УстановитьУсловноеОформление();
|
|
ЗаполнитьПараметрыФормыПриСоздании();
|
|
|
|
//
|
|
СобытияФормИСПереопределяемый.УстановитьСвязиПараметровВыбораСНоменклатурой(
|
|
ЭтотОбъект,
|
|
"НастройкиНоменклатурыХарактеристика",
|
|
"Элементы.НастройкиНоменклатуры.ТекущиеДанные.Номенклатура");
|
|
СобытияФормИСПереопределяемый.УстановитьСвязиПараметровВыбораСНоменклатурой(
|
|
ЭтотОбъект,
|
|
"НастройкиНоменклатурыХарактеристикаЧастичногоВыбытия",
|
|
"Элементы.НастройкиНоменклатуры.ТекущиеДанные.НоменклатураЧастичногоВыбытия");
|
|
СобытияФормИСКлиентСерверПереопределяемый.УстановитьПараметрыВыбораНоменклатуры(
|
|
ЭтотОбъект,
|
|
ВидПродукции,
|
|
"НастройкиНоменклатурыНоменклатураЧастичногоВыбытия");
|
|
|
|
//
|
|
СобытияФормИСПереопределяемый.УстановитьСвязиПараметровВыбораСНоменклатурой(
|
|
ЭтотОбъект,
|
|
"ХарактеристикаЧастичногоВыбытия",
|
|
"НоменклатураЧастичногоВыбытия");
|
|
СобытияФормИСКлиентСерверПереопределяемый.УстановитьПараметрыВыбораНоменклатуры(
|
|
ЭтотОбъект, ВидПродукции, "НоменклатураЧастичногоВыбытия");
|
|
|
|
НастроитьЭлементыФормыНаСервере();
|
|
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
|
|
|
СобытияФормИСМППереопределяемый.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
|
|
ОбщегоНазначенияИС.ПрименитьУсловноеОформлениеКПолю(ЭтотОбъект, "ХарактеристикаЧастичногоВыбытия");
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
|
|
|
|
МассивНепроверяемыхРеквизитов = Новый Массив;
|
|
|
|
Если ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура Тогда
|
|
|
|
Если ХарактеристикиИспользуются Тогда
|
|
|
|
МассивНепроверяемыхРеквизитов.Добавить("НоменклатураЧастичногоВыбытия");
|
|
МассивНепроверяемыхРеквизитов.Добавить("ХарактеристикаЧастичногоВыбытия");
|
|
|
|
Иначе
|
|
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры");
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры.НоменклатураЧастичногоВыбытия");
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры.ХарактеристикаЧастичногоВыбытия");
|
|
|
|
Если Не ХарактеристикиИспользуютсяЧастичногоВыбытия Тогда
|
|
МассивНепроверяемыхРеквизитов.Добавить("ХарактеристикаЧастичногоВыбытия");
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
|
|
Иначе
|
|
|
|
МассивНепроверяемыхРеквизитов.Добавить("НоменклатураЧастичногоВыбытия");
|
|
МассивНепроверяемыхРеквизитов.Добавить("ХарактеристикаЧастичногоВыбытия");
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры");
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры.НоменклатураЧастичногоВыбытия");
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры.ХарактеристикаЧастичногоВыбытия");
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры.Номенклатура");
|
|
МассивНепроверяемыхРеквизитов.Добавить("НастройкиНоменклатуры.Характеристика");
|
|
|
|
КонецЕсли;
|
|
|
|
Если ПолеКоличествоЧастичноеВыбытие <= 1
|
|
И ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЧастьПотребительскойУпаковки Тогда
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
СтрШаблон(
|
|
НСтр("ru = 'Поле ""%1"" должно быть больше 1'"),
|
|
Тексты.ПолеКоличествоЧастичноеВыбытиеЗаголовок),,,
|
|
"ПолеКоличествоЧастичноеВыбытие",
|
|
Отказ);
|
|
КонецЕсли;
|
|
|
|
Если ПолеКоличествоКороб <= 1
|
|
И ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ГрупповаяЛогистическаяУпаковка Тогда
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
СтрШаблон(
|
|
НСтр("ru = 'Поле ""%1"" должно быть больше 1'"),
|
|
Тексты.ПолеКоличествоКоробЗаголовок),,,
|
|
"ПолеКоличествоКороб",
|
|
Отказ);
|
|
КонецЕсли;
|
|
|
|
Если ПолеКоличествоФиксированныйВес <= 0
|
|
И ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияСФиксированнымЗначением Тогда
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
НСтр("ru = 'Поле должно быть заполнено'"),,,
|
|
"ПолеКоличествоФиксированныйВес",
|
|
Отказ);
|
|
КонецЕсли;
|
|
|
|
Если ПолеКоличествоУпаковка <= 1
|
|
И ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ПотребительскаяУпаковка
|
|
И ЗначениеЗаполнено(ВариантЧастичногоВыбытия) Тогда
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
СтрШаблон(
|
|
НСтр("ru = 'Поле ""%1"" должно быть больше 1'"),
|
|
Тексты.ПолеКоличествоУпаковкаЗаголовок),,,
|
|
"ПолеКоличествоУпаковка",
|
|
Отказ);
|
|
КонецЕсли;
|
|
|
|
МассивНепроверяемыхРеквизитов.Добавить("ПолеКоличествоЧастичноеВыбытие");
|
|
МассивНепроверяемыхРеквизитов.Добавить("ПолеКоличествоКороб");
|
|
МассивНепроверяемыхРеквизитов.Добавить("ПолеКоличествоУпаковка");
|
|
МассивНепроверяемыхРеквизитов.Добавить("ПолеКоличествоФиксированныйВес");
|
|
|
|
Если ВариантИспользованияЕдиницыХранения <> Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЗаданУпаковками Тогда
|
|
МассивНепроверяемыхРеквизитов.Добавить("ПотребительскаяУпаковка");
|
|
КонецЕсли;
|
|
|
|
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
|
|
|
|
СобытияФормИСПереопределяемый.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
|
|
|
|
Если ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура Тогда
|
|
|
|
Для Каждого СтрокаТаблицы Из НастройкиНоменклатуры Цикл
|
|
|
|
Если СтрокаТаблицы.ХарактеристикиИспользуются
|
|
И Не ЗначениеЗаполнено(СтрокаТаблицы.Характеристика) Тогда
|
|
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
СтрШаблон(
|
|
НСтр("ru = 'В строке %1 не заполнено поле Характеристика'"),
|
|
СтрокаТаблицы.НомерСтроки),,
|
|
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти(
|
|
"НастройкиНоменклатуры",
|
|
НастройкиНоменклатуры.Индекс(СтрокаТаблицы) + 1,
|
|
"Характеристика"),,
|
|
Отказ);
|
|
|
|
КонецЕсли;
|
|
|
|
Если ХарактеристикиИспользуются Тогда
|
|
|
|
Если Не ЗначениеЗаполнено(СтрокаТаблицы.НоменклатураЧастичногоВыбытия) Тогда
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
СтрШаблон(
|
|
НСтр("ru = 'В строке %1 не заполнено поле Номенклатура'"),
|
|
СтрокаТаблицы.НомерСтроки),,
|
|
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти(
|
|
"НастройкиНоменклатуры",
|
|
НастройкиНоменклатуры.Индекс(СтрокаТаблицы) + 1,
|
|
"НоменклатураЧастичногоВыбытия"),,
|
|
Отказ);
|
|
КонецЕсли;
|
|
|
|
Если ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура)
|
|
И СтрокаТаблицы.Номенклатура = СтрокаТаблицы.НоменклатураЧастичногоВыбытия Тогда
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
НСтр("ru = 'Номенклатура для продажи должна отличаться от основной номенклатуры'"),,
|
|
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти(
|
|
"НастройкиНоменклатуры",
|
|
НастройкиНоменклатуры.Индекс(СтрокаТаблицы) + 1,
|
|
"НоменклатураЧастичногоВыбытия"),,
|
|
Отказ);
|
|
КонецЕсли;
|
|
|
|
Если СтрокаТаблицы.ХарактеристикиИспользуютсяЧастичноеВыбытие
|
|
И Не ЗначениеЗаполнено(СтрокаТаблицы.ХарактеристикаЧастичногоВыбытия) Тогда
|
|
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
СтрШаблон(
|
|
НСтр("ru = 'В строке %1 не заполнено поле Характеристика'"),
|
|
СтрокаТаблицы.НомерСтроки),,
|
|
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти(
|
|
"НастройкиНоменклатуры",
|
|
НастройкиНоменклатуры.Индекс(СтрокаТаблицы) + 1,
|
|
"ХарактеристикаЧастичногоВыбытия"),,
|
|
Отказ);
|
|
|
|
КонецЕсли;
|
|
|
|
Иначе
|
|
|
|
Если СтрокаТаблицы.Номенклатура = СтрокаТаблицы.НоменклатураЧастичногоВыбытия Тогда
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
НСтр("ru = 'Номенклатура для продажи должна отличаться от основной номенклатуры'"),,
|
|
"НоменклатураЧастичногоВыбытия",,
|
|
Отказ);
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
|
|
СтруктураПоиска = Новый Структура("Номенклатура, Характеристика");
|
|
ЗаполнитьЗначенияСвойств(СтруктураПоиска, СтрокаТаблицы);
|
|
|
|
ПоискСтрок = НастройкиНоменклатуры.НайтиСтроки(СтруктураПоиска);
|
|
|
|
Если ПоискСтрок.Количество() > 1 Тогда
|
|
|
|
Для Каждого НайденнаяСтрока Из ПоискСтрок Цикл
|
|
|
|
Если НайденнаяСтрока.НомерСтроки = СтрокаТаблицы.НомерСтроки Тогда
|
|
Продолжить;
|
|
КонецЕсли;
|
|
|
|
ПредставлениеНоменклатуры = ОбщегоНазначенияИС.ПредставлениеНоменклатуры(СтрокаТаблицы.Номенклатура, СтрокаТаблицы.Характеристика);
|
|
|
|
ОбщегоНазначения.СообщитьПользователю(
|
|
СтрШаблон(
|
|
НСтр("ru = 'В строке %1 дублируется номенклатура %2'"),
|
|
НайденнаяСтрока.НомерСтроки,
|
|
ПредставлениеНоменклатуры),,
|
|
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти(
|
|
"НастройкиНоменклатуры",
|
|
НастройкиНоменклатуры.Индекс(СтрокаТаблицы) + 1,
|
|
"Характеристика"),,
|
|
Отказ);
|
|
|
|
КонецЦикла;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЦикла;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
|
|
|
&НаКлиенте
|
|
Процедура ВариантЧастичногоВыбытияПриИзменении(Элемент)
|
|
|
|
Модифицированность = Истина;
|
|
НастроитьЭлементыФормыНаСервере();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ВариантЧастичногоВыбытияНастроеннаяНоменклатураПриИзменении(Элемент)
|
|
|
|
Модифицированность = Истина;
|
|
ВариантЧастичногоВыбытияНастроеннаяНоменклатураПриИзмененииСервер();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ВариантЧастичногоВыбытияТекущаяНоменклатураПриИзменении(Элемент)
|
|
|
|
Модифицированность = Истина;
|
|
НастроитьЭлементыФормыНаСервере();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ГруппаВариантУчетаЧастичногоВыбытияНастроеннаяНоменклатураРасширеннаяПодсказкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
|
|
|
Если НавигационнаяСсылкаФорматированнойСтроки = "НастройкаСпискаНоменклатурыЧастичногоВыбытия" Тогда
|
|
|
|
СтандартнаяОбработка = Ложь;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура НоменклатураЧастичногоВыбытияПриИзменении(Элемент)
|
|
НоменклатураЧастичногоВыбытияПриИзмененииСервер();
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ХарактеристикаЧастичногоВыбытияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
|
|
|
СобытияФормИСМПКлиентПереопределяемый.ПриНачалеВыбораХарактеристики(
|
|
Элемент, ЭтотОбъект, СтандартнаяОбработка, "НоменклатураЧастичногоВыбытия");
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ХарактеристикаЧастичногоВыбытияПриИзменении(Элемент)
|
|
НоменклатураЧастичногоВыбытияПриИзмененииСервер();
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ВариантЕдиницыИзмеренияПриИзменении(Элемент)
|
|
ВариантЕдиницыИзмеренияУпаковкаПриИзмененииНаСервере();
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПолеКоличествоЧастичноеВыбытиеПриИзменении(Элемент)
|
|
КоличествоПриИзменении();
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПолеКоличествоКоробПриИзменении(Элемент)
|
|
КоличествоПриИзменении();
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПолеКоличествоФиксированныйВесПриИзменении(Элемент)
|
|
КоличествоПриИзменении();
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПолеКоличествоУпаковкаПриИзменении(Элемент)
|
|
КоличествоПриИзменении();
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПотребительскаяУпаковкаПриИзменении(Элемент)
|
|
Модифицированность = Истина;
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПотребительскаяУпаковкаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
|
|
|
Если ЗначениеЗаполнено(НаборУпаковок) Тогда
|
|
ВладелецУпаковок = НаборУпаковок;
|
|
Иначе
|
|
ВладелецУпаковок = Номенклатура;
|
|
КонецЕсли;
|
|
|
|
ВыборПотребительскойУпаковкиЗавершение = Новый ОписаниеОповещения("ВыборПотребительскойУпаковкиЗавершение", ЭтотОбъект);
|
|
|
|
СобытияФормИСКлиентПереопределяемый.ПриНачалеВыбораУпаковки(
|
|
ЭтотОбъект, ВладелецУпаковок, СтандартнаяОбработка, ВыборПотребительскойУпаковкиЗавершение);
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ОбработчикиСобытийЭлементовТаблицыФормыНастройкиНоменклатуры
|
|
|
|
&НаКлиенте
|
|
Процедура НастройкиНоменклатурыНоменклатураЧастичногоВыбытияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
|
|
|
СобытияФормИСКлиентПереопределяемый.ПриНачалеВыбораНоменклатуры(Элемент, ВидПродукции, СтандартнаяОбработка);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура НастройкиНоменклатурыХарактеристикаЧастичногоВыбытияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
|
|
|
ТекущиеДанные = Элементы.НастройкиНоменклатуры.ТекущиеДанные;
|
|
СобытияФормИСМПКлиентПереопределяемый.ПриНачалеВыбораХарактеристики(
|
|
Элемент, ТекущиеДанные, СтандартнаяОбработка, "НоменклатураЧастичногоВыбытия");
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура НастройкиНоменклатурыНоменклатураЧастичногоВыбытияПриИзменении(Элемент)
|
|
|
|
НоменклатураЧастичногоВыбытияПриИзмененииНаСервере();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура НастройкиНоменклатурыХарактеристикаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
|
|
|
ТекущиеДанные = Элементы.НастройкиНоменклатуры.ТекущиеДанные;
|
|
СобытияФормИСМПКлиентПереопределяемый.ПриНачалеВыбораХарактеристики(
|
|
Элемент, ТекущиеДанные, СтандартнаяОбработка);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура НастройкиНоменклатурыПриИзменении(Элемент)
|
|
|
|
Модифицированность = Истина;
|
|
Для Каждого СтрокаТаблицы Из НастройкиНоменклатуры Цикл
|
|
ЗаполнитьНомерСтроки(СтрокаТаблицы, НастройкиНоменклатуры);
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура НастройкиНоменклатурыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа, Параметр)
|
|
|
|
Если Отказ Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
Отказ = Истина;
|
|
|
|
Модифицированность = Истина;
|
|
|
|
НоваяСтрока = НастройкиНоменклатуры.Добавить();
|
|
Если Копирование Тогда
|
|
ТекущиеДанные = НастройкиНоменклатуры.НайтиПоИдентификатору(Элементы.НастройкиНоменклатуры.ТекущаяСтрока);
|
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекущиеДанные,, "Характеристика");
|
|
Иначе
|
|
НоваяСтрока.Номенклатура = Номенклатура;
|
|
КонецЕсли;
|
|
СобытияФормИСМПКлиент.ОпределитьИспользованиеХарактеристик(
|
|
ЭтотОбъект,
|
|
НоваяСтрока,
|
|
"Номенклатура", "ХарактеристикиИспользуются");
|
|
|
|
ЗаполнитьНомерСтроки(НоваяСтрока, НастройкиНоменклатуры);
|
|
Элементы.НастройкиНоменклатуры.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
|
|
Элементы.НастройкиНоменклатуры.ИзменитьСтроку();
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ОбработчикиКомандФормы
|
|
|
|
&НаКлиенте
|
|
Процедура Отмена(Команда)
|
|
|
|
Закрыть();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура Выбрать(Команда)
|
|
|
|
ОчиститьСообщения();
|
|
|
|
Если Не ПроверитьЗаполнение() Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
ПоместитьРезультатНастроекВХранилище();
|
|
|
|
Закрыть(АдресДанныхНастроекПараметровНоменклатуры);
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область СлужебныеПроцедурыИФункции
|
|
|
|
&НаСервере
|
|
Процедура ВариантЕдиницыИзмеренияУпаковкаПриИзмененииНаСервере()
|
|
|
|
НастроитьЭлементыФормыНаСервере = Истина;
|
|
Если ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ГрупповаяЛогистическаяУпаковка Тогда
|
|
ВариантЧастичногоВыбытия = Неопределено;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияТребуетУказанияЗначения Тогда
|
|
ВариантЧастичногоВыбытия = Неопределено;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияСФиксированнымЗначением Тогда
|
|
ВариантЧастичногоВыбытия = Неопределено;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЧастьПотребительскойУпаковки Тогда
|
|
Если ПоддерживаетсяЧастичноеВыбытие Тогда
|
|
ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.ТекущаяНоменклатура;
|
|
ВариантЧастичногоВыбытияНастроеннаяНоменклатураПриИзмененииСервер();
|
|
НастроитьЭлементыФормыНаСервере = Ложь;
|
|
КонецЕсли;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ПотребительскаяУпаковка Тогда
|
|
Если ПоддерживаетсяЧастичноеВыбытие
|
|
И ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.ТекущаяНоменклатура Тогда
|
|
ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура;
|
|
ВариантЧастичногоВыбытияНастроеннаяНоменклатураПриИзмененииСервер();
|
|
НастроитьЭлементыФормыНаСервере = Ложь;
|
|
КонецЕсли;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЗаданУпаковками Тогда
|
|
Если ПоддерживаетсяЧастичноеВыбытие
|
|
И ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура Тогда
|
|
ВариантЧастичногоВыбытия = Неопределено;
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
Модифицированность = Истина;
|
|
Если НастроитьЭлементыФормыНаСервере Тогда
|
|
НастроитьЭлементыФормыНаСервере();
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура КоличествоПриИзменении()
|
|
|
|
Модифицированность = Истина;
|
|
НастроитьЭлементыФормыНаСервере();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ВариантЧастичногоВыбытияНастроеннаяНоменклатураПриИзмененииСервер()
|
|
|
|
СоздатьСтрокуНастройкиПриНеобходимости();
|
|
ПеренестиСтрокуНастройкиВДанныеФормы(ЭтотОбъект);
|
|
НастроитьЭлементыФормыНаСервере();
|
|
|
|
Модифицированность = Истина;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура НоменклатураЧастичногоВыбытияПриИзмененииСервер()
|
|
|
|
ПеренестиДанныеФормыВСтроку(ЭтотОбъект);
|
|
ЗаполнитьДанныеНоменклатурыЧастичногоВыбытия();
|
|
ПеренестиСтрокуНастройкиВДанныеФормы(ЭтотОбъект);
|
|
|
|
ОбщегоНазначенияИС.ПрименитьУсловноеОформлениеКПолю(ЭтотОбъект, "ХарактеристикаЧастичногоВыбытия");
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ПоместитьРезультатНастроекВХранилище()
|
|
|
|
ДанныеНастроек = ИнтеграцияИС.ДанныеНастроекПараметровНоменклатуры();
|
|
|
|
Если ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура Тогда
|
|
Для Каждого СтрокаТаблицы Из НастройкиНоменклатуры Цикл
|
|
НоваяСтрока = ДанныеНастроек.НастройкиЧастичногоВыбытияПродукцииИС.Добавить();
|
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);
|
|
КонецЦикла;
|
|
КонецЕсли;
|
|
|
|
ДанныеОписания = ДанныеНастроек.ОписаниеНоменклатурыИС;
|
|
ДанныеОписания.Номенклатура = Номенклатура;
|
|
ДанныеОписания.ВариантИспользованияЕдиницыХранения = ВариантИспользованияЕдиницыХранения;
|
|
ДанныеОписания.ВариантЧастичногоВыбытия = ВариантЧастичногоВыбытия;
|
|
ДанныеОписания.КлючВидовПродукции = Неопределено;
|
|
|
|
Если ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ГрупповаяЛогистическаяУпаковка Тогда
|
|
Если ПолеКоличествоКороб = 0 Тогда
|
|
ВызватьИсключение НСтр("ru = 'Внутренняя ошибка. Не предусмотрено сохранение нулевого количества в потребительской упаковке.'");
|
|
Иначе
|
|
ДанныеОписания.КоличествоВПотребительскойУпаковке = 1 / ПолеКоличествоКороб;
|
|
КонецЕсли;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияТребуетУказанияЗначения Тогда
|
|
ДанныеОписания.КоличествоВПотребительскойУпаковке = 0;
|
|
ДанныеОписания.ЕмкостьПотребительскойУпаковки = 0;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияСФиксированнымЗначением Тогда
|
|
ДанныеОписания.КоличествоВПотребительскойУпаковке = ПолеКоличествоФиксированныйВес;
|
|
ДанныеОписания.ЕмкостьПотребительскойУпаковки = 0;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ПотребительскаяУпаковка Тогда
|
|
ДанныеОписания.КоличествоВПотребительскойУпаковке = 1;
|
|
ДанныеОписания.ЕмкостьПотребительскойУпаковки = ПолеКоличествоУпаковка;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЧастьПотребительскойУпаковки Тогда
|
|
ДанныеОписания.КоличествоВПотребительскойУпаковке = ПолеКоличествоЧастичноеВыбытие;
|
|
ДанныеОписания.ЕмкостьПотребительскойУпаковки = ПолеКоличествоЧастичноеВыбытие;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЗаданУпаковками Тогда
|
|
ДанныеОписания.ПотребительскаяУпаковка = ПотребительскаяУпаковка;
|
|
КоличествоВПотребительскойУпаковке = ИнтеграцияИСВызовСервера.КоэффициентУпаковки(ПотребительскаяУпаковка, Номенклатура);
|
|
ДанныеОписания.КоличествоВПотребительскойУпаковке = КоличествоВПотребительскойУпаковке;
|
|
Если ЗначениеЗаполнено(ВариантЧастичногоВыбытия) Тогда
|
|
ДанныеОписания.УпаковкаЧастичногоВыбытия = ЕдиницаХранения;
|
|
ДанныеОписания.ЕмкостьПотребительскойУпаковки = КоличествоВПотребительскойУпаковке;
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
Если ЭтоАдресВременногоХранилища(АдресДанныхНастроекПараметровНоменклатуры) Тогда
|
|
ПоместитьВоВременноеХранилище(ДанныеНастроек, АдресДанныхНастроекПараметровНоменклатуры);
|
|
Иначе
|
|
АдресДанныхНастроекПараметровНоменклатуры = ПоместитьВоВременноеХранилище(ДанныеНастроек, Новый УникальныйИдентификатор);
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура НастроитьЭлементыФормыНаСервере()
|
|
|
|
Тексты = Новый Структура();
|
|
Тексты.Вставить("НастроеннаяНоменклатураПодсказка");
|
|
Тексты.Вставить("Подвал");
|
|
Тексты.Вставить(
|
|
"НеИспользуетсяЗаголовок" ,
|
|
НСтр("ru = 'Не используется'"));
|
|
Тексты.Вставить(
|
|
"ТекущаяНоменклатураЗаголовок",
|
|
);
|
|
Тексты.Вставить("ТекущаяНоменклатураПодсказка");
|
|
Тексты.Вставить("ЗаголовокГруппыУпаковка");
|
|
Тексты.Вставить("ЗаголовокГруппыШтука");
|
|
Тексты.Вставить("ЗаголовокГруппыВариантыЕдиницы");
|
|
Тексты.Вставить("ЗаголовокГруппыЧастичноеВыбытие");
|
|
|
|
Тексты.Вставить("ВариантЕдиницыПотребительская", НСтр("ru = 'Соответствует единице хранения%1'"));
|
|
Тексты.Вставить("ВариантЕдиницыПотребительскаяПодсказка", Неопределено);
|
|
Тексты.Вставить("ВариантЕдиницыКоробБлок", НСтр("ru = 'Входит в состав короба%1 в количестве:'"));
|
|
Тексты.Вставить("ВариантЕдиницыКоробБлокПодсказка");
|
|
Тексты.Вставить("ВариантЕдиницыЧастьУпаковки");
|
|
Тексты.Вставить("ВариантЕдиницыЧастьУпаковкиПодсказка");
|
|
|
|
Тексты.Вставить("ПолеКоличествоЧастичноеВыбытиеЗаголовок");
|
|
Тексты.Вставить("ПолеКоличествоКоробЗаголовок");
|
|
Тексты.Вставить("ПолеКоличествоФиксированныйВесЗаголовок");
|
|
Тексты.Вставить("ПолеКоличествоУпаковкаЗаголовок");
|
|
Тексты.Вставить("ПолеКоличествоЧастичноеВыбытиеПодсказка");
|
|
Тексты.Вставить("ПолеКоличествоКоробПодсказка");
|
|
Тексты.Вставить("ПолеКоличествоФиксированныйВесПодсказка");
|
|
Тексты.Вставить("ПолеКоличествоУпаковкаПодсказка");
|
|
Тексты.Вставить(
|
|
"ГруппаБазоваяЕдиницаИмеетФиксированныйВесПодсказка",
|
|
НСтр("ru = 'Продукция, фасованная в заводских условиях, например:
|
|
|Бутылка молока объемом 950 мл., сыр фасованный по 200 грамм.'"));
|
|
|
|
Если ВариантЧастичногоВыбытия = ПредопределенноеЗначение("Перечисление.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура")
|
|
Или ВариантЧастичногоВыбытия = ПредопределенноеЗначение("Перечисление.ВариантыУчетаЧастичногоВыбытияИС.ТекущаяНоменклатура") Тогда
|
|
|
|
ДанныеПодвала = КонструкторИСМПОбщегоНазначенияКлиентСервер.НастройкаНоменклатурыТекстПодвалаЧастичноеВыбытие(ВидПродукции);
|
|
|
|
Иначе
|
|
|
|
ДанныеПодвала = КонструкторИСМПОбщегоНазначенияКлиентСервер.НастройкаНоменклатурыТекстПодвала(ВидПродукции);
|
|
|
|
КонецЕсли;
|
|
|
|
ТекстУпаковкиВПодсказке = СтрШаблон("""%1""", Строка(Упаковка));
|
|
|
|
НоменклатураТекущаяПодсказка = КонструкторИСМПОбщегоНазначенияКлиентСервер.НоменклатураТекущаяПодсказка(ВидПродукции);
|
|
Если СтрНайти(НоменклатураТекущаяПодсказка, "%1") > 0 Тогда
|
|
НоменклатураТекущаяПодсказка = СтрШаблон(НоменклатураТекущаяПодсказка, ТекстУпаковкиВПодсказке);
|
|
КонецЕсли;
|
|
|
|
Если КонструкторИСОбщегоНазначенияКлиентСервер.ПоддерживаетсяЧастичноеВыбытие(ВидПродукции) Тогда
|
|
|
|
ЗаголовокГруппыЧастичноеВыбытие = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПредставлениеПродажаЧастичногоВыбытияПоВидуПродукции(
|
|
ВидПродукции);
|
|
ЗаголовокГруппыЧастичноеВыбытие = ВРег(Лев(ЗаголовокГруппыЧастичноеВыбытие, 1)) + Сред(ЗаголовокГруппыЧастичноеВыбытие, 2);
|
|
Тексты.ЗаголовокГруппыЧастичноеВыбытие = ЗаголовокГруппыЧастичноеВыбытие;
|
|
|
|
Тексты.ТекущаяНоменклатураПодсказка = НоменклатураТекущаяПодсказка;
|
|
|
|
Если СтрНайти(Тексты.ТекущаяНоменклатураПодсказка, "%1") > 0 Тогда
|
|
Тексты.ТекущаяНоменклатураПодсказка = СтрШаблон(Тексты.ТекущаяНоменклатураПодсказка, ТекстУпаковкиВПодсказке);
|
|
КонецЕсли;
|
|
|
|
Тексты.ЗаголовокГруппыУпаковка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ЗаголовокГруппыУпаковка(ВидПродукции);
|
|
Тексты.ЗаголовокГруппыШтука = КонструкторИСМПОбщегоНазначенияКлиентСервер.ЗаголовокГруппыШтука(ВидПродукции);
|
|
|
|
Тексты.ПолеКоличествоЧастичноеВыбытиеЗаголовок = КонструкторИСМПОбщегоНазначенияКлиентСервер.КраткаяФормаЧастичногоВыбытияПоВидуПродукции(
|
|
ВидПродукции);
|
|
Тексты.ПолеКоличествоЧастичноеВыбытиеПодсказка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПолеКоличествоЧастичноеВыбытиеПодсказка(
|
|
ВидПродукции);
|
|
|
|
КонецЕсли;
|
|
|
|
ДанныеПодсказкиНастроеннаяНоменклатура = Новый Массив;
|
|
ДанныеПодсказкиНастроеннаяНоменклатура.Добавить(НоменклатураТекущаяПодсказка);
|
|
|
|
Если ПредставленияДокументовСборкаРазборка.Количество() = 0 Тогда
|
|
ПодсказкаСборкаРазборка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПодсказкаНоменклатураБезДокументовСборкаРазборка(ВидПродукции);
|
|
ИначеЕсли ПредставленияДокументовСборкаРазборка.Количество() = 1 Тогда
|
|
ПодсказкаСборкаРазборка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПодсказкаНоменклатураОдинДокументСборкаРазборка(ВидПродукции);
|
|
Если Не ЗначениеЗаполнено(ПодсказкаСборкаРазборка) Тогда
|
|
ПодсказкаСборкаРазборка = НСтр("ru = 'При передаче в торговый зал используется документ ""%1"" для пересчета единиц потребительской упаковки в единицы номенклатуры частичного выбытия.'");
|
|
КонецЕсли;
|
|
ПодсказкаСборкаРазборка = СтрШаблон(ПодсказкаСборкаРазборка, СтрСоединить(ПредставленияДокументовСборкаРазборка));
|
|
Иначе
|
|
ПодсказкаСборкаРазборка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПодсказкаНоменклатураМногоДокументовСборкаРазборка(ВидПродукции);
|
|
Если Не ЗначениеЗаполнено(ПодсказкаСборкаРазборка) Тогда
|
|
ПодсказкаСборкаРазборка = НСтр("ru = 'При передаче в торговый зал используются документы ""%1"" для пересчета единиц потребительской упаковки в единицы номенклатуры частичного выбытия.'");
|
|
КонецЕсли;
|
|
ПодсказкаСборкаРазборка = СтрШаблон(ПодсказкаСборкаРазборка, СтрСоединить(ПредставленияДокументовСборкаРазборка, ", "));
|
|
КонецЕсли;
|
|
|
|
Если ЗначениеЗаполнено(ПодсказкаСборкаРазборка) Тогда
|
|
ДанныеПодсказкиНастроеннаяНоменклатура.Добавить(" ");
|
|
ДанныеПодсказкиНастроеннаяНоменклатура.Добавить(ПодсказкаСборкаРазборка);
|
|
КонецЕсли;
|
|
|
|
Тексты.НастроеннаяНоменклатураПодсказка = Новый ФорматированнаяСтрока(ДанныеПодсказкиНастроеннаяНоменклатура);
|
|
|
|
Тексты.ПолеКоличествоКоробЗаголовок = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПолеКоличествоКоробЗаголовок(
|
|
ВидПродукции);
|
|
Тексты.ПолеКоличествоКоробПодсказка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПолеКоличествоКоробПодсказка(
|
|
ВидПродукции);
|
|
Тексты.ПолеКоличествоУпаковкаЗаголовок = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПолеКоличествоУпаковкаЗаголовок(
|
|
ВидПродукции);
|
|
Тексты.ПолеКоличествоУпаковкаПодсказка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ПолеКоличествоУпаковкаПодсказка(
|
|
ВидПродукции);
|
|
Тексты.ВариантЕдиницыПотребительскаяПодсказка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ВариантЕдиницыПотребительскаяПодсказка(
|
|
ВидПродукции);
|
|
Тексты.ВариантЕдиницыКоробБлокПодсказка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ВариантЕдиницыКоробБлокПодсказка(
|
|
ВидПродукции);
|
|
Тексты.ВариантЕдиницыЧастьУпаковки = КонструкторИСМПОбщегоНазначенияКлиентСервер.ВариантЕдиницыЧастьУпаковки(
|
|
ВидПродукции);
|
|
Тексты.ВариантЕдиницыЧастьУпаковкиПодсказка = КонструкторИСМПОбщегоНазначенияКлиентСервер.ВариантЕдиницыЧастьУпаковкиПодсказка(
|
|
ВидПродукции);
|
|
|
|
Тексты.Подвал = Новый ФорматированнаяСтрока(ДанныеПодвала);
|
|
|
|
Если ЗначениеЗаполнено(ЕдиницаХранения) Тогда
|
|
ТекстЕдиницыХранения = СтрШаблон(" ""%1""", ЕдиницаХранения);
|
|
Иначе
|
|
ТекстЕдиницыХранения = "";
|
|
КонецЕсли;
|
|
|
|
Тексты.ВариантЕдиницыПотребительская = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
Тексты.ВариантЕдиницыПотребительская, ТекстЕдиницыХранения);
|
|
Тексты.ВариантЕдиницыКоробБлок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
Тексты.ВариантЕдиницыКоробБлок, ТекстЕдиницыХранения);
|
|
Тексты.ЗаголовокГруппыВариантыЕдиницы = НСтр("ru = 'Единица хранения:'");
|
|
|
|
Если КонструкторИСМПОбщегоНазначенияКлиентСервер.ДоступноПолеКоличествоФиксированныйВесПодсказка(ВидПродукции) Тогда
|
|
Тексты.ПолеКоличествоФиксированныйВесПодсказка = СокрЛП(Упаковка);
|
|
КонецЕсли;
|
|
|
|
Если ОбщегоНазначенияИС.ПустоеЗначениеОпределяемогоТипа("Упаковка") = "" Тогда
|
|
Тексты.ВариантЕдиницыЧастьУпаковкиПодсказка = СтрШаблон(
|
|
"%1%2%3",
|
|
Тексты.ВариантЕдиницыЧастьУпаковкиПодсказка,
|
|
Символы.ПС,
|
|
НСтр("ru = 'Для оптовых закупок и продаж используется отдельная номенклатура.'"));
|
|
Иначе
|
|
Тексты.ВариантЕдиницыЧастьУпаковкиПодсказка = СтрШаблон(
|
|
"%1%2%3",
|
|
Тексты.ВариантЕдиницыЧастьУпаковкиПодсказка,
|
|
Символы.ПС,
|
|
НСтр("ru = 'Для оптовых закупок и продаж используются упаковки номенклатуры.'"));
|
|
КонецЕсли;
|
|
ДоступноТребуетВзвешивания = КарточкаТовараСодержитВесовойПризнак = Истина;
|
|
|
|
Элементы.ГруппаВариантыУчетаЧастичногоВыбытия.Заголовок = Тексты.ЗаголовокГруппыЧастичноеВыбытие;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНеИспользуется.СписокВыбора[0].Представление = Тексты.НеИспользуетсяЗаголовок;
|
|
Элементы.ГруппаВариантУчетаЧастичногоВыбытияНеИспользуется.РасширеннаяПодсказка.Заголовок = Неопределено;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияТекущаяНоменклатура.СписокВыбора[0].Представление = ИнтеграцияИСМПСлужебный.ПредставлениеНастройкиВариантаУчетаПоВидуПродукции(
|
|
ВидПродукции,
|
|
Перечисления.ВариантыУчетаЧастичногоВыбытияИС.ТекущаяНоменклатура);
|
|
Элементы.ГруппаВариантУчетаЧастичногоВыбытияТекущаяНоменклатура.РасширеннаяПодсказка.Заголовок = Тексты.ТекущаяНоменклатураПодсказка;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНастроеннаяНоменклатура.СписокВыбора[0].Представление = ИнтеграцияИСМПСлужебный.ПредставлениеНастройкиВариантаУчетаПоВидуПродукции(
|
|
ВидПродукции,
|
|
Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура) + ".";
|
|
Элементы.ГруппаВариантУчетаЧастичногоВыбытияНастроеннаяНоменклатура.РасширеннаяПодсказка.Заголовок = Тексты.НастроеннаяНоменклатураПодсказка;
|
|
Элементы.Подвал.Заголовок = Тексты.Подвал;
|
|
Элементы.НастройкиНоменклатурыГруппаУпаковка.Заголовок = Тексты.ЗаголовокГруппыУпаковка;
|
|
Элементы.НастройкиНоменклатурыГруппаИспользуемаяНоменклатура.Заголовок = Тексты.ЗаголовокГруппыШтука;
|
|
|
|
Элементы.ВариантЕдиницыИзмеренияУпаковка.СписокВыбора[0].Представление = Тексты.ВариантЕдиницыПотребительская;
|
|
Элементы.ВариантЕдиницыИзмеренияБлокКороб.СписокВыбора[0].Представление = Тексты.ВариантЕдиницыКоробБлок;
|
|
Элементы.ВариантЕдиницыИзмеренияЧастьУпаковки.СписокВыбора[0].Представление = Тексты.ВариантЕдиницыЧастьУпаковки;
|
|
|
|
Элементы.ГруппаВариантЕдиницыУпаковка.РасширеннаяПодсказка.Заголовок = Тексты.ВариантЕдиницыПотребительскаяПодсказка;
|
|
Элементы.ГруппаВариантЕдиницыИзмереняЗаданУпаковками.РасширеннаяПодсказка.Заголовок = Неопределено;
|
|
Элементы.ГруппВариантЕдиницыБлокКороб.РасширеннаяПодсказка.Заголовок = Тексты.ВариантЕдиницыКоробБлокПодсказка;
|
|
Элементы.ГруппаВариантЕдиницыИзмереняЧастьУпаковки.РасширеннаяПодсказка.Заголовок = Тексты.ВариантЕдиницыЧастьУпаковкиПодсказка;
|
|
|
|
Если (ДопустимоИспользованиеУпаковок И Не УпаковкиВключены) Тогда
|
|
Элементы.ПотребительскаяУпаковка.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСправа;
|
|
Элементы.ПотребительскаяУпаковка.РасширеннаяПодсказка.Заголовок = Новый ФорматированнаяСтрока(
|
|
НСтр("ru = 'Для настройки необходимо использовать упаковки.'"),,
|
|
ЦветаСтиля.ПоясняющийТекстГосИС);
|
|
КонецЕсли;
|
|
ЭтоНастроеннаяНоменклатура = (ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура);
|
|
ЭтоЧастьПотребительскойУпаковки = (ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЧастьПотребительскойУпаковки);
|
|
ЭтоГрупповаяЛогистическаяУпаковка = (ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ГрупповаяЛогистическаяУпаковка);
|
|
ЭтоФасованнаяПродукция = (ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияСФиксированнымЗначением);
|
|
ЭтоТребуетВзвешивания = (ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияТребуетУказанияЗначения);
|
|
ДоступноПеременноеКоличество = КонструкторИСМПКлиентСервер.ВидПродукцииПоддерживаетПеременноеКоличествоМернойПродукции(ВидПродукции);
|
|
ЭтоТабак = КонструкторИСМПОбщегоНазначенияКлиентСервер.ДоступноПолеМРЦ(ВидПродукции);
|
|
|
|
Элементы.НастройкиНоменклатуры.Видимость = (ЭтоНастроеннаяНоменклатура И ХарактеристикиИспользуются И ПоддерживаетсяЧастичноеВыбытие);
|
|
Элементы.НоменклатураЧастичногоВыбытия.Видимость = (ЭтоНастроеннаяНоменклатура И Не ХарактеристикиИспользуются И ПоддерживаетсяЧастичноеВыбытие);
|
|
Элементы.ХарактеристикаЧастичногоВыбытия.Видимость = (ЭтоНастроеннаяНоменклатура И Не ХарактеристикиИспользуются И ПоддерживаетсяЧастичноеВыбытие);
|
|
|
|
Элементы.ГруппаСтраницаНесколько.Видимость = (ЭтоНастроеннаяНоменклатура И ХарактеристикиИспользуются);
|
|
Элементы.ГруппаСтраницаОднаНоменклатура.Видимость = (ЭтоНастроеннаяНоменклатура И Не ХарактеристикиИспользуются);
|
|
|
|
Элементы.ВариантЕдиницыИзмеренияИмеетФиксированныйВес.Видимость = ДоступноПеременноеКоличество И (ЭтоФасованнаяПродукция Или Не ДопустимоИспользованиеУпаковок);
|
|
Элементы.ВариантЕдиницыИзмеренияИмеетФиксированныйВес.Доступность = ДоступноПеременноеКоличество И Не ДопустимоИспользованиеУпаковок;
|
|
Элементы.ПолеКоличествоФиксированныйВес.Видимость = ДоступноПеременноеКоличество И (ЭтоФасованнаяПродукция Или Не ДопустимоИспользованиеУпаковок);
|
|
Элементы.ВариантЕдиницыИзмеренияТребуетсяВзвешивание.Видимость = ДоступноПеременноеКоличество И (ДоступноТребуетВзвешивания Или ЭтоТребуетВзвешивания);
|
|
Элементы.ВариантЕдиницыИзмеренияТребуетсяВзвешивание.Доступность = ДоступноПеременноеКоличество И ДоступноТребуетВзвешивания;
|
|
Элементы.ВариантЕдиницыИзмеренияЧастьУпаковки.Видимость = (ПоддерживаетсяЧастичноеВыбытие И ЭтоЧастьПотребительскойУпаковки);
|
|
Элементы.ПолеКоличествоЧастичноеВыбытие.Видимость = (ПоддерживаетсяЧастичноеВыбытие И ЭтоЧастьПотребительскойУпаковки);
|
|
Элементы.ПолеКоличествоЧастичноеВыбытие.Доступность = Ложь;
|
|
Элементы.ВариантЕдиницыИзмеренияЧастьУпаковки.Доступность = Ложь;
|
|
Элементы.ВариантЕдиницыИзмеренияБлокКороб.Видимость = Ложь;
|
|
Элементы.ВариантЕдиницыИзмеренияБлокКороб.Доступность = Ложь;
|
|
Элементы.ПолеКоличествоКороб.Видимость = Ложь;
|
|
Элементы.ПолеКоличествоКороб.Доступность = Ложь;
|
|
Элементы.ВариантЕдиницыИзмеренияЗаданУпаковками.Видимость = Ложь;
|
|
Элементы.ВариантЕдиницыИзмеренияЗаданУпаковками.Доступность = Ложь;
|
|
Элементы.ПотребительскаяУпаковка.Видимость = Ложь;
|
|
Элементы.ПотребительскаяУпаковка.Доступность = Ложь;
|
|
|
|
Если ЭтоГрупповаяЛогистическаяУпаковка
|
|
Или Не ДопустимоИспользованиеУпаковок
|
|
Или (ДопустимоИспользованиеУпаковок И Не ДопустимыУпаковкиМеньшеЕдиницыХранения И ЭтоТабак) Тогда
|
|
Элементы.ВариантЕдиницыИзмеренияБлокКороб.Видимость = (ДопустимаНастройкаЛогистическойЕдиницы Или ЭтоГрупповаяЛогистическаяУпаковка);
|
|
Элементы.ПолеКоличествоКороб.Видимость = (ДопустимаНастройкаЛогистическойЕдиницы Или ЭтоГрупповаяЛогистическаяУпаковка);;
|
|
Элементы.ВариантЕдиницыИзмеренияБлокКороб.Доступность = ДопустимаНастройкаЛогистическойЕдиницы И (Не ДопустимоИспользованиеУпаковок Или Не ДопустимыУпаковкиМеньшеЕдиницыХранения И ЭтоТабак);
|
|
КонецЕсли;
|
|
|
|
Если ЭтоГрупповаяЛогистическаяУпаковка
|
|
И (Не ДопустимоИспользованиеУпаковок Или Не ДопустимыУпаковкиМеньшеЕдиницыХранения И ЭтоТабак) Тогда
|
|
Элементы.ПолеКоличествоКороб.Доступность = ДопустимаНастройкаЛогистическойЕдиницы;
|
|
КонецЕсли;
|
|
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНеИспользуется.Видимость = Ложь;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияТекущаяНоменклатура.Видимость = Ложь;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНастроеннаяНоменклатура.Видимость = Ложь;
|
|
Элементы.ПолеКоличествоЧастичноеВыбытие.Доступность = Ложь;
|
|
Элементы.ПолеКоличествоФиксированныйВес.Доступность = Ложь;
|
|
Элементы.ПолеКоличествоУпаковка.Доступность = Ложь;
|
|
Элементы.ПолеКоличествоУпаковка.Видимость = Ложь;
|
|
Элементы.Подвал.Видимость = ПоддерживаетсяЧастичноеВыбытие;
|
|
Элементы.ПолеКоличествоУпаковка.Заголовок = Тексты.ПолеКоличествоУпаковкаЗаголовок;
|
|
Элементы.ПолеКоличествоЧастичноеВыбытие.Заголовок = Тексты.ПолеКоличествоЧастичноеВыбытиеЗаголовок;
|
|
Элементы.ПолеКоличествоФиксированныйВес.Заголовок = Тексты.ПолеКоличествоФиксированныйВесЗаголовок;
|
|
Элементы.ПолеКоличествоКороб.Заголовок = Тексты.ПолеКоличествоКоробЗаголовок;
|
|
Элементы.ПолеКоличествоЧастичноеВыбытие.РасширеннаяПодсказка.Заголовок = Тексты.ПолеКоличествоЧастичноеВыбытиеПодсказка;
|
|
Элементы.ПолеКоличествоФиксированныйВес.РасширеннаяПодсказка.Заголовок = Тексты.ПолеКоличествоФиксированныйВесПодсказка;
|
|
Элементы.ПолеКоличествоКороб.РасширеннаяПодсказка.Заголовок = Тексты.ПолеКоличествоКоробПодсказка;
|
|
Элементы.ПолеКоличествоУпаковка.РасширеннаяПодсказка.Заголовок = Тексты.ПолеКоличествоУпаковкаПодсказка;
|
|
Элементы.ГруппаБазоваяЕдиницаИмеетФиксированныйВес.РасширеннаяПодсказка.Заголовок = Тексты.ГруппаБазоваяЕдиницаИмеетФиксированныйВесПодсказка;
|
|
|
|
Если ЭтоТабак Тогда
|
|
Элементы.ВариантЕдиницыИзмеренияЗаданУпаковками.Видимость = (ДопустимоИспользованиеУпаковок И ДопустимыУпаковкиМеньшеЕдиницыХранения);
|
|
Элементы.ПотребительскаяУпаковка.Видимость = (ДопустимоИспользованиеУпаковок И ДопустимыУпаковкиМеньшеЕдиницыХранения);
|
|
Иначе
|
|
Элементы.ВариантЕдиницыИзмеренияЗаданУпаковками.Видимость = ДопустимоИспользованиеУпаковок;
|
|
Элементы.ПотребительскаяУпаковка.Видимость = ДопустимоИспользованиеУпаковок;
|
|
КонецЕсли;
|
|
|
|
Элементы.ВариантЕдиницыИзмеренияЗаданУпаковками.Доступность = УпаковкиВключены;
|
|
|
|
Если ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ГрупповаяЛогистическаяУпаковка Тогда
|
|
|
|
Элементы.Подвал.Видимость = Ложь;
|
|
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ПотребительскаяУпаковка Тогда
|
|
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНеИспользуется.Видимость = ПоддерживаетсяЧастичноеВыбытие;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНастроеннаяНоменклатура.Видимость = ПоддерживаетсяЧастичноеВыбытие;
|
|
Элементы.ПолеКоличествоУпаковка.Видимость = ПоддерживаетсяЧастичноеВыбытие;
|
|
Элементы.ПолеКоличествоУпаковка.Доступность = (Не РежимПросмотра И ЗначениеЗаполнено(ВариантЧастичногоВыбытия));
|
|
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЧастьПотребительскойУпаковки Тогда
|
|
|
|
Элементы.ВариантУчетаЧастичногоВыбытияТекущаяНоменклатура.Видимость = Истина;
|
|
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияСФиксированнымЗначением Тогда
|
|
|
|
Элементы.ПолеКоличествоФиксированныйВес.Доступность = (Не ДопустимоИспользованиеУпаковок);
|
|
Элементы.Подвал.Видимость = Ложь;
|
|
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияТребуетУказанияЗначения Тогда
|
|
|
|
Элементы.Подвал.Видимость = Ложь;
|
|
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЗаданУпаковками Тогда
|
|
|
|
Элементы.ВариантУчетаЧастичногоВыбытияТекущаяНоменклатура.Видимость = ПоддерживаетсяЧастичноеВыбытие;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНеИспользуется.Видимость = ПоддерживаетсяЧастичноеВыбытие;
|
|
Элементы.ПотребительскаяУпаковка.Доступность = УпаковкиВключены;
|
|
|
|
КонецЕсли;
|
|
|
|
Элементы.ОтступВариантыУчетаЧастичногоВыбытия.Видимость = (Элементы.ВариантУчетаЧастичногоВыбытияНеИспользуется.Видимость
|
|
Или Элементы.ВариантУчетаЧастичногоВыбытияТекущаяНоменклатура.Видимость
|
|
Или Элементы.ВариантУчетаЧастичногоВыбытияНастроеннаяНоменклатура.Видимость);
|
|
|
|
ОбщегоНазначенияИС.ПрименитьУсловноеОформлениеКПолю(ЭтотОбъект, "ХарактеристикаЧастичногоВыбытия");
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура НоменклатураЧастичногоВыбытияПриИзмененииНаСервере()
|
|
|
|
ЗаполнитьДанныеНоменклатурыЧастичногоВыбытия(Истина);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ЗаполнитьПараметрыФормыПриСоздании()
|
|
|
|
Номенклатура = Параметры.Номенклатура;
|
|
ВидПродукции = Параметры.ВидПродукции;
|
|
ЕдиницаХранения = Параметры.ЕдиницаХранения;
|
|
РежимПросмотра = Параметры.РежимПросмотра;
|
|
НаборУпаковок = Параметры.НаборУпаковок;
|
|
УпаковкиВключены = Параметры.УпаковкиВключены;
|
|
ДопустимоИспользованиеУпаковок = Параметры.ДопустимоИспользованиеУпаковок;
|
|
ДопустимыУпаковкиМеньшеЕдиницыХранения = Параметры.ДопустимыУпаковкиМеньшеЕдиницыХранения;
|
|
КарточкаТовараСодержитВесовойПризнак = Параметры.КарточкаТовараСодержитВесовойПризнак;
|
|
ДопустимаНастройкаЛогистическойЕдиницы = Параметры.ДопустимаНастройкаЛогистическойЕдиницы;
|
|
АдресДанныхНастроекПараметровНоменклатуры = Параметры.АдресДанныхНастроекПараметровНоменклатуры;
|
|
|
|
Если ЭтоАдресВременногоХранилища(АдресДанныхНастроекПараметровНоменклатуры) Тогда
|
|
ДанныеНастроек = ПолучитьИзВременногоХранилища(АдресДанныхНастроекПараметровНоменклатуры);
|
|
Иначе
|
|
ДанныеНастроек = ИнтеграцияИС.ДанныеНастроекПараметровНоменклатуры(Номенклатура);
|
|
КонецЕсли;
|
|
|
|
Если Не ЗначениеЗаполнено(ВидПродукции)
|
|
И ЗначениеЗаполнено(Номенклатура) Тогда
|
|
ВидПродукции = ОбщегоНазначенияИС.ОписаниеНоменклатуры(Номенклатура)[Номенклатура].КлючВидовПродукции;
|
|
КонецЕсли;
|
|
|
|
ПоддерживаетсяЧастичноеВыбытие = ОбщегоНазначенияИСКлиентСерверПовтИсп.ПоддерживаетсяЧастичноеВыбытие(ВидПродукции);
|
|
|
|
Если РежимПросмотра Тогда
|
|
ТолькоПросмотр = Истина;
|
|
Элементы.ФормаВыбрать.Видимость = Ложь;
|
|
Элементы.ВариантЕдиницыИзмеренияУпаковка.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантЕдиницыИзмеренияЧастьУпаковки.ТолькоПросмотр = Истина;
|
|
Элементы.ПолеКоличествоЧастичноеВыбытие.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантЕдиницыИзмеренияБлокКороб.ТолькоПросмотр = Истина;
|
|
Элементы.ПолеКоличествоКороб.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантЕдиницыИзмеренияИмеетФиксированныйВес.ТолькоПросмотр = Истина;
|
|
Элементы.ПолеКоличествоФиксированныйВес.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантЕдиницыИзмеренияТребуетсяВзвешивание.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНеИспользуется.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияТекущаяНоменклатура.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантУчетаЧастичногоВыбытияНастроеннаяНоменклатура.ТолькоПросмотр = Истина;
|
|
Элементы.ПолеКоличествоУпаковка.ТолькоПросмотр = Истина;
|
|
Элементы.НастройкиНоменклатуры.ТолькоПросмотр = Истина;
|
|
Элементы.НоменклатураЧастичногоВыбытия.ТолькоПросмотр = Истина;
|
|
Элементы.ХарактеристикаЧастичногоВыбытия.ТолькоПросмотр = Истина;
|
|
Элементы.ПотребительскаяУпаковка.ТолькоПросмотр = Истина;
|
|
Элементы.ВариантЕдиницыИзмеренияЗаданУпаковками.ТолькоПросмотр = Истина;
|
|
КонецЕсли;
|
|
|
|
ДанныеПредставления = Новый Массив();
|
|
Для Каждого ЭлементТип Из Метаданные.ОпределяемыеТипы.СборкаРазборкаЧастичноеВыбытиеИСМП.Тип.Типы() Цикл
|
|
Если Документы.ТипВсеСсылки().СодержитТип(ЭлементТип) Тогда
|
|
МетаданныеПоТипу = Метаданные.НайтиПоТипу(ЭлементТип);
|
|
ДанныеПредставления.Добавить(МетаданныеПоТипу.Синоним);
|
|
КонецЕсли;
|
|
КонецЦикла;
|
|
|
|
ОписаниеНоменклатуры = ДанныеНастроек.ОписаниеНоменклатурыИС;
|
|
|
|
ПредставленияДокументовСборкаРазборка = ОбщегоНазначения.ФиксированныеДанные(ДанныеПредставления);
|
|
ВариантЧастичногоВыбытия = ОписаниеНоменклатуры.ВариантЧастичногоВыбытия;
|
|
ВариантИспользованияЕдиницыХранения = ОписаниеНоменклатуры.ВариантИспользованияЕдиницыХранения;
|
|
|
|
Если КонструкторИСМПОбщегоНазначенияКлиентСервер.ПолеКоличествоУпаковкаЦелоеЧисло(ВидПродукции) Тогда
|
|
Элементы.ПолеКоличествоУпаковка.ОграничениеТипа = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(7, 0, ДопустимыйЗнак.Неотрицательный));
|
|
КонецЕсли;
|
|
|
|
Если ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ГрупповаяЛогистическаяУпаковка Тогда
|
|
Если ОписаниеНоменклатуры.КоличествоВПотребительскойУпаковке = 0 Тогда
|
|
ПолеКоличествоКороб = 1;
|
|
Иначе
|
|
ПолеКоличествоКороб = Окр(1 / ОписаниеНоменклатуры.КоличествоВПотребительскойУпаковке);
|
|
КонецЕсли;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияСФиксированнымЗначением Тогда
|
|
ПолеКоличествоФиксированныйВес = ОписаниеНоменклатуры.КоличествоВПотребительскойУпаковке;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.МернаяПродукцияТребуетУказанияЗначения Тогда
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЧастьПотребительскойУпаковки Тогда
|
|
ПолеКоличествоЧастичноеВыбытие = ОписаниеНоменклатуры.ЕмкостьПотребительскойУпаковки;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ПотребительскаяУпаковка Тогда
|
|
ПолеКоличествоУпаковка = ОписаниеНоменклатуры.ЕмкостьПотребительскойУпаковки;
|
|
ИначеЕсли ВариантИспользованияЕдиницыХранения = Перечисления.ВариантыИспользованияЕдиницыХраненияИС.ЗаданУпаковками Тогда
|
|
ПотребительскаяУпаковка = ОписаниеНоменклатуры.ПотребительскаяУпаковка;
|
|
КонецЕсли;
|
|
|
|
СтрокаДляНастроекНоменклатуры = Неопределено;
|
|
ТаблицаНастроекНоменклатуры = НастройкиНоменклатуры.Выгрузить();
|
|
|
|
Если ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура Тогда
|
|
|
|
НастройкиЧастичногоВыбытия = ДанныеНастроек.НастройкиЧастичногоВыбытияПродукцииИС;
|
|
|
|
Для Каждого СтрокаТаблицы Из НастройкиЧастичногоВыбытия Цикл
|
|
НоваяСтрока = ТаблицаНастроекНоменклатуры.Добавить();
|
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);
|
|
ЗаполнитьНомерСтроки(НоваяСтрока, ТаблицаНастроекНоменклатуры);
|
|
КонецЦикла;
|
|
|
|
ТаблицаНастроекНоменклатуры.Сортировать(
|
|
"Номенклатура, Характеристика, НоменклатураЧастичногоВыбытия, ХарактеристикаЧастичногоВыбытия");
|
|
|
|
ИнтеграцияИСПереопределяемый.ЗаполнитьСлужебныеРеквизитыВКоллекции(ЭтотОбъект, ТаблицаНастроекНоменклатуры);
|
|
НастройкиНоменклатуры.Загрузить(ТаблицаНастроекНоменклатуры);
|
|
|
|
Если НастройкиНоменклатуры.Количество() Тогда
|
|
СтрокаДляНастроекНоменклатуры = НастройкиНоменклатуры[0];
|
|
КонецЕсли;
|
|
|
|
ТаблицаНастроекНоменклатуры.Очистить();
|
|
ЗаполнитьДанныеНоменклатурыЧастичногоВыбытия();
|
|
|
|
КонецЕсли;
|
|
|
|
Если СтрокаДляНастроекНоменклатуры = Неопределено Тогда
|
|
ТаблицаНастроекНоменклатуры.Очистить();
|
|
СтрокаДляНастроекНоменклатуры = ТаблицаНастроекНоменклатуры.Добавить();
|
|
СтрокаДляНастроекНоменклатуры.Номенклатура = Номенклатура;
|
|
СтрокаДляНастроекНоменклатуры.НомерСтроки = 1;
|
|
ИнтеграцияИСПереопределяемый.ЗаполнитьСлужебныеРеквизитыВКоллекции(ЭтотОбъект, ТаблицаНастроекНоменклатуры);
|
|
КонецЕсли;
|
|
|
|
Упаковка = СтрокаДляНастроекНоменклатуры.ЕдиницаИзмерения;
|
|
ХарактеристикиИспользуются = СтрокаДляНастроекНоменклатуры.ХарактеристикиИспользуются;
|
|
|
|
СоздатьСтрокуНастройкиПриНеобходимости();
|
|
|
|
Если ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура
|
|
И Не ХарактеристикиИспользуются Тогда
|
|
ПеренестиСтрокуНастройкиВДанныеФормы(ЭтотОбъект);
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура СоздатьСтрокуНастройкиПриНеобходимости()
|
|
|
|
Если ВариантЧастичногоВыбытия = Перечисления.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура
|
|
И НастройкиНоменклатуры.Количество() = 0
|
|
И Не ХарактеристикиИспользуются Тогда
|
|
НоваяСтрока = НастройкиНоменклатуры.Добавить();
|
|
НоваяСтрока.Номенклатура = Номенклатура;
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиентеНаСервереБезКонтекста
|
|
Процедура ПеренестиСтрокуНастройкиВДанныеФормы(Форма)
|
|
|
|
Если Форма.ВариантЧастичногоВыбытия <> ПредопределенноеЗначение("Перечисление.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура")
|
|
Или Форма.ХарактеристикиИспользуются Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
СтрокаДанных = Форма.НастройкиНоменклатуры[0];
|
|
|
|
Форма.НоменклатураЧастичногоВыбытия = СтрокаДанных.НоменклатураЧастичногоВыбытия;
|
|
Форма.ХарактеристикаЧастичногоВыбытия = СтрокаДанных.ХарактеристикаЧастичногоВыбытия;
|
|
Форма.ХарактеристикиИспользуютсяЧастичногоВыбытия = СтрокаДанных.ХарактеристикиИспользуютсяЧастичноеВыбытие;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиентеНаСервереБезКонтекста
|
|
Процедура ПеренестиДанныеФормыВСтроку(Форма)
|
|
|
|
Если Форма.ВариантЧастичногоВыбытия <> ПредопределенноеЗначение("Перечисление.ВариантыУчетаЧастичногоВыбытияИС.НастроеннаяНоменклатура")
|
|
Или Форма.ХарактеристикиИспользуются Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
СтрокаДанных = Форма.НастройкиНоменклатуры[0];
|
|
|
|
СтрокаДанных.НоменклатураЧастичногоВыбытия = Форма.НоменклатураЧастичногоВыбытия;
|
|
СтрокаДанных.ХарактеристикаЧастичногоВыбытия = Форма.ХарактеристикаЧастичногоВыбытия;
|
|
СтрокаДанных.ХарактеристикиИспользуютсяЧастичноеВыбытие = Форма.ХарактеристикиИспользуютсяЧастичногоВыбытия;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ЗаполнитьДанныеНоменклатурыЧастичногоВыбытия(ПоТекущейСтроке = Ложь)
|
|
|
|
Если ПоТекущейСтроке Тогда
|
|
ИсходныеСтроки = Новый Массив();
|
|
ИсходныеСтроки.Добавить(
|
|
НастройкиНоменклатуры.НайтиПоИдентификатору(Элементы.НастройкиНоменклатуры.ТекущаяСтрока));
|
|
Иначе
|
|
ИсходныеСтроки = НастройкиНоменклатуры;
|
|
КонецЕсли;
|
|
|
|
ВременнаяТаблица = НастройкиНоменклатуры.Выгрузить(Новый Массив());
|
|
КэшСтрокЗаполнения = Новый Соответствие();
|
|
Для Каждого СтрокаТаблицы Из ИсходныеСтроки Цикл
|
|
|
|
СтрокаТаблицы.ЕдиницаИзмеренияЧастичногоВыбытия = Неопределено;
|
|
СтрокаТаблицы.ХарактеристикиИспользуютсяЧастичноеВыбытие = Ложь;
|
|
|
|
НоваяСтрока = ВременнаяТаблица.Добавить();
|
|
НоваяСтрока.Номенклатура = СтрокаТаблицы.НоменклатураЧастичногоВыбытия;
|
|
НоваяСтрока.Характеристика = СтрокаТаблицы.ХарактеристикаЧастичногоВыбытия;
|
|
ЗаполнитьНомерСтроки(НоваяСтрока, ВременнаяТаблица);
|
|
|
|
КэшСтрокЗаполнения.Вставить(НоваяСтрока, СтрокаТаблицы);
|
|
|
|
КонецЦикла;
|
|
|
|
ИнтеграцияИСПереопределяемый.ЗаполнитьСлужебныеРеквизитыВКоллекции(ЭтотОбъект, ВременнаяТаблица);
|
|
|
|
Для Каждого СтрокаТаблицы Из ВременнаяТаблица Цикл
|
|
|
|
ИсходнаяСтрока = КэшСтрокЗаполнения.Получить(СтрокаТаблицы);
|
|
ИсходнаяСтрока.ЕдиницаИзмеренияЧастичногоВыбытия = СтрокаТаблицы.ЕдиницаИзмерения;
|
|
ИсходнаяСтрока.ХарактеристикиИспользуютсяЧастичноеВыбытие = СтрокаТаблицы.ХарактеристикиИспользуются
|
|
|
|
КонецЦикла;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиентеНаСервереБезКонтекста
|
|
Процедура ЗаполнитьНомерСтроки(ТекущаяСтрока, Коллекция)
|
|
|
|
ТекущаяСтрока.НомерСтроки = Коллекция.Индекс(ТекущаяСтрока) + 1;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура УстановитьУсловноеОформление();
|
|
|
|
СобытияФормИСПереопределяемый.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(
|
|
ЭтотОбъект, "НастройкиНоменклатурыХарактеристика", "НастройкиНоменклатуры.ХарактеристикиИспользуются");
|
|
СобытияФормИСПереопределяемый.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(
|
|
ЭтотОбъект, "НастройкиНоменклатурыХарактеристикаЧастичногоВыбытия", "НастройкиНоменклатуры.ХарактеристикиИспользуютсяЧастичноеВыбытие");
|
|
|
|
//
|
|
СобытияФормИСПереопределяемый.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(
|
|
ЭтотОбъект, "ХарактеристикаЧастичногоВыбытия", "ХарактеристикиИспользуютсяЧастичногоВыбытия");
|
|
|
|
КонецПроцедуры
|
|
|
|
#Область ОписанияОповещений
|
|
|
|
&НаКлиенте
|
|
Процедура ВыборПотребительскойУпаковкиЗавершение(Значение, ДополнительныеПараметры) Экспорт
|
|
|
|
Если Не ЗначениеЗаполнено(Значение) Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
Если Значение = ПотребительскаяУпаковка Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
ПотребительскаяУпаковка = Значение;
|
|
Модифицированность = Истина;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#КонецОбласти
|