В итоге выяснилось, что РИБ в Альфа-Авто не работает - на этапе создания "образа" подчиненной базы выдавало ошибку.
Об ошибке сообщил в поддержку, а они подтвердив у себя ошибку отправили разрабам.
Время исправления бага - неизвестно.
Поэтому решено делать разделение своими силами.
Предварительно база была была почищена от помеченных на удаление объектов, выполнено восстановление последовательности, тестирование и исправление и выгрузка в файл.
Из бекапа была восстановлена в отдельную папку (копия) в которой запустил Свертку базы (самописная), на выходе были получены:
ВводОстатковТоваров (в разрезе Склад)
ВводОстатковВзаиморасчетов (в разрезе Валюта, Подразделение)
ИзменениеЦен (в разрезе ТипЦены)
и куча помеченных на удаление документов.
Запущена очистка помеченных на удаление и ТиС ИБ.
Получена свернутая база.
Из нее сделана еще одна копия, а дальше индивидуальная чистка каждой базы от других подразделений.
Все вроде получилось нормально.
Следующий этап синхронизация.
Перемещение товаров решено сделать через фиктивного контрагента, через следующую цепочку:
1) Ф1.ЗаказПоставщику --->--(СОМ соединение)--->---- Ф2.ЗаказПокупателя
2) Ф2.ЗаказПокупателя --->--(на основании)--->-- Ф2.РеализацияТовара
3) Ф2.РеализацияТовара --->--(СОМ соединение)--->---- Ф1.ПоступлениеТовара
Как думаете, на сколько такая схема жизнеспособна?
А вот с получением и отображением остатков другого филиала(ов) ситуация такая.
Для хранения прайса филиала создал РегистрСведений Измерения:( НашиФилиалы; Номенклатура; ), Остаток, Цена
Через СОМ соединение подключаюсь к филиалу и запросами получаю две ТЗ (Партии и Цены), далее в цикле перебираю ТЗПартии и для текущего товара через ТЗЦена.Найти() получаю Цену.
Полученные данные записываю в Регистр.
Все работает, но как-то очень долго выполняет.
Есть предположение, что это из-за того, что каждый происходит старт и проведение транзакции.
Подскажите пожалуйста, как можно этот процесс ускорить.
Вот код
ТЗОстатки = ПолучитьОстаткиПрайс();
ТЗЦены = ПолучитьЦеныПрайс();
Для Каждого Стр Из ТЗОстатки Цикл
НайденаяСтрока = ТЗЦены.Найти(Стр.Артикул, "Артикул");
Цена = 0;
Если НайденаяСтрока = Неопределено Тогда
Иначе
Цена = НайденаяСтрока.Цена;
КонецЕсли;
//Записываем запись в регистр сведений
Набор = РегистрыСведений.ТоварыФилиалов.СоздатьНаборЗаписей();
Набор.Прочитать();
НовЗапись = Набор.Добавить();
НовЗапись.НашФилиал= пвФилиал;
НовЗапись.Номенклатура= Стр.Номенклатура;
НовЗапись.ОстатокОбщий = Стр.Остаток;
НовЗапись.ЦенаЗакупки = Цена;
Набор.Записать();
КонецЦикла;
Может быть можно быстрее загрузить в регистр из ТЗ.
Я пробовал, но выдавало ошибку (точно не помню какую) что-то типа не совместимости полей.