Сценарный анализ и тестирование документов "SmokeLab" (обычные формы)

24.07.26

Разработка - Тестирование QA

Сценарный анализ и тестирование документов "SmokeLab" (обычные формы): автоподбор документов, сценарное тестирование, анализ изменений, проверка форм и проведение, поддержка COM и JSON-логирование.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Сценарный анализ и тестирование документов "SmokeLab" (обычные формы):
.epf 122,23Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

Немного предыстории

Я давно работаю с 1С, в основном с УПП, обычные формы.

И, думаю, многим знакома ситуация, когда обновили конфигурацию, или что-то поменяли в коде "по-мелочи", и вроде всё ок...

- а потом начинается…

  • где-то документ не проводится....
  • где-то форма падает
  • где-то поменялись движения 😱😱😱
  • а где-то "всё работает", но уже не так 😅

И, конечно пользователи начинают "немножко" нервничать: 

"вчера всё  работало, сегодня нет!!!", "вы что там опять обновили???" и т.д.))

Ну в общем, вы поняли)) Все с этим сталкивались, классика жанра.

Поэтому конечно стали смотреть в сторону существующих инструментов тестирования 1С.
Казалось бы, все уже придумано до нас. Но...

Почему не подошли классические инструменты тестирования

Да, в экосистеме 1С уже есть отличные инструменты автоматизации, например Vanessa Automation. Это мощное решение для UI-сценариев, CI/CD и регрессионного тестирования.

Но у нас была немного другая задача.

Нужен был простой инструмент, который можно быстро подключить практически к любой базе и сразу начать использовать — особенно в УПП и с обычными формами.

Хотелось:

  • взять реальные документы из базы
  • быстро прогнать их после изменений
  • посмотреть, где что сломалось

Без подготовки BDD-сценариев, тестовых данных и сложной инфраструктуры.

В чём отличие подхода

Vanessa Automation — это инструмент сценарного тестирования.

SmokeLab — это скорее инструмент диагностики и “дымового” тестирования конфигурации.

Он позволяет:

  • проверять запись и проведение объектов
  • анализировать изменения “до / после”
  • искать побочные эффекты
  • проверять открытие обычных форм
  • быстро прогонять реальные документы из базы

Особенно полезно после обновлений, рефакторинга и изменений проведения.

Похожий функционал есть в ИнструментахРазработчика - Тестирование Метаданных, но он очень сырой и скудный по функционалу.
 

Описание возможностей по пунктам:

 

Проверка документов, справочников


Поддерживаются все варианты записи/проведения документов и справочников, в т.ч. с откатом транзакции (безопасная проверка)


Добавлена возможность запускать тест в отдельном сеансе через COM-соединение

Это позволяет:

  • поймать ошибки, которые не видны в текущем сеансе
  • проверить поведение "как на сервере"
     


Отбор по условиям, исключение и автоматический подбор объектов для проверки

Заполнять список можно:

  • Вручную
  • Из движений указанных регистров за указанный период (автоматически)
  • Все документы из метаданных (или только проведенные)
  • Все справочники из метаданных


При заполнении будет выбрано указанное количество объектов (для документов - с учетом выбранного периода)

При помощи условия запроса (произвольная строка условия, подставляется в запрос выборки) можно ограничить выборку 



Можно также исключить лишние объекты через вкладку "Исключения"


Проверка открытия форм

Инструмент открывает формы документов и справочников и проверяет:

  • открывается ли вообще форма
  • нет ли модифицированности формы при открытии
  • нет ли ошибок при открытии

    Форма документа открывается на 1 секунду интерактивно (для того чтобы успело отработать ОбновлениеОтображения) и сразу закрывается. Также проверяются формы списка и выбора. Вот такие бывают ситуации..

 

 


Анализ изменений объектов, реквизитов и табличных частей, движений

Очень полезная штука.

Инструмент:

  • снимает состояние документа (справочника)
  • проводит (записывает)
  • сравнивает

И показывает:

  • что поменялось
  • где поменялось (реквизиты, табличные части)
  • какие движения изменились


Моделирование изменений документов

Можно задать код, который выполнится при записи объекта, и проверить его поведений (изменились ли реквизиты, движения и т.д.). Т.е. поле для экспериментов) 
Желательно конечно делать это в режиме "отката транзакции"

 

Например:

Объект.ОтражатьВБухгалтерскомУчете = Ложь;
Объект.ЗаполнитьЦены();

И посмотреть:

- как это повлияет на документ

- какие движения изменятся

Можно вызывать экспортную функцию модуля объекта, проверить результат, при необходимости ВызыватьИсключение. Вобщем вариантов использования масса!

Внимание! Выполнение произвольного кода потенциально опасно!

