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

Табличное поле

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

Как добавить дополнительную колонку в табличном поле?
Добавляете колонку, а все вычисления реализуются с помощью события ПриВыводеСтроки табличного поля:
Код 1C v 8.х

С помощью этого события можно выводить не только текст, но также флажки и картинки, например:
Картинка:
Код 1C v 8.х

Флажки:
Код 1C v 8.х

Еще можно менять цвет фона и текста, шрифт и другие характеристики оформления:
Код 1C v 8.х

Можно также управлять доступностью отдельных строк и ячеек табличного поля:
Код 1C v 8.х

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

Но здесь нужно быть осторожным! Событие ПриВыводеСтроки вызывается довольно часто при перерисовке табличного поля. Поэтому процедура должна отрабатывать довольно быстро, чтобы не тормозить вывод списка. Если в ней происходит обращение к базе данных, то вывод может резко замедлиться.

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

Похожие FAQ

Еще в этой же категории

Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Источник

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

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

Реализация на платформе 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]

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

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

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

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

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

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

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

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

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

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

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

Реклама похоронного бюро: «Если наши клиенты воскреснут, то вновь обратятся к нам!

Источник

Работа с вычисляемыми полями

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

Пример

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

Определим вычисляемое поле. Для этого перейдем в конструкторе схемы компоновки данных на вкладку Вычисляемые поля и добавим поле.

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

Результат отчета будет выглядеть так:

НоменклатураПодразделениеСтоимость планСтоимость фактПеревыполнение плана
Вентилятор настольныйОтдел оптовой продажи238,32737,55209,48
Мужские сапоги с искусственным мехомОтдел оптовой продажи234,24-100,00
Мишка (конфеты)Отдел розничной продажи114,91Не запланировано

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

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

Теперь в итог отчета будет выводиться сумма по полям, в том числе и по полю ПеревыполнениеПлана :

НоменклатураПодразделениеСтоимость планСтоимость фактПеревыполнение плана
Вентилятор настольныйОтдел оптовой продажи238,32737,55209,48
Мужские сапоги с искусственным мехомОтдел оптовой продажи234,24-100,00
Мишка (конфеты)Отдел розничной продажи114,91Не запланировано
Итого472,56852,46109,48

Для того чтобы получить правильный итог по выполнению плана изменим формулу расчета итога по полю Выполнение плана :

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

Введем данную формулу в выражение ресурса:

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

Теперь результат отчета будет выглядеть так:

Источник

Вычисляемое поле в таблице управляемой формы

Элемент управляемой формы Таблица предназначен для визуализации табличных данных. Это может быть динамический список, табличная часть, список значений, дерево значений и т. д. (см рис 1)

вычисляемая колонка в табличном полеРис 1 Типы значений, с которыми можно связать элемент Таблица управляемой формы

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

Решение этого вопроса зависит от того, является ли табличная часть реквизитом объекта или реквизитом формы. Это связано с тем, что в таблице формы не будет отображено поле ( колонка), которое не связано с данными табличной части объекта.

вычисляемая колонка в табличном полеРис 3. Метаданные документа Заявки

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

Как было сказано выше, я не могу связать на прямую элемент таблицы формы с реквизитом табличной части объекта потому, что дополнительное вычисляемое поле без указания пути к данным не будет отображено и поэтому в форме документа я связал элемент Таблица формы с добавленным реквизитом формы ТЗаказы типа ТаблицаЗначений, где я тоже добавил вычисляемое поле Отказ типа булево. ( Для простоты это показано на рис 4 на примере формы внешней обработки )

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

В программном коде модули формы документа работается с реквизитом формы ТЗаказы. При открытии формы, данные реквизита объекта Заказы копируются в таблицу значении формы ТЗаказы, а при записи документа наоборот.

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

При открытии формы документа я заполняю данные табличной части формы ТЗаказы:

Перед записью документа переносим данные таблицы ТЗаказы в таблицу объекта Заказы

вычисляемая колонка в табличном полеРис 5 Форма не типового документа Заявка

Источник

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

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

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

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

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

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

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

Источник

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

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