Версия для печати темы (https://pro1c.org.ua/index.php?s=1c68d7e7ac330e696e632c08bd9137c3&showtopic=66873)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Задвоение видов периода в списке выбора общей формы отчета СКД

Автор: Constantus 13.01.22, 10:27

Приветствую, Форумчане!
Самопис, УФ. Деланная/переделанная УПП с трансформацией на управляемые формы. Досталась в наследство...

Имеется некий отчет на СКД, где есть параметр со стандартным периодом.
Имеется общая форма "ФормаОтчета". На этой форме есть кнопка "Показать/Скрыть быстрые настройки"
В режиме предприятия при нажатии этой кнопки проявляются реквизиты для настроек.
Один из реквизитов "ВидПериода", который заполняется данными из перечисления "ДоступныеПериодыОтчетов" (День, Неделя, Декада, Месяц, Квартал, Полугодие, Год, Произвольный) в Списке выбора

Проблема в том, что при открытии отчета этот реквизит "ВидПериода" дублирует все эти перечисления в списке выбора: День, Неделя,...Произвольный, День, Неделя,... Произвольный.

В коде общей формы нашел фрагмент заполнения списка выбора:

ДоступныеПериоды = ФункцииОтчетовКлиентСервер.ПолучитьСписокДоступныхПериодов();
Для Индекс = 0 По 7 Цикл
ВидПериода.СписокВыбора.Добавить(ДоступныеПериоды[Индекс]);
//ВидПериода.СписокВыбора.Добавить(ДоступныеПериоды[0]);
КонецЦикла;



Но это не влияет, т.к. если для теста установить заремаченное [0], то список становиться таким:
"День, Неделя, Декада, Месяц, Квартал, Полугодие, Год, Произвольный, День, День, День, День, День, День, День"

Т.е., если я правильно понимаю, то этот список сначала где-то таки формируется.
Не подскажите, где этот реквизит, который судя по всему создается программно, т.к. я не нашел на этой общей форме группу с указанным реквизитом, может формировать первичный список выбора?

//Код явно откуда-то скопипастен, мож кто сталкивался с подобным.

Автор: daveal 13.01.22, 11:14

Посмотрите ВидПериода.СписокВыбора до начала доавления
Ну или явно ВидПериода.СписокВыбора.Очистить() сделать перед добавлением
В свойствах элемента на форме может явно набили?

Автор: Constantus 13.01.22, 11:57

daveal @ Сегодня, 15:14 * ,

1. ВидПериода.СписокВыбора до начала добавления пустой
2. Пробовал очистить - не помогло
3. Этот элемент создается программно

ВидПериода = элементы.Добавить(ВидПериодаИмя, Тип("ПолеФормы"), ОсновнаяГруппа);

Автор: Constantus 13.01.22, 14:31

Надо было всего лишь поставить

ВидПериода.РежимВыбораИзСписка = Истина;



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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua