Администрирование · 10 мин
Ошибки в 1С: как найти причину и исправить без потери данных
Разбираем типичные ошибки в 1С: как определить причину, исправить данные и проводки, восстановить базу после сбоя и настроить защиту от повторных ошибок.
Ошибки в 1С делятся на три большие группы: ошибки пользовательских данных (неверные документы, проводки, остатки), ошибки конфигурации (сбои после обновления, конфликты доработок) и ошибки платформы или инфраструктуры (повреждение базы, разрыв соединения, нехватка ресурсов сервера). Подход к исправлению в каждом случае разный, и главная ошибка самих пользователей — лечить симптом, не найдя причину.
Прежде чем что-либо исправлять, нужно зафиксировать симптомы: точный текст сообщения, момент возникновения (при проведении документа, при открытии отчёта, при обмене), у одного пользователя или у всех. Эти наблюдения сразу сужают круг поиска: ошибка у одного пользователя почти всегда связана с настройками, кэшем или правами, а массовая — с данными, регламентными заданиями или сервером.
Любые действия по исправлению выполняйте только после создания резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытых сеансах, для клиент-серверной — сделать выгрузку через конфигуратор или средствами СУБД. Без копии даже безобидная «тестовая» операция может превратиться в необратимую потерю данных.
Как классифицировать ошибку и сузить поиск
Первый шаг — понять, к какому классу относится проблема. Ошибки данных проявляются как неверные суммы в отчётах, отрицательные остатки, «битые» ссылки вида «Объект не найден». Ошибки конфигурации возникают после обновления или доработки: документ не проводится, отчёт падает с сообщением об ошибке в модуле. Ошибки платформы выглядят как аварийное завершение, «Ошибка формата потока», невозможность войти в базу.
Полезное правило: если ошибка воспроизводится на конкретном документе или контрагенте — ищите проблему в данных. Если воспроизводится на любом объекте одного типа — вероятнее проблема в коде конфигурации или правах. Если база не открывается вообще — это уровень платформы или файла базы.
Очистите кэш, проверьте права и настройки пользователя
Проверяйте данные, регламентные задания, журнал регистрации
Сверьте изменения, проверьте обработчики обновления
Используйте тестирование и исправление, chdbfl или восстановление из копии
Диагностика: журнал регистрации и технологический журнал
Основной источник информации — журнал регистрации (в конфигураторе: Администрирование → Журнал регистрации, в типовых прикладных решениях есть аналогичный раздел в пользовательском режиме). Отфильтруйте события по уровню «Ошибка» и по времени возникновения проблемы. Там видно, какой пользователь, в каком объекте и с каким текстом получил отказ.
Если журнал регистрации не даёт ответа — например, при падении толстого клиента или ошибках СУБД — подключите технологический журнал платформы. Он настраивается через файл logcfg.xml в каталоге conf платформы и записывает события на уровне rphost, что позволяет увидеть запросы, блокировки и аварийные завершения. Включайте его точечно и на ограниченное время: полный лог быстро разрастается и замедляет работу.
Исправление ошибок в данных: документы, проводки, остатки
Типовой сценарий — неверные остатки или суммы в отчётах. Начните с перепроведения документов за проблемный период: в типовых конфигурациях есть обработка «Проведение по партиям» или групповое перепроведение через «Все функции». Перед этим закройте период для редактирования другими пользователями, иначе результаты будут «плыть».
Отрицательные остатки на складе чаще всего возникают из-за проведения реализации задним числом раньше поступления или из-за отключённого контроля остатков. Порядок действий: восстановите последовательность проведения (Операции → Проведение документов → Восстановление последовательностей), затем найдите документы, дающие минус, через отчёт по остаткам с детализацией до регистратора.
«Битые» ссылки («Объект не найден») появляются после физического удаления объектов без контроля ссылочной целостности. Исправляются либо восстановлением объекта из копии, либо заменой ссылки на корректное значение через обработку поиска и замены. Чтобы проблема не повторялась, удаляйте объекты только через пометку удаления с последующим контролем ссылок.
- 1Сделайте резервную копию базы
- 2Закройте период от изменений другими пользователями
- 3Восстановите последовательность проведения документов
- 4Перепроведите документы проблемного периода
- 5Сформируйте отчёт по остаткам и сравните с ожидаемым результатом
- 6При расхождениях найдите документ-источник через детализацию до регистратора
Ошибки после обновления конфигурации
Обновление — самый частый источник новых ошибок. Типичные сценарии: обновление прервано на половине, пропущены промежуточные релизы, доработки конфликтуют с новым кодом, обработчики обновления не выполнились до конца. Признак последнего — ошибки при открытии форм и отчётов сразу после обновления.
Проверьте статус обновления: в типовых конфигурациях есть раздел «Результаты обновления программы», где видно незавершённые обработчики. Если обновление зависло, не перезапускайте его вслепую — сначала выясните в журнале регистрации, на каком обработчике остановилось выполнение, и оцените, сколько данных он должен был обработать.
Если конфигурация доработана, перед обновлением сверяйте изменённые объекты и переносите доработки в расширения конфигурации — это резко снижает количество конфликтов. Обновление рабочей базы с непроверенными доработками — прямой путь к нерабочему учёту.
Повреждение базы и восстановление
Признаки физического повреждения файловой базы: «Ошибка формата потока», «Файл базы данных повреждён», внезапные аварийные завершения. Чаще всего причина — обрыв питания, сбой диска, размещение файловой базы на сетевом диске или работа антивируса с файлом базы в реальном времени.
Инструменты восстановления: утилита chdbfl.exe из каталога платформы (проверка физической целостности файла) и «Тестирование и исправление» в конфигураторе. Chdbfl работает на уровне файла и безопаснее как первый шаг; тестирование и исправление с включёнными опциями очистки ссылок может удалять данные — запускайте его только на копии и с пониманием каждой включённой галочки.
Для клиент-серверных баз восстановление выполняется средствами СУБД: проверка целостности, восстановление из бэкапа. Профилактика важнее лечения: регулярные выгрузки, отказ от сетевого размещения файловых баз, источник бесперебойного питания на сервере.
Как выбрать действие
Профилактика: как не допускать повторных ошибок
Большинство повторяющихся ошибок устраняется настройкой, а не исправлением. Включите контроль остатков при проведении, настройте даты запрета редактирования закрытых периодов, разграничьте права: удаление объектов и ручные операции оставьте минимальному кругу пользователей.
Настройте регулярное резервное копирование с проверкой восстановления — копия, которую никто не проверял, не считается копией. Для критичных баз планируйте ежедневные выгрузки и периодическое тестовое восстановление на отдельном сервере.
Следите за регламентными заданиями: зависшие или падающие с ошибкой задания (обмены, расчёт итогов) — частый источник «внезапных» расхождений в данных. Раз в неделю просматривайте журнал регистрации по уровню «Ошибка», даже если пользователи ни на что не жалуются.
Границы самостоятельной работы
Самостоятельно безопасно исправлять: ошибки ввода документов, перепроведение периода, очистку кэша, настройку прав, восстановление последовательностей. Это операции, которые при наличии копии легко откатить.
К специалисту стоит обращаться при повреждении файла базы без актуальной копии, при ошибках после неудачного обновления с реструктуризацией, при проблемах на уровне СУБД и при расхождениях в регламентированной отчётности, где цена ошибки — штрафы. В этих случаях стоимость ошибки самостоятельного вмешательства обычно выше стоимости диагностики.
Что важно запомнить
Копия базы — обязательное условие любых исправлений. Определяйте класс ошибки по симптомам, ищите причину в журнале регистрации, исправляйте данные через штатные механизмы, а деструктивные инструменты применяйте только на копии.
Частые вопросы
Что делать, если 1С выдаёт «Ошибка формата потока»?
Скопируйте файл базы, проверьте его утилитой chdbfl из каталога платформы. Если утилита не помогла — восстановите базу из последней рабочей копии. При клиент-серверном варианте ошибка чаще связана с кэшем метаданных: попробуйте очистить кэш на сервере и у клиента.
Можно ли исправить проведённый документ задним числом?
Можно, если период не закрыт датой запрета редактирования и у пользователя есть права. Учтите: изменение документа задним числом может повлиять на последующие документы и отчётность, поэтому после правки восстановите последовательность проведения и проверьте итоги периода.
Почему отчёт показывает неверные суммы, хотя документы правильные?
Частые причины: не восстановлена последовательность проведения, не рассчитаны итоги регистров, документы частично помечены на удаление, либо отчёт строится по устаревшим данным кэша. Начните с перепроведения периода и пересчёта итогов.
Как найти, кто из пользователей испортил данные?
Откройте журнал регистрации и отфильтруйте события по интересующему объекту за нужный период: видно, кто и когда создавал, изменял или удалял объект. Для критичных операций настройте в журнале регистрацию всех событий изменения данных, а не только ошибок.
Опасно ли запускать «Тестирование и исправление»?
Инструмент безопасен только на копии базы. Некоторые опции (очистка ссылок, удаление объектов с битыми ссылками) физически удаляют данные. Запускайте с минимально необходимым набором проверок и сравнивайте данные до и после.
Ошибка появилась сразу после обновления — откатывать ли его?
Сначала проверьте «Результаты обновления программы»: часто проблема в незавершённых обработчиках, которые можно запустить повторно. Откат на копию — крайняя мера, если база неработоспособна. Перед откатом зафиксируйте данные, введённые после обновления, чтобы не потерять их.