Поэтому:

  • включается отдельной галкой
  • лучше использовать в тестовой базе
  • и понимать, что делаешь!

 

Логирование

Всё, что происходит во время теста:

  • этапы
  • ошибки
  • документы

пишется в JSON-лог, который можно сохранить в файл.

 

Также все логи выполнения и логи ошибок сохраняются в папке обработки с разбивкой по папкам с датой.

 

Профили настроек и динамический период проверки

Есть возможность использовать профили запуска.

Можно хранить разные настройки:

  • для DEV
  • для TEST
  • для ночных прогонов
  • для быстрых проверок
  • для проверки обменов и т.д.

Не нужно каждый раз руками перенастраивать обработку.
 

Для автоматических сценариев и регламентных запусков добавлен параметр:

ПериодПрофиля

Он позволяет задавать период не фиксированными датами, а строковым шаблоном.

Примеры:

today
yesterday
current-week
previous-week
current-month
previous-month
last-7d
last-10d
last-24h

Также поддерживается фиксированный интервал:

2026-05-01T00:00:00/2026-05-31T23:59:59

При открытии обработки или запуске регламентного задания SmokeLab автоматически:

  • анализирует ПериодПрофиля
  • рассчитывает даты
  • заполняет НачПериода и КонПериода

При этом приоритет остаётся за реальными полями дат:
если пользователь явно указал даты — они не перезаписываются.

 

Ручной, регламентный и bat-запуск

Есть возможность запускать SmokeLab как обычную внешнюю обработку, так и извне:

  • через bat/cmd
  • через конфигуратор
  • с выбором сценария
    (пример ключ запуска с указанием обработки и файла настроек:
    "/Execute "Z:\SmokeLab\SmokeLab.epf" /C "Z:\SmokeLab\settings Тест.json")

Теперь можно:

  • делать ночные проверки
  • запускать smoke после обновления
  • подключать к scheduler
  • использовать в CI/CD


     

Добавлена полноценная поддержка запуска через регламентные задания.

Для этого используются отдельные текстовые макеты:

  • НастройкиСценарияРегламентногоЗадания
  • НастройкиОповещенийРегламентногоЗадания
     

В макетах хранится JSON с настройками запуска для регламентного задания.

Это позволяет:

  • полностью запускать SmokeLab без UI
  • делать ночные прогоны
  • использовать scheduled smoke-проверки
  • выполнять автопроверку после обновлений

Ограничения регламентного режима запуска - нет проверки открытия форм документов и справочников (по понятным причинам) и режима COM-соединения (т.к. регламентное задание выполянется на сервере, в нем нет необходимости).

  

Фактически обработка уже может работать как небольшой automation runner.

 

Отправка результатов теста

Сейчас поддерживаются:

  • Email
  • Telegram
  • Yandex Messenger
  • Файловый каталог 
  • Журнал регистрации 1C

     

Плюс добавлена:

  • JSON-лог выполнения
  • отдельный лог ошибок
  • автоматическое хранение логов по датам в каталоге на диске

Пример:

logs\
|__ 2026-05-07\
|__ result_143000.json
|__ errors_143000.json

На практике оказалось очень удобно для анализа ночных прогонов.

Настройки оповещений хранятся в отдельном файле notify.json, путь к которому прописывается в файле настроек (для регламетного задания из макетов обработки)

 

Хранение чувствительных данных через #secure

В процессе развития SmokeLab появилась проблема хранения чувствительных данных:

  • токенов Telegram
  • API-ключей Yandex Messenger
  • SMTP-паролей
  • параметров COM-подключения

Хранить такие данные в открытом виде:

  • в JSON
  • в макетах
  • в профилях

не очень хотелось.

В результате был добавлен механизм ссылок на безопасное хранилище.
Требуется наличие типового регистра сведений "БезопасноеХранилищеДанных" в конфигурации!

Теперь вместо реального значения можно указывать:

#secure:SmokeLab/TelegramBotToken
#secure:SmokeLab/SMTPPassword
#secure:SmokeLab/COMPassword
#secure:SmokeLab/COMServer
#secure:SmokeLab/COMBase

При запуске SmokeLab автоматически:

  • распознает #secure
  • получает значение из БезопасногоХранилищаДанных
  • подставляет его в настройки

В результате:

  • конфиги можно хранить в git
  • notify.json не содержит секретов
  • макеты регламентных заданий не содержат паролей в открытом виде

Итог

Изначально это был "маленький инструмент для себя".

Но в итоге получился довольно универсальный помощник, который позволяет:

  • быстро прогонять документы
  • находить ошибки
  • анализировать изменения
  • проверять формы
  • экспериментировать со сценариями

Инструмент не является заменой систем автотестирования, а скорее дополняет их, позволяя быстро анализировать поведение документов на реальных данных.

Если кому-то окажется полезным — буду рад и спасибо за лайк! 👍

Проверено на следующих конфигурациях и релизах:

  • Управление производственным предприятием, редакция 1.3, релизы 1.3.279.1

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

сценарное тестирование документов smoke test регрессионное тестирование проведение документов анализ движений дымовой тест ванесса vanessa

См. также

Инструментарий разработчика Нейросети DevOps и автоматизация разработки Тестирование QA Разработчик 1С 8.3 Бесплатно (free)

Открытый набор правил и скриптов на GitHub для ИИ-агента (агента искусственного интеллекта: Claude Code, Codex и других). Агент сам снимает опись машины, предлагает путь проверки кода: плагин Unica или BSL Language Server со справкой платформы. С вашего «да» ставит недостающее, затем выгружает внешнюю обработку, заводит git и доводит её до зелёного теста YAxUnit. Оба пути проверены с нуля свежим агентом на копии демобазы «Управление торговлей» 11.5, платформа 8.3.27. Новая часть: для задач по данным базы агент выгружает конфигурацию в XML, строит карту объектов и пишет запросы только по именам, найденным в выгрузке. Внутри гайд «Unica на Windows» с известными ошибками и проверенными обходами.

10.11.2026    420    Iliaelagin    0    

1

Тестирование QA Разработчик 1С:Предприятие 8 Бесплатно (free)

Когда полная сборка автотестов занимает полчаса, даже небольшая автоматизация может изменить рабочий процесс. Рассказываю, как Python-утилита Phase Switcher постепенно превратилась в KOT for 1C — open-source расширение для VS Code. KOT 3.0 объединяет в одной рабочей среде библиотеку шагов и сценариев, IntelliSense, поддержку СППР и самостоятельных feature Vanessa Automation, исследователь форм, запись действий и управление выполнением через MCP. В статье — история разработки проекта от небольшой Python-утилиты до расширения для VS Code, практические примеры, неудачные эксперименты и решения, которые помогли инструменту прижиться в нашей команде.

02.11.2026    466    alexiosus    0    

2

Тестирование QA Бесплатно (free)

Резкий рост числа пользователей, консолидация систем или миграция в облако требуют заранее понять, выдержит ли инфраструктура новую нагрузку. Рассказываем, как с помощью LLM команда за 16 недель подготовила и провела нагрузочные тесты для шести баз: автоматизировала анализ технологических журналов и журналов регистрации, формирование реалистичных сценариев и создание обработок для «1С:Тест-центра» и JMeter. Показываем, как оркестратор, AI-агенты и MCP-серверы помогают сократить объем ручной работы, а также объясняем, почему контроль со стороны 1С-эксперта по-прежнему остается обязательным. Разбираем архитектуру решения, уже работающие инструменты и направления дальнейшей автоматизации нагрузочного тестирования.

31.10.2026    530    gabrielyants    0    

5

Инструментарий разработчика Тестирование QA Разработчик Стажер 1С 8.3 Абонемент ($m)

Проверила пять пакетных команд платформы 8.3.27 на контрольном расширении Нано-УТ: они обнаружили 4 из 28 заложенных пунктов. В набор входят ошибки применимости, предупреждения и сведения для ручного разбора. Проверка XML-выгрузки отметила все 28 пунктов и 15 из 15 на похожем слепом наборе. Показываю журналы, ограничения и сценарий обновления основной конфигурации. Прилагаются инструмент с 69 тестами и материалы опыта.

7 стартмани

28.10.2026    388    Ninel_S    2    

2

Инструментарий разработчика Мобильная разработка Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Скрипт form_diff_mobile.py сравнивает две выгрузки конфигурации 1С и показывает, что в формах удалено и переименовано, где на это ещё ссылаются и какой код попадает в мобильные контексты. На «Нано-УТ 2.0» сделано 13 изменений форм: платформа 8.3.27.2130 отметила 7, в остальных шести промолчала, и в четырёх из них скрипт нашёл обращение к удалённому элементу, строку с прежним именем формы, смену директивы или выход формы из мобильной области. На чистой УТ 11.5 сравнение с копией дало 0 находок, а с копией с пятью правками ровно семь. В архивах скрипт, 74 теста, стенд, чек-лист выпуска, журнал выпуска и скрипты опытов на платформе.

7 стартмани

27.10.2026    344    Ninel_S    0    

1

Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Прогнала через 1С 8.3.27 и валидатор .NET 21 файл XML по одной схеме: базовый пример и типичные отклонения. Вердикты совпали в 20 случаях (у .NET включены предупреждения), дата без времени дала расхождение. В архиве - схема, тесты, закреплённая версия учебной базы и исправленный сценарий проверки, включая выгрузку и обратное чтение 30 продаж.

1 стартмани

26.10.2026    340    Ninel_S    0    

1

Рефакторинг и качество кода Тестирование QA Системный администратор Разработчик 1С 8.3 Абонемент ($m)

В базе 1С на PostgreSQL копятся индексы, которыми никто не пользуется: их создаёт флажок «Индексировать» у реквизитов или их добавляют вручную. Каждый такой индекс замедляет запись: в опыте на тестовой таблице восемь лишних индексов сделали вставку 300 000 строк в четыре-шесть раз дольше. Скрипт на Python смотрит статистику PostgreSQL и показывает, какие индексы ни разу не использовались и какой реквизит 1С их создал. На нашей конфигурации «Нано-УТ» он нашёл четыре ненужных индекса документа и один дубль, добавленный вручную. После того как я сняла флажки и обновила конфигурацию, индексов стало 227 вместо 234, данные не пострадали. В архиве скрипт, запросы и примеры.

5 стартмани

23.10.2026    507    Ninel_S    4    

1

Рефакторинг и качество кода Тестирование QA Разработчик 1С 8.3 Абонемент ($m)

Скрипт, который должен был проверять код 1С в Docker, на деле проверял только, что файл не пустой: из 11 модулей с ошибками он пропустил все. Я переписала проверку и сравнила её с самой 1С на тех же 11 модулях из нашей конфигурации «Нано-УТ». Новый скрипт нашёл незакрытые «Если», процедуры и скобки в 10 случаях из 11. Вызов несуществующей процедуры находит только сама 1С. В архиве скрипт, файлы для Docker, примеры с ошибками и журналы проверки.

5 стартмани

23.10.2026    491    Ninel_S    4    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ibrogim 2010 11.04.26 01:30 Сейчас в теме
в УПП на обычных формах это практически не работает
А если и работает, то:
сложно настраивать
тяжело поддерживать
не всегда ловит реальные проблемы

Моё мнение:
На УПП и обычных формах ванесса работает
1. "сложно настраивать" - спорно
2. "тяжело поддерживать" - ещё более спорно
3. "не всегда ловит реальные проблемы" - кмк зависит он того как настроили

Что можно улучшить на мой взгляд:
1.Если это, так скажем, костыль то выложить его бесплатно а не за 3см, так возможно вы найдёте тех кто попробует и возможно увидит преимущества над бесплатной и практически типовой, задокументированной, ставшей стандартом Ванессой.
2. Извините если пропустил и об этом сказано, Тесты должны удобно запускаться извне командой, как через ванесса ранер, для встройки в ci/cd пайплайн. Сделать это недолго.
3. Должна быть не просто выгрузка в json, а опять же в общепринятые форматы, чтобы можно было смотреть результат например в alure . Ну это не долго в целом завайбкодить.
Кстати. если вы как и я много времени проводите с обычными формами, то вотмоя статья про воркфлоу доработки обработок через ИИ (в том числе обычных форм). Зуб даю, что выгрузку в Аллюр в обработке можно дописать за 15 минут не трогая обработку руками.
2. kiba 76 11.04.26 09:13 Сейчас в теме
(1) Спасибо за комментарий!

По поводу Vanessa — согласен, это мощный инструмент, особенно для сценарного тестирования и CI/CD. Но здесь, скорее, речь не о том, что она “не работает”, а о том, что у меня была немного другая задача.

Мне нужно было быстро взять реальные документы из базы, прогнать их без подготовки сценариев,
и посмотреть, что с ними происходит (проведение, формы, движения)

То есть это больше про диагностику и анализ поведения, чем про классическое автотестирование.
Вобщем да, можно считать этот инструмент "костылём", но аналогов с такими возможностями в полном объеме не нашел. Если я неправ, поправьте.

По пунктам:

1. Про бесплатность
Пока выложил так, чтобы понять, есть ли интерес. Дальше буду смотреть по отклику. Поставил 1 SM))

2. CI/CD
Сейчас инструмент больше ориентирован на интерактивное использование (быстрая проверка после изменений), но возможность запуска извне действительно имеет смысл добавить.Но часть функционала можно использовать только при интерактивной работе, т.к. например косяк в обработчике ОбновлениеОтображения, приводящий к модифицированности формы документа при открытии, можно только при интерактивном открытии отловить (как раз на днях такой косяк словили). А если форма крашится при открытии, это вообще ничем не ловится, только интерактивно. Если я неправ, поправьте.

3. Allure
Если инструмент будет двигаться в сторону автоматических прогонов и интеграции в пайплайны, то добавление экспорта в формат Allure, выглядит вполне логичным следующим шагом. Можно будет прикрутить, спасибо за идею.

В целом, спасибо за обратную связь — как раз такие комментарии помогают лучше понять, куда дальше развивать инструмент!
Для отправки сообщения требуется регистрация/авторизация