Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 13:13

8.1: Миграция документа с регистром накопления м/у периферийными базами

Автор bonzo, 08 ноя 2011, 12:37

0 Пользователей и 1 гость просматривают эту тему.

bonzo

Ассалам алейкумана!

В сеть розничной торговли вводим использование карточек. Есть задача - видеть во всех периферийных базах один регистр накопления - текущую сумму баланса на карте. Приход в этот регистр делает документ "Пополнение баланса", Расход - "Чек". Движения, производимые документом локальной базы видны в центральной базе (как и полагается), а вот в другую периферийную базу они уже не попадают.

Господа, Ваши предложения: как настроить обмен в таком случае?

Думаю над вариантом, превращать записи регистра накопления в записи регистра сведений - по мере попадания документов в Центральный Узел - автоматической обработкой...  :wacko:

bonzo


comol

алмалейкума асалама :))))))

Так тогда всё просто... уберите фильтрацию "Перед записью" или "перед выгрузкой" в зависимости от того чем пользуетесь для этого документа и для регистра всё. будет расползаться по всем базам Из чека ведь сворачивается в "очтет о розничных продажах". Правда будет "объект не найден" как регистратор. Если это раздражает используейте после загрузки код вида:


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
               | ТоварыНаСкладах.Регистратор,
               | ТоварыНаСкладах.Период
               |ИЗ
               | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
               |ГДЕ
               | ТоварыНаСкладах.Регистратор.Номер ЕСТЬ NULL";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Док = Документы.КорректировкаЗаписейрегистров.СоздатьДокумент();
Док.Дата = Выборка.Период;
Док.ОбменДанными.Загрузка = Истина;
Док.УстановитьСсылкуНового(ВЫборка.Регистратор);
Док.УстановитьНовыйНомер();
Док.Проведен = Истина;
Док.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;

Статьи по оптимизации 1С: http://comol.livejournal.com/

bonzo

Рахмат! Но не могу найти фильтров или процедур вида "ПередВыгрузкой ()"

Вот основа модуля обмена данными:
Попытка
      ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
      ЗаписьСообщения.НачатьЗапись(ЗаписьВXML, УзелОтправки);
      ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);
      ЗаписьСообщения.ЗакончитьЗапись();
      ЗаписьВXML.Закрыть();
Исключение
      ТекстЛога = ТекстЛога + Символы.ПС + "Не удалось выгрузить данные в файл XML: "+ОписаниеОшибки();
      НетОшибок = Ложь;
КонецПопытки;

И усё. На "Объект не найден" согласный я - только бы расползались!

comol

нууу... а код фильтрации вы здесь видите? А если фильтрация есть значит где-то есть код, который её делает :).

1) Планы обмена в конфигурации - открыть модуль объекта и там процедуры "при отправке данных" или "при получении данных" - тогда вам повезло- туда вмешиваетесь и пишите если не типЗнч(Объект) = Тип("РегистрНакопленияНаборЗаписей.......")
2) в модуле объекта или в подписке на событие... событие "перед записью" там надо искать код вида ОбменДанными.Получатели.... ну и собственно тоже там где получатели фильтруются "вписываьтся"
Статьи по оптимизации 1С: http://comol.livejournal.com/

bonzo

"Планы обмена в конфигурации - открыть модуль объекта и там..."

и там вагон картошки! есть! понял как дальше делать...
//справочники мигрируют по всем базам
      Если ТипОбъекта = "Справочник" Тогда
         Подходит = Истина;
      ИначеЕсли Имя = "РегистрСведений.ЦенаТовара" Тогда
         Подходит = Истина;
      ИначеЕсли Имя = "Документ.ПрайсЛист" Тогда
         Подходит = Истина;
      ИначеЕсли Имя = "Документ.ПополнениеБалансаКарты" Тогда
         Подходит = Истина;   
      КонецЕсли;   

Большое спасибо!!!
Альхамдулиллях!

bonzo

Только проводки не мигрировали :-(
Документ пришел, но пустой :-(

bonzo


comol

ИначеЕсли Имя = "РегистрНакопления.РегистрССумомйКарт" Тогда
   Подходит = Истина;


Может так?
Статьи по оптимизации 1С: http://comol.livejournal.com/

bonzo

Цитата: comol от 09 ноя 2011, 10:09
ИначеЕсли Имя = "РегистрНакопления.РегистрССумомйКарт" Тогда
   Подходит = Истина;


Может так?

Ага, всё пыхает!

Всем большое спасибо!!!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск