Панель администрирования УТ / Учет НДС, импорт и экспорт / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем ОбновитьИнтерфейс;

#КонецОбласти

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	// Значения реквизитов формы
	СоставНабораКонстантФормы    = ОбщегоНазначенияУТ.ПолучитьСтруктуруНабораКонстант(НаборКонстант);
	ВнешниеРодительскиеКонстанты = НастройкиСистемыПовтИсп.ПолучитьСтруктуруРодительскихКонстант(СоставНабораКонстантФормы);
	ВнешниеРодительскиеКонстанты.Вставить("ИспользоватьТоварыВПутиОтПоставщиков");
	
	ДатаНачалаПримененияСводныхСправок = НаборКонстант.ДатаНачалаПримененияСводныхСправок;
	
	РежимРаботы = Новый Структура;
	РежимРаботы.Вставить("СоставНабораКонстантФормы",    Новый ФиксированнаяСтруктура(СоставНабораКонстантФормы));
	РежимРаботы.Вставить("ВнешниеРодительскиеКонстанты", Новый ФиксированнаяСтруктура(ВнешниеРодительскиеКонстанты));
	
	РежимРаботы = Новый ФиксированнаяСтруктура(РежимРаботы);
	
	// Обновление состояния элементов
	УстановитьДоступность();
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	Если ЗавершениеРаботы Тогда
		Возврат;
	КонецЕсли;
	ОбновитьИнтерфейсПрограммы();
КонецПроцедуры

&НаКлиенте

// Обработчик оповещения формы.
//
// Параметры:
//	ИмяСобытия - Строка - обрабатывается только событие Запись_НаборКонстант, генерируемое панелями администрирования.
//	Параметр   - Структура - содержит имена констант, подчиненных измененной константе, "вызвавшей" оповещение.
//	Источник   - Строка - имя измененной константы, "вызвавшей" оповещение.
//
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия <> "Запись_НаборКонстант" Тогда
		Возврат; // такие событие не обрабатываются
	КонецЕсли;
	
	// Если это изменена константа, расположенная в другой форме и влияющая на значения констант этой формы,
	// то прочитаем значения констант и обновим элементы этой формы.
	Если РежимРаботы.ВнешниеРодительскиеКонстанты.Свойство(Источник)
	 ИЛИ (ТипЗнч(Параметр) = Тип("Структура")
	 		И ОбщегоНазначенияУТКлиентСервер.ПолучитьОбщиеКлючиСтруктур(
	 			Параметр, РежимРаботы.ВнешниеРодительскиеКонстанты).Количество() > 0) Тогда
		
		Прочитать();
		УстановитьДоступность();
		
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ФормироватьОтчетностьПоНДСПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ВестиОтдельнуюНумерациюСчетовФактурНаАвансыПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьИмпортныеТоварыПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ПроверятьЗаполнениеНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПутиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура НаборКонстантКонтролироватьОстаткиНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПутиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура НаборКонстантКонтролироватьОстаткиНомеровГТДПриИмпортеПоСхемеТоварыВПутиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьИмпортныеЗакупкиПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);

КонецПроцедуры

&НаКлиенте
Процедура КонтролироватьОстаткиТоваровОрганизацийКОформлениюПоПоступлениямПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура НаборКонстантЗапретитьОформлениеОперацийСИмпортнымиТоварамиБезНомеровГТДПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура НаборКонстантЗапретитьПоступлениеТоваровБезНомеровГТДПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьУчетПрослеживаемыхИмпортныхТоваровПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваровПриИзменении(Элемент)
	
	ЗначениеКонстанты = НаборКонстант.ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваров;
	НаборКонстант.ДатаНачалаУчетаПрослеживаемыхИмпортныхТоваров = НачалоМесяца(ЗначениеКонстанты);
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ВидЦеныСтоимостиПрослеживаемыхТоваровПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ДекорацияПанельАдминистрированияУчетПрослеживаемыхИмпортныхТоваровОбработкаНавигационнойСсылки(Элемент,
																										НавигационнаяСсылкаФорматированнойСтроки,
																										СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Если НавигационнаяСсылкаФорматированнойСтроки = "ОткрытьПанельАдминистрированияРНПТ" Тогда
		ОткрытьФорму("Обработка.ПанельАдминистрированияУчетПрослеживаемыхТоваров.Форма.УчетПрослеживаемыхТоваров", , ЭтотОбъект);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПродажиНаЭкспортСырьевыхТоваровУслугПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПродажиНаЭкспортНесырьевыхТоваровПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ОперацииСТоварамиОблагаемымиНДСУПокупателяПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ПокупкаТоваровОблагаемыхНДСУПокупателяПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ВестиУчетТаможенныхДекларацийНаЭкспортПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ДатаНачалаПримененияСводныхСправокПриИзменении(Элемент)
	
	НаборКонстант.ДатаНачалаПримененияСводныхСправок = НачалоКвартала(НаборКонстант.ДатаНачалаПримененияСводныхСправок);
	Если ДатаНачалаПримененияСводныхСправок > НаборКонстант.ДатаНачалаПримененияСводныхСправок Тогда
		
		ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаПослеИзмененияДатыНачалаПримененияСводныхСправок", ЭтотОбъект);
		ШаблонВопроса = НСтр("ru = 'У всех отчетов о розничных продажах с датой больше %1 будут удалены движения в книгу продаж.
								|Выполнить обработку?'");
		ТекстВопроса = СтрШаблон(ШаблонВопроса, Формат(НаборКонстант.ДатаНачалаПримененияСводныхСправок, "ДЛФ=D"));
		Кнопки = Новый СписокЗначений;
		Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить'"));
		Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
		ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Нет, НСтр("ru = 'Обработка данных'"));
		
	Иначе
		ДатаНачалаПримененияСводныхСправок = НаборКонстант.ДатаНачалаПримененияСводныхСправок;
		Подключаемый_ПриИзмененииРеквизита(Элемент);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПечатныеФормыСФ2_5ПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьВвозТоваровИзТаможенногоСоюзаПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);

КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#Область Клиент

