Характеристики номенклатуры / Форма элемента / Модуль формы

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

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

		ПереданныеДополнительныеПараметры = Неопределено;
		Если Параметры.Свойство("ДополнительныеПараметры", ПереданныеДополнительныеПараметры) И ПереданныеДополнительныеПараметры <> Неопределено Тогда
			ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыСозданияСтруктура, ПереданныеДополнительныеПараметры, Истина);
		КонецЕсли;
			
		Если Параметры.Свойство("ТекстЗаполнения")
			И Не ПустаяСтрока(Параметры.ТекстЗаполнения) Тогда
			
			ПараметрыСозданияСтруктура.Наименование = Параметры.ТекстЗаполнения;
			
		КонецЕсли;
		
		ПараметрыСоздания = Новый ФиксированнаяСтруктура(ПараметрыСозданияСтруктура);
				
		ЗаполнитьПоПараметрамСоздания();
		НастроитьФорму();
		
	КонецЕсли;
	
	ФормаИнициализирована      = Истина;
	ВидНоменклатурыДоИзменения = Объект.ВидНоменклатуры;
	
	// СтандартныеПодсистемы.БазоваяФункциональность
	МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.БазоваяФункциональность
		
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
	
	ПриСозданииНаСервереЛокализация();
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

	МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);

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

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

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

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	Если ЗначениеЗаполнено(Объект.ХарактеристикаНоменклатурыДляЦенообразования) Тогда
		ОповеститьОбИзменении(Объект.ХарактеристикаНоменклатурыДляЦенообразования);
	КонецЕсли;

	Оповестить("Запись_ХарактеристикиНоменклатуры", ПараметрыЗаписи, Объект.Ссылка);

	МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	// СтандартныеПодсистемы.БазоваяФункциональность
	МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.БазоваяФункциональность
	
	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	// Конец СтандартныеПодсистемы.УправлениеДоступом

	МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);

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

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

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

&НаКлиенте
Процедура ВладелецПриИзменении(Элемент)
	ВладелецПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ПринципалПриИзменении(Элемент)
	ПринципалПриИзмененииНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПринципалПриИзмененииНаСервере()
	ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Принципал, Объект.Контрагент);
КонецПроцедуры

&НаКлиенте
Процедура ГиперссылкаПерейтиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ГиперссылкаПерейтиСформироватьПараметрыИВопрос(Элемент.Имя, НавигационнаяСсылкаФорматированнойСтроки);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
	// СтандартныеПодсистемы.БазоваяФункциональность
	МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
	// Конец СтандартныеПодсистемы.БазоваяФункциональность
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

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

&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьНаименованиеДляПечатиПоШаблону(Команда)
	ЗаполнитьНаименованиеПоШаблонуСервер("ДляПечати");
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьРабочееНаименованиеПоШаблону(Команда)
	ЗаполнитьНаименованиеПоШаблонуСервер("Рабочее");
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

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

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

// СтандартныеПодсистемы.Свойства

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

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

// Конец СтандартныеПодсистемы.Свойства

#Область Прочее

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

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

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

&НаСервере
Процедура ПроверитьУникальностьПоРабочемуНаименованию()
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ХарактеристикиНоменклатуры.Ссылка КАК Ссылка
	|ИЗ
	|	Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
	|ГДЕ
	|	ХарактеристикиНоменклатуры.Ссылка <> &Ссылка
	|	И ХарактеристикиНоменклатуры.Владелец = &Владелец
	|	И ХарактеристикиНоменклатуры.Наименование = &Наименование";
	
	Запрос.УстановитьПараметр("Ссылка",       Объект.Ссылка);
	Запрос.УстановитьПараметр("Владелец",     Объект.Владелец);
	Запрос.УстановитьПараметр("Наименование", Объект.Наименование);
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Отбор = Новый Структура("Ссылка");
	
	Пока Выборка.Следующий() Цикл
		
		Отбор.Ссылка = Выборка.Ссылка;
		
		НайденныеСтроки = ТаблицаНайдено.НайтиСтроки(Отбор);
		
		Если НайденныеСтроки.Количество() = 0 Тогда
			
			НоваяСтрока = ТаблицаНайдено.Добавить();
			
			НоваяСтрока.Ссылка                = Выборка.Ссылка;
			НоваяСтрока.НайденоПоНаименованию = Истина;
			
		Иначе
			
			НайденныеСтроки[0].НайденоПоНаименованию = Истина;
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

