ВычислитьВыражениеСГруппировкойМассив Сумма СуммаОборот , Контрагент Компоновщик макета сгенерирует для вывода следующее выражение.
1С: Вычисляемые поля в СКД
Грамотное использование схемы компоновки данных (СКД) позволяет:
- значительно снизить время, необходимое на разработку отчета;
- избавиться от необходимости создания управляемой формы обработчика;
- получить на выходе красивый результат с возможностью дополнительной настройки пользователем.
Но далеко не все разработчики по максимуму используют возможности схемы, так как не все её настройки очевидны и интуитивно понятны. В частности многие знают, что в 1С в СКД есть вычисляемые поля, однако, не до конца представляют область их использования и методы работы с ними.
1С 8.3 Схема компоновки данных — Программист 1С Минск. Автоматизация бизнеса.
- РазделительЭлементов – указывает, какой символ будет отделять один элемент массива или одну строку таблицы значений от другого (в нашем случае мы опустили этот параметр и по умолчанию был назначен перенос строки);
- РазделительКолонок – символ, используемый для разделения колонок таблицы значений (по умолчанию используется точка с запятой).
Что такое вычисляемое поле
В большинстве случаев в качестве источника данных в схеме компоновки выступает запрос. В принципе, внутри самого запроса уже можно использовать различные формулы, конструкции и выражения. Возникает закономерный вопрос, зачем же нужен дублирующий функционал?
Дело в том, что СКД – это нечто большее, нежели просто отображение результата выполнения запроса и это прекрасно видно из формы создания схемы (Рис.1).
Вычисляемые поля позволяют выполнять определенные действия со сформированным набором данных:
- Выводить в определенную ячейку массив данных, полученных запросом, соединив несколько строк в одну;
- Обращаться к экспортным функциям общего модуля;
- Выполнять различные выражения, доступные для языка компоновки и использование специальных функций ВычислитьВыражение.
Если сформируем отчёт, то увидим, что итоги по количеству считаются только по номенклатуре, а по контрагентам итоги количества пустые.
Использование характеристик в СКД
В конструкторе запросов, когда он вызывается из формы настройки источника данных, для схемы компоновки данных. Есть закладка «Характеристики», использование которой не вполне ясно описано в документации. В этой статье я постараюсь объяснить, как и для чего используются характеристики в СКД.
В типовых конфигурациях активно используется механизм свойств и значений свойств доступный практически для любых объектов. Примитивно, на справочниках, этот механизм реализовывался еще в конфигурациях 7.7. Сейчас этот механизм реализован с использованием плана видов характеристик и регистра сведений, но идея осталась прежней.
Таблица на закладке очень капризная, либо вы введете всю строку корректно, либо откажетесь от ввода строки совсем, оставить «на потом» не до конца заполненную строку система не даст.
Итак, перейдем к конкретике. Первая колонка: Тип — здесь выбираем тип объекта, к которому привяжутся характеристики, например СправочникСсылка.Номенклатура . Это означает, что теперь для всех объектов указанного типа можно будет получить значения свойств.
Промокоды на Займер на скидки
Далее в следующей колонке Источник видов мы должны задать параметры источника видов свойств. Возможны варианты таблица и запрос , зачем нужен вариант запрос расскажу позже, сейчас выберем пункт таблица .
В колонке Виды характеристик мы должны выбрать таблицу информационной базы, в которой хранятся нужные виды характеристик, в нашем примере это будет ПланВидовХарактеристик.СвойстваОбъектов .
Далее, значения доступные нам для выбора в колонках Поле ключа , Поле имени и Поле типа значения , непосредственно зависят от полей выбранной нами таблицы. В Поле ключа мы выбираем Ссылка , в Поле имени — Представление (именно его пользователь увидит в качестве имени реквизита), а в Поле типа соответственно ТипЗначения .
Теперь перейдем к источнику значений. Источником значений у нас будет регистр сведений ЗначенияСвойствОбъектов , поэтому мы выбираем в колонке Источник значений — таблица , а в колонке Значения характеристик — РегистрСведений.ЗначенияСвойствОбъектов . В колонках Объект , Свойство , Значение , выбираем соответствующие поля регистра Объект , Свойство , Значение .
Казалось бы, на этом все. Заходим в настройки схемы, добавляем группировку по товарам, и добавляем подчиненную ей группировку, допустим по брендам, есть у нас такое свойство. Разворачиваем список реквизитов группировки Номенклатура и … не видим там никаких свойств:
Дело в том, что мы находимся в конфигураторе, откуда нет доступа к данным. Как же сделать нужную настройку? Удобнее всего для этого использовать консоль компоновки данных, ту что на диске ИТС, или ту что входит в подсистему «Инструменты разработчика». Но можно и просто открыть настройку отчета в режиме предприятия.
Итак, откроем ту же настройку, но в режиме предприятия:
Как видите, у нас добавились новые Реквизиты , при этом свойство Бренд внешне не отличается от обычных реквизитов справочника. А свойство Вид товара взято в квадратные скобки, это связано с тем, что представление свойства содержит пробел.
1С: Вычисляемые поля в СКД
В результате рабочий лист Excel обретет структуру в виде групп по каждому размеру футболок, а затем будет подсчитано общее количество футболок в каждой группе.
1С 8.3 Схема компоновки данных — Программист 1С Минск. Автоматизация бизнеса.
// Заполнение основных данных СКД
ИсточникДанных = Схема . ИсточникиДанных . Добавить ();
ИсточникДанных . ТипИсточникаДанных = «Local» ;
ИсточникДанных . Имя = «ИсточникДанных» ;
// Создание структуры СКД
НастройкиСКД = Схема . НастройкиПоУмолчанию ;
// Группировка, записи и автополе СКД
ГруппировкаСКД = НастройкиСКД . Структура . Добавить ( Тип ( «ГруппировкаКомпоновкиДанных» ));
ГруппировкаСКД . Использование = Истина;
АвтоПоле = ГруппировкаСКД . Выбор . Элементы . Добавить ( Тип ( «АвтоВыбранноеПолеКомпоновкиДанных» ));
АвтоПоле . Использование = Истина;
КолонкиТЗ = Новый ТаблицаЗначений ;
КолонкиТЗ . Колонки . Добавить ( «Имя» );
КолонкиТЗ . Колонки . Добавить ( «ТипЗначения» );
КолонкиТЗ . Колонки . Добавить ( «Заголовок» );
ПостроительСКД = Новый ПостроительЗапроса ;
Если ТипЗнч ( НаборДанных ) = Тип ( «Строка» ) Тогда
ПостроительСКД . Текст = СокрЛП ( НаборДанных );
Иначе
ПостроительСКД . Текст = СокрЛП ( НаборДанных . Текст );
КонецЕсли;
ПостроительСКД . ЗаполнитьНастройки ();
Для Каждого ВыбранноеПоле Из ПостроительСКД . ВыбранныеПоля Цикл
НовКолонка = КолонкиТЗ . Добавить ();
НовКолонка . Имя = ВыбранноеПоле . Имя ;
НовКолонка . ТипЗначения = ПостроительСКД . ДоступныеПоля [ ВыбранноеПоле . ПутьКДанным ]. ТипЗначения ;
НовКолонка . Заголовок = ВыбранноеПоле . Представление
КонецЦикла;
Для Каждого Колонка Из НаборДанных . Колонки Цикл
НовКолонка = КолонкиТЗ . Добавить ();
НовКолонка . Имя = Колонка . Имя ;
НовКолонка . ТипЗначения = Колонка . ТипЗначения ;
НовКолонка . Заголовок = Колонка . Имя ;
КонецЦикла;
// Добавление полей в набор СКД
Для каждого НовКолонка Из КолонкиТЗ Цикл
ПолеНабораСКД = ТекНаборДанных . Поля . Добавить ( Тип ( «ПолеНабораДанныхСхемыКомпоновкиДанных» ));
ПолеНабораСКД . Заголовок = СокрЛП ( НовКолонка . Заголовок );
ПолеНабораСКД . Поле = СокрЛП ( НовКолонка . Имя );
ПолеНабораСКД . ПутьКДанным = СокрЛП ( НовКолонка . Имя );
ВыбранноеПолеКомпоновкиДанных = НастройкиСКД . Выбор . Элементы . Добавить ( Тип ( «ВыбранноеПолеКомпоновкиДанных» ));
ВыбранноеПолеКомпоновкиДанных . Поле = Новый ПолеКомпоновкиДанных ( ПолеНабораСКД . ПутьКДанным );
ВыбранноеПолеКомпоновкиДанных . Использование = Истина;
КонецЦикла;
// Оформление СКД
Если Не ПустаяСтрока ( ИмяМакета ) Тогда
МОф = НастройкиСКД . ПараметрыВывода . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «МакетОформления» ));
ЗначениеПараметраВывода = МОф ;
ЗначениеПараметраВывода . Значение = ИмяМакета ;
ЗначениеПараметраВывода . Использование = Истина;
КонецЕсли;
Использование характеристик в СКД. Категория: 1С: Предприятие
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы