Изменение источника данных табличного поля
В процессе разработки форм периодически возникает необходимость в изменении данных табличного поля расположенного в форме, в зависимости от желания пользователя или алгоритмов работы программы. Только что мы с вами показали в форме списка документа "ПриходнаяНакладная" движения по регистру остатков "ОстаткиМатериалов". Нашим пользователям очень понравилась такая возможность, и они захотели также иметь возможность видеть на этой форме и движения по регистру остатков "СтоимостьМатериалов".
Добавление в форму еще одного такого же табличного поля нежелательно, поскольку это будет отвлекать внимание от списка документов, и занимать много места на экране. Поэтому мы воспользуемся возможностью изменения источника данных у элемента управления.
Откроем в конфигураторе форму списка документа "ПриходнаяНакладная", сдвинем табличное поле вниз и на освободившемся пространстве расположим элемент управления переключатель, состоящий из двух кнопок:
[516]
После того, как мы укажем заголовок первой кнопки – "Остатки материалов" – система автоматически сформирует имя этой кнопки "ОстаткиМатериалов". Отметим, что эта кнопка будет первой в группе, и напишем подсказку – "Отобразить движения по регистру "Остатки материалов".
Затем создадим вторую кнопку с заголовком "Стоимость материалов". Напишем подсказку – "Отобразить движения по регистру "Стоимость материалов".
Нажмем "ОК" и расположим кнопки в форме:
Откроем палитру свойств кнопки "ОстаткиМатериалов" и укажем, что тип выбираемого значения будет Строка, а выбираемое значение будет равно "Остатки".
По умолчанию все кнопки имеют тип выбираемого значения Число и выбираемое значение 0, поэтому для того, чтобы можно было анализировать состояние группы переключателей, необходимо для каждой кнопки в этой группе задать уникальное выбираемое значение. Кроме этого, одна из кнопок в группе всегда должна быть первой в группе – именно по ее значению можно будет определить состояние группы, а переключение кнопок в группе будет выполняться в порядке обхода элементов управления формы (Форма
Порядок обхода). По умолчанию установлен автопорядок обхода элементов формы (свойство формы "Автопорядок обхода"). Поэтому если вам [517] понадобится установить собственный порядок обхода элементов формы, это свойство нужно отключить и тогда станет доступен соответствующий пункт меню.Сейчас нас устраивает автоматический порядок обхода элементов и поэтому мы создадим обработчик события "ПриОткрытии" формы, и зададим в нем начальное значение нашего переключателя:
ОстаткиМатериалов = "Остатки";
КонецПроцедуры
Укажем его тип РегистрНакопленияСписок.СтоимостьМатериалов.
В заключение создадим процедуру обработки события "При изменении" для кнопки "Остатки материалов":
Если ОстаткиМатериалов = "Остатки" Тогда
ЭлементыФормы.ТабличноеПоле.Данные = "ТабличноеПоле";
Иначе
ЭлементыФормы.ТабличноеПоле.Данные = "РегистрСписок";
КонецЕсли;
ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
ДокументСписокПриАктивизацииСтроки(ЭлементыФормы.ДокументСписок);
КонецПроцедуры [518]
Откройте 1С:Предприятие в режиме отладчика и проверьте работу списка документа "ПриходнаяНакладная". [519]