Этика тестирования | infolimp.ru

Этика тестирования

18 июня 2026 · infolimp.ru

Этика тестирования в экосистеме 1С — это не просто модное словосочетание, а насущная необходимость. В условиях, когда каждая вторая доработка конфигурации может привести к кассовому разрыву или ошибке в отчетности, профессиональное сообщество всё чаще задаётся вопросом: как тестировать код, не нарушая доверия заказчика и не подставляя коллег? Мы разобрали ключевые аспекты этой проблемы на основе статьи с Infostart и добавили практические рекомендации для разработчиков.

Почему этика тестирования стала трендом 2025–2026 годов

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

Разработчик, который выгружает в продуктив неоттестированный код, рискует не только репутацией, но и финансовой стабильностью клиента. Особенно остро это ощущается в конфигурациях «1С:Бухгалтерия 3.0» и «1С:ЗУП 3.1», где ошибка в расчёте налогов или зарплаты может обернуться штрафами.

Ключевой тезис: Этика тестирования — это не про «найти баги», а про ответственность за последствия каждого запущенного в production кода. Если вы не можете гарантировать, что обработка не удалит данные — вы не имеете права её запускать.

Технический разбор: как выглядит «неэтичный» код

Рассмотрим типичную ситуацию: разработчик пишет обработку для массового изменения документов, но забывает про транзакционность и проверку прав доступа.

Процедура МассовоеИзменениеДокументов(МассивСсылок, НоваяДата) Экспорт
    Для Каждого Ссылка Из МассивСсылок Цикл
        Попытка
            ДокОбъект = Ссылка.ПолучитьОбъект();
            ДокОбъект.Дата = НоваяДата;
            ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
        Исключение
            // Молча пропускаем ошибку — это этически недопустимо
        КонецПопытки;
    КонецЦикла;
КонецПроцедуры

Проблемы: отсутствие логирования ошибок, игнорирование блокировок, нет проверки на проведённость документа. В результате — частичное изменение данных и невозможность отката.

Практическое руководство: как внедрить этичное тестирование

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

Шаг 1. Создайте «песочницу» для тестов

Каждый разработчик должен иметь копию базы, максимально приближенную к продуктивной. Используйте механизм Выгрузка/Загрузка информационной базы или Создание копии базы данных через штатные средства платформы.

Шаг 2. Внедрите обязательное логирование

Любая операция, изменяющая данные, должна фиксироваться в журнале регистрации. Пример корректного логирования:

Процедура ЗаписатьДокументБезопасно(ДокОбъект)
    Попытка
        ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
        ЗаписьЖурналаРегистрации(
            "Изменение документа",
            УровеньЖурналаРегистрации.Информация,
            , // Событие
            ДокОбъект.Ссылка,
            "Документ успешно записан: " + ДокОбъект.Номер
        );
    Исключение
        ЗаписьЖурналаРегистрации(
            "Ошибка записи документа",
            УровеньЖурналаРегистрации.Ошибка,
            , // Событие
            ДокОбъект.Ссылка,
            КраткоеПредставлениеОшибки(ИнформацияОбОшибке())
        );
        ВызватьИсключение; // Пробрасываем ошибку дальше
    КонецПопытки;
КонецПроцедуры

Шаг 3. Используйте автоматические проверки перед выгрузкой

Создайте обработку, которая перед выгрузкой в продуктив проверяет:

Типичные ошибки при тестировании в 1С

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

  1. Тестирование на «пустой» базе. Разработчик проверяет код на базе с 10 документами, а в продуктиве — 100 000. Результат: зависания и блокировки.
  2. Игнорирование прав доступа. Код работает под полными правами, но у пользователей — ограничения. В результате — ошибки «Недостаточно прав» в самый неподходящий момент.
  3. Отсутствие тестов на граничные значения. Например, обработка по начислению зарплаты не проверяет случай, когда сотрудник принят 31 февраля (такое бывает при переносе данных из старых систем).
Предупреждение: Никогда не тестируйте код, изменяющий данные, в продуктивной базе без предварительного согласования с заказчиком и создания резервной копии. Даже если вы уверены в результате на 99%, 1% может стоить вам контракта.

Чек-лист: «Этичное тестирование перед выгрузкой»

Распечатайте и повесьте над рабочим местом:

Что делать прямо сейчас

Не откладывайте внедрение этических стандартов на «потом». Вот три действия, которые можно выполнить сегодня:

  1. Аудит текущих обработок. Проверьте, все ли ваши внешние обработки и расширения имеют механизм логирования и обработки ошибок.
  2. Настройте автоматическое создание копии базы перед каждым обновлением конфигурации. Используйте регламентные задания или скрипты на основе ЧтениеZipФайла и ЗаписьZipФайла для архивации.
  3. Проведите «пятничный код-ревью» — раз в неделю собирайтесь с коллегами и разбирайте по одному фрагменту кода на предмет этичности тестирования.

Сравнение подходов к тестированию

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

Критерий Этичный подход Неэтичный подход
Резервное копирование Обязательно перед каждым изменением «Авось пронесёт»
Логирование Полное, с указанием пользователя и времени Отсутствует или минимальное
Тестовые данные Копия продуктивной базы с обезличенными данными Пустая база или «пара документов»
Обработка ошибок Блоки Попытка/Исключение с уведомлением администратора Молчаливое игнорирование
Согласование с заказчиком Письменное подтверждение на каждую выгрузку «Сделаем, а потом скажем»
Законная оговорка: Все рекомендации в статье носят методический характер и не заменяют официальную документацию фирмы «1С» и действующее законодательство РФ. Конкретные реализации могут отличаться в зависимости от версии платформы и конфигурации.

Заключение

Этика тестирования в 1С — это не абстрактное понятие, а набор конкретных практик, которые защищают и разработчика, и заказчика. Внедряя эти принципы сегодня, вы инвестируете в свою репутацию и профессиональное будущее. Помните: хороший код — это не тот, который работает на вашем компьютере, а тот, который не ломает бизнес-процессы клиента.

Профессиональные решения для 1С и marketplace-интеграций — каталог отчётов и инструментов на витрине НОПи.

Перейти в каталог решений →