Чем проверять и чинить 1С: выбор метода под задачу
Содержание
Выбор зависит от того, где сидит ошибка. Сломались данные в таблицах базы — нужен режим «Тестирование и исправление» в Конфигураторе или утилита chdbfl.exe для файловой базы. Ошибка в коде доработки — «Проверка конфигурации» и отладчик. Неверные цифры в отчётах — «Экспресс-проверка», оборотно-сальдовая ведомость и ручная сверка. Регулярные доработки и обновления — автоматические тесты.
Ручная проверка дешёвая и быстрая на одном участке, но не масштабируется. Автотесты требуют вложений на старте и окупаются там, где база дорабатывается каждый месяц. Платформенные инструменты закрывают «железные» сбои, но не найдут ошибку в учёте: проведённый с неверным счётом документ для платформы совершенно корректен.
Какие бывают ошибки в 1С и кто их исправляет
Прежде чем выбирать инструмент, определите слой, на котором возникла проблема. От этого зависит и метод, и исполнитель.
| Слой | Как проявляется | Пример | Кто чинит |
|---|---|---|---|
| 🧱 Данные базы (физика) | База не открывается, падает при обращении к таблице | Файл базы данных поврежден, «битые» ссылки <Объект не найден> | Администратор |
| ⚙️ Конфигурация (код) | Ошибка выполнения при проведении, открытии формы | Поле объекта не обнаружено, Значение не является значением объектного типа | Программист |
| 📊 Учёт (методика) | Документы проводятся, но цифры не сходятся | Отрицательный остаток на 41, НДС не принят к вычету | Бухгалтер |
| 🖥 Окружение | Тормоза, обрывы сеансов, ошибки лицензий | Долгое проведение, Не обнаружена лицензия | Администратор |
| 🔄 Обмены и интеграции | Данные приходят с искажениями или не приходят | Задвоение контрагентов после загрузки из банка | Программист + бухгалтер |
Частая ошибка — лечить учётную проблему платформенным инструментом. «Тестирование и исправление» не исправит отрицательный остаток, а запуск с неправильными галочками может удалить объекты, на которые остались ссылки.
Встроенные инструменты 1С: проверка базы и конфигурации
Встроенные средства есть в любой поставке платформы 8.3, доплачивать за них не нужно.
Тестирование и исправление информационной базы
Главный инструмент для повреждённых данных. Запускается из Конфигуратора: Администрирование → Тестирование и исправление.
Режим требует монопольного доступа: все пользователи должны выйти из базы. Перед запуском сделайте выгрузку в .dt или копию каталога файловой базы. Исправление меняет данные необратимо.
Основные флажки:
- Реиндексация таблиц — перестраивает индексы. Безопасна, помогает при ошибках сортировки и поиска.
- Проверка логической целостности — ищет нарушения внутренней структуры записей.
- Проверка ссылочной целостности — находит ссылки на несуществующие объекты.
- Пересчёт итогов — пересчитывает итоговые таблицы регистров. Помогает, когда остатки в отчётах расходятся с движениями.
- Сжатие таблиц — уменьшает размер файловой базы.
- Реструктуризация таблиц — пересоздаёт таблицы. Самый долгий и тяжёлый пункт, включайте только при серьёзных сбоях.
Переключатель внизу: «Только тестирование» или «Тестирование и исправление». Начинайте с первого — получите отчёт без изменений.
Для битых ссылок предлагается выбор действия: создавать объекты, удалять ссылки или не изменять.
Выбирайте «Создавать объекты». Программа создаст объекты-заглушки, и вы увидите, какие документы на них ссылались. Вариант «Удалять ссылки» очистит реквизиты, и восстановить исходные значения потом будет нечем.
Утилита 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С: когда оно окупается
Автотест — сценарий, который сам открывает формы, заполняет документы и сверяет результат с эталоном. Писать их долго, зато прогон идёт без участия человека.
Окупается в трёх случаях:
- Нетиповая база, которую обновляют несколько раз в год. После объединения прогон тестов показывает, что сломалось.
- Постоянная доработка силами своих программистов: каждая правка проверяется регрессионными тестами.
- Сложные обмены с внешними системами, где ручная проверка занимает дни.
Для типовой базы без доработок, которую обслуживает франчайзи, автотесты своими силами обычно избыточны.
Инструменты автотестирования
| Инструмент | Что тестирует | Порог входа | Стоимость |
|---|---|---|---|
| Механизм тестирования платформы (менеджер и клиент тестирования) | Действия в интерфейсе | Высокий: сценарии пишут на встроенном языке | Входит в платформу |
| Vanessa Automation | Пользовательские сценарии на языке Gherkin, понятном аналитику | Средний | Свободное ПО |
| YAxUnit | Модульные тесты отдельных процедур, ставится расширением | Средний, для программистов | Свободное ПО |
| 1С:Сценарное тестирование 8 | Регрессионные сценарии с записью действий | Средний | Платный продукт фирмы 1С |
| АПК (автоматизированная проверка конфигураций) | Качество кода по стандартам разработки | Низкий | Платный продукт |
Механизм тестирования платформы запускается двумя экземплярами: один с параметром /TESTMANAGER (управляет), второй с /TESTCLIENT (принимает команды). На нём построены и Vanessa Automation, и Сценарное тестирование.
Пример сценария Vanessa Automation для проверки проведения:
Функционал: Проведение поступления товаров
Сценарий: Документ проводится без ошибок
Дано Я открываю основную форму списка документа "ПоступлениеТоваровУслуг"
И я нажимаю на кнопку с именем 'ФормаСоздать'
И из выпадающего списка с именем 'Контрагент' я выбираю по строке "Тестовый поставщик"
И я нажимаю на кнопку с именем 'ФормаПровестиИЗакрыть'
Тогда не появилось окно предупреждения системы
Имена шагов берутся из библиотеки шагов Vanessa Automation, их подсказывает сам редактор сценариев.
Тесты гоняют только на копии базы. Сценарий создаёт и проводит документы, в рабочей базе это испортит учёт.
Статический анализ кода
Отдельно от тестов — проверка кода без запуска. Помимо АПК, применяют BSL Language Server, в том числе как плагин к SonarQube. Он находит запросы в цикле, неиспользуемые переменные, нарушения стандартов. Работает с выгрузкой конфигурации в файлы.
Ручная проверка 1С: чек-лист для бухгалтера и кадровика
Автотесты ловят «упало или нет». Неверную цифру при успешном проведении найдёт только человек, который знает, какой должна быть цифра.
После обновления или доработки в бухгалтерской базе проверьте:
- Оборотно-сальдовую ведомость за прошлый закрытый месяц до и после — сальдо не должно измениться.
- Перепроведение одного-двух типовых документов каждого вида: поступление, реализация, банковская выписка.
- Закрытие месяца на копии базы — все операции без ошибок.
- Книгу покупок и продаж за прошлый квартал — суммы сходятся с поданной декларацией.
- Печатные формы: счёт-фактура, УПД, акт — реквизиты на месте.
В ЗУП 3.1 после обновления:
- Пересчитайте одного-двух сотрудников с разными видами начислений и сравните расчётный листок с прошлым расчётом.
- Сформируйте отчёт «Анализ начисленных налогов и взносов» и сверьте с прошлым периодом.
- Проверьте один больничный и один отпуск — средний заработок должен совпасть с прежним.
Типичные промахи при исправлении ошибок в 1С
- ❌ Исправление прямо в рабочей базе. Любой эксперимент — на копии. Развернуть копию из .dt занимает минуты, восстановить испорченный учёт — недели.
- ❌ «Тестирование и исправление» с «Удалять ссылки» вслепую. Реквизиты очищаются молча, документы теряют контрагентов и номенклатуру.
- ❌ Перепроведение всех документов за год ради одной ошибки. Меняются движения в закрытых периодах, расходятся отчёты, которые уже сданы.
- ❌ Правка типового модуля напрямую. Снимается поддержка, следующее обновление превратится в ручное объединение. Доработки лучше вносить расширением конфигурации.
- ❌ Исправление без воспроизведения. Если ошибку не удалось повторить, неизвестно, исправлена ли она.
- ❌ Одновременно несколько правок. Когда меняют три вещи сразу, непонятно, какая помогла, а какая добавила новую проблему.
Как сократить время на тестирование 1С
Время уходит не на сам прогон, а на подготовку и повторы. Сокращают его так:
- ⏱ Эталонная копия базы. Держите выгрузку .dt с небольшим набором данных: 2-3 организации, по десятку документов каждого вида. Тесты на ней идут быстрее, чем на базе за пять лет.
- ⏱ Регламент перед обновлением. Один и тот же порядок каждый раз: выгрузка, обновление копии, проверка конфигурации, чек-лист, перенос в рабочую.
- ⏱ Журнал найденных ошибок. Текст ошибки, причина, решение. Через полгода половина «новых» ошибок окажется старыми знакомыми.
- ⏱ Тест на каждую исправленную ошибку. Нашли сбой — напишите сценарий, который его ловит. Повторно он не пройдёт незамеченным.
- ⏱ Ночной прогон. Автотесты и «Тестирование и исправление» для больших баз запускайте вне рабочего времени по расписанию.
Ориентиры по времени для файловой базы около 5 ГБ: реиндексация — примерно 10-30 минут, полный набор флажков с реструктуризацией — от часа и больше. Точные цифры зависят от диска и числа объектов, поэтому первый прогон засеките и закладывайте это время в регламент.
Какой инструмент выбрать под вашу задачу
Сведём выбор в одну схему.
Сводная таблица для быстрого выбора:
| Задача | Инструмент | Риск |
|---|---|---|
| Повреждённый файл базы | chdbfl.exe | Средний, нужна копия |
| Битые ссылки, расхождения итогов | Тестирование и исправление | Средний, монопольный режим |
| Ошибка в коде | Проверка конфигурации, отладчик | Низкий |
| Медленная операция | Замер производительности, технологический журнал | Низкий |
| Ошибки учёта | Экспресс-проверка, ОСВ, ручная сверка | Низкий |
| Контроль после обновлений | Автотесты + чек-лист | Низкий, только на копии |