Сообщения

Показаны сообщения с ярлыком "СКД"

СКД. Оформление ресурса для итогов

Изображение
Задача Отчет выводит информацию о оборотах номенклатуры . Требуется в отчете выводить итоговое поле оборота в формате: представление 0 как ноль, разделитель групп - пробел, группировка по три знака, в конце числа добавить приставку "шт.". Реализация Задачку можно решить несколькими способами. первый способ, который приходит в голову - это добавление предопределенного макета в отчет. На вкладке Макеты окна конструктора схемы компоновки данных добавляется макет группировки и для поля оборотов задается форматирование (см. рисунок 1). Рисунок 1. Пример форматирования поля Остаток

СКД. Программное чтение/запись СКД в/из XML.

Сериализация объектов в XML Объект типа СхемаКомпоновкиДанных не имеет в своем арсенале метода записи/чтения себя в/из XML. Но все исправимо благодаря возможности сериализации схемы компоновки данных в объект XDTO. // Запись СКД в XML-файл. ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайлаСКД); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СхемаКомпоновкиДанных); ЗаписьXML.Закрыть(); Сериализация объектов 1С выполняется с помощью объекта глобального контекста СериализацияXDTO - это сериализатор XDTO, соответствующий глобальной фабрики XDTO.

Примеры применения функции СКД - ВычислитьВыражение

Изображение
ВычислитьВыражение - довольно сложная функция СКД для понимания, а примеры применения в справочной информации довольно скудны. В данной статье рассмотрены примеры, которые наверняка пригодятся каждому разработчику: нарастающий итог в группировке; нарастающий итог в кросс-таблице; получение предыдущего значения; вывод ТЧ в одной строке. 1. Получение показателя нарастающим итогом Получим количество товара нарастающим итогом на уровне группировки. Для этого создаем вычисляемое поле (см. рисунок 1). Рисунок 1. Вычисляемое поле "Количество нарастающим итогом" На вкладке "Ресурсы" задаем функцию для вычисляемого поля: ВычислитьВыражение("Сумма(КоличествоОборот)", , , "Первая", "Текущая") которая будет суммировать количество товаров от первой записи до текущей (см. рисунок 2). Рисунок 2. Выражение для ресурса "Количество нарастающим итогом"

Агрегатные функции системы компоновки данных

Важно! Если параметр функции имеет тип Строка и в нем указывается имя поля, которое содержит пробелы, то такое имя поля должно быть заключено в квадратные скобки. Например: "[Количество Оборот]". 1. Сумма (Total) - рассчитывает сумму значений выражений, переданных ей в качестве аргумента для всех детальных записей. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива. Пример : Сумма(Продажи.СуммаОборот) 2. Количество (Count) - рассчитывает количество значений отличных от значения NULL. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива. Синтаксис : Количество([Различные] Параметр) В указания получения различных значений следует перед параметром метода Количество указать Различные (Distinct). Пример : Количество(Продажи.Контрагент) Количество(Различные Продажи.Контрагент)

Простая реализация формирования отчета в фоновом режиме

Изображение
Отчеты, разработанные с использованием системы компоновки данных, могут формировать в фоновом режиме. Фоновый режим формирования позволяет пользователям запускать "тяжелые" отчеты и продолжать работу в программе дальше (см. рисунок 1). Очень полезная функция. Реализовать формирование отчета в фоновом режиме можно двумя способами. Рисунок 1. Формирование отчета в фоновом режиме Первый способ заключается в том, что разработчик самостоятельно реализует формирование отчета в фоновом режиме. Создается процедура формирования результата, которая выполняется в фоновом задании. После запуска фонового задания подключается обработчик ожидания, который проверяет готовность результат и сигнализирует пользователю о том, что выполняется процесс формирования отчета. Вообщем-то ничего сложного нету, но время отнимет. Плюс данного способа в том, что разработчик сам контролирует процесс формирования отчета, может вывести процент готовности формирования и всякие другие бантики.

Функции языка выражений системы компоновки данных

1. Вычислить (Eval) - предназначена для вычисления выражения в контексте некоторой группировки. Функция используется для совместимости с предыдущими версиями платформы. Вместо неё рекомендуется использовать функцию ВычислитьВыражение. Синтаксис : Вычислить(Выражение, Группировка, ТипРасчета) Параметры : Выражение (Строка). Cодержит вычисляемое выражение;  Группировка (Строка). Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем. Например: Сумма(Продажи.СуммаОборот) / Вычислить("Сумма(Продажи.СуммаОборот)", "ОбщийИтог"). В данном примере в результате получится отношение с...

СКД. Добавление собственного пункта расшифровки.

