Что делать, если при обновлении расширения 1С зависает сообщение «Выполняется сохранение информации об ошибке»?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

При активной разработке в среде 1С:Предприятие 8.3, особенно при использовании механизма расширений, программисты могут столкнуться с крайне неприятной ситуацией. В момент попытки сохранить конфигурацию или обновить метаданные система «замирает», выводя модальное окно с текстом: «Пожалуйста подождите! Выполняется сохранение информации об ошибке». Это состояние может длиться бесконечно, блокируя работу Конфигуратора. Проблема специфична тем, что стандартные методы, такие как очистка пользовательского кэша, часто оказываются бессильны.

В этой статье мы подробно разберем, почему возникает этот сбой, как восстановить работоспособность базы и какие превентивные меры помогут избежать подобных ситуаций в будущем. Рассмотрим ситуацию на примере базы на SQL-сервере, так как именно там чаще всего проявляются конфликты при фиксации изменений.

Выясним причину: техническая природа сбоя

Проанализируем, что происходит «под капотом» платформы в этот момент. Сообщение о сохранении информации об ошибке генерируется внутренним обработчиком исключений ядра 1С. Когда происходит критический сбой (например, нарушение ссылочной целостности в таблицах метаданных или ошибка компиляции на уровне сервера приложений), платформа пытается создать дамп памяти (отчет об ошибке). Однако, если причина сбоя связана с блокировками в СУБД или повреждением временных таблиц, сам процесс записи этого отчета зацикливается.

Основные факторы, провоцирующие проблему:

  1. Повреждение таблицы ConfigSave: В эту таблицу SQL-базы записываются изменения до того, как они будут окончательно приняты основной конфигурацией.
  2. Некорректный кэш серверных сеансов: На сервере приложений 1С хранятся скомпилированные модули расширений, которые могут войти в клинч с новыми изменениями.
  3. Конфликт версий и режимов совместимости: Если расширение было создано в одной версии платформы, а база работает на другой, механизм динамического обновления может дать сбой.

Способ 1. Очистка серверного кэша (srvinfo)

Рассмотрим ситуацию, когда чистка локального кэша пользователя (папки Local\1C\1cv8) не помогла. В серверных базах критически важно очистить данные на стороне сервера приложений. Выполним следующие шаги:

  1. Остановим службу Агент сервера 1С:Предприятие 8.3 через консоль управления службами (services.msc).
  2. Перейдем в каталог, где хранятся данные сервера. По умолчанию это: C:\Program Files\1cv8\srvinfo.
  3. Внутри этой папки найдем каталог соответствующего кластера (обычно reg_1541).
  4. Найдем папку с GUID вашей базы данных. Внутри нее нас интересует папка snccntx и прочие временные хранилища сеансов. Важно: для полной очистки можно удалить содержимое папок с временными данными, но будьте осторожны с файлами настроек самого кластера.
  5. После удаления временных файлов снова запустим службу Агента сервера.

Этот метод позволяет сбросить некорректные состояния скомпилированных расширений, которые платформа пытается использовать при сохранении.

Способ 2. «Маневр» с выгрузкой в файловую базу (проверенное решение)

Если очистка кэша не помогает и база на SQL по-прежнему выдает ошибку, воспользуемся проверенным практическим методом — временным переходом в файловый режим. Проанализируем этот алгоритм:

  1. В Конфигураторе (если он позволяет выполнить это действие) сделаем выгрузку информационной базы в файл .dt. Если Конфигуратор полностью заблокирован, можно попробовать создать копию базы средствами SQL Server, но лучше использовать механизм выгрузки.
  2. На локальном компьютере (или другом сервере) создадим пустую файловую информационную базу.
  3. Загрузим в нее наш файл .dt.
  4. В файловом варианте зайдем в список расширений. Часто именно здесь платформа «прозревает» и позволяет либо удалить проблемное расширение, либо внести в него правки и успешно сохранить конфигурацию.
  5. После того как изменения в файловой базе зафиксированы (кнопка «Обновить конфигурацию базы данных» стала серой), снова выгружаем базу в .dt.
  6. Загружаем исправленную базу обратно на основной SQL-сервер.

Этот метод работает, потому что при переходе из SQL в файловый режим и обратно происходит полная реструктуризация внутренних таблиц 1С, что очищает «мусорные» записи в системных таблицах конфигурации.

Способ 3. Прямая очистка таблицы ConfigSave в SQL

Для опытных администраторов и разработчиков, имеющих доступ к SQL Server Management Studio (SSMS), существует более радикальный, но быстрый способ. Разберем его по шагам:

Внимание: Перед любыми манипуляциями с SQL-таблицами обязательно создайте полную резервную копию базы данных!

  1. Закроем все сеансы с базой данных, включая Конфигуратор.
  2. Откроем SSMS и найдем нашу базу.
  3. Выполним запрос для проверки наличия «зависших» изменений в таблице ConfigSave:

SELECT * FROM ConfigSave

  1. Если таблица не пуста и именно в ней «застряло» ошибочное сохранение, очистим её командой:

DELETE FROM ConfigSave

После выполнения этой команды Конфигуратор «забудет» о неудачной попытке сохранения, и вы сможете зайти в него штатно, чтобы удалить или переподключить расширение.

Способ 4. Использование командной строки для удаления расширения

Если графический интерфейс Конфигуратора виснет сразу при открытии окна расширений, попробуем использовать параметры запуска. Платформа 1С позволяет управлять расширениями через командную строку. Рассмотрим пример команды для удаления проблемного расширения:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /S "Server\BaseName" /DeleteExtension "ИмяРасширения" /Out "log.txt"

Здесь /DeleteExtension принудительно удаляет указанное расширение, минуя многие проверки графической оболочки. Результат операции можно будет увидеть в файле log.txt.

Дополнительные рекомендации

Проанализируем еще несколько факторов, которые могут влиять на появление окна «Выполняется сохранение информации об ошибке»:

Подводя итог, можно сказать, что данная проблема почти всегда связана с невозможностью платформы корректно обработать исключительную ситуацию при записи метаданных. Использование связки «очистка серверного кэша + манипуляции с файловой копией» является наиболее безопасным и эффективным алгоритмом решения задачи.

← На главную