ТОП-5 источников ошибок в 1С: Анализ тестировщика и пути их устранения

12.08.25

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

За два года ручного тестирования решений на базе платформы 1С я столкнулся с огромным количеством ошибок. Глубокий анализ их причин позволил выделить ТОП-5 наиболее частых источников сбоев в 1С-разработке. Понимание этих коренных причин – первый шаг к их предотвращению. В этой статье я делюсь своими наблюдениями и предлагаю практические пути снижения рисков для каждого типа ошибок.

1. Невнимательность: Следствие или причина?

Классическая, но критичная причина ошибок на всех этапах (написание ТЗ, разработка, тестирование): пропущенные запятые в запросах, вызовы функций не в том месте, упущенные детали. Часто невнимательность – лишь следствие других проблем: срочные запросы от продакт-менеджера по предыдущим задачам сбивают фокус, плохо структурированные ТЗ. Ключевые требования "теряются" среди скриншотов или не имеют четкой нумерации (отсутствие трассируемости). Например:

 

 

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

Варианты решения:

  • Ревью требований (Requirement Review): перед стартом разработки программист изучает ТЗ и дает обратную связь: понятна ли задача, есть ли неясности. Это проясняет нюансы до написания кода.
  • Четкая структура ТЗ: обязательная нумерация требований, визуальное выделение, отдельные разделы для функциональных и нефункциональных требований. Трассируемость – ключ!
  • Четкие критерии приемки (Acceptance Criteria): конкретный список условий, при которых задача считается выполненной. Фокусирует и разработчика, и тестировщика на ожидаемом результате.

 

2. Слепое копирование кода (Copy/Paste): Опасное удобство

Эту причину также можно отнести к невнимательности, но хотелось бы выделить отдельно.  Механическое копирование кода – частый источник ошибок. Программист копирует фрагмент, адаптирует его под текущую задачу, но:

  • Не адаптирует контекст: скопированный код может зависеть от переменных или условий, отсутствующих в новом месте.
  • Не обновляет зависимости: не вносятся необходимые изменения в связанные объекты или параметры.
  • Размножает ошибки: если в исходном фрагменте была ошибка, она тиражируется.
  • Усложняет поддержку: появляются многочисленные почти идентичные, но слегка отличающиеся фрагменты кода, что затрудняет поиск ошибок и внесение глобальных изменений.