Изображение
Потребовалось как-то создать отчет, который выводит информацию об оплате товара: не оплачен (сумма оплаты = 0), частично оплачен (сумма оплаты < суммы товара), оплачен (сумма оплаты = сумма товара). Сумма оплаты формируется по неким условиям, и требуется предоставлять пользователю информацию о том, каким образом была сформирована сумма, выражаясь терминами СКД: расшифровать сумму оплаты товара. Для вывода такой информации требуется нестандартный вариант расшифровки. Первым делом мне потребовалось переопределить поле для расшифровки, а если быть точнее, добавить поле для расшифровки. Для этого в схеме компоновки данных отчета на вкладке Макеты создал макет поля СуммаОплаты (см. рисунок 1), обратите внимание на заполнение свойств раздела Макет. Рисунок 1. Макет поля СуммаОплаты

Настройка шапки отчета в СКД

Изображение
Создадим внешний отчет, который будет выводить отчетную информацию об остатках номенклатуры и её обороте. Требуемая информация запрашивается запросом с помощью набор данных типа "Запрос", который содержит текст запроса: ВЫБРАТЬ _ДемоНоменклатура.Ссылка КАК Номенклатура ПОМЕСТИТЬ АктуальнаяНоменклатура ИЗ Справочник._ДемоНоменклатура КАК _ДемоНоменклатура ГДЕ НЕ _ДемоНоменклатура.ПометкаУдаления И НЕ _ДемоНоменклатура.ЭтоГруппа ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ АктуальнаяНоменклатура.Номенклатура, _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.МестоХранения, _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоНачальныйОстаток, _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоКонечныйОстаток, _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоПриход, _ДемоОстаткиТоваровВМестахХраненияОстаткиИОбороты.КоличествоРасход, _ДемоОстаткиТоваровВМестахХраненияОстаткиИ...

СКД. Программная компоновка результата.

Рассмотрим программное формирование результата отчета на примере события ПриКомпоновкеРезультата, которое вызывается по-умолчанию при формировании отчета или при выполнении отчета с помощью метода СкомпоноватьРезультат(). // 1. Установим признак отказа от выполнения стандартной обработки события. СтандартнаяОбработка = Ложь; // 2. Получим макет, в котором хранится "шапка" и "подвал" отчета. МакетДопОформление = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_ДопОформлениеСКД"); // 3. Выведем в табличный документ шапку отчета. ШапкаОтчета = МакетДопОформление.ПолучитьОбласть("ШапкаОтчета"); ДокументРезультат.Вывести(ШапкаОтчета); // 4. Получим копию настроек компоновки данных. НастройкиОтчета = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(); // 5. Установим значение параметра компоновки данных ОтчетнаяДата (Вкладка "Параметры" схемы компоновки данных). ПараметрОтчетнаяДата = Новый ПараметрКомпоновкиДанных("ОтчетнаяДата");...

СКД. Вывод информации табличной части в одну ячейку.

Изображение
Использование нескольких схем компоновки данных в одном отчете Выгрузка отчета в таблицу/дерево значений 1) Использование функции СКД - СоединитьСтроки(). У данного способа, как мне кажется, есть минус, но он работает, но минус большой. Рассмотрим на примере: имеется в конфигурации документ "Поступление товара" с табличной частью "Товары", необходимо вывести в отчет документы и наименования поступившего товара для каждого документа. Создадим отчет, добавим основную схему компоновки данных, в СКД добавим набор данных типа "запрос" и сформируем простенький запрос (см. рисунок 1). Рисунок 1. Запрос набора данных

Выгрузка отчета в таблицу/дерево значений

Использование нескольких схем компоновки данных в одном отчете СКД. Вывод информации табличной части в одну ячейку. Недавно появилась задачка, необходимо создать отчет, который требуется выгружать в Excel. Написал запрос, создал схему компоновки данных и отчет готов, результат компоновки выводится в табличный документ. Приступил к реализации вывода отчетных данных в Excel и призадумался, а как же это лучше сделать? Оказывается, результат компоновки данных можно выводить в таблицу значений или дерево значений для последующей программной обработки. Для этого предназначен объект языка программирования  ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений . У этого объекта имеется метод УстановитьОбъект() , который является аналогом метода УстановитьДокумент() объекта ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент . Привожу пример вывода результата компоновки в таблицу значений: Функция СкомпоноватьРезультатВКоллекциюЗначений() Экспорт тзКомпонов...

Использование нескольких схем компоновки данных в одном отчете

Изображение
Выгрузка отчета в таблицу/дерево значений СКД. Вывод информации табличной части в одну ячейку. Отчеты используются для получения сводной информации на основании данных, введенных в информационной системе. Обычно отчет содержит: алгоритмы, при помощи которых получается и обрабатывается информация; формы, при помощи которых организуется интерфейс для ввода параметров алгоритмов и представления результатов их работы; макеты, при помощи которых выводится результат выполнения алгоритма в табличный документ. Примером применения отчетов может быть получение сводных данных о хозяйственной деятельности в необходимых для анализа разрезах. Что бы не плодить отчеты, которые схожи по смыслу, в дереве конфигурации, платформа 1С позволяет в одном отчете использовать несколько схем компоновки данных, и в зависимости от условий использовать ту или иную СКД для получения отчетной информации. Рассмотрим пример реализации использования нескольких СКД в одном отчете. Создадим внешний отчет. В...