Столкнулся с проблемой, нужно сделать сдвоенные колонки по типу как в картинке, но не получается нормально, можете пожалуйста подсказать как можно это сделать?
Нашёл вариант через массив и добавлением в тз, таблицы формы, но там элементы зависимы от другого столбца получаются
Можно ли как то более простым способом это сделать? И что бы элементы эти можно было менять независимо от родителя
Нашёл вариант через массив и добавлением в тз, таблицы формы, но там элементы зависимы от другого столбца получаются
ТаблицаПолейВыбора = Элементы.Добавить("ТЗН", Тип("ТаблицаФормы"));
ТаблицаПолейВыбора.ПутьКДанным = "ПредметыЛизинга";
ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список;
//укажем путь к данным
Для Каждого Колонка Из ТЗ.Колонки Цикл
//определяем родительский элемент в который добавляется вложенный
ЭлементГруппа = ТаблицаПолейВыбора;
//создаем Группу
ЭлементГруппа = Элементы.Добавить("Группа" + Колонка.Имя, Тип("ГруппаФормы"), ТаблицаПолейВыбора);
НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ПредметыЛизинга." + Колонка.Имя;
НовыйЭлемент.Ширина = 10;
Если СтрНайти(Колонка.Имя,"П") = 1 Тогда
//добавление связанной колонки Цена
НовыйЭлемент = Элементы.Добавить("КоличествоБП2" + Колонка.Имя, Тип("ПолеФормы"), ЭлементГруппа);
НовыйЭлемент.Заголовок = "КоличествоБП2";
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ПредметыЛизинга." + Колонка.Имя;
//добавление связанной колонки Количество
НовыйЭлемент = Элементы.Добавить("КоличествоБП3"+Колонка.Имя, Тип("ПолеФормы"), ЭлементГруппа);
НовыйЭлемент.Заголовок = "КоличествоБП3";
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ПредметыЛизинга." + Колонка.Имя
КонецЕсли;
КонецЦикла;
ПоказатьМожно ли как то более простым способом это сделать? И что бы элементы эти можно было менять независимо от родителя
Прикрепленные файлы:

По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Прямо говоря я пытаюсь вот в этот код добавить, группу в которую будут входить КоличествоБП2/3
Пытался сделать с кодом который у меня в шапке, но с ним прям туго, как будто рано в такие дебри лезть, поэтому вернулся вновь к этому коду:
Пытался сделать с кодом который у меня в шапке, но с ним прям туго, как будто рано в такие дебри лезть, поэтому вернулся вновь к этому коду:
ТЗ = Новый ТаблицаЗначений;
Группа = Элементы.Добавить("Количество",Тип("ГруппаФормы"),Элементы.ПредметыЛизинга);
Группа.Вид = ВидГруппыФормы.ГруппаКолонок;
ТЗ.Колонки.Добавить("Наименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
ТЗ.Колонки.Добавить("КоличествоБП2", ОбщегоНазначения.ОписаниеТипаЧисло(10, 3));
ТЗ.Колонки.Добавить("КоличествоБП3", ОбщегоНазначения.ОписаниеТипаЧисло(10, 3));
Элементы.Переместить(КоличествоБП2,Группа,Группа);
СоздатьТаблицуФормы("ПредметыЛизинга", "ПредметыЛизинга", ТЗ);
Показать
(8) Разобрался полностью, спасибо, для себя код оставлю на будущее
МассивТипаВыбора = Новый Массив;
МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений"));
ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора);
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить(Новый РеквизитФормы("ПредметыЛизинга", ОписаниеТипаВыбора, "", "ТЗН"));
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Наименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
ТЗ.Колонки.Добавить("КоличествоБП2", ОбщегоНазначения.ОписаниеТипаЧисло(10, 3));
ТЗ.Колонки.Добавить("КоличествоБП3", ОбщегоНазначения.ОписаниеТипаЧисло(10, 3));
Для Каждого Колонка Из ТЗ.Колонки Цикл
МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"ПредметыЛизинга"));
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);
ТаблицаПолейВыбора = Элементы.Добавить("ТЗН", Тип("ТаблицаФормы"));
ТаблицаПолейВыбора.ПутьКДанным = "ПредметыЛизинга";
ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список;
НовыйЭлемент = Элементы.Добавить("Наименование", Тип("ПолеФормы"), ТаблицаПолейВыбора);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ПредметыЛизинга.Наименование";
Группа = Элементы.Добавить("Количество",Тип("ГруппаФормы"),ТаблицаПолейВыбора);
Группа.Вид = ВидГруппыФормы.ГруппаКолонок;
Для Каждого Колонка Из ТЗ.Колонки Цикл
Если СтрНайти(Колонка.Имя,"К") = 1 Тогда
НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ПредметыЛизинга." + Колонка.Имя;
Элементы.Переместить(НовыйЭлемент,Группа,Группа);
КонецЕсли;
КонецЦикла;
//Заполнение данными
НовСтр = ТЗ.Добавить();
НовСтр.Наименование = "Тарелки";
НовСтр.КоличествоБП2 = 10;
НовСтр.КоличествоБП3 = 10;
НовСтр = ТЗ.Добавить();
НовСтр.Наименование = "Ложки";
НовСтр.КоличествоБП2 = 9;
НовСтр.КоличествоБП3 = 10;
НовСтр = ТЗ.Добавить();
НовСтр.Наименование = "Вилки";
НовСтр.КоличествоБП2 = 2;
НовСтр.КоличествоБП3 = 2;
НовСтр = ТЗ.Добавить();
НовСтр.Наименование = "Чашки";
НовСтр.КоличествоБП2 = 6;
НовСтр.КоличествоБП3 = 2;
ЭтаФорма.ЗначениеВРеквизитФормы(ТЗ, "ПредметыЛизинга");
//УО
НовыйЭлементУО = УсловноеОформление.Элементы.Добавить();
ОформлениеЦветФона = НовыйЭлементУО.Оформление.Элементы.Найти("ЦветФона");
ОформлениеЦветФона.Значение = WebЦвета.ЛососьСветлый;
ОформлениеЦветФона.Использование = Истина;
НастройкаОтбора = НовыйЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НастройкаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПредметыЛизинга.КоличествоБП2");
НастройкаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
НастройкаОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ПредметыЛизинга.КоличествоБП3");
НастройкаОтбора.Использование = Истина;
//ОформляемоеПоле = НовыйЭлементУО.Поля.Элементы.Добавить();
//ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ПредметыЛизингаКоличествоБП2");
//ОформляемоеПоле.Использование = Истина;
//
//ОформляемоеПоле2 = НовыйЭлементУО.Поля.Элементы.Добавить();
//ОформляемоеПоле2.Поле = Новый ПолеКомпоновкиДанных("ТЗКоличествоБП3");
//ОформляемоеПоле2.Использование = Истина;
//
//ОформляемоеПоле3 = НовыйЭлементУО.Поля.Элементы.Добавить();
//ОформляемоеПоле3.Поле = Новый ПолеКомпоновкиДанных("ТЗНКоличествоБП3");
//ОформляемоеПоле3.Использование = Истина;
//
ОформляемоеПоле3 = НовыйЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле3.Поле = Новый ПолеКомпоновкиДанных("ТЗН");
ОформляемоеПоле3.Использование = Истина;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот