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

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

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

Было так

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

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

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

КонецЦикла; 

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

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

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

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

КонецЦикла;

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

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

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

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


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

Комментарии

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

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

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

Управляемые формы. Группа формы. Сворачиваемая и свойство Свернута

В конфигураторе в свойствах группы есть свойство "Свернута" не доступное через средства встроенного языка. И честно, уже не в первой вводит в ступор, чтобы не забывать, что и как Начиная с 8.3.12 введены следующие методы для программного управления поведением Версия 8.3.12 | Новые возможности и изменения | Управляемая форма Дальше фрагменты из Синтаксис помошника. Расширение группы формы для обычной группы Скрыть (Hide) Синтаксис: Скрыть() Описание: В зависимости от значения свойства Поведение группы: Обычное - никакие действия не выполняются, Свертываемая - сворачивает группу, Всплывающая - скрывает группу. Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). Скрыта (Hidden) Расширение группы формы для обычной группы (Form group extension for a usual group) Скрыта (Hidden) Синтаксис: Скрыта() Возвращае...

Табличный Документ. Разная ширина колонки в строках

Когда нужно в макете (табличном документе) изменить ширину колонки  для конкретных строк: 1. Выделить всю строку (строки). Именно всю, фокус для выделенной области не работает. 2. Нажимаем и не отпускает Ctrl 3. С помощью мыши изменяют ширину любой из колонок - будет задан вопрос об создании нового формата строк - соглашаемся. Как же прекрасен мир, где для модификаций не достаточно просто использовать контекстное меню и диалог редактора свойств, где нужно знать заветные слова и таинства танца. 90ые, моё почтение. UPD Программно, тоже самое, можно сделать через ТабДок = Новый ТабличныйДокумент(); ТабДок.Область(1,,1,).СоздатьФорматСтрок(); ТабДок.Область(1,1).ШиринаКолонок = 70; ТабДок.Область(1,2).ШиринаКолонок = 30; ТабДок.Область(2,,2,).СоздатьФорматСтрок(); ТабДок.Область(2,1).ШиринаКолонок = 30; ТабДок.Область(2,2).ШиринаКолонок = 70; ТабДок.Показать();