Программа 1С выдаёт ошибку: от текста сообщения до рабочей базы
Содержание
Чтобы исправить ошибку в 1С, сначала получите её полный текст: в окне сообщения откройте подробности и скопируйте их целиком, затем найдите это событие в журнале регистрации. По тексту понятно, куда идти дальше: блокировки, кэш клиента, повреждение базы, права пользователя или несовпадение версий платформы и конфигурации.
Ниже — порядок диагностики и устранения сбоев в 1С:Предприятии 8.3, от безопасных действий к тем, что требуют монопольного режима. Порядок общий для платформы: он одинаков для Бухгалтерии, ЗУП, УТ и других типовых конфигураций.
1. Первичная диагностика ошибки: текст, журнал регистрации, техжурнал
Самая частая причина долгого поиска — работа с обрывком сообщения. Фраза Ошибка при выполнении операции над данными сама по себе ничего не говорит. Причина обычно написана ниже, в подробном тексте.
Что записать сразу
- 📝 полный текст ошибки, включая строки с
{ОбщийМодуль...}или{Документ...МодульОбъекта(...)}— это имя модуля и номер строки; - 🕐 время, когда ошибка возникла, с точностью до минуты;
- 👤 пользователя и компьютер;
- 🔁 повторяется ли ошибка у других пользователей и на другом компьютере;
- 🔢 версию платформы и конфигурации:
Справка → О программе(кнопка с буквой «i» или меню с тремя полосками).
Последний пункт нужен почти всегда. Специалист первым делом спросит именно это: многие ошибки привязаны к конкретному релизу.
Журнал регистрации
Журнал регистрации пишет каждая база. Открыть его можно двумя способами:
- В режиме «Предприятие» —
Администрирование → Обслуживание → Журнал регистрации(в типовых конфигурациях на БСП). - В Конфигураторе —
Администрирование → Журнал регистрации. Этот путь работает в любой конфигурации.
Поставьте отбор по интервалу (5–10 минут вокруг момента сбоя), по пользователю и по уровню «Ошибка». В колонке «Комментарий» будет тот же текст, что видел пользователь, а в «Данных» — ссылка на документ или элемент справочника, на котором программа споткнулась.
Если ошибка воспроизводится только на одном документе, а остальные проводятся нормально, дело почти наверняка в данных этого документа, а не в базе целиком. Откройте документ, проверьте реквизиты и табличные части на пустые и «битые» значения вида <Объект не найден>.
Технологический журнал для плавающих сбоев
Если ошибка случается раз в день и в журнале регистрации видна только верхушка, включите технологический журнал. Это текстовые логи платформы. Настраиваются они файлом logcfg.xml, который кладут в папку conf каталога установленной платформы (например, C:\Program Files\1cv8\conf).
Минимальная настройка — записывать только исключения:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1C_techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Параметр history="24" хранит логи 24 часа. Платформа подхватывает файл в течение минуты, перезапуск не нужен.
Техжурнал без отборов быстро забивает диск. Не оставляйте его включённым после диагностики — удалите или переименуйте logcfg.xml.
2. Ошибки блокировок данных: как найти, кто держит запись
Типичные тексты:
Конфликт блокировок при выполнении транзакции;Превышено максимальное время ожидания предоставления блокировки;Ошибка блокировки объекта. Объект уже заблокирован;Неуспешная попытка блокирования объектапри открытии документа на редактирование.
Смысл у всех один: два сеанса одновременно хотят изменить одни и те же данные, и один из них не дождался. Например, бухгалтер закрывает месяц, а кладовщик в это время проводит накладную по той же организации.
Что делать по шагам
- Узнайте, кто работает в базе. В режиме «Предприятие» —
Администрирование → Обслуживание → Активные пользователи. В Конфигураторе —Администрирование → Активные пользователи. - Если ошибка разовая — просто повторите операцию через минуту. Длинная транзакция соседа закончится, и блокировка снимется.
- Если ошибка возникает при проведении одного и того же документа у одного и того же пользователя, посмотрите, не висит ли у него второй «зависший» сеанс. В клиент-серверной базе это видно в консоли администрирования серверов:
Информационные базы → <база> → Сеансы. Колонки «Время вызова» и «Заблокировано СУБД» подскажут, кто держит. - Тяжёлые операции (закрытие месяца , перепроведение, групповую обработку) запускайте, когда остальные не проводят документы по тем же разделам учёта.
Завершение сеанса из консоли кластера обрывает работу пользователя без сохранения. Сначала предупредите его и дайте закрыть открытые формы.
Файловая база
В файловом варианте ожидание блокировки обычно связано с сетью. База лежит на общем ресурсе, и один медленный клиент тормозит остальных. Если в файловой базе больше 5–7 человек одновременно и конфликты стали ежедневными, это сигнал переходить на клиент-серверный вариант или хотя бы на публикацию через веб-сервер.
3. Очистка кэша клиента и временных файлов
Кэш — это копия метаданных конфигурации на компьютере пользователя. После обновления или сбоя он может не совпасть с базой. Симптомы:
- 🖥 ошибки формы, которые возникают на одном компьютере и не повторяются на другом;
- 🧩 после обновления у части пользователей «старые» формы или пропали новые реквизиты;
- 🐢 база стала долго открываться только у одного человека;
- ❓ ошибки вида
Неверный формат хранилища данныхили непонятные сообщения при старте.
Способ 1: параметр запуска
Самый безопасный путь — запустить базу
с ключом /ClearCache. В окне выбора баз выберите базу, нажмите «Изменить», дойдите до последней страницы мастера и в поле «Дополнительные параметры запуска» впишите:
/ClearCache
Запустите базу один раз, затем уберите параметр — иначе кэш будет сбрасываться при каждом входе и база будет открываться медленнее.
Способ 2: удаление папок кэша
Если параметр не помог, удалите кэш вручную. Перед этим закройте все окна 1С на компьютере.
- Нажмите
Win+R, введите%APPDATA%\1C\1cv8и нажмите Enter. - Удалите папки с длинными именами вида
a1b2c3d4-...(это идентификаторы баз). - Повторите для
%LOCALAPPDATA%\1C\1cv8.
Файлы и папки с обычными именами не трогайте. Список баз хранится отдельно, в %APPDATA%\1C\1CEStart\ibases.v8i, и при чистке кэша не пропадает.
Для нескольких компьютеров удобно сделать bat-файл:
@echo off
rem Закройте 1С перед запуском
for /d %%D in ("%APPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*-*-*-*-*") do rd /s /q "%%D"
echo Кэш 1С очищен
pause
Маска *-*-*-*-* выбирает только папки с идентификаторами, служебные папки остаются.
Не путайте кэш клиента с временными файлами пользователя. Папка %TEMP% тоже может разрастаться, но ошибки 1С из-за неё случаются редко — обычно при нехватке места на системном диске.
Кэш на сервере 1С
В клиент-серверном варианте кэш есть и на сервере — в каталоге кластера srvinfo. Его чистят, только когда ошибки идут у всех пользователей сразу и не лечатся на клиентах. Для этого останавливают службу «Агент сервера 1С:Предприятия».
Остановка службы обрывает сеансы всех пользователей всех баз на этом сервере. Делайте это вне рабочего времени и сохраните копию каталога srvinfo перед любыми изменениями в нём.
4. Проверка целостности базы и исправление повреждений
Если ошибка связана с самими данными — Нарушена целостность структуры информационной базы, Ошибка формата потока, Запись не найдена при открытии справочника, падение при проведении конкретного документа, — нужна проверка базы.
Тестирование и исправление в Конфигураторе
Перед запуском:
- Сделайте резервную копию:
Администрирование → Выгрузить информационную базу(файл.dt), а для файловой базы дополнительно скопируйте файл1Cv8.1CD. - Попросите всех выйти из базы — режиму нужен монопольный доступ.
Затем Администрирование → Тестирование и исправление. Флажки:
| Проверка | Когда включать |
|---|---|
| Реиндексация таблиц | почти всегда, безопасна |
| Проверка логической целостности | при ошибках структуры и чтения данных |
| Проверка ссылочной целостности | при <Объект не найден> в документах |
| Пересчёт итогов | при неверных остатках в отчётах |
| Сжатие таблиц | для файловой базы, после массового удаления |
| Реструктуризация таблиц | по рекомендации специалиста, долго |
Для начала выберите режим «Тестирование» без исправления и посмотрите отчёт. Если проблемы найдены — повторите с режимом «Тестирование и исправление».
При битых ссылках программа спросит, что делать. Вариант «Создавать объекты» безопаснее: появятся элементы-заглушки, которые потом можно найти и заполнить. «Очищать ссылки» стирает значение реквизита, и восстановить его будет нечем.
Утилита chdbfl.exe для файловой базы
Если файловая база не открывается вообще, Конфигуратор запустить не получится. Тогда используйте утилиту chdbfl.exe из каталога bin установленной платформы:
- Скопируйте файл
1Cv8.1CDв отдельную папку — работайте с копией. - Запустите
chdbfl.exe, укажите путь к файлу базы. - Поставьте флажок «Исправлять обнаруженные ошибки» и нажмите «Выполнить».
Никогда не проверяйте единственный экземпляр базы. Если исправление пойдёт не так, без копии данные не вернуть.
Для клиент-серверной базы на MS SQL или PostgreSQL повреждения на уровне файлов ищут средствами самой СУБД. Это задача администратора сервера.
5. Права доступа и роли пользователей
Ошибки прав выглядят так:
Недостаточно прав для просмотра;Нарушение прав доступа!;Недостаточно прав для выполнения операции;- пользователь не видит раздел или кнопку, которые есть у коллеги.
Проверка в типовой конфигурации
В конфигурациях на БСП права настраивают в режиме «Предприятие», через группы доступа и профили:
Администрирование → Настройки пользователей и прав → Пользователи.- Откройте карточку пользователя и перейдите к правам доступа.
- Сверьте профили групп доступа с коллегой, у которого всё работает.
Быстрая проверка — войти под пользователем с полными правами и повторить операцию. Если ошибка ушла, причина точно в правах, а не в данных.
Ограничения могут действовать не на весь документ, а на записи: например, пользователю открыт только один склад или одна организация. Тогда ошибка возникает при выборе «чужой» организации в документе.
Почему не стоит править права в Конфигураторе
Конфигуратор позволяет назначить роли напрямую через Администрирование → Пользователи. В типовых конфигурациях этого делать не нужно: при следующей синхронизации групп доступа роли будут пересчитаны, и ручные правки пропадут или войдут в противоречие с профилями. Конфигуратор оставьте на случай, когда в режим «Предприятие» вообще никто не может войти с правами администратора.
6. Обновление платформы и конфигурации
Многие ошибки уже исправлены разработчиками — нужно просто поставить актуальный релиз. Признаки, что дело в версиях:
- 🔺 при запуске сообщение, что конфигурация требует платформу с номером не ниже указанного;
- 🔺 ошибка возникает в типовом модуле, а у коллег на свежем релизе её нет;
- 🔺 после обновления платформы на сервере клиенты не подключаются с сообщением о несоответствии версий.
Платформа
Версия клиента и сервера в клиент-серверном варианте должна совпадать до последней цифры. Если на сервере стоит одна сборка, а у пользователя другая, подключение не пройдёт. Проверьте версию у пользователя в Справка → О программе и у сервера в консоли администрирования.
После установки новой платформы старые версии можно оставить: стартер 1cestart.exe сам выберет нужную, если в свойствах базы указана версия.
Конфигурация
Типовую конфигурацию без доработок обновляют в режиме «Предприятие» через интернет-поддержку или в Конфигураторе:
- Сделайте копию базы
(
.dt). Конфигурация → Поддержка → Обновить конфигурацию, укажите файл обновления.cfuили получите его через интернет .- После загрузки —
Конфигурация → Обновить конфигурацию базы данных(F7). - Запустите базу в режиме «Предприятие» и дождитесь окончания обработки данных.
Релизы ставят по цепочке: перепрыгнуть через несколько промежуточных нельзя, если в описании обновления это не разрешено. Перечень допустимых переходов указан в файле обновления.
Если конфигурация дорабатывалась, обновление идёт через сравнение и объединение. Такую работу лучше отдать программисту: неверно принятое изменение даёт новые ошибки уже после обновления.
7. Если ничего не помогло
Подберите действие по симптому:
Дальше — эскалация. Для обращения к своему программисту или на линию консультаций подготовьте:
- Полный текст ошибки и снимок экрана.
- Выгрузку журнала регистрации за интервал сбоя.
- Версию платформы и релиз конфигурации.
- Порядок действий, которые приводят к ошибке.
- Копию базы
.dt, если специалист попросит воспроизвести.
С таким набором ошибку в программе 1С обычно находят за один подход, без переписки «пришлите ещё вот это».
Не проводите копию проблемного документа в рабочей базе ради проверки: она сделает движения по регистрам и задвоит остатки. Если всё же провели — отмените проведение и удалите копию.
8. Частые вопросы
Можно ли запускать тестирование и исправление, пока люди работают?
Пропадут ли данные при очистке кэша?
Чем журнал регистрации отличается от технологического журнала?
Сколько хранить журнал регистрации?
Администрирование → Настройка журнала регистрации можно сократить состав событий или удалить старые записи, предварительно сохранив их в файл.