Чем проверять и чинить 1С: выбор метода под задачу

· 10 мин

Содержание

Выбор зависит от того, где сидит ошибка. Сломались данные в таблицах базы — нужен режим «Тестирование и исправление» в Конфигураторе или утилита chdbfl.exe для файловой базы. Ошибка в коде доработки — «Проверка конфигурации» и отладчик. Неверные цифры в отчётах — «Экспресс-проверка», оборотно-сальдовая ведомость и ручная сверка. Регулярные доработки и обновления — автоматические тесты.

Ручная проверка дешёвая и быстрая на одном участке, но не масштабируется. Автотесты требуют вложений на старте и окупаются там, где база дорабатывается каждый месяц. Платформенные инструменты закрывают «железные» сбои, но не найдут ошибку в учёте: проведённый с неверным счётом документ для платформы совершенно корректен.

Какие бывают ошибки в 1С и кто их исправляет

Прежде чем выбирать инструмент, определите слой, на котором возникла проблема. От этого зависит и метод, и исполнитель.

СлойКак проявляетсяПримерКто чинит
🧱 Данные базы (физика)База не открывается, падает при обращении к таблицеФайл базы данных поврежден, «битые» ссылки <Объект не найден>Администратор
⚙️ Конфигурация (код)Ошибка выполнения при проведении, открытии формыПоле объекта не обнаружено, Значение не является значением объектного типаПрограммист
📊 Учёт (методика)Документы проводятся, но цифры не сходятсяОтрицательный остаток на 41, НДС не принят к вычетуБухгалтер
🖥 ОкружениеТормоза, обрывы сеансов, ошибки лицензийДолгое проведение, Не обнаружена лицензияАдминистратор
🔄 Обмены и интеграцииДанные приходят с искажениями или не приходятЗадвоение контрагентов после загрузки из банкаПрограммист + бухгалтер

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

Встроенные инструменты 1С: проверка базы и конфигурации

Встроенные средства есть в любой поставке платформы 8.3, доплачивать за них не нужно.

Тестирование и исправление информационной базы

Главный инструмент для повреждённых данных. Запускается из Конфигуратора: Администрирование → Тестирование и исправление.

Режим требует монопольного доступа: все пользователи должны выйти из базы. Перед запуском сделайте выгрузку в .dt или копию каталога файловой базы. Исправление меняет данные необратимо.

Основные флажки:

  1. Реиндексация таблиц — перестраивает индексы. Безопасна, помогает при ошибках сортировки и поиска.
  2. Проверка логической целостности — ищет нарушения внутренней структуры записей.
  3. Проверка ссылочной целостности — находит ссылки на несуществующие объекты.
  4. Пересчёт итогов — пересчитывает итоговые таблицы регистров. Помогает, когда остатки в отчётах расходятся с движениями.
  5. Сжатие таблиц — уменьшает размер файловой базы.
  6. Реструктуризация таблиц — пересоздаёт таблицы. Самый долгий и тяжёлый пункт, включайте только при серьёзных сбоях.

Переключатель внизу: «Только тестирование» или «Тестирование и исправление». Начинайте с первого — получите отчёт без изменений.

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

Выбирайте «Создавать объекты». Программа создаст объекты-заглушки, и вы увидите, какие документы на них ссылались. Вариант «Удалять ссылки» очистит реквизиты, и восстановить исходные значения потом будет нечем.

Утилита chdbfl.exe для файловых баз

Лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe. Проверяет физическую целостность файла 1Cv8.1CD.

Когда нужна: база не открывается даже в Конфигураторе, и до «Тестирования и исправления» не добраться. В окне утилиты укажите путь к файлу, поставьте флажок исправления обнаруженных ошибок и запустите проверку. База во время работы должна быть закрыта у всех.

Для клиент-серверных баз утилита не подходит. Там физику таблиц проверяют средствами СУБД — это задача администратора сервера.

Проверка конфигурации и синтаксический контроль

В Конфигураторе: Конфигурация → Проверка конфигурации. Инструмент ищет ошибки в метаданных и модулях без запуска пользовательского режима.

Что стоит включать:

  • ✅ логическую целостность конфигурации;
  • ✅ поиск некорректных ссылок;
  • ✅ синтаксический контроль модулей для нужных режимов (тонкий клиент, сервер, внешнее соединение);
  • ✅ поиск неиспользуемых процедур и функций — полезно после большой доработки.

Запускайте после каждого изменения кода и обязательно после объединения конфигурации при обновлении нетиповой базы.

Отладчик и замер производительности

Если ошибка воспроизводится, но причина неясна, нужен отладчик: Отладка → Начать отладку. Поставьте точку останова (F9) в нужной строке модуля, повторите действие пользователя и смотрите значения переменных в табло.

Для медленных операций — Отладка → Замер производительности. Он показывает, какие строки кода заняли больше всего времени. Обычно находится запрос в цикле или лишнее обращение к реквизиту через точку.

Журнал регистрации и технологический журнал

Журнал регистрации есть в каждой базе. В типовых конфигурациях на БСП: Администрирование → Обслуживание, ссылка «Журнал регистрации». Фильтр по уровню «Ошибка» за нужный день покажет текст исключения, пользователя и объект.

Технологический журнал включают файлом logcfg.xml в каталоге настроек платформы. Он фиксирует события на уровне платформы: исключения, длительные вызовы, блокировки. Включать его надолго нельзя: файлы быстро растут и нагружают диск.

Если для logcfg.xml потребуется перезапуск службы сервера 1С, оборвутся сеансы всех пользователей. Делайте это вне рабочего времени.

Встроенные проверки учёта

В БП 3.0: Отчеты → Анализ учета → Экспресс-проверка. Отчёт проверяет типовые методические ошибки по разделам учёта и даёт ссылки на проблемные документы.

Ещё полезны:

  • 📌 «Закрытие месяца » в разделе Операции — при ошибке регламентной операции показывает её причину;
  • 📌 в Администрирование → Обслуживание группа «Корректность данных» — поиск и удаление дублей, удаление помеченных объектов, проверка ведения учёта (в релизах на свежей БСП).

Автоматизированное тестирование 1С: когда оно окупается

Автотест — сценарий, который сам открывает формы, заполняет документы и сверяет результат с эталоном. Писать их долго, зато прогон идёт без участия человека.

Окупается в трёх случаях:

  1. Нетиповая база, которую обновляют несколько раз в год. После объединения прогон тестов показывает, что сломалось.
  2. Постоянная доработка силами своих программистов: каждая правка проверяется регрессионными тестами.
  3. Сложные обмены с внешними системами, где ручная проверка занимает дни.

Для типовой базы без доработок, которую обслуживает франчайзи, автотесты своими силами обычно избыточны.

Инструменты автотестирования

ИнструментЧто тестируетПорог входаСтоимость
Механизм тестирования платформы (менеджер и клиент тестирования)Действия в интерфейсеВысокий: сценарии пишут на встроенном языкеВходит в платформу
Vanessa AutomationПользовательские сценарии на языке Gherkin, понятном аналитикуСреднийСвободное ПО
YAxUnitМодульные тесты отдельных процедур, ставится расширениемСредний, для программистовСвободное ПО
1С:Сценарное тестирование 8Регрессионные сценарии с записью действийСреднийПлатный продукт фирмы 1С
АПК (автоматизированная проверка конфигураций)Качество кода по стандартам разработкиНизкийПлатный продукт

Механизм тестирования платформы запускается двумя экземплярами: один с параметром /TESTMANAGER (управляет), второй с /TESTCLIENT (принимает команды). На нём построены и Vanessa Automation, и Сценарное тестирование.

Пример сценария Vanessa Automation для проверки проведения:

Функционал: Проведение поступления товаров

Сценарий: Документ проводится без ошибок
    Дано Я открываю основную форму списка документа "ПоступлениеТоваровУслуг"
    И я нажимаю на кнопку с именем 'ФормаСоздать'
    И из выпадающего списка с именем 'Контрагент' я выбираю по строке "Тестовый поставщик"
    И я нажимаю на кнопку с именем 'ФормаПровестиИЗакрыть'
    Тогда не появилось окно предупреждения системы

Имена шагов берутся из библиотеки шагов Vanessa Automation, их подсказывает сам редактор сценариев.

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

Статический анализ кода

Отдельно от тестов — проверка кода без запуска. Помимо АПК, применяют BSL Language Server, в том числе как плагин к SonarQube. Он находит запросы в цикле, неиспользуемые переменные, нарушения стандартов. Работает с выгрузкой конфигурации в файлы.

Ручная проверка 1С: чек-лист для бухгалтера и кадровика

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

После обновления или доработки в бухгалтерской базе проверьте:

  1. Оборотно-сальдовую ведомость за прошлый закрытый месяц до и после — сальдо не должно измениться.
  2. Перепроведение одного-двух типовых документов каждого вида: поступление, реализация, банковская выписка.
  3. Закрытие месяца на копии базы — все операции без ошибок.
  4. Книгу покупок и продаж за прошлый квартал — суммы сходятся с поданной декларацией.
  5. Печатные формы: счёт-фактура, УПД, акт — реквизиты на месте.

