При развертывании филиальной сети или открытии новой торговой точки в 1С:Розница системные администраторы и разработчики часто сталкиваются с неприятной ситуацией: мастер создания начального образа распределенной информационной базы (РИБ) открывает окно прогресса, индикатор застывает на отметке 0%, и процесс длится часами без видимого результата. При этом журнал регистрации может не фиксировать никаких ошибок.
Разберем детально, почему так происходит, какие скрытые механизмы базы данных вызывают остановку процесса и как гарантированно создать подчиненный узел РИБ несколькими способами.
Одной из наиболее частых причин зависания штатного мастера выгрузки является механизм Хранение истории изменений (версионирование объектов). Когда в базе включено версионирование, таблицы версий содержат колоссальное количество записей по всем изменениям номенклатуры, документов, цен и штрихкодов.
При подготовке начального образа платформа пытается обработать и сериализовать эти данные согласно правилам обмена или захватить их целиком. На больших объемах процесс сериализации версий перегружает оперативную память, вызывая бесконечный свопинг или неявную блокировку транзакции.
Проанализируем шаги для устранения проблемы:
ПоМагазину.После успешного создания узла и первоначальной инициализации фиксацию истории изменений в центральной базе можно снова включить.
Выясним техническую особенность работы платформы 1С:Предприятие. Метод СоздатьНачальныйОбраз выполняется сервером как единая монолитная операция. Графический интерфейс клиента не получает от сервера промежуточных сведений о количестве обработанных таблиц. В результате окно с прогресс-баром всегда показывает 0% вплоть до момента записи последнего блока результирующего файла информационной базы.
Прежде чем принудительно снимать задачу, проверим монитор системных ресурсов на сервере:
rphost (в клиент-серверном варианте) либо 1cv8c/1cv8 (в файловом режиме).Когда база сильно нагружена, содержит сотни тысяч позиций справочников (номенклатура, штрихкоды, дисконтные карты, сегменты) и штатный механизм падает по таймауту или нехватке памяти, перейдем к проверенному ручному способу развертывания узла РИБ.
Разберем по шагам создание узла вручную:
ПланыОбмена.ПоМагазину) и создадим новый подчиненный узел. Зададим ему точный код и наименование..cf) через меню Конфигурация — Сохранить конфигурацию в файл.
ЗначениеГлавногоУзла = ПланыОбмена.ПоМагазину.НайтиПоКоду("ЦБ");
ПланыОбмена.УстановитьГлавныйУзел(ЗначениеГлавногоУзла);
ВыгрузкаЗагрузкаДанныхXML или штатным механизмом регистрации изменений. С помощью обработки Регистрация изменений для обмена данными зарегистрируем для созданного магазина только необходимые объекты: остатки по складу магазина, цены по соответствующему типу цен, сегменты номенклатуры и общие справочники.Стандартный интерфейсный мастер БСП накладывает дополнительные проверки, фоновые ожидания и блокировки, которые часто дают сбой. Обойдем графическую оболочку и выполним создание образа напрямую средствами встроенного языка 1С:
УзелМагазина = ПланыОбмена.ПоМагазину.НайтиПоКоду("МСК01");
СтрокаПодключения = "File=""D:\RIB_Bases\Shop_MSK01"";";
ПланыОбмена.СоздатьНачальныйОбраз(УзелМагазина, СтрокаПодключения);
Также можно воспользоваться пакетным режимом запуска Конфигуратора через командную строку. Это исключает влияние тонкого клиента и графических форм:
1cv8.exe DESIGNER /IBConnectionString "Srvr=""Server1C"";Ref=""CentralBase"";" /CreateInitialImage "D:\RIB_Bases\NewShop" -NodeCode "МСК01"
Если в сети насчитывается более 50–100 магазинов, а объем нормативно-справочной информации (НСИ) превышает 500 тысяч объектов, генерация каждого нового образа штатным путем занимает часы. В таких условиях оптимально сформировать так называемый служебный узел.
Рассмотрим структуру данного подхода:
Перед повторным запуском процедуры выгрузки образа проконтролируем следующие системные параметры:
%TEMP%) учетной записи службы usr1cv8 должны иметь запас свободного места, превышающий объем базы в 2–3 раза.Регистрация изменений для обмена и убедимся, что для создаваемого узла нет зависших ошибочных записей в таблицах регистрации изменений.