Как перенести движения? УПП-УПП, меняем только общие обработчики конвертации.

1. amiralnar 9 21.04.13 21:09 Сейчас в теме
Здравствуйте!
Необходимо доработать правил так, чтобы вместе с каждым документом выгрузилсь (а потом успешно загрузились) его движения по всем регистрам.
Пока даже не представляю, куда копать.

Есть смысл выгрузить все в хранилище, передать параметром, и на том конце развернуть все обратно?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. insurgut 207 22.04.13 07:39 Сейчас в теме
Выгружаешь структуру метаданных конфигурации, снимаешь галочки с "Не выгружать регистры накопления", загружаешь структуру в Конвертацию данных. После этого в синхронизации свойств для нужного тебе ПКО появятся нужные тебе таблицы движений (такие же как обячные ТЧ Товары, Услуги и т.п., только называются соответственно регистру по которому делаются движения). Все что нужно будет сделать, это указать все правила конвертации для состава реквизитов.
3. amiralnar 9 22.04.13 08:37 Сейчас в теме
Я дорабатываю типовые правила УПП. Там очень много ПКО документов. Я не вижу смысла править каждое ПКО.
На мой взгляд, возможно выгрузить движения используя общий обработчик события "ПослеВыгрузки", но я не могу придумать, как.
4. insurgut 207 22.04.13 09:06 Сейчас в теме
(3) amiralnar, вы смысла не видите, а по другому КД движения не таскает, потому что среди возможных настроек соответствий вы регистра накопления не найдете). Причем тут ПослеВыгрузки когда вам необходимо таблицу движений перенести? Самый простой вариант я указал. Да, посидеть конечно придется, если задача стоит переносить движения всех документов, но зато никакой нагрузки на базу при загрузке.

Только перед конвертацией объекта не забудьте указать РежимЗаписи="Запись" (или РежимЗаписи="ЗаписьСДвижениями" точно не помню), иначе у вас документы при загрузке проводится начнут и толку от переноса движений никаких не будет. Самое простое это в обработчике Перед конвертацией объекта вашей конвертации сделать, вроде такого:
Если Лев(ПКО.ТипИсточника,8)="Документ" Тогда
  РежимЗаписи="ЗаписьСДвижениями";
КонецЕсли;
5. insurgut 207 22.04.13 09:13 Сейчас в теме
Более того, чтобы не нагружать обмен - реквизиты документов можно не переносить, если нам интересен только результат.
6. amiralnar 9 22.04.13 09:48 Сейчас в теме
План такой:

В глобальном "ПослеВыгрузки" пишем:

Для Каждого Нбр Из Источник.Движения Цикл
Соответствие.Вставить(Нбр.Метаданные().Имя, ЗначениеВСтрокуВнутр(Нбр));
КонецЦикла;

Хранилище = Новый ХранилищеЗначения(Соответствие);

А потом добавить его как подчиненное свойство узла приемника.

Потом на том конце читаем это свойство, разворачиваем, и записываем.

Не знаю пока, как прочитать, и как передать.
Может сделать отдельное правило для этого, которое передает хранилище?
Тогда вопрос, а будет ли к этому моменту записан в базу документ регистратор?
7. insurgut 207 22.04.13 10:12 Сейчас в теме
Для Каждого Нбр Из Источник.Движения Цикл
Соответствие.Вставить(Нбр.Метаданные().Имя, ЗначениеВСтрокуВнутр(Нбр));
КонецЦикла;


Ну да, а кто будет конвертировать реквизиты движений?

В общем, удачи вам в изобретении велосипеда :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот