Вычисляемые поля СКД в 1С 8.3 и 8.2 на примере
Как правило, в основе набора данных Схемы Компоновки Данных (СКД) лежит запрос. Запросы в программе 1С: Предприятие предоставляют программисту богатые возможности для получения данных. В связи с этим возникает вопрос, зачем нужны еще и вычисляемые поля?
Думаю, что никого не удивлю, если скажу, что не все поля можно выразить с помощью запроса.
Рассмотрим несколько примеров, как пользоваться вычисляемыми полями.
Создадим новый отчет и зайдем в Схему Компоновки Данных. Вычисляемые поля 1С СКД настраиваются на одноименной вкладке:
Колонка «Путь к данным» задает наименование поля. В колонке «Выражение» прописывается формула для вычисления поля. Можно использовать арифметические выражения, конструкцию «ВЫБОР КОГДА ТОГДА КОНЕЦ», и даже обращаться к экспортным функциям общих модулей системы.
Вот несколько примеров:
Разница значений:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
СуммаОплаты — ЦенаОтгрузки*КоличествоОтгрузки
Вывод текста по условию:
ВЫБОР КОГДА СуммаНачОстаток > 0 ТОГДА
«Имеется долг за организацией»
ИНАЧЕ «Долг отсутствует» КОНЕЦ
Форматирование:
«Месяц оплаты:» + Формат(ДатаОплаты, «ДФ = ‘MMMM'»)
Использование функции общего модуля:
УправлениеКонтактнойИнформациейЗарплатаКадры.ПолучитьКонтактнуюИнформацию (Док.Сотрудник, &ТелСотрудника)
Подробнее описание возможностей вычисляемых полей можно найти в синтаксис-помощнике: «Система компоновки данных — Язык выражений системы компоновки данных».
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Максим:
При обращении в вычисляемом поле к другому вычисляемому полю, появляется ошибка «Поле не найдено «. Притом что имя пути к данным написано правильно. Это ограничение СКД, или нужно как-то по особому указывать путь к данным выч. поля к которому обращаемся? Спасибо.
Аноним:
Ограничение СКД. В вычисляемом поле нельзя использовать другие вычисляемые поля.
Ма|{сим:
Для вычисления новых полей, можно обращаться только к полям итоговой таблицы результата запроса СКД или к полям любой временной таблицы, которые создавались в процессе запроса?
Иван Казаков:
А как в вычисляемом поле обратиться к перечислениям? К примеру хочу получить сумму возвратов, пишу: Выбор когда ХозяйственнаяОперация=Значение(Перечисление.ВозвратОплатыКлиентуНаПлатежнуюКарту) тогда СуммаОплаты конец. Но программа пишет «Неверные параметры «Перечисление.ВозвратОплатыКлиентуНаПлатежнуюКарту» «
DSP:
Все что в скобках Значение() надо еще взять в кавычки
Марина:
Есть поле Документ получен со свойством Булево, галочку обратиться. Как к нему обратиться? Выбор когда [Документ получен] = «да» — не работает(
Mike:
Выбор когда ДокументПолучен Тогда … Иначе … Конец
Андрей:
Можно ли в вычисляемом поле сконкатенировать разного типа поля в строку? например КоличествоУпаковок + » «+ Упаковка.ЕиницаИзмерения + «; » + Номенклатура.Артикул + » — » + Количество
Владимир:
Строка(КоличествоУпаковок) + » » + строка(Упаковка.ЕдиницаИзмерения)
Полина:
а если общая функция возвращает строку, например, КадровыйУчет.КадровыеДанныеСотрудника(Истина,Сотрудник, «Подразделение», Период), то как обратиться к полю этой строки? КадровыйУчет.КадровыеДанныеСотрудника(Истина,Сотрудник, «Подразделение», Период).Подразделение — не работает