Содержание
- Что это такое?
- Установка
- Настройка
- Права доступа
- Использование
- Доработка
- Что дает подсистема?
- Послесловие
Что это такое? ^
Подсистема «История формирования отчетов» сохраняет информацию о выполнениях отчетов пользователями: длительность, используемые настройки, описание ошибки и т.д.
Предоставляет возможность применять используемые ранее настройки отчета, сохранять возникающие ошибки и выявлять настройки, приводящие к долгому выполнению отчета.
Подсистема разработана в виде расширения, которое использует архитектуру типовых конфигураций на базе БСП. Функционал интегрируется в типовую форму отчета.
Для работы необходима база на основе БСП, позволяющая устанавливать расширения с добавлением своего регистра сведений (не ниже 8.3.11.2867).
Это OpenSource проект с открытым исходным кодом. Страница на GitHub
Установка^
Для установки нам потребуется зайти в базу под администратором.
И сразу перейти по кнопке "Функции для технического специалиста" (в более ранних платформах - "Все функции").
Если вы не видите такой кнопки, то сначала переходите в "Настройка" → "Параметры".
В открытом окне установите флажок "Режим технического специалиста" (или ранее "Отображать команду Все функции").
Нажмите "Ок".
После этого в меню появится нужный нам пункт. Следует нажать на него.
В открывшемся меню необходимо перейти в "Стандартные" → "Управление расширениями конфигурации"
У нас открывается список расширений конфигурации. Нам необходимо нажать "Добавить".
Далее необходимо выбрать файл с расширением "История формирования отчетов".
Если появится окно с предупреждением безопасности. Это стандартное окно 1С, которое служит напоминанием пользователю, что не стоит устанавливать неизвестные файлы. Если вы взяли расширение легально, то нажимайте "Да". После этого нужно будет повторить попытку: нажать "Добавить" и снова выбрать файл.
Если расширение появилось в списке, то всё установлено успешно. Необходимо сразу снять флажки "Безопасный режим" и "Защита от опасных действий". На вопросы от 1С отвечать "Да".
Всё, расширение установлено. Для дальнейшей работы необходимо перезапустить сеанс.
Если база серверная, то необходимо дополнительно проверить корректность настроек сервера (см. раздел на сайте 1С: Серверные методы расширяются не всегда )
Настройка^
После успешной установки расширения и перезапуска базы у администратора появится новая подсистема "История формирования отчетов".
Для настройки необходимо перейти в неё и выбрать пункт "Настройки истории формирования отчетов".
Так что можно вручную перейти в регистр через список всех объектов или же перейти по навигационной ссылке: e1cib/list/РегистрСведений.НастройкиИсторииФормированияОтчетов
Настройки подсистемы ведутся в разрезе отчетов. То есть, каждому отчету можно задать свои собственные настройки. Если не задавать, то будут применяться "общие".
На данный момент подсистема не включена. В таком виде база будет работать как всегда и история фиксироваться не будет. Давайте включим подсистему. Для этого нажмём в общих настройках "Фиксировать историю".
Теперь по всем отчетам всегда будет фиксироваться история.
Но что если нет необходимости писать историю какого-то отчета? Для этого можно просто сделать для него отдельную настройку. К примеру, отключим историю для "Движения документа". Это простой контекстный отчёт и нам отслеживать его нет смысла.
Нажмём "Добавить" и выберем в списке отчет "Движения документа". В настройки подсистемы добавлена новая запись. Проверим, что снят флажок "Фиксировать историю".
Теперь подсистема будет фиксировать все отчеты, кроме "Движения документа".
Но что, если нам не нужно вообще хранить каждое выполнение отчётов? Допустим, что есть смысл хранить только те настройки отчётов, которые привели к ошибке выполнения. Для этого необходимо воспользоваться настройкой отборов.
Активируем строку с общими настройками и нажмём на выбор отборов.
Настройка отборов базируется на СКД. Вот доступные "из коробки" поля для отборов.
Примеры настроек:
Фиксируем только ошибочное выполнение:
Фиксируем выполнение, которое медленнее указанного в ключевой операции времени:
Фиксируем только выполнения пользователей из списка:
И так далее. Так же есть возможность добавления дополнительных пользовательских полей:
Сейчас мы сделаем простую настройку. История будет фиксироваться только под этими пользователем "Орлов АВ" (Администратор демо-базы ERP).
Отборы будут учитываться только когда включен флаг "Собственные отборы". Допустим, что вы решили отказаться от отборов на какое-то время. Вам нет необходимости удалять отборы. Достаточно снять флаг. А потом, как понадобится, включить снова.
Всё, на данный момент у нас будет фиксироваться история всех отчётов только по Орлову. При этом по "Движения документа" история отключена.
Давайте укажем ещё один пример настройки подсистемы. Предположим, что "Универсальный отчёт" должен хранить историю по всем пользователям. То есть для него необходимо "отменить" использование общих отборов. Для этого можно добавить нашему отчёту настройку и установить флаг "Собственные отборы". Всё, уже на этом этапе отчет больше не смотрит на общие отборы и ему можно установить свои. Или не указывать - тогда история будет писаться по нему всегда.
Права доступа^
По умолчанию только у администраторов есть доступ к настройке и просмотру истории отчетов. Но пишется история под любым пользователем (в соответствии с настройками подсистемы).
Но можно настроить более гибко. Для этого в составе подсистемы есть роли:
- Просмотр своей истории формирования отчетов - позволяет смотреть только свою историю формирования
- Просмотр всей истории формирования отчетов - позволяет смотреть историю формирования всех пользователей
- Администратор истории формирования отчетов - позволяет изменять настройки подсистемы, а так же выгружать и загружать записи истории из базы.
Эти роли можно выдавать разным пользователям. Вот пример настройки для демо-базы ERP:
Для начала создадим профили доступа на каждую роль подсистемы
В каждом профиле указывается только одноименная роль:
По такому же принципу создадим и группы доступа
Теперь в каждую группу можно добавлять пользователей. Например, дадим право просмотра своей истории Кислову Артему Сергеевичу (демо-кладовщик)
После перезахода в базу этот пользователь сможет смотреть историю по себе.
Подобным образом можно использовать и роль просмотра всей истории и роль администрирования.
Использование^
Как только настройка подсистемы завершена, у всех пользователей (которым доступен просмотр истории) в типовой форме отчета появляется соответствующая кнопка
После чего открывается форма выбора настроек с которыми формировали этот вариант отчета.
В этой форме можно выбрать записи истории формирования отчетов и настройки из них автоматически загрузятся.
- Выбрать - Применить настройки из истории
- Только мои - Показывать только историю текущего пользователя. Кнопку можно "отключить", если есть право администрирования или просмотра всей истории.
- Выгрузить в файл - Выгрузить выбранные записи истории в файл. Позволяет сохранять записи в формате XML, чтобы потом использовать для анализа на копии. Кнопка доступна только администратору.
- Загрузить из файла - Загрузить записи истории из файла. Читает файл, который был создан по кнопке "Выгрузить в файл". Кнопка доступна только администратору.
- Описание подсистемы - Эта страница с описанием подсистемы.
Отображаемые колонки:
- Начало - Начало формирования отчета с настройками
- Пользователь - Пользователь, который формировал отчет
- Длительность - Сколько времени формировался отчет
- Текст ошибки - По какой причине отчет не удалось сформировать
- Успех - Удалось ли сформировать отчет
- Комментарий - Комментарий к записи истории, установленный вручную. Доступна для редактирования администратору подсистемы.
Помимо вызова из формы самого отчета, можно перейти в сам регистр и увидеть там полный набор записей: e1cib/list/РегистрСведений.ИсторияФормированияОтчетов
В общей форме списка состав колонок шире
Из общей формы списка можно сразу же открыть отчет по соответствующей кнопке. Откроется вариант отчета с установленными настройками из записи истории.
В любой записи истории можно установить произвольный комментарий.
Для удобства не забывайте пользоваться навигационными ссылками. Таким образом можно пересылать друг другу ссылки на нужные записи
Для анализа накопленных данных в подсистеме есть свой отчет "Анализ истории формирования отчетов".
Встроенный вариант "Количество ошибок за день":
Вариант "Различные ошибки":
На его базе можно собрать любые необходимые варианты.
Разработка^
Для удобства доработки подсистемы под свои нужды добавлены переопределяемые модуль. В них вынесены процедуры и функции для гибкого управления логикой механизмов. Методы прокоментированы с примерами использования.
Подсистему можно использовать и не только в отчетах, которые используют типовую форму БСП. Для фиксирования истории по любым отчетам можно воспользоваться методами, которые находятся в области ЗамерПроизвольногоОтчета модуля ИсторияФормированияОтчетов
Для выноса кнопки на форму нетипового отчета можно использовать метод ИсторияФормированияОтчетов.ФормаОтчета_ПриСозданииНаСервере(). В составе дополнительных параметров можно передать имя командной панели, в которой необходимо разместить кнопку.
Что дает подсистема? ^
- Пользователям - интерфейс, который позволит "откатиться" к прежним настройкам отчета, а так же делиться ими без сохранения в качестве отдельного варианта.
- Администраторам - подсистему для контроля скорости выполнение отчетов и проблем по ним.
- Разработчикам - механизм, который позволяет выполнять отчет с такими же настройками, что были у пользователя.
Это уже вторая расширенная версия подсистемы. Первый релиз сохранен для истории.
Подсистема постоянно развивается и обрастает новым функционалом. Если есть какие-то предложения по улучшению, то пишите об этом в комментариях и голосуйте "плюсами" за понравившиеся предложения.
Хотите поддержать автора? ^
Не будьте равнодушными! Поставьте лайк плюс, оставьте комментарий. Подписывайтесь и переходите к другим публикациям:
- Менеджер открытых форм
- Наследование свойств элементов, или Как пользователь может сломать вашу форму
- Ограничения полей, или как обмануть СКД?
- Новое отображение ошибок в 1С
- Как ограничить поля отбора в динамическом списке и ничего не сломать
- Сервис регистрации ошибок 1С (пример создания)