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

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

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

Пример

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

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

вычисляемое поле в табличной части 1с. Смотреть фото вычисляемое поле в табличной части 1с. Смотреть картинку вычисляемое поле в табличной части 1с. Картинка про вычисляемое поле в табличной части 1с. Фото вычисляемое поле в табличной части 1сРис 3. Метаданные документа Заявки

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

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

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

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

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

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

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

вычисляемое поле в табличной части 1с. Смотреть фото вычисляемое поле в табличной части 1с. Смотреть картинку вычисляемое поле в табличной части 1с. Картинка про вычисляемое поле в табличной части 1с. Фото вычисляемое поле в табличной части 1сРис 5 Форма не типового документа Заявка

Источник

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

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

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

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

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

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

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

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

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

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

Похожие FAQ

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

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

Источник

8.2. Упр. форма. Как добавить вычисляемую колонку в ТЧ формы документа?

Все глобальные команды основного окна приложения объединяются в разделы. Переход между ними осуществляется при помощи
панели разделов. Состав этих разделов однозначно определяется составом подсистем верхнего уровня, для которых установлен
признак Использовать стандартные команды.
Команды текущего раздела отображаются в панели навигации и панели действий основного окна.
При отображении команд того или иного раздела в панели навигации возможно появление одного или нескольких «подразделов»,
каждый из которых – это совокупность команд, соответствующих подчиненной подсистеме (также с признаком Использовать
стандартные команды). Например, в разделе Торговый учет возможно появление подразделов Розничная торговля и Оптовая
торговля за счет существования соответствующих подчиненных подсистем.

(17) итак, кому еще интересна реализация вычисляемой колонки в ТЧ документа:

Открываем форму документа, в правой части формы, раскрываем нужную ТЧ документа и добавляем реквизит типа «строка». Затем в левой части формы документа добавляем поле и связываем его с только что созданным реквизитом. После чего ан форме появляется нужная нам колонка. Теперь осталось заполнить ее данными, но в управляемых формах в списках теперь нет события «ПриВыводеСтроки()» и «ПриПолученииДанных()», как заполнять? Во-первых необходимо написать обработчик события ПриЧтенииНаСервере():

Но этого мало, нужно еще прописать обработчик списка «ПриИзменении():

В моем случае этого достаточно, но если данные колонки получаем из других таблиц БД, то аналогичным образом нужно описать обработчик списка «ПриАктивизацииСтроки()».

(26) это еще бОльший изврат.

Если ты не понимаешь разницу: в старом механизме (8.0/8.1) заполнение вычисляемой колонки происходило в обработчике «ПриВыводеСтроки()», теперь в 8.2 мне необходимо при открытии документа заполнять (причем программно) ВСЕ строки документа, а если документ, скажем инвентаризация, и содержит тысяч 10 строк?

Источник

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

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