&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина)
	
	КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя);
	
	Если ОбновлятьИнтерфейс Тогда
		ОбновитьИнтерфейс = Истина;
		ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина);
	КонецЕсли;
	
	Если КонстантаИмя <> "" Тогда
		Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьИнтерфейсПрограммы()
	
	Если ОбновитьИнтерфейс = Истина Тогда
		ОбновитьИнтерфейс = Ложь;
		ОбщегоНазначенияКлиент.ОбновитьИнтерфейсПрограммы();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаУстановкиУстановкиДатыНачалаПримененияСводныхСправокЗавершена(Результат, ДопПараметры) Экспорт
	
	Если ТипЗнч(Результат) = Тип("Структура") Тогда
		
		Если ЗначениеЗаполнено(Результат.АдресРезультата) 
			И Не Результат.Статус = "Ошибка" Тогда
			
			РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
			
			ТекстОповещения = НСтр("ru = 'Обработка установки даты начала применения сводных справок'");
			
			Если РезультатВыполнения.ОчищеноДвижений <> 0 Тогда
				МассивТекстПояснения = Новый Массив;
				Если РезультатВыполнения.ОчищеноДвижений <> 0 Тогда
					МассивТекстПояснения.Добавить(
						СтрШаблон(НСтр("ru = 'Очищены движения в книгу продаж у отчетов о розничных продажах: %1'"), РезультатВыполнения.ОчищеноДвижений));
				КонецЕсли;
				Разделитель = "
				|";
				ТекстПояснения = СтрСоединить(МассивТекстПояснения, Разделитель);
			Иначе
				ТекстПояснения = НСтр("ru = 'Изменений в движениях документов не требуется'");
			КонецЕсли;
			
			ПоказатьОповещениеПользователя(ТекстОповещения,, ТекстПояснения);
			ДатаНачалаПримененияСводныхСправок = НаборКонстант.ДатаНачалаПримененияСводныхСправок;
			Подключаемый_ПриИзмененииРеквизита(Элементы.ДатаНачалаПримененияСводныхСправок);
			
			Возврат;
			
		Иначе
			
			ПоказатьПредупреждение(, 
				НСтр("ru = 'Обработка завершилась с ошибкой. Подробную информацию см. в журнале регистрации.'"),
				, 
				НСтр("ru = 'Обработка установки даты начала применения сводных справок'"));
			
		КонецЕсли;
		
	КонецЕсли;
	
	НаборКонстант.ДатаНачалаПримененияСводныхСправок = ДатаНачалаПримененияСводныхСправок;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаПослеИзмененияДатыНачалаПримененияСводныхСправок(РезультатВопроса, ДопПараметры) Экспорт
	
	Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
		
		Результат = ЗапуститьОбработкуУстановкиДатыНачалаПримененияСводныхСправок(УникальныйИдентификатор, НаборКонстант.ДатаНачалаПримененияСводныхСправок);
		
		Если Результат.Статус = "Выполняется" Тогда
		
			ПараметрыДлительнойОперации = Новый Структура;
			ПараметрыДлительнойОперации.Вставить("ИдентификаторЗадания",       Результат.ИдентификаторЗадания);
			ПараметрыДлительнойОперации.Вставить("АдресРезультата",            Результат.АдресРезультата);
			ПараметрыДлительнойОперации.Вставить("ВыводитьОкноОжидания",       Истина);
			ПараметрыДлительнойОперации.Вставить("ВыводитьПрогрессВыполнения", Истина);
			ПараметрыДлительнойОперации.Вставить("ВыводитьСообщения",          Истина);
			
			ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаУстановкиУстановкиДатыНачалаПримененияСводныхСправокЗавершена", ЭтотОбъект, ДопПараметры);
			
			ОткрытьФорму("ОбщаяФорма.ДлительнаяОперация", ПараметрыДлительнойОперации, ЭтотОбъект, , , , ОповещениеОЗакрытии);
			
		Иначе
			
			ОбработкаУстановкиУстановкиДатыНачалаПримененияСводныхСправокЗавершена(Результат, ДопПараметры);
			
		КонецЕсли;
		
	Иначе
		
		НаборКонстант.ДатаНачалаПримененияСводныхСправок = ДатаНачалаПримененияСводныхСправок;
		
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ВызовСервера

&НаСервере
Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента)
	
	РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным;
	
	КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным, Новый Структура);
	
	УстановитьДоступность(РеквизитПутьКДанным);
	
	ОбновитьПовторноИспользуемыеЗначения();
	
	Возврат КонстантаИмя;
	
КонецФункции

&НаСервереБезКонтекста
Функция ЗапуститьОбработкуУстановкиДатыНачалаПримененияСводныхСправок(УникальныйИдентификатор, ДатаНачалаПримененияСводныхСправок)
	
	ПараметрыФоновогоЗадания = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
	ПараметрыФоновогоЗадания.НаименованиеФоновогоЗадания = НСтр("ru = 'Обработка установки даты начала применения сводных справок'");
	ПараметрыФоновогоЗадания.КлючФоновогоЗадания = "ОбработкаУстановкиДатыНачалаПримененияСводныхСправок";
	ПараметрыФоновогоЗадания.ОжидатьЗавершение = 1;
	
	ПараметрыЗапуска = Новый Структура;
	ПараметрыЗапуска.Вставить("ДатаНачалаПримененияСводныхСправок", ДатаНачалаПримененияСводныхСправок);
	РезультатФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(
		"Документы.СводнаяСправкаНДС.ОбработкаУстановкиДатыНачалаПримененияСводныхСправок", 
		ПараметрыЗапуска, 
		ПараметрыФоновогоЗадания);
	
	Возврат РезультатФоновогоЗадания;

КонецФункции

#КонецОбласти

#Область Сервер

&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным, Результат)
	
	// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
	Если РеквизитПутьКДанным = "" Тогда
		Возврат "";
	КонецЕсли;
	
	// Определение имени константы.
	КонстантаИмя = "";
	Если СтрНачинаетсяС(НРег(РеквизитПутьКДанным), НРег("НаборКонстант.")) Тогда
		// Если путь к данным реквизита указан через "НаборКонстант".
		ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
		КонстантаИмя = ЧастиИмени[1];
	Иначе
		// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
		// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
		Если РеквизитПутьКДанным = "ВключитьВерсионированиеДокументовЗакупки" Тогда
			НаборКонстант.ИспользоватьВерсионированиеОбъектов = Истина;
			КонстантаИмя = "ИспользоватьВерсионированиеОбъектов";
		КонецЕсли;

	КонецЕсли;
	
	// Сохранения значения константы.
	Если КонстантаИмя <> "" Тогда
		КонстантаМенеджер = Константы[КонстантаИмя];
		КонстантаЗначение = НаборКонстант[КонстантаИмя];
		
		Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
			КонстантаМенеджер.Установить(КонстантаЗначение);
		КонецЕсли;
		
		Если НастройкиСистемыПовтИсп.ЕстьПодчиненныеКонстанты(КонстантаИмя, КонстантаЗначение)
			Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьИмпортныеТовары" Тогда
			
			Прочитать();
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат КонстантаИмя
	
КонецФункции

&НаСервере
Процедура УстановитьДоступность(РеквизитПутьКДанным = "")
	
	Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьТоварыВПутиОтПоставщиков" ИЛИ РеквизитПутьКДанным = "" Тогда
		ЗначениеКонстанты = НаборКонстант.ИспользоватьТоварыВПутиОтПоставщиков;
		Элементы.ПроверятьЗаполнениеНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Доступность = ЗначениеКонстанты;
		Элементы.КонтролироватьОстаткиНомеровГТДПриИмпортеПоСхемеТоварыВПути.Доступность = ЗначениеКонстанты;
		Элементы.КонтролироватьОстаткиНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Доступность = ЗначениеКонстанты;
	КонецЕсли;
	
	Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьИмпортныеТовары" ИЛИ РеквизитПутьКДанным = "" Тогда
		ЗначениеКонстанты = НаборКонстант.ИспользоватьИмпортныеТовары;
		ИспользоватьТоварыВПутиОтПоставщиков = НаборКонстант.ИспользоватьТоварыВПутиОтПоставщиков;
		ИспользоватьИмпортныеТовары         = НаборКонстант.ИспользоватьИмпортныеТовары;
		ИспользоватьИмпортныеЗакупки         = НаборКонстант.ИспользоватьИмпортныеЗакупки;
		
		Элементы.ЗапретитьОформлениеОперацийСИмпортнымиТоварамиБезНомеровГТД.Доступность = ИспользоватьИмпортныеТовары;
		Элементы.ЗапретитьПоступлениеТоваровБезНомеровГТД.Доступность                    = ИспользоватьИмпортныеТовары;
		Элементы.ПроверятьЗаполнениеНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Доступность = ИспользоватьИмпортныеТовары;
		Элементы.КонтролироватьОстаткиНомеровГТДПриИмпортеПоСхемеТоварыВПути.Доступность = ИспользоватьИмпортныеТовары;
		Элементы.КонтролироватьОстаткиНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Доступность = ИспользоватьИмпортныеТовары;
		
		Элементы.ПроверятьЗаполнениеНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Доступность = 
			ИспользоватьИмпортныеТовары И ИспользоватьТоварыВПутиОтПоставщиков;
		Элементы.КонтролироватьОстаткиНомеровГТДПриИмпортеПоСхемеТоварыВПути.Доступность = 
			ИспользоватьИмпортныеТовары И ИспользоватьТоварыВПутиОтПоставщиков;
		Элементы.КонтролироватьОстаткиНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Доступность = 
			ИспользоватьИмпортныеТовары И ИспользоватьТоварыВПутиОтПоставщиков;
		Элементы.ГруппаКомментарийЗапретитьПоступлениеТоваровОтПартнеровБезНомеровГТД.Видимость =
			ИспользоватьИмпортныеТовары И НЕ ИспользоватьТоварыВПутиОтПоставщиков;
		
		Элементы.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров.Доступность = ЗначениеКонстанты;
		
		Элементы.ИспользоватьИмпортныеЗакупки.Доступность = ИспользоватьИмпортныеТовары;
		Элементы.КонтролироватьОстаткиТоваровОрганизацийКОформлениюПоПоступлениям.Доступность = 
			ИспользоватьИмпортныеТовары И ИспользоватьИмпортныеЗакупки; 
		
	КонецЕсли;
	
	Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьТоварыВПутиОтПоставщиков"
		Или РеквизитПутьКДанным = "" Тогда
		
		ИспользоватьТоварыВПутиОтПоставщиков = НаборКонстант.ИспользоватьТоварыВПутиОтПоставщиков;
		ИспользоватьИмпортныеЗакупки         = НаборКонстант.ИспользоватьИмпортныеТовары;
		
		Элементы.КонтролироватьОстаткиНомеровГТДПриИмпортеПоСхемеТоварыВПути.Доступность = 
			ИспользоватьИмпортныеЗакупки И ИспользоватьТоварыВПутиОтПоставщиков;
		Элементы.КонтролироватьОстаткиНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Доступность = 
			ИспользоватьИмпортныеЗакупки И ИспользоватьТоварыВПутиОтПоставщиков;
		Элементы.ГруппаКомментарийЗапретитьПоступлениеТоваровОтПартнеровБезНомеровГТД.Видимость =
			ИспользоватьИмпортныеЗакупки И НЕ ИспользоватьТоварыВПутиОтПоставщиков;
		
		Если НЕ ИспользоватьТоварыВПутиОтПоставщиков Тогда
			Константы.КонтролироватьОстаткиНомеровГТДПриИмпортеПоСхемеТоварыВПути.Установить(Ложь);
			Константы.КонтролироватьОстаткиНомеровГТДПриЗакупкеУПоставщикаПоСхемеТоварыВПути.Установить(Ложь);
		КонецЕсли;
	КонецЕсли;
	
	Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьИмпортныеЗакупки"
		ИЛИ РеквизитПутьКДанным = "НаборКонстант.ИспользоватьВвозТоваровИзТаможенногоСоюза"
		ИЛИ РеквизитПутьКДанным = "" Тогда
		
		ИспользоватьИмпортныеЗакупки = НаборКонстант.ИспользоватьИмпортныеЗакупки;
		ИспользоватьВвозТоваровИзТаможенногоСоюза = НаборКонстант.ИспользоватьВвозТоваровИзТаможенногоСоюза;

		Если НЕ ИспользоватьИмпортныеЗакупки И НЕ ИспользоватьВвозТоваровИзТаможенногоСоюза Тогда
			НаборКонстант.КонтролироватьОстаткиТоваровОрганизацийКОформлениюПоПоступлениям = Ложь;
		КонецЕсли;
		
		Элементы.КонтролироватьОстаткиТоваровОрганизацийКОформлениюПоПоступлениям.Доступность = 
			ИспользоватьИмпортныеЗакупки ИЛИ ИспользоватьВвозТоваровИзТаможенногоСоюза;
			
	КонецЕсли;

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

&НаСервере
Процедура ОтображениеПредупрежденияПриРедактировании(РеквизитПутьКДанным)
	
	СтруктураКонстант = Новый Структура(
	"КонтролироватьОстаткиТоваровОрганизацийКОформлениюПоПоступлениям,
	|ИспользоватьИмпортныеТовары,
	|ИспользоватьУчетПрослеживаемыхИмпортныхТоваров");
	
	Для Каждого КлючИЗначение Из СтруктураКонстант Цикл
		ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(Элементы[КлючИЗначение.Ключ],
																					НаборКонстант[КлючИЗначение.Ключ]);
	КонецЦикла;
	
КонецПроцедуры

#КонецОбласти

#КонецОбласти

Связанные материалы