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

файл
#Если НЕ МобильныйАвтономныйСервер Тогда
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

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

// Возвращает реквизиты объекта, которые не рекомендуется редактировать
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
//  Массив - список имен реквизитов объекта.
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
	
	НеРедактируемыеРеквизиты = Новый Массив;
	НеРедактируемыеРеквизиты.Добавить("Наименование");
	НеРедактируемыеРеквизиты.Добавить("ХарактеристикаНоменклатурыДляЦенообразования");
	
	Возврат НеРедактируемыеРеквизиты;
	
КонецФункции

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтение
	|ГДЕ ИСТИНА
	|;
	|РазрешитьИзменениеЕслиРазрешеноЧтение
	|ГДЕ
	|	ЗначениеРазрешено(Владелец)";

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

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#КонецЕсли

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

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
	
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	НоменклатураСервер.ХарактеристикиНоменклатурыОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка);
	
КонецПроцедуры

#КонецЕсли

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

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

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

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

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

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

	Результат = Запрос.Выполнить();
	
	Возврат Результат.Пустой()
	
КонецФункции

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

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

Функция НепроверяемыеРеквизиты(Объект) Экспорт
	
	МассивНепроверяемыхРеквизитов = Новый Массив;
	
	РеквизитыСПереопределеннойОбязательностьюЗаполнения = 
		РеквизитыСПереопределеннойОбязательностьюЗаполнения(Неопределено, Объект);

	Для Каждого КлючЗначение Из РеквизитыСПереопределеннойОбязательностьюЗаполнения Цикл
		
		Если Не КлючЗначение.Значение Тогда
			МассивНепроверяемыхРеквизитов.Добавить(КлючЗначение.Ключ);
		КонецЕсли;
		
	КонецЦикла;
		
	Возврат МассивНепроверяемыхРеквизитов;
	
КонецФункции

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

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

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

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

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

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

#КонецЕсли
#КонецЕсли

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