Что это
За годы работы с 1С приходилось, конечно, разбираться с разными проблемами. Ошибки работы программы, кто-то что-то в базе натворил, какие-то проблемы с производительностью, какие-то неявные ошибки, которые трудно отловить. Да и вообще — просто понять, что сейчас в базе происходит. Но 1С к этому, мягко говоря, не очень дружелюбна: журнал регистрации - это большой тормозящий лог, в котором много ценной информации, но он не всегда удобен, и просто так его тяжело разбирать. Окно активных пользователей не дает никакой информации, кроме того, кто в системе. По регламентным и фоновым заданиям БСП тоже непонятно, что задание сделало и что изменило, приходится опять же разбираться с журналом регистрации. И я не могу подписаться на события, чтобы узнавать о них в моменте. Поэтому я просто решил написать для себя небольшой наглядный монитор — больше, конечно, в качестве развлечения, но, как оказалось, в чем-то даже полезный.
Рабочий стол
По сути, картинка расскажет больше, чем я опишу текстом. Информация о входах пользователей, измененных объектах, ошибках, транзакциях и нагрузке на сам журнал берется из журнала регистрации. При открытии Монитор читает весь журнал за выбранный период. Тех, у кого огромные журналы, сразу предупреждаю: первое чтение может идти долго (очень долго). Поэтому я сделал выбор глубины: за сколько часов назад анализировать журнал. Эти данные, если что, кэшируются и при повторном открытии дочитываются с момента прошлого закрытия.
Все KPI разворачиваются в большой размер кликом по ним, чтобы лучше было видно. И на некоторых показателях работает расшифровка, можете попробовать.

Как оказалось, удобно смотреть всплески нагрузки, особенно от регламентных заданий, которые под капотом могут тяжело работать, — для пользователей это выражается тормозами, и причина не всегда очевидна.
Данные обновляются в реальном времени каждые 30 секунд, но можно внизу слева отключить автообновление и делать это вручную, если на вашей системе притормаживает.
Сразу скажу, что не все здесь ради полезности. Это не серьезный 1С ЦУП или КИП, скорее ради фана. Поэтому, может быть, какие-то вещи можно было сделать более наглядными и техничными, но я хочу, чтобы это было и прикольно тоже.
Активность пользователей и фоновые задания
Слева в меню можно посмотреть активных пользователей — с расшифровкой, кто с какими объектами работал в это время. Удобно быстро оценить, не перебирая весь журнал. Здесь же видны ошибки, которые возникали при работе пользователей.
Похожий функционал и по регламентным заданиям. Можно посмотреть историю: какие объекты изменялись и какие ошибки при этом происходили. Только будьте аккуратнее с подробной расшифровкой данных регламентных заданий, она может надолго уйти в чтение журнала регистрации и подвесить монитор на несколько минут.
Оповещения
Очень удобная штука - это отлавливать события в реальном времени. Задаешь правило: какое событие, какого пользователя или какое метаданное отслеживать. Монитор на каждом обновлении сверяет свежие записи журнала с правилами и при совпадении показывает всплывающее уведомление на главной странице. История лежит в закладке уведомлений.
Правила действуют с момента открытия монитора, по старым записям журнала задним числом они не срабатывают. Проверка в двух контурах: по метрикам дашборда на клиенте и по журналу регистрации на сервере.

Оформление и настройки
Поддерживаются три цветовые темы, переключаются слева внизу. WebKit в 1С не очень расположен к быстрой графике, поэтому включен авторасчет уровня производительности: если ее не хватает, программа отключает часть эффектов и упрощает отрисовку. Но можно задать уровень и вручную, там же, слева внизу.
Алгоритмы прорисовки графиков настраиваются ползунками под ними: сглаживание, толщина, светимость, это все можно подстроить под себя.
В целом картинку я настраивал под вывод на телевизор или большой экран монитора, так, чтобы было красиво и информативно, насколько это возможно, и чтобы можно было использовать как фоновый монитор системы в кабинете и придавать налет серьезности и киберпанковости отделу ИТ :).



