как программно добавить колонку в таблицу на управляемую форму

Программирование в 1С для всех

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

Но создать таблицу значений, это только малая часть работы, поскольку сама по себе таблица значений нам абсолютно не нужна. Чтобы начать с ней работать, необходимо ее, как минимум, заполнить колонками.

Программное создание колонок таблицы значений в 1С

Программно добавить колонку в таблицу значений 1С просто. Для этого необходимо использовать одно из основополагающих свойств таблиц значений — это свойство Колонки. Данное свойство представляет собой коллекцию значений, в которой хранятся все колонки конкретной таблицы, и имеет тип Коллекция колонок таблицы значений.

У объекта Коллекция колонок таблицы значений существует два метода по созданию новых колонок. Это Добавить и Вставить.

Метод Добавить – добавляет новую колонку в конец коллекции, а метод Вставить – вставляет колонку в нужное место по соответствующему индексу.

В этом примере я использовал самый простой вариант использование метода Добавить: мы указываем только название колонки и всё.

Рассмотрим синтаксис этого метода

Как видно, у данного метода всего четыре параметра.

Параметр Имя — это имя колонки таблицы значений, задается также как и имя переменной. Обязательный параметр.

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

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

Параметр Ширина имеет тип Число и задает длину колонки(количество символов).

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

ОписаниеТиповСтрока = Новый ОписаниеТипов ( «Строка» );
ОписаниеТиповДата = Новый ОписаниеТипов ( «Дата» )

Метод Вставить имеет следующий синтаксис:

Метод Вставить имеет синтаксис, как и у метода Добавить, но только появился первый параметр Индекс, он указывает тот индекс, на место которого будет вставляться новая колонка.

Доработаем предыдущий код:

В нашем случае колонка ФИО встала точно между Отчеством и Датой рождения.

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

Если мы создали таблицу значений на управляемой форме 1С 8.3 в виде реквизита формы, то колонки также можно создать интерактивно. Для этого нужно выделить нужный реквизит, и нажать на кнопку «Добавить колонку реквизита».

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

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

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

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

Первый способ – перетащить колонку из реквизитов в элементы.

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

После этого, колонка появиться под таблицей, а сама таблица отобразиться на форме (таблица без колонок на форме не отображается).

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

Второй способ – создать новое поле «под» таблицей на форме и привязать к нему нужную колонку таблицы значений 1С.

Для того, чтобы создать новое поле, привязанное к таблице на форме 1С, нужно выделить эту таблицу, нажать на кнопку «Добавить» панели управления дерева Элементы, и в открывшемся окне выбрать тип элемента «Поле».

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

После этого нужно задать имя нового поля и связать его с колонкой таблицы значений, используя свойство «ПутьКДанным».

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

После этого колонка сразу же появиться в таблице на форме 1С.

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму
О работе со строками в таблицах значений читайте в статье по ссылке:
Таблице значений 1С: работа со строками

Более подробно о работе с таблицами значений и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

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

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

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

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

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

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

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

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

Содержимое регистра сведений ЦеныНоменклатуры:
как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

Динамический список на форме:
как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поиск строк

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

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

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

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

Источник

Дополнительная вычисляемая колонка в табличной части

Дополнительная вычисляемая колонка в табличной части

Реализация на платформе 1С: Предприятие 8.1 (или в обычном приложении)

В начале коротко о том, как добавить дополнительную колонку в табличное поле на платформе 1С 8.1.

Предположим, что у нас есть некий документ с табличной частью “Товары” (с колонками “Номенклатура” и “Количество”) и нам нужно вывести дополнительную колонку “Цена”, которая бы содержала данные реквизита “Цена” элементов справочника “Номенклатура”, выбранных в строках табличной части.

Для этого нам достаточно добавить в форме документа новую колонку “Цена” в табличное поле, содержащее данные табличной части документа и написать следующий код в обработчике события “ПриПолученииДанных” этого табличного поля:

Хочу обратить внимание на то, что строки табличного поля обрабатываются порциями, по мере прокрутки списка.

Реализация на платформе 1С: Предприятие 8.2 (8.3 управляемое приложение)

На платформе 8.2 с использованием управляемых форм решение данной задачи потребует бóльших усилий. Это связано с тем, что за счет своей клиент-серверной ориентированности в платформе 8.2 в управляемом режиме отсутствуют некоторые привычные возможности – например, у табличного поля отсутствуют обработчики событий “ПриПолученииДанных” и “ПриВыводеСтроки”, которые мы могли бы использовать для этих целей в 1С 8.1 или 8.2 в обычных формах.

Пусть в нашей конфигурации есть документ “ВводОстатковДолга” с табличной частью “Контрагенты” (с колонками “Контрагент” и “Сумма”). В свою очередь у справочника “Контрагенты” есть реквизит “ИНН”, значение которого необходимо выводить в строках табличного поля.

[qu_spoiler title=”Примечание от ‘Капитально:” open=”yes” icon=”chevron-circle”]в статье взят неудачный пример т.к. реквизиты вынести можно получить гораздо проще, но тем не менее статья полезна для рассмотрения в учебных целях[/qu_spoiler]

Откроем управляемую форму документа, добавим новую колонку “ИНН” реквизита “Контрагенты” и перенесём её на закладку “Элементы” (для отображения в форме).

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

Откроем палитру свойств поля “КонтрагентыКонтрагент” и добавим обработчик события “ПриИзменении”

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

Обновление данных после записи и при чтении на сервере необходимо в связи с тем, что иначе значения колонки “ИНН” будут очищаться каждый раз при возникновении этих событий. Для заполнения колонки “ИНН” опишем в модуле формы служебную серверную процедуру:

Затем добавим в модуль формы документа обработчики событий “ПриОткрытии”, “ПриЧтенииНаСервере” и “ПослеЗаписиНаСервере”, в каждой из которых будем вызвать описанную ранее служебную процедуру “ОбновитьДанныеКолонкиИНН”

Всё готово. Можно посмотреть на результат.

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

Статья найдена на просторах интернета

Как добавить реквизит объекта в таблицу формы

как программно добавить колонку в таблицу на управляемую форму. Смотреть фото как программно добавить колонку в таблицу на управляемую форму. Смотреть картинку как программно добавить колонку в таблицу на управляемую форму. Картинка про как программно добавить колонку в таблицу на управляемую форму. Фото как программно добавить колонку в таблицу на управляемую форму

Рекламные объявления содержат единственные правдивые сведения, которые можно найти в газетах.

Источник

1С 8.3 : Как добавить дополнительную вычисляемую колонку в табличной части управляемой формы

Реализация на платформе 1С: Предприятие 8.1

В начале коротко о том, как добавить дополнительную колонку в табличное поле на платформе 1С 8.1. Предположим, что у нас есть некий документ с табличной частью “Товары” (с колонками “Номенклатура” и “Количество”) и нам нужно вывести дополнительную колонку “Цена”, которая бы содержала данные реквизита “Цена” элементов справочника “Номенклатура”, выбранных в строках табличной части. Для этого нам достаточно добавить в форме документа новую колонку “Цена” в табличное поле, содержащее данные табличной части документа и написать следующий код в обработчике события “ПриПолученииДанных” этого табличного поля:

Хочу обратить внимание на то, что строки табличного поля обрабатываются порциями, по мере прокрутки списка.

Реализация на платформе 1С: Предприятие 8.2

На платформе 8.2 с использованием управляемых форм решение данной задачи потребует бóльших усилий. Это связано с тем, что за счет своей клиент-серверной ориентированности в платформе 8.2 в управляемом режиме отсутствуют некоторые привычные возможности – например, у табличного поля отсутствуют обработчики событий “ПриПолученииДанных” и “ПриВыводеСтроки”, которые мы могли бы использовать для этих целей в 1С 8.1 или 8.2 в обычных формах.
Пусть в нашей конфигурации есть документ “ВводОстатковДолга” с табличной частью “Контрагенты” (с колонками “Контрагент” и “Сумма”). В свою очередь у справочника “Контрагенты” есть реквизит “ИНН”, значение которого необходимо выводить в строках табличного поля.
Откроем управляемую форму документа, добавим новую колонку “ИНН” реквизита “Контрагенты” и перенесём её на закладку “Элементы” (для отображения в форме).

Откроем палитру свойств поля “КонтрагентыКонтрагент” и добавим обработчик события “ПриИзменении”

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *