#Область ОписаниеПеременных
&НаКлиенте
Перем ОбновитьИнтерфейс;
#КонецОбласти
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
УправлениеТорговлей = ПолучитьФункциональнуюОпцию("УправлениеТорговлей");
БазоваяВерсия = ПолучитьФункциональнуюОпцию("БазоваяВерсия");
Элементы.ОткрытьНастройкуРасписанияОбновленияСтатусовСертификатовНоменклатурыРосаккредитации.Доступность = НЕ (НаборКонстант.ВариантПроверкиСтатусовСертификатовНоменклатурыРосаккредитации = Перечисления.ВариантыПроверкиСтатусовСертификатовНоменклатурыРосаккредитации.НеПроверять);
Если Не ОбщегоНазначения.РазделениеВключено()
И Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда
ОпределитьНастройкиРегламентногоЗаданияОбновлениеСтатусовСертификатов();
Иначе
Элементы.ОткрытьНастройкуРасписанияОбновленияСтатусовСертификатовНоменклатурыРосаккредитации.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВариантПроверкиСтатусовСертификатовНоменклатурыРосаккредитацииОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииРеквизита(Элемент)
ЭтаФорма.Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина, ВнешнееИзменение = Ложь)
Если НЕ ВнешнееИзменение Тогда
Если Элемент.Имя = "ВариантПроверкиСтатусовСертификатовНоменклатурыРосаккредитации" Тогда
ЗначениеКонстанты = НаборКонстант.ВариантПроверкиСтатусовСертификатовНоменклатурыРосаккредитации;
Элементы.ОткрытьНастройкуРасписанияОбновленияСтатусовСертификатовНоменклатурыРосаккредитации.Доступность =
ЗначениеЗаполнено(ЗначениеКонстанты)
И ЗначениеКонстанты <> ПредопределенноеЗначение("Перечисление.ВариантыПроверкиСтатусовСертификатовНоменклатурыРосаккредитации.НеПроверять");
КонецЕсли;
КонецЕсли;
КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя);
Если ОбновлятьИнтерфейс Тогда
ОбновитьИнтерфейс = Истина;
ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина);
КонецЕсли;
Если КонстантаИмя <> "" Тогда
Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента)
РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным;
КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным);
УстановитьДоступность(РеквизитПутьКДанным);
ОбновитьПовторноИспользуемыеЗначения();
Возврат КонстантаИмя;
КонецФункции
&НаКлиенте
Процедура ОбновитьИнтерфейсПрограммы()
Если ОбновитьИнтерфейс = Истина Тогда
ОбновитьИнтерфейс = Ложь;
ОбщегоНазначенияКлиент.ОбновитьИнтерфейсПрограммы();
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
Если РеквизитПутьКДанным = "" Тогда
Возврат "";
КонецЕсли;
КонстантаИмя = "";
Если СтрНачинаетсяС(НРег(РеквизитПутьКДанным), НРег("НаборКонстант.")) Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
КонстантаИмя = ЧастиИмени[1];
Иначе
КонецЕсли;
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если НастройкиСистемыПовтИсп.ЕстьПодчиненныеКонстанты(КонстантаИмя, КонстантаЗначение) Тогда
Прочитать();
КонецЕсли;
Если КонстантаИмя = "ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров" Тогда
Константы.ИспользоватьДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров.Установить(КонстантаЗначение > 0);
Если КонстантаЗначение = 0 Тогда
Константы.ИспользоватьАвтоматическоеЗакрытиеСтрокЗаказовМерныхТоваров.Установить(Ложь);
НаборКонстант.ИспользоватьАвтоматическоеЗакрытиеСтрокЗаказовМерныхТоваров = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
НастройкиСистемыЛокализация.СохранитьЗначениеРеквизита_НастройкиНоменклатуры(КонстантаИмя, КонстантаЗначение, ЭтотОбъект);
Возврат КонстантаИмя;
КонецФункции
&НаКлиенте
Процедура ОткрытьНастройкуРасписанияОбновленияСтатусовСертификатовНоменклатурыРосаккредитации(Команда)
ПараметрыВыполнения = Новый Структура;
НастройкиСистемыКлиентЛокализация.ДополнитьПараметрыИзмененияРасписанияРегламентногоЗадания_НастройкиНоменклатуры(
ЭтотОбъект,
Команда.Имя,
ПараметрыВыполнения);
Если ПараметрыВыполнения.Количество() > 0 Тогда
РегламентныеЗаданияИзменитьРасписание(ПараметрыВыполнения);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОпределитьНастройкиРегламентногоЗаданияОбновлениеСтатусовСертификатов()
МетаданныеПредопределенного = Метаданные.РегламентныеЗадания.ОбновлениеСтатусовСертификатовНоменклатурыРосаккредитации;
РегламентноеЗаданиеОбновлениеСтатусов = РегламентныеЗаданияСервер.Задание(МетаданныеПредопределенного);
Если РегламентноеЗаданиеОбновлениеСтатусов <> Неопределено Тогда
ОбновлениеСтатусовСертификатовНоменклатурыРосаккредитацииИдентификатор = РегламентноеЗаданиеОбновлениеСтатусов.УникальныйИдентификатор;
ОбновлениеСтатусовСертификатовНоменклатурыРосаккредитацииИспользование = РегламентноеЗаданиеОбновлениеСтатусов.Использование;
ОбновлениеСтатусовСертификатовНоменклатурыРосаккредитацииРасписание = РегламентноеЗаданиеОбновлениеСтатусов.Расписание;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОтображениеПредупрежденияПриРедактировании(РеквизитПутьКДанным)
СтруктураКонстант = Новый Структура();
НастройкиСистемыЛокализация.ОтображениеПредупрежденияПриРедактировании_НастройкиНоменклатуры(СтруктураКонстант);
Для Каждого КлючИЗначение Из СтруктураКонстант Цикл
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы[КлючИЗначение.Ключ],
НаборКонстант[КлючИЗначение.Ключ]);
КонецЦикла;
КонецПроцедуры
#Область РегламентныеЗадания
&НаКлиенте
Процедура РегламентныеЗаданияИзменитьРасписание(ПараметрыВыполнения)
Обработчик = Новый ОписаниеОповещения("РегламентныеЗаданияПослеИзмененияРасписания", ЭтотОбъект, ПараметрыВыполнения);
Диалог = Новый ДиалогРасписанияРегламентногоЗадания(ЭтотОбъект[ПараметрыВыполнения.ИмяРеквизитаРасписание]);
Диалог.Показать(Обработчик);
КонецПроцедуры
&НаКлиенте
Процедура РегламентныеЗаданияПослеИзмененияРасписания(Расписание, ПараметрыВыполнения) Экспорт
Если Расписание = Неопределено Тогда
Если ПараметрыВыполнения.Свойство("ИмяРеквизитаИспользование") Тогда
ЭтотОбъект[ПараметрыВыполнения.ИмяРеквизитаИспользование] = Ложь;
КонецЕсли;
Возврат;
КонецЕсли;
ЭтотОбъект[ПараметрыВыполнения.ИмяРеквизитаРасписание] = Расписание;
Изменения = Новый Структура("Расписание", Расписание);
Если ПараметрыВыполнения.Свойство("ИмяРеквизитаИспользование") Тогда
ЭтотОбъект[ПараметрыВыполнения.ИмяРеквизитаИспользование] = Истина;
Изменения.Вставить("Использование", Истина);
КонецЕсли;
РегламентныеЗаданияСохранить(ПараметрыВыполнения.Идентификатор, Изменения, ПараметрыВыполнения.ИмяРеквизитаРасписание);
КонецПроцедуры
&НаСервере
Процедура РегламентныеЗаданияСохранить(УникальныйИдентификатор, Изменения, РеквизитПутьКДанным)
РегламентноеЗадание = РегламентныеЗаданияСервер.Задание(УникальныйИдентификатор);
ЗаполнитьЗначенияСвойств(РегламентноеЗадание, Изменения);
РегламентноеЗадание.Записать();
Если РеквизитПутьКДанным <> Неопределено Тогда
УстановитьДоступность(РеквизитПутьКДанным);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступность(РеквизитПутьКДанным = "")
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьУпаковкиНоменклатуры" ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = НаборКонстант.ИспользоватьУпаковкиНоменклатуры;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ИспользоватьУпаковкиНоменклатуры, ЗначениеКонстанты);
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьХарактеристикиНоменклатуры" ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = НаборКонстант.ИспользоватьХарактеристикиНоменклатуры;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ИспользоватьХарактеристикиНоменклатуры, ЗначениеКонстанты);
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСерииНоменклатуры" ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = НаборКонстант.ИспользоватьСерииНоменклатуры;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ИспользоватьСерииНоменклатуры, НаборКонстант.ИспользоватьСерииНоменклатуры);
ИспользоватьОрдерныеСклады = Константы.ИспользоватьОрдерныеСклады.Получить();
Элементы.ГруппаКомментарийСерииНаОрдерныхСкладах.Видимость = ЗначениеКонстанты И Не ИспользоватьОрдерныеСклады;
Элементы.ГруппаВыводитьСерииВПечатныхФормахОтступ.Доступность = ЗначениеКонстанты;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьКачествоТоваров" ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = НаборКонстант.ИспользоватьКачествоТоваров;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ИспользоватьКачествоТоваров, ЗначениеКонстанты);
Элементы.ИспользоватьОбобщенныйУчетНекачественныхТоваров.Доступность = ЗначениеКонстанты;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьНоменклатуруПродаваемуюСовместно" ИЛИ РеквизитПутьКДанным = "" Тогда
Элементы.ОткрытьНастройкиНоменклатурыПродаваемойСовместно.Доступность = НаборКонстант.ИспользоватьНоменклатуруПродаваемуюСовместно;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСертификатыНоменклатуры" ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = НаборКонстант.ИспользоватьСертификатыНоменклатуры;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьНаборы"
ИЛИ РеквизитПутьКДанным = "НаборКонстант.ИспользоватьНесколькоВидовНоменклатуры"
ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = НаборКонстант.ИспользоватьНаборы;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ИспользоватьНаборы, ЗначениеКонстанты);
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьНесколькоВидовНоменклатуры"
ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = НаборКонстант.ИспользоватьНесколькоВидовНоменклатуры;
ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
Элементы.ИспользоватьНесколькоВидовНоменклатуры, ЗначениеКонстанты);
Элементы.ИспользоватьНаборы.Доступность = ЗначениеКонстанты;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров"
ИЛИ РеквизитПутьКДанным = "" Тогда
ЗначениеКонстанты = Константы.ИспользоватьДопустимоеОтклонениеОтгрузкиПриемкиМерныхТоваров.Получить();
Элементы.ИспользоватьАвтоматическоеЗакрытиеСтрокЗаказовМерныхТоваров.Доступность = ЗначениеКонстанты;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСегментыНоменклатуры"
Или РеквизитПутьКДанным = "" Тогда
Элементы.НастроитьОчисткуСегментов.Доступность = НаборКонстант.ИспользоватьСегментыНоменклатуры;
КонецЕсли;
Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьИнформативныеЦеныНоменклатуры"
Или РеквизитПутьКДанным = "" Тогда
Элементы.ГруппаИспользоватьИнформативныеЦеныНоменклатуры.Видимость = Ложь;
Элементы.ГруппаИспользоватьИнформативныеЦеныНоменклатуры.Видимость = Истина;
Элементы.НастроитьРасписаниеЗаполненияИнформативныхЦенНоменклатуры.Доступность = НаборКонстант.ИспользоватьИнформативныеЦеныНоменклатуры;
КонецЕсли;
ОбменДаннымиУТУП.УстановитьДоступностьНастроекУзлаИнформационнойБазы(ЭтотОбъект);
НастройкиСистемыЛокализация.УстановитьДоступность_НастройкиНоменклатуры(РеквизитПутьКДанным, ЭтотОбъект);
ОтображениеПредупрежденияПриРедактировании(РеквизитПутьКДанным);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если ЭтаФорма.Модифицированность Тогда
Подключаемый_ПриИзмененииРеквизита(Элементы.ВариантПроверкиСтатусовСертификатовНоменклатурыРосаккредитации);
КонецЕсли;
КонецПроцедуры
#КонецОбласти