Меню Закрыть

Вывести таблицу значений в табличное поле

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

Это возможно при помощи такого кода:

В результате выполнения такого кода в табличном поле ТЗ будет отображаться значения таблицы значений Результат.

Иногда требуется дать возможность пользователю отметить определенные строки табличного поля, чтобы выполнить над ними определенное действие. Например, построить отчет только по выбранным группам товаров, сформировать пачку для Пенсионного фонда только для отмеченных сотрудников и другие подобные задачи.

Версия 1С:Предприятия 8 предоставляет простой механизм для реализации такой функциональности. В колонке табличного поля можно легко отобразить флажок, который пользователь сможет переключать одинарным щелчком мыши. Список отмеченных элементов можно хранить в переменной модуля, которая будет являться одной из универсальных коллекций значений.

Ниже приведены два примера. Первый пример показывает реализацию отметки строк в табличном поле, связанном с таблицей значений, а второй пример — при отображении динамического списка, например, списка элементов справочника "Номенклатура".

Пример 1. Отметка строк в табличном поле, связанном с таблицей значений

Основные принципы реализации этой возможности следующие:

  1. Список отмеченных строк нужно хранить, например, в коллекции типа "Соответствие".
  2. Текущее состояние флажков нужно отображать с помощью обработчика события ПриВыводеСтроки.
  3. Отслеживать переключение флажка и соответствующим образом изменять коллекцию в обработчике события " ПриИзмененииФлажка ".

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

  • "ФИО" (является колонкой таблицы значений, т.е. заполнено свойство "Данные")
  • "Отметка" (является обычной колонкой табличного поля, не связана ни с какой колонкой таблицы значений, т.е. свойство "Данные" незаполнено).
Читайте также:  Тест скорости интернета на русском языке

В модуле формы размещены приведенные ниже процедуры. Обратите внимание, что процедуры тпСотрудникиПриВыводеСтроки и тпСотрудникиПриИзмененииФлажка являются обработчиками событий табличного поля, т.е. они назначены в палитре свойств для соответствующих событий.

Пример 2. Отметка строк в табличном поле, отображающем динамический список

Аналогичным образом можно реализовать отметку строк для динамического списка, например, элементов справочника или документов. Ниже показано табличное поле, отображающее список элементов справочника "Номенклатура".

Программный модуль, реализующий отметку строк в динамическом списке, приведен ниже. Обратите внимание, что теперь список отмеченных элементов хранится не в объекте типа "Соответствие", как в предыдущем примере, а в объекте типа "СписокЗначений". Это сделано исключительно для демонстрации гибкости платформы 1С:Предприятия 8.0.

Вы можете посмотреть внешнюю обработку " marks.epf ", в которой содержатся два приведенных выше примера. Обратите внимание, что для просмотра второго примера требуется, чтобы в конфигурации был справочник "Номенклатура".

Внешняя обработка с примерами находится на CD-ROM в каталоге 1CITSEXEExamples81

личный блог

С задачей вывода каких либо данных в Таблицу Значений (ТЗ) на форме сталкиваются наверное все программисты. Если раньше до выхода Управляемого Интерфейса все решалось довольно просто, то теперь все немного изменилось.

Для обычных форм.

Стоит отметить, что предварительно нужно создать соответствующие РезультатуЗапроса колонки таблицы значений. Делается это также просто. Добавить ТаблицуЗначений следует в реквизиты Формы. Еще раз акцентирую внимание — Названия колонок и типы данных колонок ТЗ должны совпадать и на форме и в запросе. Можно вообще не создавать ТЗ на форме, а описать ее программно, примерно как то так:

Для управляемых форм все ровно тоже самое кроме того что нужно на сервере получить значение данных ТЗ на форме, записать в них результат запроса и потом снова вернуть их на форму.

Читайте также:  Get adcomputer filter примеры

Ниже пример такого преобразования.

Во всей этой истории следует обратить внимание на 2 строчки.

Первая

Вторая

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

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.