0
Alex562035
06.08.21
✎
10:30
|
Всем, Привет, создаю таблицу при клике по кнопке, но у меня есть проблема при заполнении создавшихся колонок Цена, Количество и Комментарий. Каждая колонка взаимосвязана с другой т.е если заполнить одну Цена, автоматически заполнится и другая таким же значением. Кажется я понимаю, что нужно указать разных родителей, но не знаю как правильно это сделать, для моих созданных полей.
&НаСервере
Процедура СозданиеТаблицыНаСервере()
МассивТипаВыбора = Новый Массив;
МассивТаблицыЗначений = Новый Массив;
МассивРеквизитов = Новый Массив;
ОписаниеТипаВыбора = Новый ОписаниеТипов("ТаблицаЗначений");
МассивТаблицыЗначений.Добавить(Новый РеквизитФормы("Список", ОписаниеТипаВыбора, "", "ТЗН"));
ИзменитьРеквизиты(МассивТаблицыЗначений);
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Товар", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТЗ.Колонки.Добавить("П1");
ТЗ.Колонки.Добавить("П2");
ТЗ.Колонки.Добавить("П3");
ТЗ.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка"));
Для Каждого Колонка Из ТЗ.Колонки Цикл
МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"Список."));
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);
ТаблицаПолейВыбора = Элементы.Добавить("ТЗН", Тип("ТаблицаФормы"), ЭтаФорма);
ТаблицаПолейВыбора.ПутьКДанным = "Список";
ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список;
Сч = 0;
Для Каждого Колонка Из ТЗ.Колонки Цикл
Сч = Сч + 1;
Если Колонка.Имя = "Товар" Тогда
ДобавитьНовыйЭлемент(Колонка.Имя, Тип("ПолеФормы"),ТаблицаПолейВыбора, "Список." + Колонка.Имя);
КонецЕсли;
Если Колонка.Имя = "П1" ИЛИ Колонка.Имя = "П2" ИЛИ Колонка.Имя = "П3" Тогда
ИмяСтаршейГруппы = Колонка.Имя + "Группа";
ДобавитьГруппу(ИмяСтаршейГруппы, Тип("ГруппаФормы"), ТаблицаПолейВыбора);
//ДобавитьНовыйЭлемент(Колонка.Имя,Тип("ПолеФормы"),Элементы[Колонка.Имя + "Группа"],"Список." + Колонка.Имя);
ИмяМладшейГруппы = "ГруппаКолонок" + Колонка.Имя;
ДобавитьГруппу(ИмяМладшейГруппы, Тип("ГруппаФормы"), Элементы[ИмяСтаршейГруппы]);
ДобавитьНовыйЭлемент(Колонка.Имя + "Цена", Тип("ПолеФормы"), Элементы[ИмяМладшейГруппы], "Список.Цена");
ДобавитьНовыйЭлемент(Колонка.Имя + "Количество", Тип("ПолеФормы"), Элементы[ИмяМладшейГруппы], "Список.Количество");
ДобавитьНовыйЭлемент(Колонка.Имя + "Комментарий", Тип("ПолеФормы"), Элементы[ИмяМладшейГруппы], "Список.Комментарий");
Элементы[ИмяМладшейГруппы].Группировка = ГруппировкаКолонок.Горизонтальная;
Элементы[ИмяМладшейГруппы].ОтображатьВШапке = Истина;
КонецЕсли;
КонецЦикла;
// ТаблицаПолейВыбора.УстановитьДействие("Выбор","ТЗНВыбор");
КонецПроцедуры
Процедура ДобавитьГруппу(Имя, Тип, Родитель)
НовыйЭлемент = Элементы.Добавить(Имя, Тип, Родитель);
НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКолонок;
КонецПроцедуры
Процедура ДобавитьНовыйЭлемент(Имя, Тип, Родитель, ПутьКДанным)
НовыйЭлемент = Элементы.Добавить(Имя, Тип, Родитель);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = ПутьКДанным;
КонецПроцедуры
|
|