Программное добавление колонки в дерево значений на управляемой форме в расширении

02.04.23

Разработка - Работа с интерфейсом

Программно создаём колонку дерева значений при необходимости и заполняем её значениями.

В данном примере добавим колонку "Водитель" на форме обработки, которая управляет доставкой.

Сначала создаём колонку в процедуре "ПриСозданииНаСервере".

&НаСервере
Процедура расш_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
	расш_СоздатьКолонкуВодитель();
	расш_ЗаполнитьКолонкуВодитель();
	
КонецПроцедуры

Но создать колонку только в процедуре "ПриСозданииНаСервере" недостаточно.
Необходимо создавать её при каждом выполнении процедуры "СохранитьЗаданияОбновитьСписки", потому что дерево будет формироваться каждый раз заново.

&НаСервере
&После("СохранитьЗаданияОбновитьСписки")
Процедура расш_СохранитьЗаданияОбновитьСписки()
	
	расш_СоздатьКолонкуВодитель();
	расш_ЗаполнитьКолонкуВодитель();
	
КонецПроцедуры

Проверяем, существует ли уже колонка, и создаём, если она ещё не создана.
Внимательно смотрим, в какую группу вставить свой элемент. На форме могут быть колонки, объединённые в группы.

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

Заполняем нашу колонку значениями.
Напрямую взаимодействовать с деревом значений не получится.
Нужно использовать метод РеквизитФормыВЗначение("ЗаданияНаПеревозкуПланируемые").

&НаСервере
Процедура расш_ЗаполнитьКолонкуВодитель()

	расш_Дерево = РеквизитФормыВЗначение("ЗаданияНаПеревозкуПланируемые");  
	Для каждого СтрокаДЗ Из расш_Дерево.Строки Цикл 
		СтрокаДЗ.расш_Водитель = ""+СтрокаДЗ.Ссылка.Водитель; 
	КонецЦикла;	
	ЗначениеВРеквизитФормы(расш_Дерево,"ЗаданияНаПеревозкуПланируемые");	
	
КонецПроцедуры

 

дерево значений

См. также

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    55739    17    23    

43

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    64116    45    60    

83

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    20054    28    6    

44

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    24363    mrXoxot    44    

130

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    12551    smielka    37    

105

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18569    1235    elcoan    53    

128

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

3 стартмани

10.04.2023    13012    167    acces969    31    

126

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    8290    kalyaka    6    

34
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1364468 21.10.24 14:56 Сейчас в теме
Может кто-то наткнется, описал создание через таблицу колонок в серверном модуле. Только создание, просто решил поделиться, модифицируйте под себя

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

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


Пример использования
ТаблицаНовыхКолонок = ПустаяТаблицаДляСозданиеКолонокДерева();		
		
Для каждого КолонкаТЧ из ТаблицаРазузловки.Колонки Цикл
	СтрокаСНовойКолонкой = ТаблицаНовыхКолонок.Добавить();
	СтрокаСНовойКолонкой.ИмяКолонки = КолонкаТЧ.Имя;
	СтрокаСНовойКолонкой.ОписаниеТипа = КолонкаТЧ.ТипЗначения;
КонецЦикла;
		
СоздатьКолонкиДляДереваНаФорме(Форма, ИмяРеквизитаДерево, ИмяЭлементаФормыДерево, ТаблицаНовыхКолонок);
Показать
2. user1364468 22.10.24 16:18 Сейчас в теме
(1) upd

Пример использования с заполнением дерева на основе таблицы со связующими идентификаторами

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

Процедура ЗаполнитьДеревоФормыПоТаблицеЗначений(ПараметрыСоздания) Экспорт

        // ТаблицаДанныхДляПланирования = ПолучитьТаблицуЗначений();

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

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

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

#Область СлужебныеСозданиеДереваПотребностейКПланированию

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

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

// Функция формирует наименование элемента формы "Колонка" для дерева
Функция ИмяКолонкиДереваНаФорме(ИмяДерева, ИмяКолонки)
	Возврат ИмяДерева + ИмяКолонки;	
КонецФункции

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

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

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

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

Показать
Оставьте свое сообщение