Ограничения
Основное ограничение обработки в том, что журнал регистрации читается очень медленно, думаю, вы и так об этом знаете. На большой базе, тем более с детальным логированием, первая выгрузка всего периода занимает время: монитор поднимает историю порциями по десять минут, график наполняется по мере загрузки. За 24 часа на нагруженной базе это может быть долго.
Если обработка открыта просто через «Файл — Открыть» без БСП или на старой БСП, то чтение журнала идет синхронно и блокирует поток, и, пока грузится, отрисовка идет максимум кадр в секунду. Если у вас конфигурация на БСП, можно добавить монитор в доп. обработки, тогда загрузка будет идти фоном, что гораздо приятнее. Также в новых версиях БСП 3.1.8+ должна работать фоновая загрузка и при открытии через файл.
В облачных 1С, наоборот, журнал регистрации часто отключен и почти пуст, поэтому 90% функционала работать не будет, извините.
Как это разрабатывалось
Недавно я писал здесь, что месяца три практически не пишу код руками. За это время дошло до того, что я перестал даже читать то, что пишет ИИ. Смысла нет: как-то за ночь он выдал мне тридцать тысяч строк, закрыл целый пласт задач, и все это работает. Проверять такой объем построчно бесполезно.
В этой обработке я ни одной строчки кода не писал вообще. Как, собственно, и не читал. Все полностью написано ИИ, разными моделями. Сколько на это ушло времени, сказать очень трудно. Делалось это месяца два-три, в свободные вечера, где-то раз в неделю по паре часов. Получилось около 6 700 строк кода 1С и 15 000 строк JS.
Я работаю с агентом в чистом чате, не в IDE. Для себя я понял, что встроенные в редактор агенты типа Cursor (1С Напарник там же) - это тупиковая ветка. Они снова возвращают тебя к коду и отладке, к написанию конкретных функций и запросов. То есть мне удобнее вообще не видеть код проекта. Я настроил себе скиллы и обертки так, чтобы разрабатывать только через общение с агентом, в основном голосом. Остальное он должен делать сам: сборку, запуск, тестирование, интерактивную работу. Все это работает, но интерактивные тесты пока быстрее получается делать самому, хотя агенты уже умеют запускать 1С, тыкать мышкой, вводить значения вполне осознанно. Ищут ошибки, сами их исправляют — это очень удивительно.
Для сборки я использую 1С EDT. Если я правильно понимаю, можно обойтись и без EDT, через консольные утилиты конфигуратора, но я честно не пробовал и не могу сказать, насколько это быстро и удобно. Ну и все равно новые проекты и обработки проще заводить через EDT.
Сравнить, насколько это быстрее или медленнее, чем если бы я писал сам, невозможно. Насколько качественнее бы я написал сам, насколько код был бы лучше или хуже моего — тоже не понять, это и неважно. По простой причине: без ИИ я бы не написал такое никогда, я бы не смог. У меня не хватило бы ни времени, ни знаний, чтобы разобраться в JS, в разметке HTML, в особенностях графики, в тонкостях работы журнала регистрации, работы БСП с фоновыми заданиями. Годы, наверное. А тут чистого времени, может быть, пару недель, и с удовольствием.
Я читал много споров о том, насколько ИИ ускоряет работу программиста, слышал, как программисты доказывают, что они делают лучше, что ИИ пишет неоптимальный код. Ок, я, конечно, соглашусь с этим. Но, как мне кажется, суть в другом: ИИ позволяет делать то, что сам ты не смог бы никогда. Раскрывает области знаний, на которые у тебя ушло бы много лет, наверное больше, чем вся жизнь. Если знаешь основы программирования, то значит, можешь писать на любом языке мира, любые приложения. Это очень круто. Правда, есть нюанс небольшой, как обычно. Раз ИИ полностью взял на себя работу программиста, то, наверное, чуть позже заберет работу и аналитика, и руководителя проекта, и внедренца, взяв полный цикл на себя, но с этим будем позже разбираться по факту 😉.
Кстати, заметил, что отладчиком тоже перестал пользоваться. Раньше моя работа была построена на отладке: пишешь код, отлаживаешь запрос в консоли запросов, потом отлаживаешь код, находишь ошибки, исправляешь, опять отлаживаешь — и так по кругу много раз, пока не заработает как нужно. По крайней мере, у меня это был основной паттерн. А сейчас я уже не помню, когда последний раз заходил в отладку.
ИТОГ
Никаких внешних зависимостей в обработке нет, интернет не используется, никаких операций изменения данных не производится. Должно работать на любой базе 1С на платформе от 8.3.16 в тонком клиенте. Может быть, заработает и на более старых версиях, но я не проверял. В Web клиенте, к сожалению, не работает.
Извиняюсь, если у кого-то что-то работать не будет, напишите, я постараюсь исправить по мере возможности.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.191.41
Вступайте в нашу телеграмм-группу Инфостарт