Аналитики статей бюджетов / Модуль менеджера

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

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

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

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

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

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

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

// Определяет настройки начального заполнения элементов
//
// Параметры:
//  Настройки - Структура - настройки заполнения:
//   * ПриНачальномЗаполненииЭлемента - Булево - Если Истина, то для каждого элемента будет
//      вызвана процедура индивидуального заполнения ПриНачальномЗаполненииЭлемента.
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
	
	Настройки.ПриНачальномЗаполненииЭлемента = Истина;
	
КонецПроцедуры

// Вызывается при начальном заполнении справочника.
//
// Параметры:
//  КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
//  Элементы   - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
//                                 плана видов характеристик.
//  ТабличныеЧасти - Структура - Ключ - Имя табличной части объекта.
//                               Значение - Выгрузка в таблицу значений пустой табличной части.
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт

	КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();

	#Область ВидыНоменклатуры
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ВидыНоменклатуры";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ВидыНоменклатуры"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Виды номенклатуры'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000016";
	Элемент.ЗаполнениеЕдиницыИзмерения = СтрШаблон(НСтр("ru = '%1'", КодОсновногоЯзыка), "ЕдиницаИзмерения");
	Элемент.ПредставлениеЕдиницыИзмерения = НСтр("ru = '[Единица хранения]'", КодОсновногоЯзыка);
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Истина;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Вид номенклатуры'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ГруппыАналитическогоУчетаНоменклатуры
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ГруппыАналитическогоУчетаНоменклатуры";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ГруппыАналитическогоУчетаНоменклатуры"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Группы аналитического учета номенклатуры'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000034";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Группа аналитического учета номенклатуры'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ГруппыНМА
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ГруппыНМА";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ГруппыНМА"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Группы НМА'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000039";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Группа НМА'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ГруппыОС
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ГруппыОС";
	МассивТипов = Новый Массив;
	//++ Локализация
	МассивТипов.Добавить(Тип("ПеречислениеСсылка.ГруппыОС"));
	//-- Локализация
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Группы ОС'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000038";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Группа ОС'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ДенежныеСредстваБюджетирования
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ДенежныеСредстваБюджетирования";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.КассыККМ"));
	МассивТипов.Добавить(Тип("СправочникСсылка.БанковскиеСчетаОрганизаций"));
	МассивТипов.Добавить(Тип("СправочникСсылка.Кассы"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Денежные средства'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000011";
	Элемент.ЗаполнениеВалюты = СтрШаблон(НСтр("ru = '%1'", КодОсновногоЯзыка), "ВалютаДенежныхСредств");
	Элемент.ПредставлениеВалюты = НСтр("ru = '[Валюта денежных средств]'", КодОсновногоЯзыка);
	Элемент.УчитыватьПоВалюте = Истина;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Кассы ККМ, Банковский счет организации, Касса'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Договоры
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Договоры";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ДоговорыМеждуОрганизациями"));
	МассивТипов.Добавить(Тип("СправочникСсылка.ДоговорыКонтрагентов"));
	МассивТипов.Добавить(Тип("СправочникСсылка.ДоговорыКредитовИДепозитов"));
	МассивТипов.Добавить(Тип("СправочникСсылка.ДоговорыАренды"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Договоры'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000001";
	Элемент.ЗаполнениеВалюты = СтрШаблон(НСтр("ru = '%1'", КодОсновногоЯзыка), "ВалютаВзаиморасчетов");
	Элемент.ПредставлениеВалюты = НСтр("ru = '[Валюта взаиморасчетов]'", КодОсновногоЯзыка);
	Элемент.УчитыватьПоВалюте = Истина;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Договор между организациями, Договор с контрагентом, Договор кредита (депозита), Договор аренды'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Заказы
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Заказы";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("ДокументСсылка.ЗаказПоставщику"));
	//++ Устарело_Переработка24
	МассивТипов.Добавить(Тип("ДокументСсылка.ЗаказПереработчику"));
	//-- Устарело_Переработка24
	МассивТипов.Добавить(Тип("ДокументСсылка.ЗаказПереработчику2_5"));
	МассивТипов.Добавить(Тип("ДокументСсылка.ЗаказНаСборку"));
	МассивТипов.Добавить(Тип("ДокументСсылка.ЗаказКлиента"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Заказы'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000036";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Заказ поставщику, Заказ на производство (2.1), Заказ переработчику, Заказ на сборку (разборку), Заказ на ремонт, Заказ клиента, Заказ давальца, Заказ на производство'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область КлассыОбъектовЭксплуатации
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "КлассыОбъектовЭксплуатации";
	МассивТипов = Новый Массив;
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Классы объектов эксплуатации'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000043";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Класс объектов эксплуатации'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область КоллекцииНоменклатуры
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "КоллекцииНоменклатуры";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.КоллекцииНоменклатуры"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Коллекции'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000033";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Коллекция (сезон)'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Контрагенты
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Контрагенты";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Контрагенты"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Контрагенты'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000002";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Контрагент'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Марки
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Марки";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Марки"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Марки (бренды)'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000028";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Марка (бренд)'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область НаправленияДеятельности
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "НаправленияДеятельности";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.НаправленияДеятельности"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Направления деятельности'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000015";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Направление деятельности'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область НематериальныеАктивы
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "НематериальныеАктивы";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.НематериальныеАктивы"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Нематериальные активы и расходы на НИОКР'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000018";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Нематериальные активы и расходы на НИОКР'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область НоменклатураБюджетирования
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "НоменклатураБюджетирования";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Номенклатура"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Номенклатура'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000003";
	Элемент.ЗаполнениеЕдиницыИзмерения = СтрШаблон(НСтр("ru = '%1'", КодОсновногоЯзыка), "ЕдиницаИзмерения");
	Элемент.ПредставлениеЕдиницыИзмерения = НСтр("ru = '[Единица хранения]'", КодОсновногоЯзыка);
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Истина;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Номенклатура'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ОбъектыРасчетов
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ОбъектыРасчетов";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ОбъектыРасчетов"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Объекты расчетов'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000037";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Объект расчетов'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ОбъектыСтроительства
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ОбъектыСтроительства";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ОбъектыСтроительства"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Объекты строительства'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000035";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Объект строительства'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ОбъектыЭксплуатации
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ОбъектыЭксплуатации";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ОбъектыЭксплуатации"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Объекты эксплуатации'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000017";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Объект эксплуатации'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Организации
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Организации";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Организации"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Организации'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000023";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Организация'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Партнеры
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Партнеры";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Партнеры"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Партнеры'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000024";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Партнер'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Подразделения
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Подразделения";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.СтруктураПредприятия"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Подразделения'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000014";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Подразделение'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Проекты
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Проекты";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Проекты"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Проекты'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000004";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Проект'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Производители
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Производители";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Производители"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Производители'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000027";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Производитель'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ПрочиеРасходы
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ПрочиеРасходы";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ПрочиеРасходы"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Прочие расходы'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000020";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Прочие расходы'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Сделки
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Сделки";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.СделкиСКлиентами"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Сделки'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000042";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Сделка'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область СезонныеГруппы
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "СезонныеГруппы";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.СезонныеГруппы"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Сезонные группы'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000031";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Сезонные группы номенклатуры'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Склады
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Склады";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.Склады"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Склады'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000005";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Склад (складская территория)'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Соглашения
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Соглашения";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.СоглашенияСКлиентами"));
	МассивТипов.Добавить(Тип("СправочникСсылка.СоглашенияСПоставщиками"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Соглашения'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000041";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Соглашение'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область Сотрудники
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "Сотрудники";
	МассивТипов = Новый Массив;
	//++ Локализация
	МассивТипов.Добавить(Тип("СправочникСсылка.Сотрудники"));
	//-- Локализация
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Сотрудники'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000006";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Сотрудник'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область СтатьиАктивовИПассивов
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "СтатьиАктивовИПассивов";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("ПланВидовХарактеристикСсылка.СтатьиАктивовПассивов"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Прочие активы и пассивы'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000019";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Статья актива/пассива'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область СтатьиАктивовПассивов
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "СтатьиАктивовПассивов";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("ПланВидовХарактеристикСсылка.СтатьиАктивовПассивов"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Статьи активов и пассивов'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000022";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Статья актива/пассива'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область СтатьиДвиженияДенежныхСредств
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "СтатьиДвиженияДенежныхСредств";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Статьи ДДС'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000007";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Статья движения денежных средств'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область СтатьиДоходов
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "СтатьиДоходов";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("ПланВидовХарактеристикСсылка.СтатьиДоходов"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Статьи доходов'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000009";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Статьи доходов'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область СтатьиКалькуляции
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "СтатьиКалькуляции";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.СтатьиКалькуляции"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Статьи калькуляции'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000008";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Статьи калькуляции'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область СтатьиРасходов
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "СтатьиРасходов";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("ПланВидовХарактеристикСсылка.СтатьиРасходов"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Статьи расходов'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000010";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Статья расходов'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ТипыДенежныхСредств
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ТипыДенежныхСредств";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("ПеречислениеСсылка.ТипыДенежныхСредств"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Типы денежных средств'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000012";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Типы денежных средств'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ТипыНоменклатуры
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ТипыНоменклатуры";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("ПеречислениеСсылка.ТипыНоменклатуры"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Типы номенклатуры'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000013";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Типы номенклатуры'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ТоварныеКатегории
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ТоварныеКатегории";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ТоварныеКатегории"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Товарные категории'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000030";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Товарные категории'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ФизическиеЛица
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ФизическиеЛица";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ФизическиеЛица"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Физические лица'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000021";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Физическое лицо'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ФорматыМагазинов
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ФорматыМагазинов";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ФорматыМагазинов"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Форматы магазинов'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000032";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Форматы магазинов'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ХарактеристикиНоменклатуры
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ХарактеристикиНоменклатуры";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ХарактеристикиНоменклатуры"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Характеристики номенклатуры'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000040";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Истина;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Характеристика номенклатуры'", КодОсновногоЯзыка);
	#КонецОбласти

	#Область ЦеновыеГруппы
	Элемент = Элементы.Добавить();
	Элемент.ИмяПредопределенныхДанных = "ЦеновыеГруппы";
	МассивТипов = Новый Массив;
	МассивТипов.Добавить(Тип("СправочникСсылка.ЦеновыеГруппы"));
	ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
	Элемент.ТипЗначения = ОписаниеТипа;
	МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", "ru = 'Ценовые группы'", КодыЯзыков); // @НСтр-2
	Элемент.Код = "000000029";
	Элемент.УчитыватьПоВалюте = Ложь;
	Элемент.УчитыватьПоКоличеству = Ложь;
	Элемент.ПредставлениеТипаЗначения = НСтр("ru = 'Ценовая группа'", КодОсновногоЯзыка);
	#КонецОбласти

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

// Вызывается при начальном заполнении создаваемого элемента.
//
// Параметры:
//  Объект                  - ПланВидовХарактеристикОбъект.АналитикиСтатейБюджетов - заполняемый объект.
//  Данные                  - СтрокаТаблицыЗначений - данные заполнения.
//  ДополнительныеПараметры - Структура - Дополнительные параметры.
//
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
	
	
	
КонецПроцедуры

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

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

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

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

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

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

#Область ОбновлениеИнформационнойБазы

// см. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт

#Область ЗаполнитьОбработчикиРазделенныхДанных

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

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

#Область ЗаполнитьПредопределенныеАналитикиСтатейБюджетов

	Обработчик = Обработчики.Добавить();
	Обработчик.Процедура = "ПланыВидовХарактеристик.АналитикиСтатейБюджетов.ЗаполнитьПредопределенныеАналитикиСтатейБюджетов";
	Обработчик.Версия = "*";
	Обработчик.РежимВыполнения = "Оперативно";
	Обработчик.Идентификатор = Новый УникальныйИдентификатор("65996490-3fcf-47c3-8b17-0305f2909d57");
	Обработчик.Комментарий = НСтр("ru = 'Обновляет реквизиты предопределенных элементов ПВХ ""Аналитики статей бюджетов"".'");
	
	Изменяемые = Новый Массив;
	Изменяемые.Добавить(Метаданные.ПланыВидовХарактеристик.АналитикиСтатейБюджетов.ПолноеИмя());
	Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");

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

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

// Заполняет обработчик разделенных данных, зависимый от изменения неразделенных данных.
//
// Параметры:
//   Параметры - Структура - структура параметров обработчиков:
//     * РазделенныеОбработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления
// 
Процедура ЗаполнитьОбработчикиРазделенныхДанных(Параметры = Неопределено) Экспорт
	
	Если Параметры <> Неопределено Тогда
		Обработчики = Параметры.РазделенныеОбработчики;
		Обработчик = Обработчики.Добавить();
		Обработчик.Процедура = "ПланыВидовХарактеристик.АналитикиСтатейБюджетов.ЗаполнитьПредопределенныеАналитикиСтатейБюджетов";
		Обработчик.Версия = "*";
		Обработчик.РежимВыполнения = "Оперативно";
		Обработчик.Идентификатор = Новый УникальныйИдентификатор("65996490-3fcf-47c3-8b17-0305f2909d57");
		Обработчик.Комментарий = НСтр("ru = 'Обновляет реквизиты предопределенных элементов ПВХ ""Аналитики статей бюджетов"".'");
		
		Изменяемые = Новый Массив;
		Изменяемые.Добавить(Метаданные.ПланыВидовХарактеристик.АналитикиСтатейБюджетов.ПолноеИмя());
		Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
	КонецЕсли;
	
КонецПроцедуры

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

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

#КонецЕсли

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

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

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

#КонецЕсли

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

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

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

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