Работа с хранилищем конфигурации в 1С — это стандарт де-факто для групповой разработки. Однако иногда этот инструмент преподносит неприятные сюрпризы в виде внезапного закрытия программы (вылета) без каких-либо диагностических сообщений. Ситуация обычно выглядит так: вы пытаетесь выполнить команду «Обновить конфигурацию из хранилища» или «Создать хранилище», процесс замирает на этапе «Создание снимка конфигурации (0%)», после чего Конфигуратор просто исчезает с экрана. Мы подробно разберем причины такого поведения и способы реанимации вашей среды разработки.
Когда 1С пытается построить снимок конфигурации (snapshot), она обращается ко всем объектам метаданных в дереве. Если на этом этапе происходит обращение к «битому» объекту или системе не хватает ресурсов для обработки огромного объема данных, процесс завершается системным исключением. Рассмотрим, почему это происходит:
chdbfl.exe проверяет только физическую структуру базы данных (таблицы, индексы). Она не может обнаружить, что внутри конкретного объекта (например, справки или макета) находится некорректный двоичный код.1cv8.exe) имеет жесткий лимит на использование оперативной памяти (около 2–4 ГБ). Тяжелые конфигурации при построении снимка метаданных могут мгновенно исчерпать этот ресурс.Первым делом проанализируем разрядность используемого клиента. Если ваша конфигурация имеет большой объем (ERP, УХ или сильно кастомизированные решения), 32-битный клиент — это «бомба замедленного действия» для хранилища. Разберем, как исправить ситуацию:
Установите 64-битную версию платформы 1С. В настройках запуска базы (в списке баз) явно укажите использование 64-битного клиента. Это позволит процессу 1cv8.exe использовать всю доступную оперативную память сервера или рабочей станции. Часто этого шага достаточно, чтобы этап «Создание снимка конфигурации» прошел отметку 0% и успешно завершился.
Если переход на 64 бит не помог, значит, проблема в самих данных конфигурации. Как показывает практика, чаще всего «сыплются» объекты, содержащие HTML-тексты или бинарные данные: Справки, Общие картинки или Макеты. Рассмотрим алгоритм поиска проблемного объекта:
.dt).Особое внимание уделим свойству конфигурации Требуемые разрешения мобильного приложения. Иногда в нем «зависают» невидимые глазу настройки, вызывающие падение. Попробуем обнулить их программно или через сравнение с пустой конфигурацией.
Если стандартная выгрузка в .cf падает, попробуем «раздеть» конфигурацию до исходных текстов. Это очистит её от возможного мусора в служебных структурах. Воспользуемся встроенным механизмом выгрузки в файлы:
Создадим пустую папку на диске и выполним команду выгрузки. Если через графический интерфейс Конфигуратор падает, попробуем запустить выгрузку через командную строку:
"C:\Program Files\1cv8\8.3.18.1234\bin\1cv8.exe" DESIGNER /F "D:\Bases\MyBase" /DumpConfigToFiles "D:\XML_Config"
После успешной выгрузки (или если выгрузка споткнется на конкретном файле, вы узнаете имя проблемного объекта) создадим новую чистую базу и загрузим в неё эти файлы обратно. После этого создадим новое хранилище из «оздоровленной» базы.
Иногда причина кроется не в базе, а в «мусоре», который Конфигуратор оставляет в системных папках при работе с хранилищем. Проанализируем, где 1С хранит временные данные:
%TEMP% (в ней 1С создает временные файлы снимков с именами типа snpsht).Полностью закроем все сеансы 1С и очистим содержимое папок %AppData%\1C\1cv8\ и %LocalAppData%\1C\1cv8\. Также очистим системную папку Temp. После этого попробуем подключиться к хранилищу заново, выбрав опцию «Создать новую базу из хранилища».
Если хранилище расположено на сетевом ресурсе и подключение происходит по протоколу file://, любая нестабильность сети может привести к ошибкам чтения блоков данных. Разберем более надежный вариант:
Рассмотрим переход на использование сервера хранилища конфигурации (crserver.exe). Подключение по протоколу tcp:// работает гораздо стабильнее, так как сервер берет на себя функции контроля целостности передаваемых пакетов и снижает вероятность того, что Конфигуратор «захлебнется» при получении большого объема данных от файловой системы.
Проанализировав ситуацию, мы видим, что вылет Конфигуратора на 0% создания снимка — это почти всегда признак того, что 1С встретила объект, который не может прочитать или интерпретировать. В большинстве случаев помогает загрузка рабочей копии базы в чистую базу и пересоздание хранилища «с нуля». Помните, что регулярное выполнение «Тестирования и исправления» (ТиИ) с проверкой логической целостности конфигурации помогает выявить проблемные объекты (например, битые справки) до того, как они парализуют работу всего хранилища.