В сторонней 1С-подсистеме «Битрикс» используется объект встроенного языка «Построитель отчета», поэтому здесь я кратко обобщу его основной функционал.
Построитель отчета - объект встроенного языка, который представляет возможность динамического создания отчета как программными, так и интерактивными средствами.
В основе лежит запрос.
Пользователь может самостоятельно настроить выходные поля, отботы, сортировку, условное оформление.
Различные варианты оформления данных без обращения к программисту.
Этот объект доступен не везде. Его доступность: толстый клиент, сервер, внешнее соединение.
Инструкции построитея отчета {...}
Свойство "ИсточникДанных" (формирование отчета по таблице значений, результату запроса)
Можно использовать пакеты запросов
Нельзя работать с менеджерами временных таблиц
# | Ключ | Значение |
---|---|---|
1 | ВыгружатьВсеДокументы | УзелОбмена.ВыгружатьВсеДокументы |
2 | КлассифицироватьПоЦеновымГруппам | УзелОбмена.КлассифицироватьПоЦеновымГруппам |
3 | МассивДопустимыхТиповНоменклатуры | Перечисления.ТипыНоменклатуры.Товар Перечисления.ТипыНоменклатуры.Услуга Перечисления.ТипыНоменклатуры.Комплект Перечисления.ТипыНоменклатуры.Набор |
4 | НадоВыгружатьВидыКартЛояльности | УзелОбмена.СинхронизацияВидовКартЛояльности |
5 | НадоВыгружатьСвойства | УзелОбмена.ВыгружатьСвойства |
6 | НадоВыгружатьСкидки | УзелОбмена.СинхронизацияСкидок |
7 | НадоВыгружатьТовары | УзелОбмена.ОбменТоварами |
8 | ПолнаяВыгрузка | НЕ УзелОбмена.ВыгружатьТолькоИзменения ИЛИ УзелОбмена.ВыполнятьПолнуюВыгрузкуПринудительно |
9 | ТочкаАктуальностиДокументов | УзелОбмена.ТочкаАктуальностиВыгрузкиДокументов |
10 | Узел | УзелОбмена.Ссылка |
# | Построитель | Объекты метаданных |
Включатель |
---|---|---|---|
1 | Заказы | Документ.ЗаказПокупателя | |
2 | Карты лояльности | ||
3 | Контрагенты | ||
4 | Общая информация | ||
5 | Оплаты |
Документ.ПриходныйКассовыйОрдер Документ.ОплатаОтПокупателяПлатежнойКартой Документ.ПлатежныйОрдерПоступлениеДенежныхСредств Документ.ПлатежноеПоручениеВходящее |
|
6 | Отгрузки | Документ.РеализацияТоваровУслуг | |
7 | Свойства | ||
8 | Скидки | ||
9 | Товары |
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ЗаказПокупателя.Ссылка КАК Объект, | ЗаказПокупателя.Ссылка КАК Заказ, | ""Заказ"" КАК ТипОбъекта |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.Дата >= &ТочкаАктуальностиДокументов | И ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ ЗаказПокупателя.Ссылка В | (ВЫБРАТЬ | ЗаказПокупателяИзменения.Ссылка | ИЗ | Документ.ЗаказПокупателя.Изменения КАК ЗаказПокупателяИзменения | ГДЕ | ЗаказПокупателяИзменения.Узел = &Узел) | КОНЕЦ | И ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА ЗаказПокупателя.Б_Идентификатор <> """" | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | КОНЕЦ |{ГДЕ | ЗаказПокупателя.Организация.* КАК Организации, | ЗаказПокупателя.Подразделение.*}";
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка КАК Объект, | ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка | ИНАЧЕ ВЫБОР | КОГДА ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка | ИНАЧЕ NULL | КОНЕЦ | КОНЕЦ КАК Заказ, | ""Оплата"" КАК ТипОбъекта |ИЗ | Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа |ГДЕ | ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Дата >= &ТочкаАктуальностиДокументов | И ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка В | (ВЫБРАТЬ | ПКОИзменения.Ссылка | ИЗ | Документ.ПриходныйКассовыйОрдер.Изменения КАК ПКОИзменения | ГДЕ | ПКОИзменения.Узел = &Узел) | КОНЕЦ | И ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Б_Идентификатор <> """" | ИЛИ ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | КОНЕЦ | И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПКО.ОплатаПокупателя) | И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Контрагент ССЫЛКА Справочник.Контрагенты | И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) |{ГДЕ | ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Организация.* КАК Организации, | ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.* КАК Оплаты, | ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Подразделение.* КАК Подразделение} | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка, | ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Сделка | ИНАЧЕ ВЫБОР | КОГДА ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Сделка | ИНАЧЕ NULL | КОНЕЦ | КОНЕЦ, | ""Оплата"" |ИЗ | Документ.ОплатаОтПокупателяПлатежнойКартой.РасшифровкаПлатежа КАК ОперацияПоПлатежнойКартеРасшифровкаПлатежа |ГДЕ | ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка.Дата >= &ТочкаАктуальностиДокументов | И ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка В | (ВЫБРАТЬ | ОперацияПоПлатежнойКартеИзменения.Ссылка | ИЗ | Документ.ОплатаОтПокупателяПлатежнойКартой.Изменения КАК ОперацияПоПлатежнойКартеИзменения | ГДЕ | ОперацияПоПлатежнойКартеИзменения.Узел = &Узел) | КОНЕЦ | И ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка.Б_Идентификатор <> """" | ИЛИ ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | КОНЕЦ | И ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийОплатаОтПокупателяПлатежнойКартой.ОплатаПокупателя) |{ГДЕ | ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка.Организация.* КАК Организации, | ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка.* КАК Оплаты, | ОперацияПоПлатежнойКартеРасшифровкаПлатежа.Ссылка.Подразделение.* КАК Подразделение} | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка, | ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Сделка | ИНАЧЕ ВЫБОР | КОГДА ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Сделка | ИНАЧЕ NULL | КОНЕЦ | КОНЕЦ, | ""Оплата"" |ИЗ | Документ.ПлатежныйОрдерПоступлениеДенежныхСредств.РасшифровкаПлатежа КАК ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа |ГДЕ | ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка.Дата >= &ТочкаАктуальностиДокументов | И ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка В | (ВЫБРАТЬ | ПоступлениеБезналичныхДенежныхСредствИзменения.Ссылка | ИЗ | Документ.ПлатежныйОрдерПоступлениеДенежныхСредств.Изменения КАК ПоступлениеБезналичныхДенежныхСредствИзменения | ГДЕ | ПоступлениеБезналичныхДенежныхСредствИзменения.Узел = &Узел) | КОНЕЦ | И ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка.Б_Идентификатор <> """" | ИЛИ ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | КОНЕЦ | И ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка.ВидОперации = |ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеБезналичныхДенежныхСредств.ОплатаПокупателя) |{ГДЕ | ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка.Организация.* КАК Организации, | ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка.* КАК Оплаты, | ПлатежныйОрдерПоступлениеДенежныхСредствРасшифровкаПлатежа.Ссылка.Подразделение.* КАК Подразделение} | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка, | ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка | ИНАЧЕ ВЫБОР | КОГДА ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка | ИНАЧЕ NULL | КОНЕЦ | КОНЕЦ, | ""Оплата"" |ИЗ | Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа |ГДЕ | ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Дата >= &ТочкаАктуальностиДокументов | И ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка В | (ВЫБРАТЬ | ПоступлениеБезналичныхДенежныхСредствИзменения.Ссылка | ИЗ | Документ.ПлатежноеПоручениеВходящее.Изменения КАК ПоступлениеБезналичныхДенежныхСредствИзменения | ГДЕ | ПоступлениеБезналичныхДенежныхСредствИзменения.Узел = &Узел) | КОНЕЦ | И ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Б_Идентификатор <> """" | ИЛИ ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Б_Идентификатор <> """" | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | КОНЕЦ | И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.ВидОперации |= ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеБезналичныхДенежныхСредств.ОплатаПокупателя) |{ГДЕ | ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Организация.* КАК Организации, | ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.* КАК Оплаты, | ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Подразделение.* КАК Подразделение}";
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | РеализацияТоваровУслуг.Ссылка КАК Объект, | ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА РеализацияТоваровУслуг.Сделка | ИНАЧЕ ВЫБОР | КОГДА РеализацияТоваровУслуг.Сделка.Б_Идентификатор <> """" | ТОГДА РеализацияТоваровУслуг.Сделка | ИНАЧЕ NULL | КОНЕЦ | КОНЕЦ КАК Заказ, | ""Отгрузка"" КАК ТипОбъекта |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Дата >= &ТочкаАктуальностиДокументов | И ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ РеализацияТоваровУслуг.Ссылка В | (ВЫБРАТЬ | ОтгрузкаКлиентаИзменения.Ссылка | ИЗ | Документ.РеализацияТоваровУслуг.Изменения КАК ОтгрузкаКлиентаИзменения | ГДЕ | ОтгрузкаКлиентаИзменения.Узел = &Узел) | КОНЕЦ | И ВЫБОР | КОГДА &ВыгружатьВсеДокументы | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА РеализацияТоваровУслуг.Б_Идентификатор <> """" | ИЛИ РеализацияТоваровУслуг.Сделка.Б_Идентификатор <> """" | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | КОНЕЦ |{ГДЕ | РеализацияТоваровУслуг.Организация.* КАК Организации, | РеализацияТоваровУслуг.Ссылка.* КАК Отгрузки, | РеализацияТоваровУслуг.Подразделение.*}";
"ВЫБРАТЬ | СвойстваОбъектов.Ссылка КАК Объект, | ""Свойство"" КАК ТипОбъекта |ИЗ | ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов |ГДЕ | &НадоВыгружатьСвойства = ИСТИНА | И СвойстваОбъектов.Б_Идентификатор <> ""СвойствоЗаказа"" | И ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ СвойстваОбъектов.Ссылка В | (ВЫБРАТЬ | СвойстваОбъектовИзменения.Ссылка | ИЗ | ПланВидовХарактеристик.СвойстваОбъектов.Изменения КАК СвойстваОбъектовИзменения | ГДЕ | СвойстваОбъектовИзменения.Узел = &Узел) | КОНЕЦ | И (СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура) | ИЛИ СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры)) |{ГДЕ | СвойстваОбъектов.Ссылка.* КАК СвойствоНоменклатуры}";
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | Номенклатура.Ссылка КАК Номенклатура |ПОМЕСТИТЬ ВремНоменклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура |{ГДЕ | Номенклатура.Ссылка.* КАК Номенклатура} |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ ВремНоменклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | Контрагенты.Ссылка |ПОМЕСТИТЬ ВремКонтрагенты |ИЗ | Справочник.Контрагенты КАК Контрагенты |{ГДЕ | Контрагенты.Ссылка.* КАК Контрагенты} |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ ВремКонтрагенты |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | СкидкиНаценкиНоменклатуры.Регистратор КАК Регистратор |ПОМЕСТИТЬ ВремВсеСкидки |ИЗ | РегистрСведений.СкидкиНаценкиНоменклатуры КАК СкидкиНаценкиНоменклатуры |ГДЕ | СкидкиНаценкиНоменклатуры.Регистратор ССЫЛКА Документ.УстановкаСкидокНоменклатуры | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | СкидкиНаценкиПоЦеновымГруппам.Регистратор |ИЗ | РегистрСведений.СкидкиНаценкиПоЦеновымГруппам КАК СкидкиНаценкиПоЦеновымГруппам |ГДЕ | СкидкиНаценкиПоЦеновымГруппам.Регистратор ССЫЛКА Документ.УстановкаСкидокНоменклатуры | |ИНДЕКСИРОВАТЬ ПО | Регистратор |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВремВсеСкидки.Регистратор КАК Скидка, | ""Скидка"" КАК ТипОбъекта |ПОМЕСТИТЬ ВремСкидки |ИЗ | ВремВсеСкидки КАК ВремВсеСкидки |ГДЕ | ВЫБОР | КОГДА &ПолнаяВыгрузка | ТОГДА ИСТИНА | ИНАЧЕ ВремВсеСкидки.Регистратор В | (ВЫБРАТЬ | УстановкаСкидокНоменклатурыИзменения.Ссылка | ИЗ | Документ.УстановкаСкидокНоменклатуры.Изменения КАК УстановкаСкидокНоменклатурыИзменения | ГДЕ | УстановкаСкидокНоменклатурыИзменения.Узел = &Узел) | КОНЕЦ | И &НадоВыгружатьСкидки = ИСТИНА | И ВремВсеСкидки.Регистратор.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийУстановкаСкидокНоменклатуры.НатуральныеСкидки) |{ГДЕ | ВремВсеСкидки.Регистратор.* КАК Скидка} | |ИНДЕКСИРОВАТЬ ПО | Скидка |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ ВремВсеСкидки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВидыДисконтныхКарт.Ссылка КАК ВидДисконтнойКарты, | ""ВидДисконтнойКарты"" КАК ТипОбъекта |ПОМЕСТИТЬ ВремВидыДисконтныхКарт |ИЗ | Справочник.ВидыДисконтныхКарт КАК ВидыДисконтныхКарт |ГДЕ | &НадоВыгружатьВидыКартЛояльности = ИСТИНА |{ГДЕ | ВидыДисконтныхКарт.Ссылка.* КАК ВидДисконтнойКарты} | |ИНДЕКСИРОВАТЬ ПО | ВидДисконтнойКарты |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремСкидки.Скидка КАК Объект, | ВремСкидки.ТипОбъекта |ИЗ | ВремСкидки КАК ВремСкидки | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВремВидыДисконтныхКарт.ВидДисконтнойКарты, | ВремВидыДисконтныхКарт.ТипОбъекта |ИЗ | ВремВидыДисконтныхКарт КАК ВремВидыДисконтныхКарт |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ ВремСкидки |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ ВремВидыДисконтныхКарт";