1с создать колонки таблицы значений программно управляемая форма

Содержание
  1. 1С Управляемые Формы. Программное создание таблицы значений и динамического списка (Часть 2)
  2. Введение в управляемые формы 1С
  3. Создание реквизита типа таблица значений и вывод на форму
  4. Добавление условного оформления таблицы формы
  5. Создание реквизита типа динамический список с заданными настройками и вывод на форму
  6. Вывести динамический список в элементы управляемой формы 1С
  7. Обновление параметров динамического списка программно
  8. Работаем с таблицей значений программно
  9. Создание таблицы значений
  10. Колонки таблицы значений
  11. Свойства колонки таблицы значений
  12. Методы коллекции колонок таблицы значений
  13. Строки таблицы значений
  14. Добавление и удаление строк
  15. Перебор строк таблицы значений
  16. Поиск строк
  17. Все методы таблицы значений:
  18. Программное создание таблицы формы
  19. Справка
  20. УправляемаяФорма.ИзменитьРеквизиты()
  21. ВсеЭлементыФормы.Добавить()

1С Управляемые Формы. Программное создание таблицы значений и динамического списка (Часть 2)

В данной статье описаны примеры программного создания объектов управляемой формы 1С — таблицы значений и динамического списка, и их программный вывод в элементы формы

Введение в управляемые формы 1С

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

В данной же части будет рассмотрено программное создание динамических списков, таблиц значений на форме, их вывод в элементы формы и стандартные возможности для работы.

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

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

Читайте также:  Автомагнитола пионер avh 3200 dvd

Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.

Создание реквизита типа таблица значений и вывод на форму

Добавление условного оформления таблицы формы

Создаем условное оформление для таблицы:

  • если реквизит формы Использование (тип булево) = Истина, тогда разрешаем изменять цену в строках таб. части;
  • если в строке таб части цена не заполнена, то выделять фон ячейки «Цена» розовым.

В процедуру команды добавим вызов серверной процедуры для заполнения таблицы цен в зависимости от выбранной номенклатуры и характеристики:

Добавляем в процедуру ПриСозданииНаСервере процедуры:

Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.

Создание реквизита типа динамический список с заданными настройками и вывод на форму

На странице 3 создадим динамический список с выводом всех цен выбранной номенклатуры и характеристики.
Добавим Условное Оформление дин. списка, отбор и сортировку программно.

Вывести динамический список в элементы управляемой формы 1С

Для вывода дин. списка воспользуемся процедурами, которые использовали при выводе таблицы значений, так как это один тип — ДанныеФормыКоллекция.

Обновление параметров динамического списка программно

Если в запросе дин. списка используются параметры, то их необходимо обновлять при изменении соответствующих реквизитов.

Добавляем в процедуру ПриСозданииНаСервере процедуры:

Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.

Содержимое регистра сведений ЦеныНоменклатуры:

Динамический список на форме:

Источник

Работаем с таблицей значений программно

ТаблицаЗначений — это программный объект встроенного языка, позволяющий строить произвольные наборы данных в памяти компьютера, отображать их в табличном виде, а также программно и интерактивно манипулировать ими (добавлять, редактировать, удалять и сортировать).

Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали. Строки и колонки имеют индексы, по которым к ним можно обращаться напрямую (начинаются с 0). Кроме этого, к колонкам можно обращаться по идентификатору.

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

Таблица значений является полностью динамическим объектом, т.е. Вы можете манипулировать не только строками таблицы, добавляя и удаляя их, но и колонками.

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

Создание таблицы значений

Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый :

Колонки таблицы значений

Прежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:

  1. Имя — идентификатор колонки (может содержать только алфавитные символы, цифры и знаки подчеркивания. Причем, начинаться имя колонки может только с буквы или символа подчеркивания);
  2. Заголовок — представление колонки в диалогах (может содержать произвольные символы);
  3. ТипЗначения — тип значения содержимого ячеек в этой колонке. Если тип не задан, в ячейке можно хранить значения произвольного типа;
  4. Ширина — ширина колонки в диалогах;

Доступ к колонкам производится через свойство Колонки объекта ТаблицаЗначений . Для добавления новой колонки используется метод Добавить():

Для того, чтобы определить наличие колонки с нужным именем используется метод Найти():

Перебор колонок выполняется следующим образом:

Для удаления колонки используется метод Удалить():

Свойства колонки таблицы значений

Имя Тип Описание
Имя Строка символьный идентификатор колонки, по которому к ней можно обращаться из кода
Заголовок Строка строковое представление колонки на форме
ТипЗначения ОписаниеТипов свойство органичивает пространство доступных значений, которые можно указать в данной колонке
Ширина Число ширина колонки на форме (выражается в количестве символов)