Варианты решения:

  • Принцип DRY (Don't Repeat Yourself): вынесения повторяющейся логики в общие модули, процедуры/функции или обработчики команд. Переиспользование через вызов, а не копирование.
  • Внимательный рефакторинг: при необходимости копирования – тщательный анализ всего контекста: какие переменные используются, от каких условий зависит, какие объекты задействованы. Полная адаптация к новому месту.
  • Code Review: и в очередной раз ревью – ключевой инструмент для выявления необоснованного копирования, "клонов" и потенциальных проблем контекста.
  • Статические анализаторы кода: использование инструментов способных выявлять дублирование кода.

 

3. Незнание функционала и бизнес-процессов

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

* Побочным эффектам - изменения непреднамеренно затрагивают смежные или зависимые процессы, запуская цикл "разработка-тестирование-доработка".

* Локальным изменениям - доработка функции в одном месте ломает ее в других, о которых разработчик не знал или не учел. Например, у нас есть форма, которая вызывается в 3х разных документах:

 

 

 

 

 

 

 

Казалось бы, логично, что, изменив саму форму, мы изменим её во всех местах, но на практике это оказывается не так, и при тестировании мы узнаём, что одна форма открывается как надо, а другие при открытии выдают ошибку.

Варианты решения:

  • Обязательные бизнес-аттестации: разработчики изучают пользовательскую/техническую документацию и проходят аттестацию на знание ключевых бизнес-процессов компании и работы инструментов с точки зрения пользователя. Вопросы готовят бизнес-аналитики или опытные пользователи.

Результат:

  • Программисты начинают лучше понимать контекст использования. Это позволяет им предвидеть потенциальные точки сбоя при изменениях.
  • Осознанно вносить доработки во все необходимые места, даже если это не явно указано в ТЗ.
  • Эффективнее коммуницировать с тестировщиками и аналитиками.

Знание процессов значительно сокращает появление ошибок, а также уменьшает так называемый «Бас фактор», ведь если даже программист не работал с функционалом, при знании процесса он может примерно представлять как работают те или иные функции.

 

4. Некорректные тестовые данные

Качество тестирования напрямую зависит от качества данных. В тестовых средах разработчиков данные часто:

  • Устарели (не синхронизированы с основной БД).
  • "Битые" (содержат ошибки, нерелевантны).
  • Неполные/нерепрезентативные (не покрывают все сценарии, особенно граничные).
  • Созданы вручную под конкретную задачу, не отражая реальной сложности.
  • Причина может быть частично связана с пунктом 3 – без знания процессов сложно подобрать корректные данные. Тестирование на устаревших или "искусственных" данных не гарантирует корректной работы в рабочей среде с актуальными объемами.

Варианты решения:

  • Регулярные срезы ЦБ (Центральной Базы): настройка процесса автоматического или полуавтоматического создания актуальных срезов рабочей БД для тестовых сред.  Это дает более релевантную картину. Более подробно об этом рассказывает мой коллега в своей статье.
  • Проблема актуальности: для задач, требующих самых свежих данных (например, за вчера), срезы не всегда помогают, поэтому приходится использовать такие механизмы как:
  • Аккуратная ручная загрузка: выборочное обновление критичных данных в тестовых средах.
  • Тестовые полигоны в рабочей базе (крайняя мера!): создание изолированных областей в основной базе для тестирования только при невозможности других вариантов, с высочайшей осторожностью и контролем.

 

5. Ошибки при помещении в хранилище

Наш процесс разработки включает локальные базы разработчиков, тестовые среды (часто с более репрезентативными данными) и основную рабочую базу. Ошибки возникают на финальном этапе – при помещении изменений в хранилище основной базы. Причины разнообразны: некорректный порядок строк кода (работавший в тесте, но не в проде), забытые объекты/роли, ошибки конфигурирования при помещении. Результат – "сюрпризы" для пользователей после обновления.

Варианты решения:

  • Поэтапное внедрение Git. Вместо недостижимого пока CI/CD можно начать с внедрения Git. Это не панацея, но сильно снизит риски именно на этапе интеграции изменений в основную конфигурацию, также это шаг к внедрению CI/CD.
  • Обязательный Code Review перед помещением в хранилище. Проводится после тестирования, когда логика зафиксирована. Цель – выявить очевидные ошибки конфигурации, пропущенные объекты, проблемы с правами. Ревью значительно снижает количество "заливных" ошибок.

 

Заключение:

Постоянная борьба с ошибками в 1С требует системного подхода. Ключевые направления улучшений:

  1. Контроль версий как фундамент: поэтапное внедрение Git для управления изменениями конфигурации, обеспечения истории, прозрачности и безопасного слияния правок. Это база для будущей автоматизации.
  2. Контроль качества на всех этапах: ревью требований, Code Review, четкие критерии приемки.
  3. Глубокое знание предметной области: бизнес-аттестации для разработчиков.
  4. Повышение культуры разработки: следование принципам DRY, осознанное использование копирования, постоянное обучение.

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

 

А также про ручное тестирование в 1C и какой путь оно прошло в нашей команде, вы можете послушать в моём докладе, который я готовлю к INFOSTART TECH EVENT 2025. Проголосовать и тем самым поддержать автора, можно тут: https://event.infostart.ru/2025/agenda/2443352/

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

Ручное Тестирование QA

См. также

Тестирование QA DevOps и автоматизация разработки Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.190.11.

5368 руб.

20.01.2022    11297    48    1    

21

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.35.48.

5000 руб.

05.08.2024    5573    36    1    

20

Тестирование QA DevOps и автоматизация разработки Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.22.145.

5000 руб.

04.07.2022    13230    50    1    

39

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

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

17.03.2026    1454    IgorVasilyev    51    

26

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

В статье рассказываю, как писать код 1С в VS Code с помощью бесплатных AI-моделей 🤖 Используем GLM-4.7 через Roocode + Cerebras (до 1 миллион токенов в день). Подключаем бесплатные MCP. Генерируем новый код и смотрим, как AI справляется с задачами.

06.02.2026    13153    Ibrogim    77    

49

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

Некоторые задачи можно и нужно делегировать ИИ, а простые задачи можно отдавать бесплатным моделям. В статье коротко рассказываю про расширение roocode для vscode, инструмент openrouter и реальную задачу по рефакторингу кода.

02.02.2026    12315    Ibrogim    54    

48

Тестирование QA Программист 1С:Предприятие 8 Бесплатно (free)

За последний год YAxUnit заметно вырос: обновилась документация, запуск тестов в EDT стал практически мгновенным, появился редактор для режима 1С:Предприятие, инструменты для подготовки тестовых данных и подключение к ИИ через MCP-сервер для проверки и улучшения кода. Расскажем о том, какие свежие возможности YAxUnit позволяют сделать модульное и интеграционное тестирование в 1С быстрым, эффективным и комфортным.

26.01.2026    4186    Жолтокнижниг    16    

27

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

С Docker мы можем попробовать новые подходы, освоить современные инструменты и сделать тестирование 1С более эффективным. Расскажем об особенностях тестирования в Docker-контейнерах и решении проблем, которые могут при этом возникнуть.

20.01.2026    3754    TaGolovkina    14    

25
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. chuvak9999 13.08.25 07:33 Сейчас в теме
Ошибка №5.
Не заблюрить скрины в статьях на Инфостарте. )
2. Светлый ум 508 14.08.25 12:12 Сейчас в теме
Отсутствие вообще тестирования и правки на проде - вот что чаще всего)
3. Farpost 117 14.08.25 12:18 Сейчас в теме
Вообще то, я всегда считал, что прогресс, это процесс превращения сложного в простое...но не наоборот.
В версиях 77 и 8.2 процесс вхождения в программирование был прост и позволял зайти даже без курсов или обязательного образования. Ну а теперь с такой сложностью кодирования в "современной системе 1С" количество ошибок только будет нарастать...
Для отправки сообщения требуется регистрация/авторизация