Ошибки в конфигурации 1С 8.3: от журнала регистрации до тестирования базы
Содержание
Чтобы исправить ошибку конфигурации 1С, сначала выгрузите базу в .dt, затем найдите точный текст сбоя в журнале регистрации и только потом действуйте по типу ошибки: модуль — через Конфигурация → Проверка конфигурации, повреждённые данные — через Администрирование → Тестирование и исправление, нехватку прав — через группы доступа. Порядок важен: «лечение наугад» обычно добавляет вторую проблему к первой.
Всё ниже относится к платформе 8.3 и типовым конфигурациям на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11). Инструменты Конфигуратора общие для всех решений, поэтому методика подходит и для отраслевых конфигураций.
Подготовка и диагностика: журнал регистрации и текст ошибки
Любой ремонт начинается с копии. В Конфигураторе откройте Администрирование → Выгрузить информационную базу и сохраните файл .dt на другой диск. Для клиент-серверной базы дополнительно попросите администратора СУБД сделать штатный бэкап.
Не запускайте тестирование, обновление или объединение конфигураций без свежей выгрузки .dt.
Где взять полный текст ошибки
Окно с ошибкой в режиме 1С:Предприятие показывает только верхнюю строку. Нажмите ссылку «Подробнее» — откроется стек вызовов с именем модуля и номером строки. Например:
{ОбщийМодуль.ПроведениеСервер.Модуль(214,12)}: Переменная не определена (СуммаНДС)
Здесь всё нужное: модуль, строка 214, колонка 12 и причина. Скопируйте текст целиком — его же вы отправите разработчику или на линию поддержки.
Как читать журнал регистрации
Журнал открывается двумя способами:
- 🔹 в Конфигураторе:
Администрирование → Журнал регистрации; - 🔹 в пользовательском режиме:
Все функции → Стандартные → Журнал регистрации(команда «Все функции» включается в параметрах главного меню).
Настройте отбор: уровень «Ошибка», период за час до сбоя, при необходимости — конкретный пользователь. Колонка «Комментарий» содержит тот же текст, что и окно «Подробнее». Если ошибка повторяется у всех пользователей — проблема в конфигурации или данных. Если у одного — смотрите права и кэш его компьютера.
Технологический журнал для неуловимых сбоев
Когда в журнале регистрации пусто, а база «падает», включите технологический журнал. Создайте файл logcfg.xml в каталоге conf установленной платформы:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1c_logs" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Платформа подхватит настройку сама в течение минуты. Событие EXCP пишет все исключения. history="24" — хранить логи 24 часа.
Не оставляйте технологический журнал включённым надолго: на нагруженном сервере он за день занимает гигабайты. После диагностики удалите logcfg.xml.
Ошибки компиляции модулей и как их найти до пользователей
Ошибки компиляции появляются после доработок, неудачного объединения или загрузки чужого расширения. Типичные тексты:
- ❌
Переменная не определена (ИмяПеременной); - ❌
Процедура или функция с указанным именем не определена; - ❌
Ожидается символ ';'; - ❌
Метод объекта не обнаружен (ИмяМетода); - ❌
Поле объекта не обнаружено (ИмяРеквизита).
Первые три ловятся на этапе компиляции. Последние два — только во время выполнения, поэтому их видно лишь по журналу регистрации.
Проверка конфигурации в Конфигураторе
- Откройте
Конфигурация → Проверка конфигурации. - Отметьте «Логическая проверка конфигурации», «Поиск некорректных ссылок» и «Синтаксический контроль модулей».
- В режимах проверки включите все контексты: тонкий клиент, веб-клиент, сервер, внешнее соединение.
- Нажмите «Выполнить» и пройдите по списку: двойной щелчок по строке открывает модуль на нужной строке.
Для одного модуля есть быстрый вариант: откройте его и нажмите Ctrl+F7 — синтаксический контроль текущего модуля.
Что делать с найденной ошибкой
- 🔧 Ошибка в вашей доработке — исправьте код или откатите изменение.
- 🔧 Ошибка в типовом модуле, который вы не трогали, — сравните его с поставщиком:
Конфигурация → Поддержка → Настройка поддержки, затем «Сравнить, объединить с конфигурацией поставщика». - 🔧 Ошибка внутри расширения — отключите расширение в
Администрирование → Печатные формы, отчеты и обработки → Расширенияи проверьте, ушла ли проблема.
Изменения, сделанные в конфигурации, вступают в силу только после Конфигурация → Обновить конфигурацию базы данных (F7). Если при входе вы видите Конфигурация базы данных не соответствует сохраненной конфигурации, значит, кто-то сохранил правки, но не применил их к базе.
Нарушенная целостность метаданных и данных: тестирование и исправление
Здесь ошибки другого рода: код в порядке, а база выдаёт Нарушена целостность структуры конфигурации, «битые ссылки» в документах (<Объект не найден>) или неверные остатки после аварийного отключения питания.
Главный инструмент — Конфигуратор → Администрирование → Тестирование и исправление. Для его запуска нужен монопольный режим: все пользователи должны выйти из базы.
Какие флажки ставить
| Режим | Что делает | Когда нужен |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Медленные отборы, ошибки сортировки |
| Проверка логической целостности | Ищет нарушения внутренней структуры | После сбоя питания, ошибок формата |
| Проверка ссылочной целостности | Находит ссылки на удалённые объекты | <Объект не найден> в документах |
| Пересчёт итогов | Пересчитывает итоги регистров | Остатки в отчётах не сходятся с движениями |
| Сжатие таблиц | Удаляет пустые записи | Файл базы сильно вырос |
| Реструктуризация таблиц | Пересоздаёт таблицы базы | Нарушена структура, остальное не помогло |
Безопасный порядок
- Первый запуск — режим «Только тестирование». Посмотрите, что найдено, ничего не меняя.
- Для битых ссылок выберите «Создавать объекты» вместо «Удалять ссылки на объекты». Созданные объекты-заглушки потом видно и можно разобрать вручную.
- Пересчёт итогов и реиндексацию запускайте отдельно от реструктуризации: так проще понять, какой шаг помог.
- Реструктуризацию оставьте последней мерой — на крупной базе она идёт часами.
Режим «Удалять ссылки на объекты» безвозвратно очищает реквизиты в документах. Восстановить их можно только из копии.
Права доступа и роли: как исправить отказы
Сообщения Нарушение прав доступа! и Недостаточно прав для просмотра — тоже ошибки конфигурации, но лечатся настройкой, а не кодом.
Типовые конфигурации на БСП
В БП 3.0, ЗУП 3.1 и УТ 11 роли напрямую пользователю не назначают. Работают группы доступа:
- Откройте
Администрирование → Настройки пользователей и прав → Группы доступа. - Найдите группу пользователя и проверьте её профиль.
- В профиле посмотрите список ролей; если нужной нет — выберите другой профиль или создайте копию профиля с нужной ролью.
- Пользователь должен перезайти в программу — права перечитываются при входе.
Если включено «Ограничивать доступ на уровне записей» (там же, в настройках прав), отказ может касаться не объекта целиком, а конкретной организации или склада. Проверьте вкладку ограничений в группе доступа.
Права после обновления или правки ролей
После обновления типовой конфигурации программа в фоне пересчитывает права. Пока процесс не завершён, часть пользователей видит ошибки доступа. Дождитесь окончания обработки данных после обновления — её прогресс показывается при входе администратора.
Администратор без прав в Конфигураторе
Список пользователей платформы — Конфигуратор → Администрирование → Пользователи. У администратора должны стоять роли «Полные права» и «Администратор системы». Если в базе нет ни одного пользователя с этими ролями, а пароль утерян — восстановление делают из резервной копии, правкой служебных таблиц базу не чинят.
Как исправить ошибки конфигурации при обновлении типовых решений
Обновление — частый источник ошибок, особенно в доработанных базах.
Конфигурация снята с поддержки или изменена
Откройте Конфигурация → Поддержка → Настройка поддержки и посмотрите режим:
- ✅ «На поддержке, изменения не включены» — обновление ставится штатно;
- ⚠️ «Изменения разрешены» — при обновлении откроется окно сравнения, придётся решать конфликты;
- ❌ «Снята с поддержки» — нужен файл полной поставки
.cfи ручное объединение.
Как разбирать конфликты при объединении
В окне «Сравнение, объединение» объекты, изменённые и вами, и поставщиком, помечены отдельно. Рабочее правило:
- Для объектов, которые вы не дорабатывали, берите версию поставщика.
- Для доработанных модулей выбирайте объединение с приоритетом поставщика и потом вручную переносите свой код.
- Перед применением нажмите «Выполнить» только после проверки фильтра «Показывать только дважды изменённые».
Лучшая профилактика — переносить доработки в расширения. Типовая конфигурация остаётся на поддержке без изменений, и обновление идёт без объединения.
Ошибки на этапе обновления базы данных
После загрузки новой версии при F7 бывает отказ из-за активных сеансов. Обновление структуры требует монопольного доступа: завершите сеансы пользователей (предупредите их заранее) и повторите. Если обновление прервалось посередине — не запускайте его поверх, сначала верните базу из .dt, иначе можно получить базу в промежуточном состоянии.
Отдельный случай — программа сообщает, что файл обновления не предназначен для текущей версии. Обновление ставится по цепочке: из 3.0.150 сразу в 3.0.170 перейти можно не всегда. Номера промежуточных релизов указаны в описании обновления, ставьте их по очереди.
Файловая и клиент-серверная база: разные причины одних ошибок
Один и тот же текст ошибки в файловом и серверном варианте часто имеет разные причины.
| Симптом | Файловая база | Клиент-сервер |
|---|---|---|
Ошибка формата потока | Кэш клиента, повреждение файла 1Cv8.1CD | Кэш клиента или сеансовые данные сервера |
| База не открывается | Нет прав на папку, файл занят | Не запущен агент, недоступен порт 1540 |
| Медленная работа | Сеть, антивирус на папке базы | Блокировки, нагрузка на СУБД |
| Ошибка при записи | Нет прав на запись в каталог | Ошибка СУБД (текст будет в «Подробнее») |
Очистка кэша клиента
Самое безопасное действие — запуск с параметром /ClearCache. В списке баз нажмите «Изменить», на последнем шаге в поле дополнительных параметров запуска впишите /ClearCache. После одного запуска параметр уберите.
Вручную кэш лежит в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 в папках с длинными именами-идентификаторами. Закройте 1С и удалите эти папки — список баз при этом не пострадает.
Файловая база: утилита chdbfl.exe
Если файл 1Cv8.1CD повреждён и Конфигуратор не открывается, используйте chdbfl.exe из папки bin платформы. Все пользователи должны выйти. Укажите файл базы, отметьте «Исправлять обнаруженные ошибки» и запустите. Работайте с копией файла, а не с оригиналом.
Клиент-сервер: сеансовые данные
Если серверная база выдаёт ошибки после сбоя, а у клиентов кэш уже очищен, администратор чистит сеансовые данные кластера: останавливает службу агента сервера 1С и удаляет папки snccntx* в каталоге srvinfo\reg_1541.
Остановка службы обрывает сеансы всех пользователей во всех базах кластера. Делайте это вне рабочего времени, предупредив пользователей.
Внешние отчёты и обработки: почему не работают
Внешняя обработка — частая причина ошибок, которые принимают за поломку конфигурации.
Обработка написана под другую версию
Если обработка обращается к реквизиту, которого нет в вашем релизе, вы увидите Поле объекта не обнаружено или Тип не определен. Обработку нужно адаптировать под ваш релиз — сама конфигурация здесь исправна. Проверка простая: откройте обработку в Конфигураторе через Файл → Открыть и запустите синтаксический контроль модулей.
Обработка не открывается по правам
В типовых конфигурациях на БСП открытие внешних файлов через Файл → Открыть разрешено не всем. Правильный путь — регистрация в справочнике: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Там обработку можно назначить разделам и пользователям.
Если обработка зарегистрирована в безопасном режиме, она не может работать с файлами на диске и запускать внешние программы. Отсюда ошибки при выгрузке в файл. Снимать безопасный режим стоит только для проверенных обработок из надёжного источника.
Предупреждение о небезопасных действиях
При открытии внешнего файла платформа может показать предупреждение о безопасности. За это отвечает флажок «Защита от опасных действий» в свойствах пользователя (Конфигуратор → Администрирование → Пользователи). Отключать его для всех подряд не нужно: подтвердите открытие известной обработки, а неизвестную не запускайте.
Частые вопросы об исправлении ошибок конфигурации
Можно ли исправить ошибку конфигурации без Конфигуратора?
Чем ошибка конфигурации отличается от ошибки данных?
Как вернуть конфигурацию к состоянию базы данных, если правки не сохранены в базу?
Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Несохранённые в базу изменения будут отменены.