Методы коллекции колонок таблицы значений

Вставить() Вставляет новую колонку в указанную позицию коллекции
Добавить() Добавляет новую колонку в конец коллекции
Количество() Возвращает количество колонок в коллекции
Найти() Ищет колонку в коллекции по имени
Очистить() Удаляет все колонки из коллекции
Сдвинуть() Сдвигает колонку влево или вправо
Удалить() Удаляет колонку из коллекции

Строки таблицы значений

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

Добавление и удаление строк

Для добавления новой строки используется метод Добавить() объекта ТаблицаЗначений . Метод возвращает объект СтрокаТаблицыЗначений , с которым доступны дальнейшие манипуляции:

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

Обратите внимание, что каждая СтрокаТаблицыЗначений ссылается на таблицу значений с помощью метода Владелец():

Для удаления строки используется метод Удалить() объекта ТаблицаЗначений . Строку можно удалить либо передав методу непосредственно строку, либо ее индекс:

Перебор строк таблицы значений

Для перебора строк удобнее всего использовать оператор цикла Для Каждого . В редких случаях оправдано применение цикла Для :

Поиск строк

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

Все методы таблицы значений:

Вставить() Вставляет строку на указанное место
ВыбратьСтроку() Позволяет интерактивно выбрать строку в диалоговом окне
ВыгрузитьКолонку() Выгружает значения ячеек указанной колонки в массив значений
Добавить() Добавлет новую строку в таблицу значений
ЗагрузитьКолонку() Загружает значения в ячейки указанной колонки из массива
ЗаполнитьЗначения() Заполняет ячейки указанных колонок определенным значением
Индекс() Возвращает индекс строки таблицы значений
Итог() Возвращает просуммированный итог по колонке таблицы значений
Количество() Возвращает количество строк в таблице значений
Найти() Выполняет поиск строки по значению
НайтиСтроки() Выполняет поиск строк по указанным параметрам
Очистить() Очищает строки таблицы значений
Получить() Возвращает строку по ее индексу
Свернуть() Выполняет сжатие строк и колонок таблицы значений
Сдвинуть() Сдвигает строку вверх или вниз по таблице
Скопировать() Создает новую таблицу значений копированием текущей
СкопироватьКолонки() Создает новую пустую таблицу значений путем копирования колонок текущей таблицы
Сортировать() Выполняет сортировку строк таблицы значений по указанным колонкам
Удалить() Удаляет строку таблицы значений

Иерархию свойств и типов значений, связанных с таблицей значений, схематически можно представить в виде дерева:

Источник

Программное создание таблицы формы

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

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

Реквизит НомерТаблицы поочередно принимает значение нуля или единицы и нужен лишь для того, чтобы каждый раз получать другую таблицу значений.

Справка

УправляемаяФорма.ИзменитьРеквизиты()

  • ДобавляемыеРеквизиты (необязательный, тип Массив ). Массив, содержащий объекты типа РеквизитФормы . Добавлять можно реквизиты верхнего уровня и вложенные реквизиты, являющиеся колонками. К добавленным реквизитам верхнего уровня из модуля можно обращаться только с помощью конструкции ЭтотОбъект .
  • УдаляемыеРеквизиты (необязательный, тип Массив ). Массив, содержащий строки, описывающие пути к удаляемым реквизитам. Удалять можно только ранее программно добавленные реквизиты.
  • Изменяет структуру реквизитов формы. Сначала выполняется удаление реквизитов. Таким образом массивы добавляемых и удаляемых реквизитов могут содержать реквизиты с одинаковым путём.
  • Внимание! Действия добавления и удаления выполняются за один вызов. Следует учитывать, что операция изменения состава реквизитов является ресуркоемкой, поэтому операции изменения состава реквизитов формы выполняются пакетным образом.
  • Сервер, мобильное приложение (сервер).

ВсеЭлементыФормы.Добавить()

  • Имя (обязательный, тип Строка ). Уникальное имя добавляемого элемента.
  • ТипЭлемента (обязательный, тип Тип ). Тип добавляемого элемента.
  • Родитель (необязательный, тип: ГруппаФормы ; ТаблицаФормы ; УправляемаяФорма ). Родитель для добавляемого элемента. Если не указан, то добавляется на верхний уровень.
  • Тип: ДекорацияФормы ; ГруппаФормы ; КнопкаФормы ; ТаблицаФормы ; ПолеФормы .
  • Добавляет элемент в коллекцию.
  • Сервер, мобильное приложение (сервер).

Источник

Оцените статью