К основному контенту

Наткнулся на Bug. Реквизит управляемой формы тип "таблица значений"

Кратко. Добавляем реквизит управляемой формы тип "Таблица Значений". Заполняем её. Выполняем программно повторный обход с изменением. При повторном обходе не сохраняется изменение последнего элемента коллекции.

Было так

ТаблицаРеквизитов = Форма.__ДРО_ОписаниеДополнительныхРеквизитов;

Для Каждого ЗаписьТаблицы ИЗ ТаблицаРеквизитов Цикл

    // изменяем <ЗаписьТаблицы>

КонецЦикла; 

При таком подходе последнее изменение в цикле не сохранялось. Решил проблему так

ТаблицаРеквизитов = Форма.__ДРО_ОписаниеДополнительныхРеквизитов.Выгрузить();

Для Каждого ЗаписьТаблицы ИЗ ТаблицаРеквизитов Цикл

    // изменяем <ЗаписьТаблицы>

КонецЦикла;

Форма.__ДРО_ОписаниеДополнительныхРеквизитов.Загрузить(ТаблицаРеквизитов); 

т.е. ещё раз заполнил реквизит.

Платформа 1С:Предприятие 8.2 (8.2.15.301). Ошибку выявил при разработке, т.е. в файловом варианте.

Конечно, повторный обход коллекций - это дурной тон.


UPD повторный обход коллекции у себя в коде устранил. Но проблема описанная выше сохраняется, если у нас задача программный обход коллекции по тем или иным причинам.

Комментарии

Популярные сообщения из этого блога

Схема компоновки данных. Вычисляемые поля. Разность дат

Как показала практика, вещь не очевидная что в запросе РАЗНОСТЬДАТ(Дата1,Дата2, МИНУТА) то в вычисляемых полях СКД: РАЗНОСТЬДАТ(Дата1,Дата2,"МИНУТА") Да, служебное слово для запроса в вычисляемом поле строковый параметр.

СписокВыбора. Показать Представление вместо Значения

Вводная Если на форме есть элемент управления со списком выбора, в моем конкретном примере это Колонка Значение (Число (3,0)) с настроенным списком выбора. По умолчанию платформа отображает именно строковое значения, а не текст представления  из списка выбора (когда как при выборе значения из списка показываются именно представления). Решение Для Управляемых форм необходимо настроить правила условного оформления, для обычных форм - оформление ячеек при выводе данных.

Расширение конфигурации + Связанные документы (Режим совместимости 8.3.12)

Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации. Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавление\изменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP) Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное. Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось). Что нам нужно было бы сделать при отказе от поддержки: 1) добавить наш документ в Критерий отбора (состав, реквизиты); 2) в раздел Ввод на основании целевого документа. И что с целью сохранения поддержки. Как сделать это же для расширения: 1) Добавить реквизит расширения Документы.ЗаказПоставщику._За...