&НаСервере
Процедура НастроитьФорму()
	
	Если Объект.Владелец = Неопределено Тогда
		Элементы.Владелец.Заголовок = НСтр("ru='Номенклатура или вид номенклатуры'");
	ИначеЕсли ТипЗнч(Объект.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда
		Элементы.Владелец.Заголовок = НСтр("ru='Номенклатура'");
	ИначеЕсли ТипЗнч(Объект.Владелец) = Тип("СправочникСсылка.ВидыНоменклатуры") Тогда
		Элементы.Владелец.Заголовок = НСтр("ru='Вид номенклатуры'");
	КонецЕсли;
	
	Элементы.ДекорацияПредупреждение.Видимость =  (ТипЗнч(Объект.Владелец) = Тип("СправочникСсылка.ВидыНоменклатуры"));
	
	Элементы.ЗаполнитьНаименованиеДляПечатиПоШаблону.Доступность = ЗначениеЗаполнено(РеквизитыВидаНоменклатуры().ШаблонНаименованияДляПечатиХарактеристики);
	Элементы.ЗаполнитьРабочееНаименованиеПоШаблону.Доступность   = ЗначениеЗаполнено(РеквизитыВидаНоменклатуры().ШаблонРабочегоНаименованияХарактеристики);
	
	Элементы.Наименование.ТолькоПросмотр       = РеквизитыВидаНоменклатуры().ЗапретРедактированияРабочегоНаименованияХарактеристики;
	Элементы.НаименованиеПолное.ТолькоПросмотр = РеквизитыВидаНоменклатуры().ЗапретРедактированияНаименованияДляПечатиХарактеристики;
	
	НастройкиВидимостиИЗаголовков = Справочники.ХарактеристикиНоменклатуры.НастройкиВидимостиИЗаголовков(Объект, РеквизитыВидаНоменклатуры());
	
	ВидимостьЭлементов = НастройкиВидимостиИЗаголовков.ВидимостьЭлементов;
	ЗаголовкиЭлементов = НастройкиВидимостиИЗаголовков.ЗаголовкиЭлементов;
	
	Для Каждого ЭлементВидимость Из ВидимостьЭлементов Цикл
		Если Элементы.Найти(ЭлементВидимость.Ключ) <> Неопределено Тогда
			Элементы[ЭлементВидимость.Ключ].Видимость = ЭлементВидимость.Значение;
		КонецЕсли;
	КонецЦикла;
	
	Для Каждого ЭлементЗаголовок Из ЗаголовкиЭлементов Цикл
		
		ИмяЭлемента = ЭлементЗаголовок.Ключ;
		
		ЗаголовокЭлемента = Справочники.Номенклатура.ЗаголовокГиперссылки(ЭлементЗаголовок);
		
		ЭлементУправления = Элементы.Найти(ИмяЭлемента);
		
		Если ЭлементУправления <> Неопределено
			И ТипЗнч(ЭлементУправления) <> Тип("ГруппаФормы") Тогда
			
			ЭлементУправления.Заголовок = ЗаголовокЭлемента;
			
		КонецЕсли;
		
	КонецЦикла;
	
	РеквизитыСПереопределеннойОбязательностьюЗаполнения = 
		Справочники.ХарактеристикиНоменклатуры.РеквизитыСПереопределеннойОбязательностьюЗаполнения(РеквизитыВидаНоменклатуры(), Объект);
		
	Для Каждого КлючЗначение Из РеквизитыСПереопределеннойОбязательностьюЗаполнения Цикл
		
		ИмяЭлемента = СтрЗаменить(КлючЗначение.Ключ, ".", "");
		Элементы[ИмяЭлемента].АвтоОтметкаНезаполненного = КлючЗначение.Значение;
		
	КонецЦикла;
	
	Если РеквизитыВидаНоменклатуры().ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.ОрганизациейПоАгентскойСхеме Тогда
		ТипСсылкаОрганизации = Новый ОписаниеТипов("СправочникСсылка.Организации");
		Элементы.Принципал.ОграничениеТипа = ТипСсылкаОрганизации;
	КонецЕсли;
	
	Если РеквизитыВидаНоменклатуры().ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.Партнером Тогда
		ТипСсылкаКонтрагенты = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
		ТипСсылкаПартнеры    = Новый ОписаниеТипов("СправочникСсылка.Партнеры");
		
		Элементы.Принципал.ОграничениеТипа  = ТипСсылкаПартнеры;
		Элементы.Контрагент.ОграничениеТипа = ТипСсылкаКонтрагенты;
	КонецЕсли;

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

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

&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()

	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект,,Ложь);

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

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

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

&НаСервере
Процедура ПриЗаписиВидаНоменклатуры()

	ОбновитьКешРеквизитовВидаНоменклатуры();
	НастроитьФорму();

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

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

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

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

&НаСервере
Процедура ВладелецПриИзмененииНаСервере()
	
	ВидНоменклатурыПриИзмененииНаСервере();
	НастроитьФорму();
	
КонецПроцедуры

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

// Возвращаемое значение:
// 	см. Справочники.ХарактеристикиНоменклатуры.НоваяСтруктураРеквизитыВидаНоменклатуры
// 
&НаСервере
Функция РеквизитыВидаНоменклатуры()
	
	Возврат РеквизитыВидаНоменклатуры;
	
КонецФункции

&НаКлиентеНаСервереБезКонтекста
Процедура ПересчитатьНеобходимостьФормированияНаименований(Форма)
	
	Форма.ФормироватьРабочееНаименование =
		Форма.РеквизитыВидаНоменклатуры.ЗапретРедактированияРабочегоНаименованияХарактеристики
		ИЛИ (Не ЗначениеЗаполнено(Форма.Объект.Наименование)
		И ЗначениеЗаполнено(Форма.РеквизитыВидаНоменклатуры.ШаблонРабочегоНаименованияХарактеристики));
		
	Форма.ФормироватьНаименованиеДляПечати =
		Форма.РеквизитыВидаНоменклатуры.ЗапретРедактированияНаименованияДляПечатиХарактеристики
		ИЛИ (Не ЗначениеЗаполнено(Форма.Объект.НаименованиеПолное)
		И ЗначениеЗаполнено(Форма.РеквизитыВидаНоменклатуры.ШаблонНаименованияДляПечатиХарактеристики));

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

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

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

&НаКлиенте
Процедура ГиперссылкаПерейтиВопросЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
		Возврат;
	КонецЕсли;
	
	Попытка
		ЭлементЗаписан = Записать();
	Исключение
		Возврат;
	КонецПопытки;
	
	Если Не ЭлементЗаписан Тогда
		Возврат;
	КонецЕсли;
	
	ПараметрыПереходаПоГиперссылке = ПараметрыПереходаПоГиперссылке(ДополнительныеПараметры.ИмяЭлемента,
																		ДополнительныеПараметры.Гиперссылка);
	ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке);
	
КонецПроцедуры

&НаКлиенте
Процедура ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке)
	
	// &ЗамерПроизводительности
	ОценкаПроизводительностиКлиент.ЗамерВремени("Справочник.ХарактеристикиНоменклатуры.Форма.ФормаЭлемента.Команда." + ПараметрыПереходаПоГиперссылке.ИмяЭлемента,
		,
		Истина);
	
	Если ПараметрыПереходаПоГиперссылке.ИмяФормы <> Неопределено Тогда		
		ОткрытьФорму(ПараметрыПереходаПоГиперссылке.ИмяФормы,
			ПараметрыПереходаПоГиперссылке.ПараметрыФормы, , ЭтаФорма.УникальныйИдентификатор, , , ,
			ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы);
	ИначеЕсли ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка <> Неопределено Тогда
		ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка);
	Иначе
		ТекстИсключения = НСтр("ru = 'Не определено действие по гиперссылке.'");
		ВызватьИсключение ТекстИсключения;
	КонецЕсли;
	
КонецПроцедуры

// Возвращаемое значение:
// 	ФиксированнаяСтруктура:
// 		* АдресТаблицыПараметров - Строка
// 		* ВидНоменклатуры - СправочникСсылка.ВидыНоменклатуры
// 		* Владелец - СправочникСсылка.ВидыНоменклатуры, СправочникСсылка.Номенклатура - 
// 		* Наименование - Строка
// 		* НаименованиеПолное - Строка
//
&НаСервере
Функция ПараметрыСоздания()
	
	Возврат ПараметрыСоздания;

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

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

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

#Область Локализация

&НаСервере
Процедура ПриСозданииНаСервереЛокализация()
	
	//++ Локализация
	
	// ЭлектронноеВзаимодействие.СопоставлениеНоменклатурыКонтрагентов
	СопоставлениеНоменклатурыКонтрагентов.ПриСозданииФормыХарактеристики(ЭтотОбъект);
	// Конец ЭлектронноеВзаимодействие.СопоставлениеНоменклатурыКонтрагентов
	
	//-- Локализация

	Возврат;
	
КонецПроцедуры

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

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