При создании начального образа подчиненного узла распределенной информационной базы (РИБ) администраторы и разработчики 1С иногда сталкиваются со странным поведением мастера выгрузки. Вместо привычной файловой базы данных 1Cv8.1CD платформа создает файл ярлыка «1С предприятие.lnk» объемом несколько сотен мегабайт и служебный файл «1Cv8.1CD.cfl» нулевого размера. Выясним причину этой проблемы и рассмотрим способы ее устранения.
Проанализируем, почему платформа 1С:Предприятие ведет себя подобным образом при выгрузке файловой базы данных:
.lnk. В результате 1С записывает поток данных базы данных прямо внутрь этого ярлыка.\\Server\Share) или недостатке прав у фонового процесса сервера 1С выгрузка может завершаться со сбоем.Файл с расширением .cfl нулевого размера является лишь временным служебным файлом блокировки совместного доступа. Наличие в нем 0 байт — нормальное явление, так как сами данные учета в него не записываются.
Самый простой и эффективный способ исправить ошибку — выгрузить начальный образ в каталог с коротким путем. Рассмотрим пошагово, как это сделать:
C:\RIB_Base\ или D:\Exchange\Node1\.1Cv8.1CD.Поскольку файл 1С предприятие.lnk имеет большой объем (например, 400 МБ и более), внутри него уже содержится сформированная бинарная структура базы данных 1С. Выясним, как восстановить рабочий узел без повторной длительной выгрузки:
1С предприятие.lnk в созданную папку.1С предприятие.lnk, изменив его имя и расширение на 1Cv8.1CD.1Cv8.1CD.cfl (платформа создаст новый файл блокировки автоматически при запуске).Для крупных информационных баз выгрузка через интерактивный мастер может занимать много времени или завершаться по таймауту. Разберем альтернативные подходы к разворачиванию подчиненной базы.
Вариант А. Программное создание образа
Мы можем программно сформировать начальный образ с помощью встроенного языка 1С, избегая интерактивных диалоговых окон Windows. Для этого используется метод ПланыОбмена.СоздатьНачальныйОбраз():
УзелРИБ = ПланыОбмена.Полный.НайтиПоКоду("Узел01");
СтрокаПодключения = "File=""C:\RIB_Base"";";
ПланыОбмена.СоздатьНачальныйОбраз(УзелРИБ, СтрокаПодключения);
Вариант Б. Создание базы путем клонирования
Рассмотрим порядок действий при полном копировании центральной базы:
.dt, копирование 1Cv8.1CD или средствами СУБД).ПланыОбмена.УстановитьГлавныйУзел():
// Отключаем привязку к главному узлу
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
// Назначаем текущий узел и устанавливаем связь с центром
УзелЦентр = ПланыОбмена.Полный.НайтиПоКоду("ЦБ");
ПланыОбмена.УстановитьГлавныйУзел(УзелЦентр);
Также отвязать базу от главного узла можно через запуск Конфигуратора с ключом командной строки /ResetMasterNode.