1с не указан вариант отчета
В программах 1С реализовано множество различных отчетов. Но не всегда они могут удовлетворить пользователя в поиске и формировании нужной информации. В данной публикации мы расскажем о таком виде отчета, как «Универсальный отчет», который есть и в 1С: Бухгалтерия предприятия и 1С: ЗУП. Ранее мы даже снимали видеоурок по работе с ним, однако все равно многие бухгалтеры незаслуженно обходят этот отчет стороной, предпочитая по-старинке сделать необходимый отчет вручную. Поэтому наглядно покажем все достоинства универсального отчета на примере программы 1С: ЗУП ред. 3.1.
«Универсальный отчет» можно открыть двумя способами:
• в разделе «Администрирование»;
• используя меню «Все функции».
Вариант 1.
Перейдите в раздел «Администрирование» - «Печатные формы, отчеты и обработки». Нажмите на гиперссылку «Универсальный отчет».
Вариант 2.
Открыть отчет через панель «Все функции…». Это немного дольше, но здесь вы можете найти еще много чего интересного для себя.
Раздел открывается в кнопке меню «Сервис и настройки» строки заголовка – в виде «кнопки-стрелочки».
Что делать, если у вас того пункта нет?
Панель «Все функции…» включается в меню «Настройки» - «Параметры».
Откройте этот раздел.
Установите галочку «Отображать команду «Все функции» и нажмите «Ок». Этот пункт появится у вас в выпадающем верхнем меню.
В разделе «Все функции» пользователь может открыть и посмотреть любой документ, справочник, отчет, регистр и т.п., имеющийся в программе. Не все они отображены на рабочем столе и многие скрыты от пользователя. Все объекты программы сгруппированы по разделам.
Разверните узел «Отчеты». В разделе вы увидите все отчеты программы, выстроенные по алфавиту. Пролистав список ниже, найдите «Универсальный отчет» и откройте его.
Сразу отметим, если вам отчет понравится и вы планируете им часто пользоваться, можете добавить его в «Избранное». Для этого нажмите на «звездочку» у его названия.
Этим вы облегчите в дальнейшем доступ к отчету: нажмите «звездочку» на строке заголовка программы и откроется пункт «Избранное» с сохраненной туда формой отчета.
Рассмотрим, какие возможности представляет нам этот отчет и на основании чего он формируется.
Инструментом «Универсальный отчет» можно сделать любую выборку информации из:
• регистров расчета; планов видов регистров.
Рассмотрим некоторые примеры и принцип его работы.
«Универсальный отчет» по данным справочников
Составим отчет по данным справочника «Физические лица».
Отчет можно сформировать по данным любого справочника.
Шаг 1. Выберите объект для составления отчета – «Справочник» и укажите информацию какого справочника хотите получить. В нашем примере справочник «Физические лица».
При первом формировании отчета не надо углубляться в настройки и делать какие-то отборы. Посмотрите информацию, которую выведет отчет, а далее при необходимости можете отобрать нужную.
Нажмите «Сформировать». Отчет нам «выдал» информацию из справочника физические лица: дату рождения, пол, ИНН, СНИЛС и т.п.
Давайте уберем не нужные столбцы.
В отчет выведены данные лишь те, которые мы отметили в настройке:
Используя такой вариант отчета, пользователь может проверить, все ли сведения внесены в справочники.
Проверим, у всех ли сотрудников внесен адрес электронной почты, для автоматической отправки расчетных листков.
Шаг 4. Снимите лишние отметки с полей. В поле для вывода информации мы добавили вывод значения электронной почты из справочника. Пользователь может добавлять и удалять поля отчета.
Сформируйте отчет – «Закрыть и сформировать».
Из отчета видно, что не у всех сотрудников внесены адреса электронной почты для рассылки расчетных листков.
Таким способом можно выбирать любые данные из справочников – для проверки сведений, для формирования списков для поздравлений и т.п.
Посмотрим, какую информацию можно получить еще с помощью «Универсального отчета».
Следующий вариант – это данные по документам.
«Универсальный отчет» по данным документов
В отличие от предыдущей настройки для формирования отчета по документам добавляются поля выбора периода.
Например, сформируем информацию по документу «Отпуск» за период с начала текущего года.
Шаг 1. Установите период отчета, укажите «Документ» и название документа – «Отпуск». Проверим отчет – нажмите «Сформировать».
Шаг 2. Откройте «Настройки». Сгруппируем наши документы по месяцам начисления.
Перейдите на закладку «Структура». Изначально здесь только одна строка «Детальные записи».
Выделите ее и нажмите кнопку «Обернуть ту строку в группировку по полю» и в открывшемся окне выберите поле для группировки. В нашем примере предложено по месяцам, т.е. выбираем поле «Период регистрации. Наша детализация должна выглядеть как на скриншоте – сначала «Период регистрации», а под ним со сдвигом «Детальные записи», т.е. строки с документами.
С помощью кнопок с закругленными стрелочками можно менять местами элементы группировки, а синими стрелками менять местами строки без группировки.
Шаг 3. Нажмите «Закрыть и сформировать» и посмотрите результат отчета.
В отчете информация по документу «Отпуск» сгруппирована по месяцу отражения начисления.
А в чем же разница, когда в разделе «Структура» записи стоят подряд (если бы мы просто добавили – «Добавить») или со сдвигом (группировка).
Шаг 4. Удалите настройку (кнопка-крестик) и добавьте поля снова – «Добавить». Группировку применять не будем, а лишь укажем – «Период регистрации» и «детальные записи».
Шаг 5. Нажмите «Закрыть и сформировать».
В основной части отчета информация выведена без группировки, но в верхней части сформированы итоги по месяцам.
Все варианты группировок и детализации можно комбинировать и придумать отчет по своему усмотрению.
Шаг 6. Выделите строку «Детальные записи» и нажмите кнопку «Сгруппировать» и выберите «Период регистрации». Так у нас период регистрации имеется просто строкой и дополнительно с группировкой детальных записей - иерархия.
Шаг 7. Сформируйте отчет с такой настройкой.
Мы объединили обе группировки в одном отчете.
Кроме выбора полей и группировки отчета, в настройке есть закладка «Отбор». В зависимости от выбора объекта отчета также, как и в любом другом отчете 1С, можно установить отбор по параметрам, допустимым для данного объекта. Например, отобрать данные по подразделению, организации и т.п.
Так пользователь может выбирать данные и группировать их по периодам из любых документов, введенных в программе.
«Универсальный отчет» по данным регистров сведений
Но кроме документов и справочников в программе имеются такие инструменты, как регистры. Записи, сформированные документами или справочниками, хранятся в регистрах сведений, накоплений и расчета. Пользователь не видит их, как может видеть документ или элемент справочника, но они существуют и на их основании формируются различные отчеты, хранится история изменения реквизитов справочников и т.п.
Рассмотрим некоторые примеры формирования отчета по данным регистров.
Регистр сведений – это объект конфигурации, позволяющий хранить данные в разрезе значений. Например, курсы валют – в разрезе валюты, графики работы сотрудников – в разрезе графиков, какие-либо настройки программы и т.п. Все записи хранятся в регистрах сведений и по любым записям выбранного регистра можно сформировать отчет и посмотреть данные.
Сформируем «Универсальный отчет» по регистру сведений «График работы сотрудников».
Шаг 1. Выберите вариант отчета – «Регистр сведений», укажите период и наименование регистра. В нашем примере – «График работы сотрудников».
Настройка последнего поля зависит от выбранных данных, потому вы можете просто поэкспериментировать, меняя вариант настройки и смотреть результат формирования отчета. Для примера выберем вариант «Срез последних».
Шаг 2. Нажмите «Сформировать». В отчете мы получили значения графиков работы каждого сотрудника.
Используя кнопку «Настройки» также, как мы рассматривали выше, можно убирать из отчета лишние колонки, добавлять данные и настраивать группировку. Все эти возможности зависят от выбранного регистра.
Не так давно мы рассматривали тему «Организация воинского учета в 1С: ЗУП». Давайте с помощью «Универсального отчета» и данных регистра сведений посмотрим, у всех ли сотрудников заполнены сведения о воинском учете.
Для этого достаточно выполнить следующие действия.
Шаг 3. Выберите наименование регистра сведений «Воинский учет» и нажмите «Сформировать».
В нашем примере данные внесены лишь у сотрудника Севрюков С.М. Судя по отчету, кадровику есть над чем поработать.
Сведения записываются в регистр не только при сохранении информации в справочниках, но и документами.
Например, возник вопрос: как посмотреть бухучет зарплаты сотрудника, в случае, если для разных сотрудников назначаются разные бухгалтерские проводки. Мы знаем, что для этих целей в программе есть документ «Бухучет начислений сотрудника».
И эти данные постоянно меняются. Как узнать, какой способ отражения установлен на текущий момент и по какому регистру мы можем получить эти данные.
Если вы в любом документе, в верхнем правом углу нажмете кнопку «Еще» и выберите команду «Движения документа», то увидите какие движения и по каким регистрам сформировал данный документ.
Данный документ внес записи в регистр сведений «Бухучет плановых начислений».
Если мы сформируем «Универсальный отчет» по данному регистру, мы получим сводные данные о бухучете плановых начислений сотрудников.
Шаг 4. Укажите «Регистр сведений» - «Бухучет плановых начислений» и нажмите «Сформировать».
Так мы можем посмотреть данные регистра сведений и по бухучету организаций (если их несколько), и бухучету подразделений, и по любым другим сведениям, имеющимся в программе. Выбираем регистр и нажимаем «Сформировать».
«Универсальный отчет» по данным регистров накопления
Кроме этого регистра в программе имеется такой регистр, как «Регистр накопления». Рассмотрим, что это и какие сведения по данным этого регистра мы можем получить в отчете.
Регистр накопления, в отличие от регистра сведений, накапливает числовые данные. В результате проведения документов эти данные увеличиваются и уменьшаются. На их основе формируются различные регламентированные отчеты. И зачастую возникает ситуация, когда пользователь не может понять, откуда взялась та или иная цифра в отчете, на помощь придет «Универсальный отчет», с выборкой данной по заданному регистру накопления.
Например, сформируем отчет по регистру накопления «Расчеты налогоплательщиков с бюджетом по НДФЛ».
По отчету можно проанализировать НДФЛ по датам получения дохода. Щелкнув дважды мышкой на ячейке с суммой и выбрав поле «Регистратор», можно посмотреть, каким документом зафиксирована запись в данный регистр.
Если суммы вызывают сомнения, зная, каким документом сделана запись, несложно найти ошибку.
Регистры – сложный механизм. Чтобы научиться и анализировать, необходимо понимать, что и откуда берется.
Еще раз напомним, об отчете «Движении документа» в кнопке «Еще» любого документа в 1С.
Просматривайте и анализируйте регистры, чтобы понимать логику их записей. Так, документ «Ведомость в кассу» формирует записи сразу по нескольким регистрам и все эти данные разойдутся по своим отчетам.
«Универсальный отчет» по данным регистра расчета»
Регистр расчета собирает и хранит расчет данных заработной платы. Он схож с регистром накопления, но вместе с ним задействован параметр «План вида расчета» и он периодический.
Регистр расчета представлен:
• регистр расчета «Начисления»;
• регистр расчета «Удержания».
Посмотрите «Отчет о движении документа «Начисление зарплаты и взносов». Помимо записей в регистры сведений и регистры накопления, последней строкой сделана запись в регистр расчета «Начисления».
И если сформировать «Универсальный отчет» по регистру расчета, выбрав вид «Начисления», получим собранные данные за указанный период.
В данном примере регистр расчета «Начисления» данные выбраны за месяц – сентябрь 2020 года.
Сформируем этот же вариант отчета с начала года. Данные регистра отражают в отчете сведения за указанный период.
Так, умело пользуясь таким инструментом как «Универсальный отчет», пользователь может получить любую информацию из программы 1С: будь то справочники, документы, записи регистров. И особое умение анализировать регистры 1С и их записи с помощью «Универсального отчета» облегчит работу бухгалтера и поможет с легкостью найти ошибки в других отчетах .
Добрый день!
Аналогичная проблема, начиная с отчетности за 1 квартал 2006: удается заполнить и сохранить только титульный лист Декларации по Прибыли. Ей присваивается автоматически вариант ОСНОВНОЙ. Потом открываю Приложение 2 Листа 2 "Расходы", заполняю, но сохранить не удается, т.к. статус ОСНОВНОЙ ВАРИАНТ автоматически не подцеплен и присвоить вариант тоже не дает: при нажатии на кнопку вариант, варианты не открываются.
Как решить проблему. Скоро сдавать баланс, а я опять не могу сохранить, значит не могу скинуть на дискетку. А без нее у нас не принимают отчетность!
К сожалению из Вас никто не называет ни конфигурацию проги, ни релиз (и вид) отчетности.
При сохранении титульного листа сообщает о успешном сохранении? Периоды у листов совпадают?
И сообщает, что всё успешно, и периоды совпадают.
Это всё только с отчётностью 2006, за прошлые года всё отлично работает.
Более того, старые формы (напр. 2005 года) нормально заполняются данными этого года при смене периода.
Тогда у вас должен образоваться файл НННННННН.rvs в каталоге ExtForms\\. (также можно воспользоваться обработкой "Обслуживание сохраненных данных отчетности" - в регл. отчетах). Возможно ошибка из-за файловой системы или прав доступа? Попробуйте поэксперементировать. Я бы посмотрел в отладчике почему не находит вариант.
"Вот кусок из файла ExtForms\RP06Q2.GRP\PRB07.ERT:
==================================================== ========================================
Процедура ФрмСписокСохрВариантов()
Перем Поз;
Перем НомСтр;
СохрВарианты.УдалитьВсе();
СохрДанные = СоздатьОбъект("СписокЗначений");
ШаблонПоиска = Лев(Строка(Дата2), 2) + Сред(Строка(Дата2), 4, 2) + "01";
НайденФайл = ФС.НайтиПервыйФайл(КаталогФормы + "\" + ?(СтрДлина(ШаблонПоиска) < 8, ШаблонПоиска + "*.rvs", ШаблонПоиска + ".rvs"));
Пока ПустаяСтрока(НайденФайл) = 0 Цикл
ЗначениеИзФайла(КаталогФормы+ "\" + НайденФайл, СохрДанные);
Если СохрДанные.РазмерСписка() > 0 Тогда
Если НЕ(Периодичность = СохрДанные.Получить("Периодичность")) Тогда
НайденФайл = ФС.НайтиСледующийФайл();
Продолжить;
КонецЕсли;
СтрСохрВарианта = СохрДанные.Получить("Вариант");
НомСохрВарианта = Сред(НайденФайл, СтрДлина(Найденфайл) - 5, 2);
// Формируем список сохраненных вариантов
Если ВариантыОтчета.Принадлежит(НомСохрВарианта) = 0 Тогда
// Такого варианта нет в спике. Добавляем.
СохрВарианты.ДобавитьЗначение(НомСохрВарианта, СтрСохрВарианта);
КонецЕсли;
КонецЕсли;
НайденФайл = ФС.НайтиСледующийФайл();
КонецЦикла;
// Сортируем список вариантов по расширению.
Если СохрВарианты.РазмерСписка() > 0 Тогда
// Сортируем варианты по убыванию порядкового номера варианта,
// т.е. обратно порядку создания (последний вариант всегда наверху)
СохрВарианты.Сортировать(1);
// Текущий вариант определяем как первый по порядку
Если ПустоеЗначение(НомерВариантаОтчета) = 1 Тогда
НомерВариантаОтчета = СохрВарианты.ПолучитьЗначение(СохрВарианты.РазмерСписка(), НазваниеВариантаОтчета);
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ФрмСписокСохрВариантов()
======================================================== ====================================
Я правильно понял, что перечень вариантов заполнения формируется здесь?
Вот в этом куске:
----------------------------------------
НайденФайл = ФС.НайтиПервыйФайл(КаталогФормы + "\" + ?(СтрДлина(ШаблонПоиска) < 8, ШаблонПоиска + "*.rvs", ШаблонПоиска + ".rvs"));
Пока ПустаяСтрока(НайденФайл) = 0 Цикл
ЗначениеИзФайла(КаталогФормы+ "\" + НайденФайл, СохрДанные);
Если СохрДанные.РазмерСписка() > 0 Тогда
Если НЕ(Периодичность = СохрДанные.Получить("Периодичность")) Тогда
НайденФайл = ФС.НайтиСледующийФайл();
Продолжить;
КонецЕсли;
----------------------------------------
проходятся три файла, но не один не подходит по параметру "Периодичность".
Требуемое значение - 1, а как узнать, какое в файле.
во всех трёх файлах есть подстрока вида:
,"Периодичность">
это какое значение - 0 или 2?
(сорри, пробелы поел форум)"
Варианты отчетов следует создавать когда есть необходимость анализировать в одной схеме компоновке данных различные настройки по структуре отчета. В этом случае создается отчет с одной схемой, но с несколькими вариантами отчетов.
Варианты отчетов создаются на закладке Настройки конструктора СКД. Однако, при использовании варианты отчетов в конфигурации Библиотеки стандартных подсистем следует обязательно заполнять описание варианта отчета, иначе эти варианты не будут отражаться в в подменю Еще общей формы отчета:
Рис 1 Отображение вариантов отчетов в общей форме отчета БСП 3.0
Описание Варианта отчетов
Для того, чтобы варианты отчета появились в списке вариантов формы при использовании стандартной подсистемы “варианты отчета” нужно выполнить ряд операции. Одна из них – Описание варианта в глобальной модуле ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов
Параметр Настройки – эта коллекция – используется для описания настроек отчетов и вариантов. Передается “как есть” из процедур НастроитьВариантыОтчетов и НастроитьВариантыОтчета.
используются 2 параметра : Отчет – Это ссылка отчета и КлючВарианта – Это имя варианта отчета как оно задано в схеме компоновки данных. Если ключ варианта не задан , то в списке вариантов отображаются все варианты.
Удалить Вариант Отчета
Вызов следующей процедуры подсистемы удаляет варианты указанного отчета или всех отчетов.
Можно также смотреть подробнее метод СтандартноеХранилищеНастроекМенеджер.Удалить в синтакс-помощнике. Для доступа к пользовательским настройкам отчетов объект этого типа должен быть получен из свойства глобального контекста ХранилищеПользовательскихНастроекОтчетов:.
Рис 2 Хранилище вариантов отчетов
Обработка обновления вспомогательнх данных
При разработке прикладных приложений на базе БСП часто потребуется воспользоваться служебной обработкой Обновление вспомогательных данных, особенно, при добавлении новых вариантов отчетов.
Рис 3 Фрагмент дерево метаданных обработок в конфигурации БСП 3.0
Окахывается, что не достаточно создать и описать новые варианты отчетов, чтобы они появились в списке вариантов отчета в форме отчета. Нужно обязательно запустить эту обработку, установив галочку на параметр “варианты отчета” как показано на следующей рисунке :
Вспомогательная обработка БСП “Обновление вспомогательнх данных”
Только полле вволнения данной процедуры все добавленные варианты отчета в конфигурации появится в списке варинтов отчетов.
Речь пойдет об отчетах, созданных на базе СКД (на всякий случай пишу, если еще остались люди, которые делают отчеты не на СКД).
Добавить отчет в типовую конфигурацию 1С, построенную на базе БСП, можно одним из следующих способов:
Добавляемый отчет может быть:
Вроде все должно быть просто и интуитивно понятно, но есть нюансы, и в каждом случае добавление происходит по разному. В общем, разработчики БСП и других типовых продуктов не дают соскучиться J .
Варианты отчетов
Прежде чем приступить к описанию добавления отчетов, хочется сказать несколько слов о вариантах.
Варианты отчетов - это встроенный механизм СКД, который позволяет создавать для отчета произвольное количество предопределенных и пользовательских вариантов. По своей сути варианты – это отдельные отчеты, созданные на базе одной и той же системы компоновки данных.
Существует отдельная подсистема БСП, для управления вариантами отчетов, которая встроена во все типовые конфигурации. Подсистема предоставляет общее хранилище вариантов, общие формы для вывода и настройки отчетов, механизмы для отображения отчетов – формирование специальных панелей для каждого раздела системы. Пользователь может управлять настройками предопределенных вариантов отчетов, создавать и настраивать собственные варианты в режиме 1С Предприятие. Также подсистема позволяет создавать контекстные отчеты, привязанные к определенным объектам метаданных.
Для каждого отчета существует основной предопределенный вариант. В дальнейшем, говоря об отчете, я буду подразумевать именно его основной вариант.
Общая сравнительная таблица:
Тип добавления
В основную конфигурацию
В расширение конфигурации
В качестве внешнего отчета
Обновление вспомогательных данных (идентификаторы объектов)
Обновление вспомогательных данных (варианты отчетов)
Предопределенные настройки вариантов
Общий модуль: ВариантыОтчетовПереопределяемый
Модуль менеджера отчета
Возможность добавление обработчиков событий формы
Указывается в общем модуле: ВариантыОтчетовПереопределяемый
Указывается в модуле менеджера отчета:
ПриОпределенииНастроек
Доступна по умолчанию
Описание назначения для контекстного отчета
Модуль менеджера отчета, модуль менеджера объекта назначения
Модуль менеджера отчета
Модель объекта отчета
Описание основного варианта (по умолчанию)
Свойство отчета «Пояснение»
Добавление пользовательских вариантов отчета
Добавление нового отчета в основную конфигурацию
Рассмотрим добавление отчета в основную конфигурацию. В более старых конфигурациях типа УТ 10.3, УПП все было предельно просто. Добавляешь отчет, выводишь его в меню интерфейса или на панели быстрого доступа, и все работает.
В новых все несколько сложнее, и есть свои нюансы.
Для того, чтобы отчет выводился в основном окне раздела в группе «Отчеты», достаточно просто включить отчет в необходимую подсистему.
Однако, в этом случае, отчет не будет виден на специальной панели отчетов, которую предоставляет БСП. Панель открывается при переходе по ссылке «Отчеты по » из каждого раздела системы:
Отчеты выводятся с разбивкой по подгруппам согласно иерархии подсистем, и имеют описания. Причем , могут быть выведены несколько вариантов одного и того же отчета. Если просто добавить отчет в конфигурацию и включить в нужную подсистему, отчет не будет виден в указанной панели. Отчет будет доступен только в группе «Отчеты» основного окна раздела. Кстати, не так давно, он бы даже не работал, пока не будут обновлены идентификаторы объектов метаданных.
Обновить идентификаторы можно одним из трех способов:
- Запустить 1С Предприятие в режиме обновления ИБ, задав параметр запуска: «ЗапуститьОбновлениеИнформационнойБазы»:
- Увеличить номер версии конфигурации.
- Воспользоваться обработкой из состава БСП: «Обновление вспомогательных данных»
В текущих версиях, идентификаторы обновляются при запуске 1С в пользовательском режиме автоматически . Наконец-то разработчики сделали это, слава богам!
Однако, для того, чтобы отчет, добавленный в основную конфигурацию появился на панели отчетов, все же необходимо обновить вспомогательные данные вручную, выбрав пункт «Варианты отчетов»:
После выполнения этих действия, отчет будет добавлен в специальные справочники: «Варианты отчетов» и «Предопределенные варианты отчетов», и его основной вариант будет виден в панелях отчетов согласно указанной подсистемы.
Конечно, все дальнейшие настройки, такие как добавление описания, вывод отчета или других его вариантов в другие подразделы или панели отчетов, можно выполнить непосредственно в пользовательском режиме, перейдя по ссылке «Все отчеты»:
Но, более правильно указать основные (предопределенные) настройки в конфигурации. Тем более, что некоторые виды настроек, например видимость варианта отчета в зависимости от функциональных опций, нельзя настроить в пользовательском режиме.
Настройки вариантов отчетов задаются в процедуре общего модуля: «ВариантыОтчетовПереопределяемый >> НастроитьВариантыОтчетов». Здесь описаны все типовые отчеты и их варианты. Все настройки необходимо создавать для двух объектов: «Описание отчета» и «Описание варианта», которые можно получить из общего списка настроек, переданных в процедуру:
Объект «ОписаниеОтчета» имеет следующие свойства:
Включен - если свойство имеет значение «ложь», отчет не регистрируется в справочнике «Варианты отчетов».
ОпределитьНастройкиФормы – свойство определяет наличие в модуле объекта отчета экспортной процедуры « ОпределитьНастройкиФормы ». В данной процедуре указывается наличие дополнительных обработчиков для событий модуля формы отчета, которые также должны присутствовать в модуле объекта отчета:
Объект «ОписаниеВарианта» имеет следующие свойства:
Описание - Описание варианта отчета, которое выводится на панели отчетов.
ВидимостьПоУмолчанию - если свойство имеет значение «ложь», вариант не виден по умолчанию в панели отчетов, но в справочнике «Варианты отчетов» он регистрируется.
Размещение – настройка размещения отчета. По умолчанию, коллекция содержит все подсистемы, выбранные для отчета. Можно добавить новые подсистемы для размещения или удалить существующие. Дополнительно, можно указать важность размещения: «Важный» или «СмТакже»:
ФункциональныеОпции – подключенные к команде вывода варианта отчета функциональные опции:
НастройкиДляПоиска – дополнительные сведения для поиска варианта отчета
Для вступления настроек в силу, требуется обновить вспомогательные данные, выбрав пункт «Варианты отчетов».
В пользовательском режиме, можно переопределить эти настройки для текущего пользователя или всех пользователей системы. Тем не менее, всегда остается возможность вернуться к предопределенным настройкам, заданным в конфигурации:
Добавление нового отчета в расширение конфигурации
На первый взгляд, добавление отчета в расширении не должно отличаться от его добавления в основную конфигурацию, но это не так.
Во-первых, для того, чтобы отчет был виден на панели отчетов, не нужно выполнять обновление вспомогательных данных. Необходимая информация в справочники: «Варианты отчетов» и «Предопределенные варианты отчетов» добавляется автоматически, при начале работы системы. Я думаю логика разработчиков следующая: расширение может подключить обычный пользователь в режиме 1С Предприятия. И он не должен знать о необходимости обновлении вспомогательных данных.
Для отчетов, добавленных в расширениях, также существует возможность описания предопределенных настроек: описание, подсистемы, функциональные опции. Однако, эти настройки выполняются не в переопределяемом общем модуле, а непосредственно в модуле менеджера отчета:
Все настройки аналогичны тем, которые выполнялись для отчетов основной конфигурации. Отличие только в том, что объект «НастройкиОтчета» уже передан в процедуру в качестве параметра.
Для применения созданных настроек обязательно должен быть установлен параметр «НастроитьВариантыОтчета» в экспортной процедуре модуля менеджера отчета «ПриОпределенииНастроек»:
Если флаг установлен, предопределенные настройки обновляются автоматически, без необходимости обновления вспомогательных данных.
В этой же процедуре указывается наличие дополнительных обработчиков событий модуля формы отчета:
На заметку. Для отчетов созданных в расширениях, есть возможность указания описания для основного варианта без использования менеджера отчета. Для задания описания «по умолчанию» используется свойство отчета «Пояснение»:
Добавление контекстного отчета в основную конфигурацию или в расширение
Алгоритм добавления контекстных отчетов одинаков для отчетов созданных в основной конфигурации и для отчетов, созданных в расширениях.
В обоих случаях, необходимо определить экспортную процедуру «ПриОпределенииНастроек» в модуле менеджера отчета, и указать объекты назначения:
Сами команды необходимо описать в отдельной процедуре:
Основные свойства команды:
Представление – наименование команды в интерфейсе объекта назначения,
КлючВарианта – идентификатор варианта отчета компоновки данных, который требуется запустить.
Дополнительные свойства команды:
Важность - группы в подменю «Отчеты», в которой следует вывести команду открытия отчета. Доступные значения: "Важное", "Обычное" и "СмТакже".
Порядок - п орядок размещения отчета по отношению к другим отчетам.
СочетаниеКлавиш - с очетание клавиш для быстрого открытия отчета (тип «СочетаниеКлавиш».
ВидимостьВФормах - и спользуется для указания перечня форм, в которых требуется выводить отчет. По умолчанию, отчет выводится во всех формах объекта, подключенных к БСП.
ФункциональныеОпции - имена функциональных опций, определяющих видимость команды открытия отчета в форме.
УсловияВидимости – дополнительные условия, о пределяющие видимость команды отчета (массив). Для добавления новых условий рекомендуется использовать процедуру общего модуля «ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(Команда, Реквизит, Значение, Знач ВидСравнения = Неопределено)».
Параметр «Реквизит» - это имя реквизита объекта назначения.
ДополнительныеПараметры – можно указать дополнительные параметры, и потом их обработать в переопределенном обработчике события модуля формы отчета «ПриСозданииНаСервере».
Ссылка на объект назначения передается в контекстный отчет в качестве параметра формы «ПараметрКоманды» . Для указания отбора по переданному значению, необходимо переопределить событие модуля формы отчета «ПриСозданииНаСервере», и добавить значение параметра в структуру «ФормаПараметры.Отбор»:
При необходимости можно обработать данные, переданные в свойстве команды «ДополнительныеПараметры»:
Примечание. Описывать команды для вывода контекстных отчетов можно не только в модуле менеджера самого отчета, но и в модуле менеджера объекта назначения, в экспортной процедуре «ДобавитьКомандыОтчетов». В этом случае, команда должны иметь дополнительный обязательный параметр «Менеджер», в котором необходимо указать полное имя менеджера отчета. Контекстные отчеты в типовых конфигурациях описаны именно таким способом.
Добавление отчетов с помощью механизма внешних отчетов и обработок
Процесс добавления общих и контекстных отчетов с использованием механизма дополнительных отчетов и обработок подробно описан во многих статьях, например в этой .
Я не думаю, что у кого-то возникают сложности при добавлении отчетов таким способом. Отмечу лишь, что в данном случае не нужно обновлять вспомогательные данные. Также, нет возможности указания предопределенных настроек для вариантов отчета. Все настройки вариантов указываются в пользовательском режиме, прямо в форме элемента дополнительного отчета:
Возможность добавления в модуль объекта обработчиков событий формы отчета доступна по умолчанию.
Если я ошибаюсь, и существуют вопросы и непонятные моменты в работе механизма дополнительных отчетов и обработок, пишите в комментариях, и я напишу отдельную статью на эту тему.
Дополнительно хочу отметить, что варианты отчетов, созданные в пользовательском режиме настраиваются одинаково для любого из способов добавления основного отчета.
На этом все, спасибо за внимание, и за то, что читаете мои статьи J .
Другие мои статьи по использованию механизмов БСП в типовых конфигурациях 1С
Любите делать отчеты для типовых конфигураций? Вы мастер СКД и отчет с вложенными схемами компоновки и собственным макетом для Вас тоже обычное дело? А может быть программное формирование схемы компоновки для Вас тоже норма? Или Вы новичок и только начинаете постигать сакральные знания СКД? Не важно!
Сегодня мы будем говорить о другом. О подсистеме "Варианты отчетов" из БСП, которую можно встретить практически во всех типовых конфигурациях. Вероятно, многие зададутся вопросом: "О чем тут вообще можно говорить?". Что ж, постараюсь Вас удивить!
Как она устроена
От одной версии БСП к другой, подсистема "Варианты отчетов" становилась все функциональней и интересней. Почти все мы ее используем в своих отчетах и можем даже об этом не подозревать. Сегодня мы поговорим о некоторых нюансах ее работы на примере версии БСП 3.0. Информация в большей части справедлива и для других версия библиотеки.
Прежде чем перейти к особенностям, дадим краткое описание принципа работы подсистемы. В составе метаданных она содержит не мало объектов для реализации всего функционала. Те, что нас интересуют, это:
- Общая форма "Форма отчета".
- Справочник "Варианты отчетов".
- Хранилище настроек "Хранилище вариантов отчетов".
- Общие модули с именем "ВариантыОтчетов*" и "Отчеты*".
- И некоторые настройки корня конфигурации.
Весь смысл подсистемы сводится к тому, что все варианты отчетов, адаптированных для использования в БСП, сохраняются в справочнике "Варианты отчетов" через переопределение основных событий хранилища "Хранилище вариантов отчетов":
- Автор
- Тип отчета
- Пользовательские настройки
- Ключ
- Представление варианта
- Различные настройки видимости
- Описание
- И многое другое.
Все еще непонятно? Сделаем небольшой пример, но отчет будет внешним! Вы когда-нибудь разрабатывали отчеты для ERP? Так вот, на ней и продемонстрируем как подсистема работает. Отчет будет отображать количество элементов номенклатуры в разрезе видов номенклатуры. Обязательно добавим в модуль объекта функции описания внешних отчетов и обработок для БСП, а также программное формирование отчета.
Ничего необычного. В модуле объекта добавлено описание внешнего отчета для БСП, а также программное формирование отчета в событии "ПриКомпоновкеРезультата".
В схеме компоновки запрос тоже тривиальный.
Для наглядности мы добавим в настройках отчета два одинаковых варианта, но с разными названиями.
Больше никаких настроек и функций не добавляем (ни форм отчетов, ни задание доп. настроек в свойствах отчета и др.). В режиме 1С:Предприятие отчет выглядит предсказуемо.
Полный исходный код примера можно найти в соответствующем репозитории на GitHub.
Чтобы подсистема "Варианты отчетов" была задействована для нашего продвинутого отчета, прикрепим его в справочник "Дополнительные отчеты и обработки". Не зря же мы делали описание внешнего отчета в модуле объекта.
Здесь тоже всем известная процедура - добавляем отчет из файла и выбираем размещение в подсистемах.
Так как это отчет и он совместим с подсистемой вариантов отчетов, то в настройках доступна вкладка "Варианты отчетов". Пока мы не запишем элемент - она недоступна.
После записи система позволит отобразить список вариантов.
Эти варианты были сформированы из настроек схемы компоновки отчета.
Но что это за варианты и где они в системе хранятся?
Под спойлером выше были показаны два варианта отчета, которые БСП сформировала автоматически. Они были получены из настроек вариантов схемы компоновки. В системе они сохраняются в виде элементов справочника "Варианты отчетов", в том самом справочнике, о котором мы уже говорили.
В корне конфигурации ERP (как минимум с версии 2.2) для свойства "Хранилище вариантов отчетов" установлен объект метаданных "ХранилищаВариантов.ХранилищеВариантовОтчетов". То есть, стандартное хранилище для сохранения настроек отчетов не используется. При этом в стандартных событиях этого хранилища переопределены события загрузки и сохранения настроек, в которых алгоритмы используют уже справочник "Варианты отчетов". Таким образом, подсистема перевела весь функционал по работе с вариантами отчетов на собственный справочник.
При этом, если варианты предопределены в схеме компоновки, то сами настройки в справочнике не сохраняются. Это и понятно - зачем их сохранять, если они есть в самой компоновке данных. Однако, если пользователь сохранит свой вариант, то настройки компоновки будут записаны в реквизит "Настройки" этого справочника (в виде хранилища значений).
Еще одной важной частью подсистемы является общая форма "ФормаОтчета", которая предоставляет расширенный функционал работы с отчетами. Если в объекте отчета (внешнем или встроенном в конфигурацию) нет явно заданной формы, то будет использоваться именно она. Достигается это за счет установки основных форм в корне конфигурации.
Кроме основной формы отчета, подсистема также содержит формы для настроек и выбора варианта, но в нашем случае эту часть подсистемы мы не будем рассматривать. Вот так выглядит форма отчета из подсистемы БСП.
И, кстати, Вы заметили, что мы переопределили событие "ПриКомпоновкеДанных" отчета и сделали полностью программное формирование. При этом отчет также формируется в фоновом режиме. В обычном случае, если сделать программное формирование отчета, то он блокирует основной интерфейс при выполнении.
Таким образом, подсистема "Варианты отчетов" позволяет разрабатывать и управлять отчетами эффективно за счет дополнительного функционала:
- Варианты отчетов и их настройки хранятся в справочнике "Варианты отчетов", что позволяет ими гибко управлять (видимость, права доступа, администрирование настроек) и хранить дополнительную информацию для них.
- Стандартизированные формы отчета и настроек создают единый интерфейс для работы с отчетами со стандартным набором функций, а также выстраивают удобную работу с "тяжелыми" отчетами за счет формирования в фоне любых произвольных отчетов за счет использования подсистемы "Длительные операции".
Пример был сделан для внешнего отчета, но встроить его в конфигурацию не составит труда. Фактически нужно еще меньше действий, но потребуется обновление конфигурации.
Для встраивания отчета в конфигурацию с подсистемой "Варианты отчетов" достаточно сделать несколько простых шагов.
Вставляем внешний отчет из файла.
И получаем тот же самый отчет, но уже в составе конфигурации. Для наглядности добавил к имени постфикс "Встроенный". То же самое сделал для вариантов отчета в настройке схемы компоновки данных.
Теперь перейдем к настройкам.
Выбираем подсистему "Закупки" для работы отчета.
Именно к этой подсистеме отчет будет привязан.
В общем модуле "ВариантыОтчетовПереопределяемый" в процедуре "НастроитьВариантыОтчетов" добавим описание обоих вариантов нашего отчета:
С помощью опции "ВидимостьПоУмолчанию" мы включили отображение отчета в панели отчетов для всех его вариантов. По умолчанию видимость включается только для первого основного варианта.
Ура, ура, ура! Отчет теперь виден в пользовательском интерфейсе.
И даже работает! Было не сложно :)
Дополнительно можно настраивать различные параметры (права доступа, отображение в панелях отчетов и многое другое), но сейчас на этом не останавливаемся. Более подробная информация есть на ИТС, в демобазах БСП и в других статьях на Инфостарт.
Конечно, все "внутренности" подсистемы мы не рассматриваем, но основная часть теперь должна быть понятна. А теперь поговорим о типичной ситуации в разработке отчетов, с которой приходится часто сталкиваться.
Обычная ситуация
Вроде все просто и никаких проблем не ожидается. Но давайте сделаем те же самые действия на другой конфигурации, например на Бухгалтерии КОРП 3.0.67.70 (не самая новая версия, но подойдет). Добавим как внешний отчет, так и внутренний.
Внешний отчет удалось добавить, а также настроить расположение в подсистеме "Продажи" и даже запустить. Вроде бы все работает, но на самом деле не так как надо:
- Для отчета недоступны варианты отчетов. Их нет не только в интерфейсе элемента внешнего отчета, но и в справочнике "Варианты отчетов" новых элементов не добавилось.
- Отчет использует общую форму отчетов подсистемы, но не весь функционал. Например, фоновое выполнение отчета недоступно.
Встроить отчет в конфигурацию мы смогли (добавлен элемент отчета, настроена подсистема и добавлен код описания вариантов в общий переопределяемый модуль). Запускаем с ключом обновления БСП и .
Думаю, по описанию ошибки Вы уже догадались что же произошло.
Примечание: в новых версиях БСП при добавлении отчета без указания хранилища вариантов отчетов появляется предупреждение:
Свойство отчета "Хранилище вариантов" не заполнено.
Сохранение (выбор) вариантов отчета будет работать в ограниченном режиме.
Обратитесь к разработчику дополнительного (внешнего) отчета.
Поэтому теперь ошибиться с настройками еще сложнее. Если, конечно, не игнорировать данное предупреждение.
Вы будете неприятно удивлены результату - отчеты не только не сформировали элементы справочника "Варианты отчетов", так еще и не выполняются в фоновом режиме, а также не отображаются в панели отчетов. А попытка встроить отчет в конфигурацию вообще приводит к ошибке при запуске базы с ключом обновления БСП.
Только форма отчета типовая, но остальное работает не как ожидалось. В чем же дело?
Что здесь не так и как быть
Ответ достаточно прост. Помните, в кратком описании принципа работы подсистемы говорилось, что она использует собственное хранилище вариантов отчетов, которое переопределяет работу с настройками на справочник "Варианты отчетов". В ERP это хранилище используется по умолчанию, так как оно установлено в качестве основного хранилища вариантов в настройках корня конфигурации. Сравните эти настройки с бухгалтерией.
В ERP хранилище вариантов отчетов по умолчанию установлено, а в Бухгалтерии нет.
Нет хранилища вариантов - нет и хранения настроек в справочнике "Варианты отчетов", и нет доступа ко всем функциям подсистемы.
То есть, в бухгалтерии в качестве хранилища вариантов отчета по умолчанию используется не хранилище вариантов из БСП, а стандартное хранилище настроек. Именно поэтому отчеты и не смогли использовать возможности подсистемы "Варианты отчетов".
Просто, потому что в свойствах отчета достаточно явно указать хранилище вариантов отчетов.
Для встроенного в конфигурацию отчета это делается здесь.
Для внешнего отчета это уже не так интуитивно понятно.
Теперь отчеты подходят для работы с подсистемой.
Но есть небольшая (а может и большая) сложность - если отчет был уже ранее добавлен и пользователи сохраняли свои варианты, то после таких манипуляций все настройки будут потеряны.
Для корректного исправления ситуации лучше всего изменения хранилища вариантов выполнять следующим образом.
В первую очередь, нужно проверить - есть ли для отчета нестандартные (созданные пользователями) варианты отчетов, хранящиеся в стандартном хранилище настроек отчетов. Если их нет - отлично! Просто обновите отчет.
Если же пользовательские варианты уже есть, то установка нового хранилища вариантов сделает эти настройки недоступными для использования. Вас может ожидать шквал заявок от сотрудников :)
Чтобы этого избежать, можно конвертировать настройки стандартного хранилища вариантов в элементы справочника "Варианты отчетов". Пример такого скрипта ниже.
Это не законченный вариант, т.к. практика показывает, что конвертация вариантов отчетов сильно отличается от конфигурации, набора существующих вариантов, прав доступа и многого другого. Но принцип работы должен быть понятен.
В демобазах БСП Вы можете найти обработку "ПереносВариантовОтчетов", которая также позволяет конвертировать варианты. Она не имеет гибких настроек и используется при внедрении подсистемы вариантов отчета. Для точечной конвертации она не подойдет, но для изучения работы подсистемы подходит идеально.
Итого, при использовании подсистемы вариантов отчетов нужно обязательно проверять используется ли хранилище вариантов отчетов из БСП в отчете. Для использования полного функционала подсистемы его обязательно нужно включать. Если в конфигурации подсистема внедрена частично, то в отчетах (внешних и встроенных) необходимо указывать хранилище вариантов явно.
При исправлении хранилища вариантов у отчета все старые настройки пользователей могут быть потеряны, поэтому изменение хранилища настроек должно происходить осторожно.
Немного нюансов
При использовании подсистемы "Варианты отчетов" может возникнуть интересная ситуация в процессе разработки. Допустим, у вас есть внешний отчет (пусть будет тот самый отчет для ERP из примера выше). Он уже был добавлен в дополнительные отчеты и обработки и некоторое время использовался.
Теперь появилась необходимость изменить настройки отчета. Вы изменяете их в конфигураторе, сохраняете отчет, открываете в пользовательском режиме для проверки и . барабанная дробь . при открытии настройки не изменились.
Подобная ситуация может также быть, если Вы изменили настройки компоновки вариантов в конфигураторе, обновили информационную базу, но при открытии отчета снова никаких изменений не увидите.
Причина также проста - настройки хранятся в справочнике "Варианты отчетов". При внесении изменений в конфигураторе настройки в самом справочнике, конечно же, не обновляются. Поэтому в отчете и не видно изменений.
- Для внешних отчетов:
- Обновить внешний отчет в справочнике "Дополнительные отчеты и обработки", после чего настройки предопределенных вариантов обновятся.
- На тестовом окружении изменить имя отчета, добавив например цифру. В итоге созданные настройки в справочнике не будут использоваться.
- Для встроенных отчетов:
- После применения изменений конфигурации запустить обновление информационной базы со специальным ключом запуска БСП.
- Отдельно запустить обновление данных вариантов отчета с помощью скрипта.
Дополнительной сложностью могут служить пользовательские варианты отчетов, которые автоматически не обновятся при внесении изменений в сам отчет. Тут придется продумывать варианты решения:
- Выпустить полностью новую версию отчета с новыми вариантами, которая не будет поддерживать существующие пользовательские варианты.
- Очистить все пользовательские варианты для измененного отчета.
- Написать обработку, которая исправит настройки существующих вариантов отчетов пользователей
Варианты решения выбирать только Вам. В остальном, особых проблем и нюансов нет. Подсистема стоит того, чтобы ее использовать и не изобретать велосипеды.
Вот и все
Теперь Вы знаете немного магии из мира БСП, хотя уверен, что для многих это не стало открытием. Надеюсь, что информация будет полезна и сэкономит время в случаях, когда от разработчиков можно услышать:
- Платформа создала кэш настроек отчета, сейчас его почищу. Хм, а не помогает. Компьютер перезапущу!
- Я напишу свой механизм управления вариантами отчетов. Тот, что в БСП, глючит сильно.
- Я делаю отчеты с помощью обработок, что еще за БСП.
И да, всех проблем с отчетами можно было бы избежать, если изучить официальную документацию.
Читайте также: