как вывести скд в общую форму
Форма отчета СКД
На форме ниже наименования отчета, при создании формы, программным способом добавляются поля: параметры и отборы СКД, у которых установлена пометка «Быстрый доступ». Состав полей и вид сравнения (равно, больше/меньше, в списке, в группе…) определяется на этапе конфигурирования или в форме настроек.
Обратите внимание на стандартные роли ДобавлениеИзменениеВариантовОтчетов, ЧтениеВариантовОтчетов, БазовыеПраваБСП, СохранениеДанныхПользователя, ДобавлениеИзменениеЛичныхВариантовОтчетов. От них зависит внешний вид и возможности работы.
Посмотрим на командную панель:
Кнопка 1. Сформировать в фоновом режиме. Возможен замер времени выполнения(APDEX).
Кнопка 2. Форма настроек. Управление отборами, внешним видом элементов формы и структурой отчета (список, таблица).
Кнопка 3. Управление вариантами отчета. Сохранение пользовательских настроек. (Права и параметры имеют значение)
Кнопка 11. Позволяет управлять рассылками отчетов, создать рассылку, используя текущие настройки СКД. То есть настройки отчета сохраняются в справочник рассылки. Если в конфигурации отсутствует подсистема рассылки отчетов – кнопка не видна.
Допустим, мы выполняем код ОткрытьФорму(«Отчеты.Ведомость.Форма», ПараметрыОткрыть); Рассмотрим избранные свойства структуры «ПараметрыОткрыть».
Структура содержит отбор, который будет установлен при формировании отчета. В документации ИТС отсутствует. Это наш секрет :))
Вариант формирования отчета. В документации ИТС отсутствует. Это наш секрет :)) Если отсутствует – используется первый из вариантов в алфавитном порядке.
Установлена ИСТИНА – есть возможность выбора вариантов В документации отсутствует. Возможно, устарел.
параметры печати табличного документа: ПолеСверху, ПолеСлева, ПолеСнизу, ПолеСправа, ОриентацияСтраницы, АвтоМасштаб, МасштабПечати
Первый способ: Чтобы добавлять код, хорошо использовать переопределяемые модули. В конфигурации УТ для ФормыОтчетов предусмотрены процедуры:
Порядок выполнения процедур при открытии:
Порядок выполнения процедур по кнопке «Сформировать»:
&НаКлиенте:
1) ОтчетСкомпоноватьРезультат()
2) Сформировать()
&НаСервере:
3) РезультатФормированияОтчета(ФормированиеПриОткрытии, Непосредственно)
4) ПроверитьЗаполнение()
5) ОбработкаПроверкиЗаполненияНаСервере()
6) ЗагрузитьРезультатФормированияОтчета()
Второй способ: если мы хотим изменить какие-то свойства формы, например ограничить отбор в списке поля (1) или выполнить дополнительные действия при выборе значения в поле (2), нам нужно копировать объект метаданных ОбщиеФормы – ФормаОтчета и вставить его в свой отчет. (Не забывайте про общие формы ФормаНастроекОтчета и ФормаВариантаОтчета). Переименуем форму, чтобы в ней не было ссылок на модули ОбщиеФормы – ФормаОтчета. После этого можно смело изменять код. Но нужно учитывать, что поля формы создаются автоматически и называются иначе, чем в схеме СКД.
1. Для изменения свойства поля, найдем в модуле формы процедуру ВывестиЭлементыНастройки и посмотрим в отладчике, как происходит добавление элементов. В переменной СвойстваНастройки хранится связь между полем СКД и идентификатором. Запомним ИмяЭлемента в цикле обработки переменной СвойстваНастройки, потом обработаем.
2. Для обработки выбора значения в форме предусмотрены подключаемые процедуры:
Поставим точку останова – увидим, как происходит обработка выбора значения.
Дополнительные процедуры, которые тоже могут пригодиться:
Формирование отчета СКД с расшифровкой из обработки
1. В обработке нет реквизита КомпоновщикНастроек, его нужно добавить вручную.
Заполним параметры в запросе схемы СКД.
2. Расшифровка в обработке работать не будет ее тоже нужно добавить вручную.
Для этого на форму добавим реквизит ДанныеРасшифровкиФ с типом строка
В процедуре СформироватьНаСервере() будем присваивать реквизиту ДанныеРасшифровкиФ значение
Табличному документа на форме добавим событие ОбработкаРасшифровки
1С:Комплексная автоматизация 2 (2.4.9.98)
Платформа 1С:Предприятие 8.3 (8.3.16.1148)
Специальные предложения
(9) Не только тема расшифровки. В конце концов, передерут очередной раз Хрусталёву, выложат. Это ещё полбеды.
Автор вообще упустил такие моменты, как варианты/хранилище вариантов, хранилище настроек (в т.ч. пользовательских), отображение результата и сжатие, исполнение в фоне, общие формы конфигурации, кэширование выборок. Про остальное, например, специфику в контурах БСП, я вообще молчу. Некоторым что отчёт, что обработка, сбацал публикацию на коленке и айда.
Обновление 27.04.21 14:00
См. также
Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо
В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.
12.12.2020 4350 Eugen-S 23
Полезные примеры СКД, ч.2
Еще несколько примеров решения задач в СКД.
06.04.2021 10548 Neti 8
Полезные примеры СКД, ч.1
Подборка видео по решению различных задач в отчетах на СКД.
30.03.2021 13201 Neti 19
Обзор полезных методов БСП 3.1.4
25.03.2021 39725 rayastar 51
Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)
27.01.2016 85564 Serginio 115
Звуковое управление в 1С 8.3
В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.
16.03.2021 7112 velemir 33
Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions
28.12.2020 8818 comol 31
Форма выбора (подбор) в управляемых формах
Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.
08.05.2020 76798 user5300 19
Использование программных перечислений, ч.1: строковые константы Промо
Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?
10.12.2016 41063 unichkin 74
Программная работа с настройками СКД
Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.
27.01.2020 64953 ids79 26
[СКД] Программное создание схемы компоновки данных
Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».
15.01.2020 43317 John_d 22
Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения
Собрал информацию о событиях/подписках/расширениях в одном месте.
30.12.2019 34995 kuzyara 38
Вспомогательные инструкции в коде 1С Промо
Помогаем редактору кода 1С помогать нам писать и анализировать код.
15.10.2018 36051 tormozit 106
Полезные процедуры и функции для программиста
Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.
07.10.2019 39544 HostHost 41
Таблица значений. Нюансы
Обзор некоторых аспектов использования общеизвестного инструмента 1С.
01.10.2019 52724 Yashazz 56
СКД. Отчеты с картинками
Решение популярных кейсов с картинками в отчетах на СКД.
25.09.2019 32791 YPermitin 58
Оформление и рефакторинг сложных логических выражений Промо
В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.
20.09.2012 82790 tormozit 131
СКД не только для отчетов
СКД позволяет получать данные из информационной базы не только для вывода в отчеты, но и для других целей. Пример такого использования рассматривается в настоящей статье.
18.09.2019 21856 YPermitin 36
[Шпаргалка] Программное создание элементов формы
Программное создание практически всех популярных элементов формы.
06.09.2019 101173 rpgshnik 75
Агрегатные функции СКД, о которых мало кто знает
Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.
05.09.2019 77139 ids79 56
Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо
Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.
11.07.2007 54323 tormozit 51
Регистры бухгалтерии. Общая информация
Общая информация о внутреннем устройстве регистров бухгалтерии.
05.09.2019 46288 YPermitin 25
Три костыля. Сказ про фокусы в коде
Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.
03.09.2019 30153 YPermitin 81
Отслеживание выполнения фонового задания
Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.
17.08.2019 45003 ids79 22
Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо
Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки
10.09.2017 51102 tormozit 74
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.
08.08.2019 150723 ids79 75
Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.
02.08.2019 60281 avalakh 26
Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.
26.07.2019 104762 ids79 17
Выгрузка документа по условию Промо
Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.
25.04.2019 17993 m-rv 3
Обработчики событий при записи объектов. Зачем и что за чем?
Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.
25.07.2019 110821 AlbinaAAA 48
Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «<…>», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.
Вывод вариантов СКД в таблицы на управляемой форме
Забегая вперед: если бы подобный запрос с компоновщиком был всего один, то задача бы существенно упростилась:
Далее можно сохранять/создавать варианты отчета и на основании этих настроек заполнять данные в ТЗ на форме.
Как говорится: это была присказка, а теперь сказка 😉
Отбор СКД на форме для нескольких запросов
Создаем новую обработку, назовем например «ВариантыТест»; предположим что 2 нужных запроса ранее были составлены в консоли запросов и помещены в СКД. Названия СКД «МакетСКДдляДДС», «МакетСКДдляНачисления»
Общий наглядный вид созданных реквизитов приведен на рисунке:
2. Действия при открытии формы обработки. При открытии сначала заполняются вспомогательные данные, после чего идет инициализация ранее сохраненных настроек компоновщиков. Если это 1-ый запуск обработки, то по сути ничего не сохранено, только считываются настройки из конфигуратора.
Общий принцип: в стандартное хранилище настроек пользователя по имени обработки и имени СКД сохраняется некая ТЗ, которая содержит список вариантов настроек, 1 из них «активный».
ПРИМЕЧАНИЕ: Полный программный код будет приведен в конце статьи.
В текстовом поле по умолчанию ставится текущий активный вариант, но при желании можно изменить название (например «Основной1»), тогда с новыми настройками будет создан еще 1 вариант, а старый останется без изменений.
Если нажать «Продолжить редактирование«, то форма основная закрыта не будет, редактирование будет продолжено.
7. Механизм управления вариантами. При кодировании/конфигурировании действий по работе с вариантами настроек, лучше по возможности избегать дублирования кода, так как функционал для всех СКД единый: команды, функции использовать также единые для всех, параметры определять исходя из названий элементов управления/команд.
В частности для управления выбором/сохранением/изменением настроек СКД на форме использованы всего 4 команды, простое подменю «Варианты. » на форме. А действия по сохранению/изменению осуществляют всего 2 команды, которые получают имя используемой СКД из названия команды:
Форма для управления настройками содержит 2 элемента управления «Список вариантов», «текущий вариант», 2 команды «Выбрать», «Продолжить редактирование».
[Памятка]. Формирование отчета СКД в управляемых формах. Нестандартные способы
1. Использование Набора данных и загрузка в него Таблицы значений.
Чтобы корректно отображались настройки отчета делаем следующее:
2. Пробежаться по сформированному Табличному документу. Получить ссылки на документ и отправить их на печать.
Для примера: В первом столбце сформированного отчета находятся документы заказы покупателя.
3. Установить параметры в модуле отчета
4. Заголовок в отчете СКД
Специальные предложения
Обновление 20.12.18 13:45
См. также
Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо
В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.
12.12.2020 4350 Eugen-S 23
Полезные примеры СКД, ч.2
Еще несколько примеров решения задач в СКД.
06.04.2021 10548 Neti 8
Полезные примеры СКД, ч.1
Подборка видео по решению различных задач в отчетах на СКД.
30.03.2021 13201 Neti 19
Обзор полезных методов БСП 3.1.4
25.03.2021 39725 rayastar 51
Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)
27.01.2016 85564 Serginio 115
Звуковое управление в 1С 8.3
В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.
16.03.2021 7112 velemir 33
Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions
28.12.2020 8818 comol 31
Форма выбора (подбор) в управляемых формах
Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.
08.05.2020 76798 user5300 19
Использование программных перечислений, ч.1: строковые константы Промо
Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?
10.12.2016 41063 unichkin 74
Программная работа с настройками СКД
Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.
27.01.2020 64953 ids79 26
[СКД] Программное создание схемы компоновки данных
Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».
15.01.2020 43317 John_d 22
Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения
Собрал информацию о событиях/подписках/расширениях в одном месте.
30.12.2019 34995 kuzyara 38
Вспомогательные инструкции в коде 1С Промо
Помогаем редактору кода 1С помогать нам писать и анализировать код.
15.10.2018 36051 tormozit 106
Полезные процедуры и функции для программиста
Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.
07.10.2019 39544 HostHost 41
Таблица значений. Нюансы
Обзор некоторых аспектов использования общеизвестного инструмента 1С.
01.10.2019 52724 Yashazz 56
СКД. Отчеты с картинками
Решение популярных кейсов с картинками в отчетах на СКД.
25.09.2019 32791 YPermitin 58
Оформление и рефакторинг сложных логических выражений Промо
В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.
20.09.2012 82790 tormozit 131
СКД не только для отчетов
СКД позволяет получать данные из информационной базы не только для вывода в отчеты, но и для других целей. Пример такого использования рассматривается в настоящей статье.
18.09.2019 21856 YPermitin 36
Оповещения боту из 1С за 31 минуту
Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.
18.09.2019 20111 feva 44
[Шпаргалка] Программное создание элементов формы
Программное создание практически всех популярных элементов формы.
06.09.2019 101173 rpgshnik 75
Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо
Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.
11.07.2007 54323 tormozit 51
Агрегатные функции СКД, о которых мало кто знает
Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.
05.09.2019 77139 ids79 56
Регистры бухгалтерии. Общая информация
Общая информация о внутреннем устройстве регистров бухгалтерии.
05.09.2019 46288 YPermitin 25
Три костыля. Сказ про фокусы в коде
Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.
03.09.2019 30153 YPermitin 81
Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо
Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки
10.09.2017 51102 tormozit 74
Отслеживание выполнения фонового задания
Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.
17.08.2019 45003 ids79 22
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.
08.08.2019 150723 ids79 75
Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.
02.08.2019 60281 avalakh 26
Выгрузка документа по условию Промо
Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.
25.04.2019 17993 m-rv 3
Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.
26.07.2019 104762 ids79 17
Обработчики событий при записи объектов. Зачем и что за чем?
Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.
25.07.2019 110821 AlbinaAAA 48
Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «<…>», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.