0
- 22.09.2015 - 15:23
|
В конвертации новичок. Потому сильно не пинать за глупые вопросы. У сути, необходитмо реализовать выгрузку из УТ 10.3 в БП документ "Поступление NVW@? причем, при определнных условиях (если поставщик строго определенный контрагент) постпление должно конвертироваться в Перемещение ТМЦ, в противном случае в обычном порядке. Рассматриваю два варианта: 1 - два правила обмена для одного вида документа где фильтровать источник по реквизиту и выбирать по какому ПКО выгружить приходную. 2 - в ПКО в процедуре "Перед выгрузкой" ,если контрагент нужный, использовать функцией ВыгрузитьПоПравилу предварительно создав структуру для выгрзки Перемещения на основе Поступления. Посоветуйте ка проще/правильнее поступить | |
1
- 22.09.2015 - 15:24
| Соори за корявки в тексте - Punto Switcher постарался :) там имелось ввиду Поступление ТМЦ :) | |
2
- 22.09.2015 - 15:30
| Ну и остальные корявки это просто кривые руки... одним словом жду помощи по теме | |
3
- 22.09.2015 - 16:00
| делаешь двое правил, перед выгрузкой определяешь какие использовать передаёшь ссылку В ВыгрузитьПоПравилу , структуру формировать не надо | |
4
- 22.09.2015 - 16:29
| Правильно - две выгрузки. | |
5
- 22.09.2015 - 16:57
| Если два ПКО то срабатывают всегда оба? и каждом из них свой фильтр? и для каждого свое ПВД? Все верно? | |
6
- 22.09.2015 - 17:01
| В одном ПКО Приходная->Приходная а во втором Приходная->Перемещение все верно? и не нужно тогда никаких ВыгрузитьПоПравилу, просто настроить согласование реквизитов и все? | |
7
- 22.09.2015 - 20:01
| тогда тебе надо фильтр делать будет в правиле, делай через выгрузитьпопрравилу | |
8
- 22.09.2015 - 20:57
| Все получилось, всем спасибо. Воспользовался ВыгрузитьПоПравилу | |
9
- 22.09.2015 - 21:52
|
А можно я тут спрошу :)? Надо переделать типовой обмен УТ10-БП2 чтоб из всей выгружаемой кучи одного вида документов (перемещения) получился 1 общий документ другого вида. Из перемещений в реализацию я переделал. Но получается куча перемещений преобразуется в такуюже кучу реализаций. А надо в 1 общую. | |
10
- 22.09.2015 - 21:54
| По сути у меня есть подобный обмен уже. Правила работают через универсальный обмен. Там список доков выбирается в форме. Как мне отловить список доков которые зарегистрированы для обмена по плану обмена? | |
11
- 22.09.2015 - 22:43
|
выбрать * из Документы.ХХХ.изменения делаешь свой запрос в правиле выгрузки, формируешь структуру данных и передаёшь в выгрузитьпопрравилу | |
12
- 23.09.2015 - 14:34
| Дальше еще один затык. Задача следующая: в УТ есть приходный кассовый ордер на розничную выгрузку, хотелось бы при загрузке принять его и сделать еще два дока: расходник в дебет 57.01 и приходник с кредита 57.01 (переместить розничную выгрузку в основную кассу из магазинов - обособленных подразделений). Пытался создавать нужные документы в ПКО в обработчике "После загрузки", выдается ошибка "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных" при вызове ЗаписатьОбъектВИБ для вновь созданных документов. | |
13
- 23.09.2015 - 15:43
| 2(12) Делай ещё два ПКО | |
14
- 23.09.2015 - 16:26
| Была такая мысль, но смутил регистр "Соответствие объектов" - получается что один к многим, значит будет 3 записи где собственный объект это 3 разные ссылки и один GUID базы источника. При одностороннем обмене все гуд, а что будет при изменении любого из трех в базе получателе? | |
15
- 23.09.2015 - 16:27
| В случае двустороннего обмена. | |
16
- 23.09.2015 - 17:04
|
(14) при изменении в получателе, если в правилах обмена прописан обмен, то надо исправлять обратные правила. регистр "Соответствие объектов" - для поиска | |
17
- 23.09.2015 - 17:39
| Все получилось, спасибо | |
18
- 24.09.2015 - 13:53
| Погорячился со "ВСЕ ПОЛУЧИЛОСЬ!" Выгружаю один приходник из УТ в три документа на стороне БП - два приходника и один расходник. Сделал три ПКО для каждого документа в БП. При первом обмене все ОК - получаем три документа в БП, но! если изменить приходник в УТ и повторно выгрузить, то сам документ ложится нормально, расходник нормально, а вот второй, искусственно порожденный приходник, создается каждый раз новый. Подозреваю что проблема в отключенном поиске по вн.идентификатору для второго ПКО, т.е. не нашелся - создаются новый, логично! Но как выйти из положения? думки в сторону замены GUID перед выгрузкой, например заменить при выгрузке первые 5 символов GUID на 55555. Какие советы от бывалых? | |
19
- 24.09.2015 - 13:55
| Да, можно было бы попытаться искать по другим ключевым полям, но подобных не предвидется - время сдвигаю при выгрузке на секунду, номер - делаю новый.... по какому полю искать кроме фиктивного GUID мылей нет, да чтобы было понятно: обмен односторонний | |
20
- 24.09.2015 - 14:21
| 2(19) Всю необходимую для идентификации информацию пихай в комментарий при выгрузке. По нему и синхронизируй. | |
21
- 24.09.2015 - 14:25
| А комментарий даст использовать как поле поиска!? | |
22
- 24.09.2015 - 14:26
| Неоптимально, однако, с точки зрения скорости, но, имхо, такого даже и представить не мог!!! А что с заменой GUID на лету? геморой? ведь так точно будет работать! | |
23
- 24.09.2015 - 16:21
|
Победил! Может кому поможет: 1. передаем УИД источника в параметр 2. В ПКО в обработчик при загрузке пишем: // Найти загружаемый документ по GUID - заменим в исходном GUID первые 5 символов на 55555 Приходник57УИД = Новый УникальныйИдентификатор("55555"+Сред(ПараметрыОбъе кта["УникальныйИдентификаторДокумента"], 6)); СсылкаНаОбъект = Документы.ПриходныйКассовыйОрдер.ПолучитьСсылку(Пр иходник57УИД); Если СсылкаНаОбъект.Пустая() Тогда Объект.УстановитьСсылкуНового(СсылкаНаОбъект); Иначе Объект = СсылкаНаОбъект.ПолучитьОбъект(); КонецЕсли; | |
| Интернет-форум Краснодарского края и Краснодара |