Если вы всё ещё парсите технологический журнал 1С gawk-скриптами - вот как я решил эту задачу иначе

08.07.26

База данных - Технологический журнал

Устал парсить ТЖ 1С gawk-скриптами каждый раз заново - собрал нормальный инструмент. DuckDB под капотом, разбор ТЖ, планов под MS SQL и PostgreSQL, AI-объяснения опционально.

Технологический журнал 1С - источник правды о том, что реально происходит в базе: какие запросы тормозят, где блокировки, у кого зависла транзакция. Проблема в том, что ТЖ - это гигабайты текстовых логов в собственном формате, и "из коробки" с ними работать неудобно.

Классический путь: gawk + grep + sed, самописные Python-обработки, которые парсят построчно и складывают то, что нашли, во временную таблицу. Работает, но каждый раз заново - свой скрипт под свою задачу, свои костыли под кодировки (UTF-8 с BOM, cp1251, cp866 - в одном архиве может быть всё сразу), свой формат вывода, который потом ещё смотреть в Excel.

Есть 1С:ЦКК - тяжёлый, требует отдельной инфраструктуры, не для разового "глянуть, что там тормозит". Есть pgBadger и подобные - но это про логи PostgreSQL, а не про ТЖ 1С, и не про MS SQL. В итоге у большинства, кто регулярно разбирает производительность 1С, есть свой зоопарк скриптов, собранный за годы - и он не масштабируется на новые задачи и на других людей в команде.

Я делаю приложение - 1C-Optimyzer, которое пытается закрыть именно эту нишу: нормальный, локальный, быстрый инструмент анализа ТЖ без необходимости поднимать сервер или тащить логи куда-то наружу. Дальше - что там реально есть на сегодня, без маркетинга, с техническими деталями.

 

 

Что это технически

Tauri 2 + React + TypeScript на фронте, Python под капотом (JSON-RPC поверх stdio), DuckDB как аналитический движок хранения. Всё локально: архив ТЖ загружается, парсится потоковым лексером (проверено на 12 ГиБ архиве без падения по памяти - все, что смог нагенерить на своем ноуте), кладётся в DuckDB-файл - один файл на один загруженный архив. Хочешь передать коллеге результат анализа - просто отдаёшь файл, он самодостаточен.

Отдельно есть облачная часть (FastAPI-сервер) - но она отвечает только за AI-функции, аккаунт и лицензирование. Всё остальное - парсинг, хранение, аналитика, SQL-консоль, планы запросов - работает полностью офлайн. Это осознанное архитектурное решение: у ТЖ бывает содержимое, которое компания не готова отправлять куда-либо за пределы своего контура, поэтому AI - опциональная надстройка, а не обязательное условие работы.

 

 

Почему DuckDB, а не SQLite или PostgreSQL

ТЖ после парсинга - это, по сути, широкая аналитическая таблица: миллионы событий с десятками полей (длительность, тип события, контекст, SQL-текст, роль процесса и т.д.), по которой нужно быстро считать агрегаты, гистограммы, перцентили, группировки по произвольным полям. Это классическая OLAP-нагрузка, а не OLTP.

SQLite отлично подходит для метаданных приложения (список загруженных архивов, сохранённые запросы). Но для аналитики по десяткам миллионов строк построчный движок SQLite начинает заметно тормозить на GROUP BY или агрегатах с сортировкой - в общем, SQLite отпал еще на этапе архитектуры.

PostgreSQL решил бы задачу производительности, но требует сервера - а мне принципиально важно, чтобы приложение работало без установки СУБД и без сетевой инфраструктуры. DuckDB - колоночный embedded-движок: не нужен сервер, файл открывается напрямую, а колоночное хранение + векторизованное исполнение дают на аналитических запросах (перцентили по длительности, гистограммы по интервалам) намного лучший отклик, чем построчная БД на том же объёме данных.

 

 

Как это работает на практике

Сценарий 1: Где тормозит

Загружаешь папку с логами ТЖ - приложение само определяет кодировку (UTF-8 с BOM / без / cp1251 / cp866), парсит и раскладывает по ролям процессов (rphost, rmngr, ragent, клиентские/серверные). Дальше - анализ: медленные запросы, таймлайн блокировок, разбивка по ролям процессов, гистограмма длительностей, лента ошибок, тепловая карта активности по времени. Все они кросс-фильтруются между собой - кликнул на пик в тепловой карте, остальные представления сузились на этот интервал.

Отдельно есть сравнение архивов "до/после" - грузишь два снимка ТЖ (например, до и после релиза) и получаешь diff с автоматическим определением деградаций: приложение сопоставляет операции по отпечатку (имя + нормализованный контекст) и классифицирует изменение - регрессия, улучшение, новая операция, пропавшая, стабильная - с оценкой уверенности и приоритетом, на что смотреть в первую очередь.

 

 

Сценарий 2: Настроил ТЖ за минуту, а не полез редактировать logcfg.xml руками

Отдельный инструмент - ТЖ Билдер. Обычно логи собирают через ручное редактирование logcfg.xml: смотришь документацию, вспоминаешь синтаксис фильтров, боишься собрать слишком много и забить диск. Здесь - графический конструктор: выбираешь события из списка с подсказками, что каждое событие означает и зачем оно нужно, приложение сразу оценивает ожидаемый объём логов в час (по трём профилям нагрузки - тихая база, типичная, нагруженная) и генерирует валидный XML с превью.

Есть шесть готовых шаблонов под типовые задачи (минимальный сбор, поиск медленных операций, полная диагностика, только блокировки, экспертный аудит, baseline перед релизом) - и отдельно AI-мастер: описываешь словами, что хочешь поймать ("ищу, почему раз в день тупит проведение документов"), выбираешь СУБД - получаешь сгенерированный конфиг с объяснением, зачем каждый параметр, и предупреждениями, если конфигурация может дать слишком большой объём логов.

 

 

Сценарий 3: разбор конкретного запроса

Если открыть медленный запрос из списка, видно его SDBL-текст с диагностикой: часть антипаттернов ловится статически (без ИИ) - под MS SQL это 9 правил (сравнение с NULL через "=", неявные преобразования типов, SELECT * в JOIN и так далее), под PostgreSQL - 15 (в том числе то, что специфично для Postgres: отсутствие GIN-индекса под jsonb, ILIKE без триграммного индекса, OFFSET без LIMIT, UNION вместо UNION ALL там, где дублей быть не может). Плюс встроенный bsl-language-server даёт диагностику самого SDBL-кода (19 правил).

AI-объяснение - опциональная надстройка сверху: берёт запрос + найденные антипаттерны + (если есть) план выполнения и объясняет по-человечески, что происходит и что можно сделать. Здесь я сознательно не делаю AI валидатором, критерием истины: движок для плана выполнения - либо реальный SHOWPLAN из MS SQL, либо EXPLAIN из PostgreSQL, оба разбираются структурно (у меня отдельные парсеры под оба движка), а не угадываются моделью. AI объясняет уже разобранный объективный план, а не сам решает, что там написано, - это разница между "ИИ подтверждает то, что можно проверить" и "ИИ говорит, а вы верьте на слово". Ответы AI кэшируются по содержимому (не по пользователю), так что одинаковый запрос с одинаковым планом не гоняется через модель повторно (что критично если использовать дорогие модели).

 


Честное сравнение с альтернативами
 

  • gawk и самописные скрипты - порог входа низкий, если умеешь писать на bash/Python, но каждый раз пишешь заново под конкретную задачу. Сервер не нужен, с ТЖ работает напрямую. Главное преимущество - абсолютная гибкость: нужен нестандартный разрез данных - переписал скрипт за 10 минут. Главный минус - ничего нет из коробки: ни антипаттернов, ни планов запросов, ни сравнения архивов, ни AI. Каждый раз с чистого листа, и результат остаётся у автора скрипта, а не передаётся команде.
  • 1С:ЦКК -  это конечно мощь, глубоко интегрирован с платформой 1С, умеет мониторить в реальном времени. Но тяжёлый: требует отдельной инфраструктуры, сервера, настройки. Для разового "глянуть, что тормозит" - избыточен. Планы запросов разбирает частично, антипаттерны и сравнение архивов до/после - нет. Да и ставить его - отдельный квест.
  • pgBadger - отличный инструмент, но для другой задачи: он работает с логами PostgreSQL, а не с технологическим журналом 1С. Если у вас PostgreSQL и вам нужен анализ именно его логов - pgBadger хорош. Но ТЖ 1С он не понимает, MS SQL не поддерживает, и 1С-специфики (роли процессов, контексты, SDBL) в нём нет.
  • 1C-Optimyzer - desktop-приложение, всё локально без сервера. Нативно работает с ТЖ, разбирает планы запросов под оба движка (MS SQL и PostgreSQL), ловит SQL-антипаттерны из коробки (9 правил T-SQL, 15 PostgreSQL), сравнивает архивы до/после с автоматической классификацией регрессий, AI-объяснения опционально поверх объективных данных. Логи никуда не отправляются - облако нужно только для AI, и то по желанию.


Где я честно проигрываю: проект еще не протестирован на настоящих тяжелых задачах, гибкость скриптов пока не заменяет полностью (для нестандартных задач есть SQL-консоль, но это уже не "в один клик"), и глубина интеграции с 1С у ЦКК будет повыше - десктопный инструмент для анализа не заменяет мониторинг.

 

 

Куда это движется

Ядро (парсинг, шесть представлений, SQL-консоль, сравнение архивов) - стабильно и используется. Анализ планов запросов сделан для MS SQL и PostgreSQL. Отдельный экран статического анализа кода конфигурации (не ТЖ, а метаданных) реализован, но сейчас временно скрыт из интерфейса - тестирую, насколько он реально нужен пользователям - вообще конечно надо большинство функций оценить так.

Дальше в работе, планирую - облачная часть для команд, более глубокая работа с блокировками (разбор цепочек ожиданий). Ничего из этого пока не готово, пишу честно — не хочу обещать раньше времени.

Итог: вообще я этот сервис писал, чтобы получить инструмент для подготовки к 1С:Эксперту - но как-то незаметно он превратился в такой вот продукт - затянуло в общем.

 

Заключение

Проект живой, я продолжаю с ним работать и разбираться в производительности 1С по ходу дела. Если у вас похожая боль с ТЖ или производительностью 1С - попробуйте, буду рад обратной связи, багрепортам и идеям, чего ОЧЕНЬ не хватает. А если у вас есть конкретная задача по производительности 1С и нужен человек, который в этом плотно сидит - пишите, открыт к обсуждению.

 

Ссылка на проект:

https://github.com/anymasoft/1c-optimyzer

Вступайте в нашу телеграмм-группу Инфостарт

технологический журнал производительность 1С анализ ТЖ DuckDB медленные запросы блокировки план запроса MS SQL PostgreSQL оптимизация 1С logcfg.xml антипаттерны SQL SDBL сравнение архивов desktop-приложение Tauri 1С:Предприятие мониторинг диагностика open source

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Технологический журнал Системный администратор Программист Бесплатно (free)

Чтобы перейти от тушения инцидентов в 1С к превентивному подходу, нужно заранее видеть рост данных, блокировок, времени выполнения операций и другие признаки будущих проблем. Разбираем, какие метрики технологического журнала 1С и СУБД стоит мониторить в реальном времени и как использовать простые ML-модели – регрессию и классификацию – для прогноза падения производительности. Объясняем, как автоматически выявлять аномалии в поведении пользователей и фоновых заданий, настраивать proactive-алерты за часы или дни до инцидента и создавать тикеты в ITSM-системах на превентивные действия.

02.07.2026    1340    aidar_safin    17    

29

Технологический журнал Программист Бесплатно (free)

Парсинг техжурнала 1С – это не просто «распарсить JSON» или CSV, а работа с множеством неочевидных особенностей формата. Показываем, какие проблемы могут возникнуть из-за дублей свойств и событий, «полей-призраков», нестандартных имен свойств, разрозненного контекста, кавычек, апострофов и других нюансов, которые легко ломают парсеры и искажают результаты анализа. Объясняем, чем может помочь ИИ при работе с техжурналом и почему даже при использовании современных инструментов важно понимать внутреннюю логику логов. В статье собраны главные правила надежного парсинга и примеры ситуаций, где техжурнал может неожиданно показать свою «темную сторону».

17.06.2026    2004    Andreynikus    9    

23

Технологический журнал Мониторинг Программист 1С 8.3 Абонемент ($m)

Решение-заготовка для автоматического мониторинга и расследования технологических инцидентов в случаях невозможности использования решений КИП.

1 стартмани

29.05.2026    1791    8    tori131313    3    

11

Linux Технологический журнал 1С:Предприятие 8 Бесплатно (free)

Графическая утилита, сделанная по принципу Microsoft SQL Server Profiler, но для СУБД PostgreSQL Позволяет легко настраивать сбор планов запросов как средствами PostgreSQL, так и технологическим журналом 1С Предприятие с их последующей визуализацией. Простая, понятная для пользователей утилита, не требующая прав администратора для визуализации, и требующая их для настройки. Скомпилированная в исполняемый файл.

20.05.2026    1645    capitan    4    

9

HighLoad оптимизация Технологический журнал Системный администратор Программист 1С 8.3 Бесплатно (free)

Пошаговая методика поиска утечек памяти в 1С через технологический журнал: как связать события CALL и LEAKS по clientID, агрегировать тысячи строк стеков вызовов в компактное дерево сценариев, классифицировать проблему без открытия конфигуратора и упаковать результат в готовую задачу разработчику — с bash-скриптами для каждого шага и разбором на реальном примере

17.04.2026    3197    maraty    9    

19

HighLoad оптимизация Технологический журнал Программист Бесплатно (free)

Пользователи жалуются на медленную работу 1С, система нестабильна под нагрузкой, а попытки «починить» не дают результата? В статье разбираем, как подойти к оптимизации производительности комплексно: от анализа инфраструктуры и базы данных до уровня кода и пользовательских операций. Показываем пошаговый подход «аудит – оптимизация – контроль» и объясняем, какие инструменты помогают быстро выявить и устранить узкие места. На реальном примере проходим путь от первичного мониторинга до внедрения оптимизаций и стабилизации системы.

06.04.2026    2033    kulmaksim    0    

10

HighLoad оптимизация Технологический журнал Программист 1С 8.3 1С 8.5 Абонемент ($m)

tjclick - кроссплатформенная утилита для копирования логов технологического журнала платформы 1С в КликХаус

10 стартмани

02.04.2026    1032    0    SerVer1C    0    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1104 08.07.26 23:58 Сейчас в теме
Делал подобное с хранением логов в кликхаусе. Удобно анализировать с помощью всем знакомого SQL-синтаксиса. Всё вертится локально в докере. Ссыль на инструмент есть на этой странице )
Для отправки сообщения требуется регистрация/авторизация