В ЗУП 3.1 после обновления:

  1. Пересчитайте одного-двух сотрудников с разными видами начислений и сравните расчётный листок с прошлым расчётом.
  2. Сформируйте отчёт «Анализ начисленных налогов и взносов» и сверьте с прошлым периодом.
  3. Проверьте один больничный и один отпуск — средний заработок должен совпасть с прежним.
Ручная проверка после обновления
Выполнено: 0 / 7

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

  • ❌ Исправление прямо в рабочей базе. Любой эксперимент — на копии. Развернуть копию из .dt занимает минуты, восстановить испорченный учёт — недели.
  • ❌ «Тестирование и исправление» с «Удалять ссылки» вслепую. Реквизиты очищаются молча, документы теряют контрагентов и номенклатуру.
  • ❌ Перепроведение всех документов за год ради одной ошибки. Меняются движения в закрытых периодах, расходятся отчёты, которые уже сданы.
  • ❌ Правка типового модуля напрямую. Снимается поддержка, следующее обновление превратится в ручное объединение. Доработки лучше вносить расширением конфигурации.
  • ❌ Исправление без воспроизведения. Если ошибку не удалось повторить, неизвестно, исправлена ли она.
  • ❌ Одновременно несколько правок. Когда меняют три вещи сразу, непонятно, какая помогла, а какая добавила новую проблему.

Как сократить время на тестирование 1С

Время уходит не на сам прогон, а на подготовку и повторы. Сокращают его так:

  • ⏱ Эталонная копия базы. Держите выгрузку .dt с небольшим набором данных: 2-3 организации, по десятку документов каждого вида. Тесты на ней идут быстрее, чем на базе за пять лет.
  • ⏱ Регламент перед обновлением. Один и тот же порядок каждый раз: выгрузка, обновление копии, проверка конфигурации, чек-лист, перенос в рабочую.
  • ⏱ Журнал найденных ошибок. Текст ошибки, причина, решение. Через полгода половина «новых» ошибок окажется старыми знакомыми.
  • ⏱ Тест на каждую исправленную ошибку. Нашли сбой — напишите сценарий, который его ловит. Повторно он не пройдёт незамеченным.
  • ⏱ Ночной прогон. Автотесты и «Тестирование и исправление» для больших баз запускайте вне рабочего времени по расписанию.

Ориентиры по времени для файловой базы около 5 ГБ: реиндексация — примерно 10-30 минут, полный набор флажков с реструктуризацией — от часа и больше. Точные цифры зависят от диска и числа объектов, поэтому первый прогон засеките и закладывайте это время в регламент.

Какой инструмент выбрать под вашу задачу

Сведём выбор в одну схему.

Что у вас происходит?

Сводная таблица для быстрого выбора:

ЗадачаИнструментРиск
Повреждённый файл базыchdbfl.exeСредний, нужна копия
Битые ссылки, расхождения итоговТестирование и исправлениеСредний, монопольный режим
Ошибка в кодеПроверка конфигурации, отладчикНизкий
Медленная операцияЗамер производительности, технологический журналНизкий
Ошибки учётаЭкспресс-проверка, ОСВ, ручная сверкаНизкий
Контроль после обновленийАвтотесты + чек-листНизкий, только на копии

Частые вопросы по тестированию и исправлению ошибок 1С

Можно ли запускать тестирование и исправление при работающих пользователях?
Нет. Режим требует монопольного доступа, поэтому всех пользователей нужно попросить выйти. Планируйте запуск на вечер или выходные.
Как часто нужно запускать тестирование и исправление?
Профилактически хватит реиндексации раз в месяц-квартал для файловой базы. Полный набор проверок — при сбоях, после аварийного отключения питания и перед обновлением сложной нетиповой базы.
Чем отличается «Только тестирование» от «Тестирование и исправление»?
Первый режим только находит ошибки и выводит отчёт, данные не меняются. Второй сразу исправляет найденное. Начинайте с первого.
Нужен ли программист для автотестов?
Для модульных тестов в YAxUnit — да. Сценарии Vanessa Automation на языке Gherkin может писать аналитик или опытный пользователь, но настроить окружение и запуск лучше поручить программисту.
Что делать, если после тестирования и исправления в базе появились странные пустые элементы?
Это объекты-заглушки, созданные вместо битых ссылок. Найдите документы, которые на них ссылаются, и замените заглушки на правильные элементы справочника. После этого заглушки можно пометить на удаление.