Почему падает Конфигуратор 1С при обновлении УПП до релиза 1.3.127.1 и как это исправить?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

В этой статье мы подробно разберем критическую проблему, возникающую при переходе с релиза УПП 1.3.126.2 на 1.3.127.1 (и последующие релизы, включая 1.3.128.x). Пользователи и разработчики при попытке обновить базу данных сталкиваются с аварийным завершением работы Конфигуратора. Мы выясним точные причины этого сбоя, проанализируем взаимосвязь платформы и конфигурации, а также предоставим пошаговый алгоритм решения проблемы.

Симптомы проблемы и окружение

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

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

Поведение системы зависит от версии операционной системы, под которой запущен клиентский Конфигуратор:

При этом разрядность клиентского приложения (x32 или x64) значения не имеет — падение происходит идентично. Объем потребляемой оперативной памяти процессом в момент сбоя относительно небольшой (около 350 МБ), что исключает классическую проблему нехватки адресного пространства для 32-битных приложений. Очистка локального кэша метаданных 1С также не приносит никаких результатов.

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

Для того чтобы понять природу ошибки, обратим внимание на системную библиотеку, в которой происходит исключение. Файл ucrtbase.dll — это компонент Microsoft C Runtime Library (Universal CRT), который используется программами, написанными на языке C++. Падение в этом модуле означает, что исполняемый код платформы 1С совершил недопустимую операцию (например, обращение по нулевому указателю или переполнение буфера) при обработке структуры данных.

Почему же это происходит именно на релизе УПП 1.3.127.1? Ответ кроется в системных требованиях к релизу конфигурации. Начиная с версии 1.3.127.1, разработчики фирмы «1С» внесли в структуру метаданных конфигурации элементы, которые требуют использования технологической платформы версии не ниже 8.3.12.

Если ваша рабочая база или сервер приложений функционируют на более старых ветках платформы (например, популярной в свое время стабильной сборке 8.3.11.2867 или более ранних 8.3.10, 8.3.8), парсер конфигуратора просто не может корректно обработать новые бинарные макеты или свойства объектов, заложенные в файле обновления. В результате движок платформы генерирует критическое исключение, которое не обрабатывается внутренними механизмами 1С, и операционная система аварийно завершает процесс.

Скрытые риски частичного обновления

Иногда администраторы пытаются применить «обходные пути». Например, собирают файл конфигурации .cf новой версии на локальном компьютере с установленной платформой 8.3.12, а затем пытаются загрузить этот готовый файл в рабочую базу, которая крутится на сервере под управлением старой платформы 8.3.11. Рассмотрим, почему так делать категорически нельзя:

Пошаговый алгоритм решения проблемы

Для устранения падения Конфигуратора необходимо произвести последовательное обновление технологической платформы «1С:Предприятие 8» на сервере и всех клиентских машинах. Разберем этот процесс подробно по шагам.

Шаг 1. Подготовка резервной копии. Перед проведением любых манипуляций с платформой и базой данных в обязательном порядке создайте резервную копию базы данных средствами СУБД (MS SQL Server / PostgreSQL) или путем выгрузки информационной базы в файл .dt.

Шаг 2. Выбор стабильного релиза платформы. Как показывает практика эксплуатации УПП, для стабильной работы релизов конца 2019 года (ветка 1.3.127 — 1.3.129) оптимальным выбором является использование финального релиза 12-й ветки платформы — 8.3.12.1855. Данный релиз признан сообществом одним из наиболее стабильных, лишен критических багов с утечками памяти и полностью совместим со структурами данных УПП.

Если вы планируете обновлять УПП далее на современные релизы (2020-2024 годов), вам потребуется перейти на еще более актуальные ветки (например, 8.3.14, 8.3.17 или даже 8.3.20+ в зависимости от требований конкретных обновлений).

Шаг 3. Обновление платформы на сервере и клиентах. Установите выбранный релиз технологической платформы. Если у вас клиент-серверный вариант работы:

  1. Остановите службу сервера «1С:Предприятия».
  2. Установите новую версию платформы на сервер.
  3. Зарегистрируйте новую службу сервера и запустите ее.
  4. Установите аналогичную версию платформы на рабочие станции пользователей и разработчиков (включая машину, с которой будет выполняться обновление).

Шаг 4. Очистка серверного и локального кэша. Чтобы избежать потенциальных ошибок чтения формата потока после обновления платформы, рекомендуется полностью очистить локальный кэш Конфигуратора. Для этого можно воспользоваться системным скриптом очистки или вручную удалить папки кэша. Проанализируем пример bat-файла для быстрой очистки локального кэша пользователя:


@echo off
taskkill /f /im 1cv8.exe
taskkill /f /im 1cv8c.exe
timeout /t 2 /nobreak > nul

rmdir /s /q "%LocalAppData%\1C\1Cv82"
rmdir /s /q "%LocalAppData%\1C\1Cv8"
rmdir /s /q "%AppData%\1C\1Cv82"
rmdir /s /q "%AppData%\1C\1Cv8"

echo Локальный кэш 1С успешно очищен!
pause

Шаг 5. Повторный запуск обновления. После успешной установки платформы 8.3.12.1855 (или выше) откройте базу данных в новом Конфигураторе. Запустите обновление базы данных (клавиша F7). Процесс реструктуризации должен пройти штатно и без сбоев, после чего откроется долгожданное окно со списком измененных объектов конфигурации.

Резюме

Мы выяснили, что падение Конфигуратора при переходе на УПП 1.3.127.1 — это не случайный сбой операционной системы, а прямое следствие несовместимости старых версий платформы 1С с обновленной структурой конфигурации. Решением проблемы является строгое соблюдение требований вендора и своевременный переход на технологическую платформу версии не ниже 8.3.12.1855.

← На главную