Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 фев 2025, 03:28

Заполнение ДЕРЕВА ЗНАЧЕНИЙ

Автор Funt432286, 17 фев 2025, 15:52

0 Пользователей и 1 гость просматривают эту тему.

Funt432286

Всем доброго времени суток

Есть форма отчета, на ней есть начало и окончание периода (Октябрь 2024 .... Февраль 2025 / Выбирается оператором).
На форме так же есть дерево значений в которое будут выводиться данные по периоду за каждый месяц.
Вид работ, колонка первая всегда постоянная, а вот следующие колонки должны быть в зависимости от выбранного периода.
Как сделать так чтобы создавалась первая колонка, а затем последующие программно с заполнением данных из запроса.

Процедура ЗаполнитьТаблицуЗаГод()

ТЗ_ОтчетОтделГод.Строки.Очистить();
ТЗ_ОтчетОтделГод.Колонки.Очистить();
ТЗ_ОтчетОтделГод.Колонки.Добавить("ВидРабот", Новый ОписаниеТипов("Строка"), "Вид Работ");

ЧислоНачало = Число(Сред(МесяцНачало, 4, 2));
ЧислоОкончание = Число(Сред(МесяцОкончание, 4, 2));
Для Стр = ЧислоНачало По ЧислоОкончание Цикл
Сообщить("! - " + Стр + " - " + НомерМесяца(Стр));
ТЗ_ОтчетОтделГод.Колонки.Добавить(НомерМесяца(Стр), Новый ОписаниеТипов("Число"), НомерМесяца(Стр));
КонецЦикла;

//************* заполнить ВИДРАБОТ в таблице за ГОД ***************
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| А_ПланПреПресс.СтатусЗаказаОтдел КАК ВидРабот
|ИЗ
| РегистрСведений.А_ПланПреПресс КАК А_ПланПреПресс
|ГДЕ
| А_ПланПреПресс.ДатаОперацияПрепресс МЕЖДУ &ДатаОт И &ДатаДо
|
|СГРУППИРОВАТЬ ПО
| А_ПланПреПресс.СтатусЗаказаОтдел";

Запрос.УстановитьПараметр("ДатаОт", СтрокаДаты(МесяцНачало));
Запрос.УстановитьПараметр("ДатаДо", СтрокаДаты(МесяцОкончание));

РезультатЗапроса = Запрос.Выполнить();

ВыборкаГод = РезультатЗапроса.Выбрать();

ВыборкаГод.Количество();

Пока ВыборкаГод.Следующий() Цикл
стрВидРабот = ТЗ_ОтчетОтделГод.Строки.Добавить();
стрВидРабот.ВидРабот = ВыборкаГод.ВидРабот;
КонецЦикла;
//*****************************************************************

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

Почему-то колонки в цикле не добавляются и первая колонка тоже программно не появляется!

antoneus

После создания колонок тз нужно вызвать метод табличного поля СоздатьКолонки().

Funt432286

antoneus, у меня обычные формы, но почему-то метода СоздатьКолонки() у Таблицы Значений у меня нет, если делать как Дерево Значений - там тоже нет СоздатьКолонки().

antoneus

Где у меня написано про метод таблицы значений?

Funt432286

antoneus, хорошо, тогда где необходимо прописать СоздатьКолонки()?

antoneus

Тут же, в модуле) Это метод элемента формы, если что.

Funt432286

antoneus, Спасибо за помощь, получилось!

Но теперь появилась новая проблемка: каждая колонка называется как положено - по названию месяца выбранного периода, но теперь мне нужно заполнить эти колонки - Как можно обратиться к этим колонкам, учитывая тот факт что названия у них разные и присвоенные програмно?

Пока ВыборкаВидРабот.Следующий() Цикл
стрВидРабот.НомерМесяца(Стр) = ВыборкаВидРабот.КолВидРабот;
КонецЦикла;

antoneus

Ну через квадратные скобки же.

Funt432286

antoneus, стрВидРабот.[НомерМесяца(Стр)] = ВыборкаВидРабот.КолВидРабот;

на такой вид выдает ошибку

Funt432286

antoneus, Название колонок "февраль" и "январь" задается програмно в цикле ранее

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск