![]() |
Нужна помощь в настрйоке правил конвертации В конвертации новичок. Потому сильно не пинать за глупые вопросы. У сути, необходитмо реализовать выгрузку из УТ 10.3 в БП документ "Поступление NVW@? причем, при определнных условиях (если поставщик строго определенный контрагент) постпление должно конвертироваться в Перемещение ТМЦ, в противном случае в обычном порядке. Рассматриваю два варианта: 1 - два правила обмена для одного вида документа где фильтровать источник по реквизиту и выбирать по какому ПКО выгружить приходную. 2 - в ПКО в процедуре "Перед выгрузкой" ,если контрагент нужный, использовать функцией ВыгрузитьПоПравилу предварительно создав структуру для выгрзки Перемещения на основе Поступления. Посоветуйте ка проще/правильнее поступить |
Соори за корявки в тексте - Punto Switcher постарался :) там имелось ввиду Поступление ТМЦ :) |
Ну и остальные корявки это просто кривые руки... одним словом жду помощи по теме |
делаешь двое правил, перед выгрузкой определяешь какие использовать передаёшь ссылку В ВыгрузитьПоПравилу , структуру формировать не надо |
Правильно - две выгрузки. |
Если два ПКО то срабатывают всегда оба? и каждом из них свой фильтр? и для каждого свое ПВД? Все верно? |
В одном ПКО Приходная->Приходная а во втором Приходная->Перемещение все верно? и не нужно тогда никаких ВыгрузитьПоПравилу, просто настроить согласование реквизитов и все? |
тогда тебе надо фильтр делать будет в правиле, делай через выгрузитьпопрравилу |
Все получилось, всем спасибо. Воспользовался ВыгрузитьПоПравилу |
А можно я тут спрошу :)? Надо переделать типовой обмен УТ10-БП2 чтоб из всей выгружаемой кучи одного вида документов (перемещения) получился 1 общий документ другого вида. Из перемещений в реализацию я переделал. Но получается куча перемещений преобразуется в такуюже кучу реализаций. А надо в 1 общую. |
По сути у меня есть подобный обмен уже. Правила работают через универсальный обмен. Там список доков выбирается в форме. Как мне отловить список доков которые зарегистрированы для обмена по плану обмена? |
выбрать * из Документы.ХХХ.изменения делаешь свой запрос в правиле выгрузки, формируешь структуру данных и передаёшь в выгрузитьпопрравилу |
Дальше еще один затык. Задача следующая: в УТ есть приходный кассовый ордер на розничную выгрузку, хотелось бы при загрузке принять его и сделать еще два дока: расходник в дебет 57.01 и приходник с кредита 57.01 (переместить розничную выгрузку в основную кассу из магазинов - обособленных подразделений). Пытался создавать нужные документы в ПКО в обработчике "После загрузки", выдается ошибка "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных" при вызове ЗаписатьОбъектВИБ для вновь созданных документов. |
2(12) Делай ещё два ПКО |
Была такая мысль, но смутил регистр "Соответствие объектов" - получается что один к многим, значит будет 3 записи где собственный объект это 3 разные ссылки и один GUID базы источника. При одностороннем обмене все гуд, а что будет при изменении любого из трех в базе получателе? |
В случае двустороннего обмена. |
(14) при изменении в получателе, если в правилах обмена прописан обмен, то надо исправлять обратные правила. регистр "Соответствие объектов" - для поиска |
Все получилось, спасибо |
Погорячился со "ВСЕ ПОЛУЧИЛОСЬ!" Выгружаю один приходник из УТ в три документа на стороне БП - два приходника и один расходник. Сделал три ПКО для каждого документа в БП. При первом обмене все ОК - получаем три документа в БП, но! если изменить приходник в УТ и повторно выгрузить, то сам документ ложится нормально, расходник нормально, а вот второй, искусственно порожденный приходник, создается каждый раз новый. Подозреваю что проблема в отключенном поиске по вн.идентификатору для второго ПКО, т.е. не нашелся - создаются новый, логично! Но как выйти из положения? думки в сторону замены GUID перед выгрузкой, например заменить при выгрузке первые 5 символов GUID на 55555. Какие советы от бывалых? |
Да, можно было бы попытаться искать по другим ключевым полям, но подобных не предвидется - время сдвигаю при выгрузке на секунду, номер - делаю новый.... по какому полю искать кроме фиктивного GUID мылей нет, да чтобы было понятно: обмен односторонний |
2(19) Всю необходимую для идентификации информацию пихай в комментарий при выгрузке. По нему и синхронизируй. |
А комментарий даст использовать как поле поиска!? |
Неоптимально, однако, с точки зрения скорости, но, имхо, такого даже и представить не мог!!! А что с заменой GUID на лету? геморой? ведь так точно будет работать! |
Победил! Может кому поможет: 1. передаем УИД источника в параметр 2. В ПКО в обработчик при загрузке пишем: // Найти загружаемый документ по GUID - заменим в исходном GUID первые 5 символов на 55555 Приходник57УИД = Новый УникальныйИдентификатор("55555"+Сред(ПараметрыОбъекта["УникальныйИдентификаторДокумента"], 6)); СсылкаНаОбъект = Документы.ПриходныйКассовыйОрдер.ПолучитьСсылку(Приходник57УИД); Если СсылкаНаОбъект.Пустая() Тогда Объект.УстановитьСсылкуНового(СсылкаНаОбъект); Иначе Объект = СсылкаНаОбъект.ПолучитьОбъект(); КонецЕсли; |
| Текущее время: 02:34. Часовой пояс GMT +3. |