1с бсп варианты отчетов
Сегодня мы рассмотрим 3 приема работы с отчетами на СКД, которые позволят эффективно решать следующие задачи:
Казалось бы, там все просто?
Такая ситуация точно не увеличивает авторитет в глазах клиента :)
Поэтому всегда есть смысл найти 15 минут и разобраться с новыми для себя вещами.
Видео 01. Как встроить отчет на СКД в типовую конфигурацию на базе БСП?
В видео рассмотрим пошаговый алгоритм для добавления нового отчета в интерфейс типовой конфигурации.
Чтобы решить эту задачу в современных типовых (на базе БСП), недостаточно добавить отчет в метаданные и отнести его к нужной подсистеме.
Потребуется выполнить ряд необходимых действий:
Видео 02. Как быстро проанализировать формирование типового отчета на СКД?
В уроке мы рассмотрим задачу по доработке типового отчета по остаткам денежных средств.
Ключевой момент: если обратиться в схему компоновки в конфигураторе, мы не увидим ни одного запроса.
Это происходит в силу того, что многие отчеты в типовых построены на основе вложенных схем компоновки данных.
Видео 03. Как настроить в отчетах отборы по сегментам?
И если вам предстоит их внедрять, практически гарантировано, что появится потребность в новых отчетах по номенклатуре/партнерам.
- Как устроена фильтрация данных по сегментам
- Как СКД может формировать запрос динамически
- Как внедрить отбор по сегментам в собственные отчеты.
Эта тема детально раскрыта в курсе:
Не откладывайте свое обучение!
Комментарии / обсуждение (26):
Просмотрел 1-е видео.
Подумалось, что внешний отчет проще подключить. В конфигураторе описание дописывать не надо, обновлять обработкой ничего не надо.
Может после 2-го и третьего видео передумаю.
Добрый день!
Во внешнем отчете в модуле объекта нужно реализовать специальную функцию СведенияОВнешнейОбработке, которая содержит описание этого отчета. Тогда его можно будет подключить к УТ 11 (или другой конфигурации на базе БСП).
А при добавлении отчета в саму конфигурацию нужно выполнить ряд действий, чтобы вариант отчета отобразился в специальной панели. Если точно не знать, какие действия потребуются, то можно потратить много времени, разбираясь в хитростях БСП. Поэтому в видеоуроке показывается, какие шаги при этом нужно будет выполнить.
Любите делать отчеты для типовых конфигураций? Вы мастер СКД и отчет с вложенными схемами компоновки и собственным макетом для Вас тоже обычное дело? А может быть программное формирование схемы компоновки для Вас тоже норма? Или Вы новичок и только начинаете постигать сакральные знания СКД? Не важно!
Сегодня мы будем говорить о другом. О подсистеме "Варианты отчетов" из БСП, которую можно встретить практически во всех типовых конфигурациях. Вероятно, многие зададутся вопросом: "О чем тут вообще можно говорить?". Что ж, постараюсь Вас удивить!
Как она устроена
От одной версии БСП к другой, подсистема "Варианты отчетов" становилась все функциональней и интересней. Почти все мы ее используем в своих отчетах и можем даже об этом не подозревать. Сегодня мы поговорим о некоторых нюансах ее работы на примере версии БСП 3.0. Информация в большей части справедлива и для других версия библиотеки.
Прежде чем перейти к особенностям, дадим краткое описание принципа работы подсистемы. В составе метаданных она содержит не мало объектов для реализации всего функционала. Те, что нас интересуют, это:
- Общая форма "Форма отчета".
- Справочник "Варианты отчетов".
- Хранилище настроек "Хранилище вариантов отчетов".
- Общие модули с именем "ВариантыОтчетов*" и "Отчеты*".
- И некоторые настройки корня конфигурации.
Весь смысл подсистемы сводится к тому, что все варианты отчетов, адаптированных для использования в БСП, сохраняются в справочнике "Варианты отчетов" через переопределение основных событий хранилища "Хранилище вариантов отчетов":
- Автор
- Тип отчета
- Пользовательские настройки
- Ключ
- Представление варианта
- Различные настройки видимости
- Описание
- И многое другое.
Все еще непонятно? Сделаем небольшой пример, но отчет будет внешним! Вы когда-нибудь разрабатывали отчеты для ERP? Так вот, на ней и продемонстрируем как подсистема работает. Отчет будет отображать количество элементов номенклатуры в разрезе видов номенклатуры. Обязательно добавим в модуль объекта функции описания внешних отчетов и обработок для БСП, а также программное формирование отчета.
Ничего необычного. В модуле объекта добавлено описание внешнего отчета для БСП, а также программное формирование отчета в событии "ПриКомпоновкеРезультата".
В схеме компоновки запрос тоже тривиальный.
Для наглядности мы добавим в настройках отчета два одинаковых варианта, но с разными названиями.
Больше никаких настроек и функций не добавляем (ни форм отчетов, ни задание доп. настроек в свойствах отчета и др.). В режиме 1С:Предприятие отчет выглядит предсказуемо.
Полный исходный код примера можно найти в соответствующем репозитории на GitHub.
Чтобы подсистема "Варианты отчетов" была задействована для нашего продвинутого отчета, прикрепим его в справочник "Дополнительные отчеты и обработки". Не зря же мы делали описание внешнего отчета в модуле объекта.
Прикрепляем отчет в дополнительные отчеты и обработкиЗдесь тоже всем известная процедура - добавляем отчет из файла и выбираем размещение в подсистемах.
Так как это отчет и он совместим с подсистемой вариантов отчетов, то в настройках доступна вкладка "Варианты отчетов". Пока мы не запишем элемент - она недоступна.
После записи система позволит отобразить список вариантов.
Эти варианты были сформированы из настроек схемы компоновки отчета.
Но что это за варианты и где они в системе хранятся?
Под спойлером выше были показаны два варианта отчета, которые БСП сформировала автоматически. Они были получены из настроек вариантов схемы компоновки. В системе они сохраняются в виде элементов справочника "Варианты отчетов", в том самом справочнике, о котором мы уже говорили.
В корне конфигурации ERP (как минимум с версии 2.2) для свойства "Хранилище вариантов отчетов" установлен объект метаданных "ХранилищаВариантов.ХранилищеВариантовОтчетов". То есть, стандартное хранилище для сохранения настроек отчетов не используется. При этом в стандартных событиях этого хранилища переопределены события загрузки и сохранения настроек, в которых алгоритмы используют уже справочник "Варианты отчетов". Таким образом, подсистема перевела весь функционал по работе с вариантами отчетов на собственный справочник.
При этом, если варианты предопределены в схеме компоновки, то сами настройки в справочнике не сохраняются. Это и понятно - зачем их сохранять, если они есть в самой компоновке данных. Однако, если пользователь сохранит свой вариант, то настройки компоновки будут записаны в реквизит "Настройки" этого справочника (в виде хранилища значений).
Еще одной важной частью подсистемы является общая форма "ФормаОтчета", которая предоставляет расширенный функционал работы с отчетами. Если в объекте отчета (внешнем или встроенном в конфигурацию) нет явно заданной формы, то будет использоваться именно она. Достигается это за счет установки основных форм в корне конфигурации.
Кроме основной формы отчета, подсистема также содержит формы для настроек и выбора варианта, но в нашем случае эту часть подсистемы мы не будем рассматривать. Вот так выглядит форма отчета из подсистемы БСП.
И, кстати, Вы заметили, что мы переопределили событие "ПриКомпоновкеДанных" отчета и сделали полностью программное формирование. При этом отчет также формируется в фоновом режиме. В обычном случае, если сделать программное формирование отчета, то он блокирует основной интерфейс при выполнении.
Таким образом, подсистема "Варианты отчетов" позволяет разрабатывать и управлять отчетами эффективно за счет дополнительного функционала:
- Варианты отчетов и их настройки хранятся в справочнике "Варианты отчетов", что позволяет ими гибко управлять (видимость, права доступа, администрирование настроек) и хранить дополнительную информацию для них.
- Стандартизированные формы отчета и настроек создают единый интерфейс для работы с отчетами со стандартным набором функций, а также выстраивают удобную работу с "тяжелыми" отчетами за счет формирования в фоне любых произвольных отчетов за счет использования подсистемы "Длительные операции".
Пример был сделан для внешнего отчета, но встроить его в конфигурацию не составит труда. Фактически нужно еще меньше действий, но потребуется обновление конфигурации.
Для встраивания отчета в конфигурацию с подсистемой "Варианты отчетов" достаточно сделать несколько простых шагов.
Вставляем внешний отчет из файла.
И получаем тот же самый отчет, но уже в составе конфигурации. Для наглядности добавил к имени постфикс "Встроенный". То же самое сделал для вариантов отчета в настройке схемы компоновки данных.
Теперь перейдем к настройкам.
Выбираем подсистему "Закупки" для работы отчета.
Именно к этой подсистеме отчет будет привязан.
В общем модуле "ВариантыОтчетовПереопределяемый" в процедуре "НастроитьВариантыОтчетов" добавим описание обоих вариантов нашего отчета:
С помощью опции "ВидимостьПоУмолчанию" мы включили отображение отчета в панели отчетов для всех его вариантов. По умолчанию видимость включается только для первого основного варианта.
Ура, ура, ура! Отчет теперь виден в пользовательском интерфейсе.
И даже работает! Было не сложно :)
Дополнительно можно настраивать различные параметры (права доступа, отображение в панелях отчетов и многое другое), но сейчас на этом не останавливаемся. Более подробная информация есть на ИТС, в демобазах БСП и в других статьях на Инфостарт.
Конечно, все "внутренности" подсистемы мы не рассматриваем, но основная часть теперь должна быть понятна. А теперь поговорим о типичной ситуации в разработке отчетов, с которой приходится часто сталкиваться.
Обычная ситуация
Вроде все просто и никаких проблем не ожидается. Но давайте сделаем те же самые действия на другой конфигурации, например на Бухгалтерии КОРП 3.0.67.70 (не самая новая версия, но подойдет). Добавим как внешний отчет, так и внутренний.
Внешний отчет удалось добавить, а также настроить расположение в подсистеме "Продажи" и даже запустить. Вроде бы все работает, но на самом деле не так как надо:
- Для отчета недоступны варианты отчетов. Их нет не только в интерфейсе элемента внешнего отчета, но и в справочнике "Варианты отчетов" новых элементов не добавилось.
- Отчет использует общую форму отчетов подсистемы, но не весь функционал. Например, фоновое выполнение отчета недоступно.
Встроить отчет в конфигурацию мы смогли (добавлен элемент отчета, настроена подсистема и добавлен код описания вариантов в общий переопределяемый модуль). Запускаем с ключом обновления БСП и .
Думаю, по описанию ошибки Вы уже догадались что же произошло.
Примечание: в новых версиях БСП при добавлении отчета без указания хранилища вариантов отчетов появляется предупреждение:
Свойство отчета "Хранилище вариантов" не заполнено.
Сохранение (выбор) вариантов отчета будет работать в ограниченном режиме.
Обратитесь к разработчику дополнительного (внешнего) отчета.
Поэтому теперь ошибиться с настройками еще сложнее. Если, конечно, не игнорировать данное предупреждение.
Вы будете неприятно удивлены результату - отчеты не только не сформировали элементы справочника "Варианты отчетов", так еще и не выполняются в фоновом режиме, а также не отображаются в панели отчетов. А попытка встроить отчет в конфигурацию вообще приводит к ошибке при запуске базы с ключом обновления БСП.
Только форма отчета типовая, но остальное работает не как ожидалось. В чем же дело?
Что здесь не так и как быть
Ответ достаточно прост. Помните, в кратком описании принципа работы подсистемы говорилось, что она использует собственное хранилище вариантов отчетов, которое переопределяет работу с настройками на справочник "Варианты отчетов". В ERP это хранилище используется по умолчанию, так как оно установлено в качестве основного хранилища вариантов в настройках корня конфигурации. Сравните эти настройки с бухгалтерией.
В ERP хранилище вариантов отчетов по умолчанию установлено, а в Бухгалтерии нет.
Нет хранилища вариантов - нет и хранения настроек в справочнике "Варианты отчетов", и нет доступа ко всем функциям подсистемы.
То есть, в бухгалтерии в качестве хранилища вариантов отчета по умолчанию используется не хранилище вариантов из БСП, а стандартное хранилище настроек. Именно поэтому отчеты и не смогли использовать возможности подсистемы "Варианты отчетов".
Просто, потому что в свойствах отчета достаточно явно указать хранилище вариантов отчетов.
Для встроенного в конфигурацию отчета это делается здесь.
Для внешнего отчета это уже не так интуитивно понятно.
Теперь отчеты подходят для работы с подсистемой.
Но есть небольшая (а может и большая) сложность - если отчет был уже ранее добавлен и пользователи сохраняли свои варианты, то после таких манипуляций все настройки будут потеряны.
Для корректного исправления ситуации лучше всего изменения хранилища вариантов выполнять следующим образом.
В первую очередь, нужно проверить - есть ли для отчета нестандартные (созданные пользователями) варианты отчетов, хранящиеся в стандартном хранилище настроек отчетов. Если их нет - отлично! Просто обновите отчет.
Если же пользовательские варианты уже есть, то установка нового хранилища вариантов сделает эти настройки недоступными для использования. Вас может ожидать шквал заявок от сотрудников :)
Чтобы этого избежать, можно конвертировать настройки стандартного хранилища вариантов в элементы справочника "Варианты отчетов". Пример такого скрипта ниже.
Это не законченный вариант, т.к. практика показывает, что конвертация вариантов отчетов сильно отличается от конфигурации, набора существующих вариантов, прав доступа и многого другого. Но принцип работы должен быть понятен.
В демобазах БСП Вы можете найти обработку "ПереносВариантовОтчетов", которая также позволяет конвертировать варианты. Она не имеет гибких настроек и используется при внедрении подсистемы вариантов отчета. Для точечной конвертации она не подойдет, но для изучения работы подсистемы подходит идеально.
Итого, при использовании подсистемы вариантов отчетов нужно обязательно проверять используется ли хранилище вариантов отчетов из БСП в отчете. Для использования полного функционала подсистемы его обязательно нужно включать. Если в конфигурации подсистема внедрена частично, то в отчетах (внешних и встроенных) необходимо указывать хранилище вариантов явно.
При исправлении хранилища вариантов у отчета все старые настройки пользователей могут быть потеряны, поэтому изменение хранилища настроек должно происходить осторожно.
Немного нюансов
При использовании подсистемы "Варианты отчетов" может возникнуть интересная ситуация в процессе разработки. Допустим, у вас есть внешний отчет (пусть будет тот самый отчет для ERP из примера выше). Он уже был добавлен в дополнительные отчеты и обработки и некоторое время использовался.
Теперь появилась необходимость изменить настройки отчета. Вы изменяете их в конфигураторе, сохраняете отчет, открываете в пользовательском режиме для проверки и . барабанная дробь . при открытии настройки не изменились.
Подобная ситуация может также быть, если Вы изменили настройки компоновки вариантов в конфигураторе, обновили информационную базу, но при открытии отчета снова никаких изменений не увидите.
Причина также проста - настройки хранятся в справочнике "Варианты отчетов". При внесении изменений в конфигураторе настройки в самом справочнике, конечно же, не обновляются. Поэтому в отчете и не видно изменений.
- Для внешних отчетов:
- Обновить внешний отчет в справочнике "Дополнительные отчеты и обработки", после чего настройки предопределенных вариантов обновятся.
- На тестовом окружении изменить имя отчета, добавив например цифру. В итоге созданные настройки в справочнике не будут использоваться.
- Для встроенных отчетов:
- После применения изменений конфигурации запустить обновление информационной базы со специальным ключом запуска БСП.
- Отдельно запустить обновление данных вариантов отчета с помощью скрипта.
Дополнительной сложностью могут служить пользовательские варианты отчетов, которые автоматически не обновятся при внесении изменений в сам отчет. Тут придется продумывать варианты решения:
- Выпустить полностью новую версию отчета с новыми вариантами, которая не будет поддерживать существующие пользовательские варианты.
- Очистить все пользовательские варианты для измененного отчета.
- Написать обработку, которая исправит настройки существующих вариантов отчетов пользователей
Варианты решения выбирать только Вам. В остальном, особых проблем и нюансов нет. Подсистема стоит того, чтобы ее использовать и не изобретать велосипеды.
Вот и все
Теперь Вы знаете немного магии из мира БСП, хотя уверен, что для многих это не стало открытием. Надеюсь, что информация будет полезна и сэкономит время в случаях, когда от разработчиков можно услышать:
- Платформа создала кэш настроек отчета, сейчас его почищу. Хм, а не помогает. Компьютер перезапущу!
- Я напишу свой механизм управления вариантами отчетов. Тот, что в БСП, глючит сильно.
- Я делаю отчеты с помощью обработок, что еще за БСП.
И да, всех проблем с отчетами можно было бы избежать, если изучить официальную документацию.
Речь пойдет об отчетах, созданных на базе СКД (на всякий случай пишу, если еще остались люди, которые делают отчеты не на СКД).
Добавить отчет в типовую конфигурацию 1С, построенную на базе БСП, можно одним из следующих способов:
Добавляемый отчет может быть:
Вроде все должно быть просто и интуитивно понятно, но есть нюансы, и в каждом случае добавление происходит по разному. В общем, разработчики БСП и других типовых продуктов не дают соскучиться J .
Варианты отчетов
Прежде чем приступить к описанию добавления отчетов, хочется сказать несколько слов о вариантах.
Варианты отчетов - это встроенный механизм СКД, который позволяет создавать для отчета произвольное количество предопределенных и пользовательских вариантов. По своей сути варианты – это отдельные отчеты, созданные на базе одной и той же системы компоновки данных.
Существует отдельная подсистема БСП, для управления вариантами отчетов, которая встроена во все типовые конфигурации. Подсистема предоставляет общее хранилище вариантов, общие формы для вывода и настройки отчетов, механизмы для отображения отчетов – формирование специальных панелей для каждого раздела системы. Пользователь может управлять настройками предопределенных вариантов отчетов, создавать и настраивать собственные варианты в режиме 1С Предприятие. Также подсистема позволяет создавать контекстные отчеты, привязанные к определенным объектам метаданных.
Для каждого отчета существует основной предопределенный вариант. В дальнейшем, говоря об отчете, я буду подразумевать именно его основной вариант.
Общая сравнительная таблица:
Тип добавления
В основную конфигурацию
В расширение конфигурации
В качестве внешнего отчета
Обновление вспомогательных данных (идентификаторы объектов)
Обновление вспомогательных данных (варианты отчетов)
Предопределенные настройки вариантов
Общий модуль: ВариантыОтчетовПереопределяемый
Модуль менеджера отчета
Возможность добавление обработчиков событий формы
Указывается в общем модуле: ВариантыОтчетовПереопределяемый
Указывается в модуле менеджера отчета:
ПриОпределенииНастроек
Доступна по умолчанию
Описание назначения для контекстного отчета
Модуль менеджера отчета, модуль менеджера объекта назначения
Модуль менеджера отчета
Модель объекта отчета
Описание основного варианта (по умолчанию)
Свойство отчета «Пояснение»
Добавление пользовательских вариантов отчета
Добавление нового отчета в основную конфигурацию
Рассмотрим добавление отчета в основную конфигурацию. В более старых конфигурациях типа УТ 10.3, УПП все было предельно просто. Добавляешь отчет, выводишь его в меню интерфейса или на панели быстрого доступа, и все работает.
В новых все несколько сложнее, и есть свои нюансы.
Для того, чтобы отчет выводился в основном окне раздела в группе «Отчеты», достаточно просто включить отчет в необходимую подсистему.
Однако, в этом случае, отчет не будет виден на специальной панели отчетов, которую предоставляет БСП. Панель открывается при переходе по ссылке «Отчеты по <Наименование раздела>» из каждого раздела системы:
Отчеты выводятся с разбивкой по подгруппам согласно иерархии подсистем, и имеют описания. Причем , могут быть выведены несколько вариантов одного и того же отчета. Если просто добавить отчет в конфигурацию и включить в нужную подсистему, отчет не будет виден в указанной панели. Отчет будет доступен только в группе «Отчеты» основного окна раздела. Кстати, не так давно, он бы даже не работал, пока не будут обновлены идентификаторы объектов метаданных.
Обновить идентификаторы можно одним из трех способов:
- Запустить 1С Предприятие в режиме обновления ИБ, задав параметр запуска: «ЗапуститьОбновлениеИнформационнойБазы»:
- Увеличить номер версии конфигурации.
- Воспользоваться обработкой из состава БСП: «Обновление вспомогательных данных»
В текущих версиях, идентификаторы обновляются при запуске 1С в пользовательском режиме автоматически . Наконец-то разработчики сделали это, слава богам!
Однако, для того, чтобы отчет, добавленный в основную конфигурацию появился на панели отчетов, все же необходимо обновить вспомогательные данные вручную, выбрав пункт «Варианты отчетов»:
После выполнения этих действия, отчет будет добавлен в специальные справочники: «Варианты отчетов» и «Предопределенные варианты отчетов», и его основной вариант будет виден в панелях отчетов согласно указанной подсистемы.
Конечно, все дальнейшие настройки, такие как добавление описания, вывод отчета или других его вариантов в другие подразделы или панели отчетов, можно выполнить непосредственно в пользовательском режиме, перейдя по ссылке «Все отчеты»:
Но, более правильно указать основные (предопределенные) настройки в конфигурации. Тем более, что некоторые виды настроек, например видимость варианта отчета в зависимости от функциональных опций, нельзя настроить в пользовательском режиме.
Настройки вариантов отчетов задаются в процедуре общего модуля: «ВариантыОтчетовПереопределяемый >> НастроитьВариантыОтчетов». Здесь описаны все типовые отчеты и их варианты. Все настройки необходимо создавать для двух объектов: «Описание отчета» и «Описание варианта», которые можно получить из общего списка настроек, переданных в процедуру:
Объект «ОписаниеОтчета» имеет следующие свойства:
Включен - если свойство имеет значение «ложь», отчет не регистрируется в справочнике «Варианты отчетов».
ОпределитьНастройкиФормы – свойство определяет наличие в модуле объекта отчета экспортной процедуры « ОпределитьНастройкиФормы ». В данной процедуре указывается наличие дополнительных обработчиков для событий модуля формы отчета, которые также должны присутствовать в модуле объекта отчета:
Объект «ОписаниеВарианта» имеет следующие свойства:
Описание - Описание варианта отчета, которое выводится на панели отчетов.
ВидимостьПоУмолчанию - если свойство имеет значение «ложь», вариант не виден по умолчанию в панели отчетов, но в справочнике «Варианты отчетов» он регистрируется.
Размещение – настройка размещения отчета. По умолчанию, коллекция содержит все подсистемы, выбранные для отчета. Можно добавить новые подсистемы для размещения или удалить существующие. Дополнительно, можно указать важность размещения: «Важный» или «СмТакже»:
ФункциональныеОпции – подключенные к команде вывода варианта отчета функциональные опции:
НастройкиДляПоиска – дополнительные сведения для поиска варианта отчета
Для вступления настроек в силу, требуется обновить вспомогательные данные, выбрав пункт «Варианты отчетов».
В пользовательском режиме, можно переопределить эти настройки для текущего пользователя или всех пользователей системы. Тем не менее, всегда остается возможность вернуться к предопределенным настройкам, заданным в конфигурации:
Добавление нового отчета в расширение конфигурации
На первый взгляд, добавление отчета в расширении не должно отличаться от его добавления в основную конфигурацию, но это не так.
Во-первых, для того, чтобы отчет был виден на панели отчетов, не нужно выполнять обновление вспомогательных данных. Необходимая информация в справочники: «Варианты отчетов» и «Предопределенные варианты отчетов» добавляется автоматически, при начале работы системы. Я думаю логика разработчиков следующая: расширение может подключить обычный пользователь в режиме 1С Предприятия. И он не должен знать о необходимости обновлении вспомогательных данных.
Для отчетов, добавленных в расширениях, также существует возможность описания предопределенных настроек: описание, подсистемы, функциональные опции. Однако, эти настройки выполняются не в переопределяемом общем модуле, а непосредственно в модуле менеджера отчета:
Все настройки аналогичны тем, которые выполнялись для отчетов основной конфигурации. Отличие только в том, что объект «НастройкиОтчета» уже передан в процедуру в качестве параметра.
Для применения созданных настроек обязательно должен быть установлен параметр «НастроитьВариантыОтчета» в экспортной процедуре модуля менеджера отчета «ПриОпределенииНастроек»:
Если флаг установлен, предопределенные настройки обновляются автоматически, без необходимости обновления вспомогательных данных.
В этой же процедуре указывается наличие дополнительных обработчиков событий модуля формы отчета:
На заметку. Для отчетов созданных в расширениях, есть возможность указания описания для основного варианта без использования менеджера отчета. Для задания описания «по умолчанию» используется свойство отчета «Пояснение»:
Добавление контекстного отчета в основную конфигурацию или в расширение
Алгоритм добавления контекстных отчетов одинаков для отчетов созданных в основной конфигурации и для отчетов, созданных в расширениях.
В обоих случаях, необходимо определить экспортную процедуру «ПриОпределенииНастроек» в модуле менеджера отчета, и указать объекты назначения:
Сами команды необходимо описать в отдельной процедуре:
Основные свойства команды:
Представление – наименование команды в интерфейсе объекта назначения,
КлючВарианта – идентификатор варианта отчета компоновки данных, который требуется запустить.
Дополнительные свойства команды:
Важность - группы в подменю «Отчеты», в которой следует вывести команду открытия отчета. Доступные значения: "Важное", "Обычное" и "СмТакже".
Порядок - п орядок размещения отчета по отношению к другим отчетам.
СочетаниеКлавиш - с очетание клавиш для быстрого открытия отчета (тип «СочетаниеКлавиш».
ВидимостьВФормах - и спользуется для указания перечня форм, в которых требуется выводить отчет. По умолчанию, отчет выводится во всех формах объекта, подключенных к БСП.
ФункциональныеОпции - имена функциональных опций, определяющих видимость команды открытия отчета в форме.
УсловияВидимости – дополнительные условия, о пределяющие видимость команды отчета (массив). Для добавления новых условий рекомендуется использовать процедуру общего модуля «ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(Команда, Реквизит, Значение, Знач ВидСравнения = Неопределено)».
Параметр «Реквизит» - это имя реквизита объекта назначения.
ДополнительныеПараметры – можно указать дополнительные параметры, и потом их обработать в переопределенном обработчике события модуля формы отчета «ПриСозданииНаСервере».
Ссылка на объект назначения передается в контекстный отчет в качестве параметра формы «ПараметрКоманды» . Для указания отбора по переданному значению, необходимо переопределить событие модуля формы отчета «ПриСозданииНаСервере», и добавить значение параметра в структуру «ФормаПараметры.Отбор»:
При необходимости можно обработать данные, переданные в свойстве команды «ДополнительныеПараметры»:
Примечание. Описывать команды для вывода контекстных отчетов можно не только в модуле менеджера самого отчета, но и в модуле менеджера объекта назначения, в экспортной процедуре «ДобавитьКомандыОтчетов». В этом случае, команда должны иметь дополнительный обязательный параметр «Менеджер», в котором необходимо указать полное имя менеджера отчета. Контекстные отчеты в типовых конфигурациях описаны именно таким способом.
Добавление отчетов с помощью механизма внешних отчетов и обработок
Процесс добавления общих и контекстных отчетов с использованием механизма дополнительных отчетов и обработок подробно описан во многих статьях, например в этой .
Я не думаю, что у кого-то возникают сложности при добавлении отчетов таким способом. Отмечу лишь, что в данном случае не нужно обновлять вспомогательные данные. Также, нет возможности указания предопределенных настроек для вариантов отчета. Все настройки вариантов указываются в пользовательском режиме, прямо в форме элемента дополнительного отчета:
Возможность добавления в модуль объекта обработчиков событий формы отчета доступна по умолчанию.
Если я ошибаюсь, и существуют вопросы и непонятные моменты в работе механизма дополнительных отчетов и обработок, пишите в комментариях, и я напишу отдельную статью на эту тему.
Дополнительно хочу отметить, что варианты отчетов, созданные в пользовательском режиме настраиваются одинаково для любого из способов добавления основного отчета.
На этом все, спасибо за внимание, и за то, что читаете мои статьи J .
Другие мои статьи по использованию механизмов БСП в типовых конфигурациях 1С
Поток вопросов по СКД в Мастер-группе не прекращается. Сегодняшняя подборка тому подтверждение. Вопросы связаны и с платформенными изменениями самой системы компоновки данных, и с развитием БСП, и с расширением практик применения СКД в современных типовых решениях.
Вопрос №1: “Почему могут быть не доступны варианты отчетов на СКД в пользовательском режиме?”
Несколько раз сталкивался с тем, что варианты отчета, настроенные в конфигураторе, в пользовательском режиме не видны или виден только Основной вариант. Из этого я даже сделал вывод, что больше одного предопределенного варианта делать не имеет смысла. Судя по всему, вывод мой неправильный, в тестовой базе не воспроизводится. Почему могут быть не видны варианты и как это “лечить”?Ответ
Если такая база базируется на БСП, то тут еще могут влиять механизмы БСП. Например, пользователю по ограничениям доступа недоступен конкретный вариант отчета, поэтому он его и не видит. Также для подсистемы БСП “Варианты отчетов” в общем модуле ВариантыОтчетовПереопределяемый в процедуре НастроитьВариантыОтчетов нужно явно описывать используемые варианты отчетов и запустить приложение с ключом ЗапуститьОбновлениеИнформационнойБазы.
Пример подключения отчетов к подсистеме “Варианты отчетов” есть на странице нашего сайта – Подключение отчетов к подсистеме “Варианты отчетов”. Возможно, в вашем случае какое-то из описанных действий не было выполнено.
Вопрос №2: “Можно ли делать отбор на уровне детальных записей по вычисляемым полям в СКД?”
(нажмите, чтобы увеличить картинку)
Ответ
Ошибка не будет возникать, если для отбора на уровне детальных записей изменить настройку Применение – указать значение “После группировки или для иерархии”:
(нажмите, чтобы увеличить картинку)
Появление ошибки связано с использованием в выражении для вычисляемого поля функции ВычислитьВыражение с указанными параметрами Начало и Конец, которая должна быть вычислена на основании только некоторых записей группировки.
Вопрос №3: “В каком случае можно установить значения параметров в процедуре ПередКомпоновкойМакета модуля менеджера отчета?”
В видео-уроке есть пример, где параметры отчета определяются и устанавливаются в модуле менеджера этого отчета в процедуре ПередКомпоновкойМакета(). Мне непонятно вот что:Ответ
- В этом видеоуроке демонстрируется типовая конфигурация Бухгалтерия предприятия. Она базируется на Библиотеке стандартных подсистем (БСП), которая содержит отдельную подсистему для работы с отчетами. В этой подсистеме реализовано большое количество универсальных методов. Рассмотрим на примере отчета из видеоурока. В модуле отчета есть код, который вызывает метод общего модуля:
А в общем модуле БухгалтерскиеОтчетыВызовСервера есть функция ПодготовитьОтчет, в которой содержится следующий код:
Следовательно, в модуле менеджера отчета можно доработать компоновщик, например, установить значения параметров. Инициируется этот вызов в процедуре ПриКомпоновкеРезультата.
Подобные фрагменты кода есть и в других конфигурациях, основанных на БСП, например, в УТ 11. Получается, что для доработок отчетов на БСП есть универсальные точки входа, где можно размещать свой код. В отчетах для конфигураций не на БСП этот подход работать не будет.
- Это зависит от того, для какой конфигурации разрабатывается отчет. Если конфигурация создается с нуля, то такой метод из модуля менеджера просто некому будет вызвать. Если конфигурация базируется на БСП, то можно “подсмотреть” в типовых отчетах, как они разработаны. Также в документации по БСП, размещенной на сайте ИТС, можно изучить подробное устройство подсистемы Варианты отчетов.
- Да, во внешних отчетах и обработках в принципе не существует модуля менеджера.
Вопрос №4: “Как вывести изображение в колонтитулах отчета на СКД?”
Подскажите, есть ли возможность в колонтитулах отчета выводить изображение (например, логотип фирмы)?Ответ
Да, начиная с платформы 8.3.15 появилась возможность добавить картинку в колонтитул.
В конфигураторе это можно сделать в меню Таблица – Настройки печати – Колонтитулы:
(нажмите, чтобы увеличить картинку)
Вопрос №5: “Каким образом можно программно получать настройки отчета на СКД?”
Насколько я понимаю, чтобы учесть значения, заданные пользователем на форме, нужно получать настройки так:Но во многих видео настройки получаются такой строкой:
И далее по этим настройкам формируется отчет. Почему так? Зачем нам могут быть нужны настройки, которые не содержат значений, заданных пользователем? В каких случаях и каким способом нужно получать настройки?
Ответ
Чтобы решить, какие именно настройки следует использовать, нужно задавать себе вопрос “Отчет с какими настройками мне нужно сформировать для решения поставленной задачи?”
- Чаще всего на практике нужно учитывать пользовательские настройки, значит, используем метод:
В таком случае из компоновщика получаем настройки, которые уже включают в себя и пользовательские, и фиксированные настройки. С этими “результирующими” настройками компонуем отчет. В методе ПриКомпоновкеРезультата в модуле отчетов чаще всего встречается именно этот вариант
- Если нужно взять настройки не из компоновщика, а из схемы компоновки, то воспользуемся настройками по умолчанию:
Такой вариант встречается при компоновке из программного кода, например, когда на форме обработки компоновщик вообще не отображается. В таком случае удобно обратиться к настройкам, описанным непосредственно в схеме компоновки
- СКД часто используется в обработках – для заполнения ТЧ, списка справочников или документов для обработки. Настройки компоновщика размещаются на форме, пользователь может их редактировать – настраивать отборы по своему усмотрению. А пользовательские настройки в таком случае не используются, поскольку мы не отчет разрабатываем, а всего лишь обработку. Значит, можно взять настройки из компоновщика:
Профессиональная разработка отчетов в 1С 8.3 на СКД .
Комментарии / обсуждение (2):
Добрый день!
Подскажите пожалуйста, проблема с округлением Вычисляемого поля в СКД:
Добрый день!
Без данных и конкретного отчета, конечно, трудно определить причину.
Пришла в голову идея, что разные результаты получаются, потому что
Пример.
Предполагаю, что разные числа перемножаются, поэтому и результаты разные.
Читайте также: