Помощь - Поиск - Пользователи - Календарь
Полная версия: Проблема при конвертации из БП в УТ
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Обмен данными
ХочуСпец
При конвертации из БП8 в УТ8 использую типовой план обмен, но работае он немного некоретно. Попробую объяснить почему:
Для правила конвертации КОНТРАГЕНТЫ в типовом плане обмена добавлены два правила конвертации св-в ПОКУПАТЕЛЬ, ПОСТАВЩИК (источник у этих св-в не заполнен, так как в БП этих галочек у контрагента нет).
Для этих правил конвертации св-в в обработчике ПЕРЕД ВЫГРУЗКОЙ добавлены соответственно:

для ПОКУПАТЕЛЬ

Код
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Контрагент", Источник.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ДоговорыКонтрагентов.Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Владелец = &Контрагент
| И (ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| ИЛИ ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером))
|";

РезультатЗапроса = Запрос.Выполнить();
Значение = НЕ РезультатЗапроса.Пустой();



для ПОСТАВЩИК:

Код
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Контрагент", Источник.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ДоговорыКонтрагентов.Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Владелец = &Контрагент
| И (ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
| ИЛИ ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом))
|";

РезультатЗапроса = Запрос.Выполнить();
Значение = НЕ РезультатЗапроса.Пустой();


В базе БП существует контрагент, а у него один договор с видом С ПОСТАВЩИКОМ.
В базе УТ же существует тот же контрагент (синхронизация по ИНН) тоже с одним договором но другого вида: С ПОКУПАТЕЛЕМ.
Логично что при выгрузке/загрузке В базе УТ у данного контрагента должен добавиться договор с видом: С ПОСТАВЩИКОМ и проставится обе галочки ПОКУПАТЕЛЬ и ПОСТАВЩИК, но в реальности в УТ у этого контрагента галочка ПОКУПАТЕЛЬ убирается, а галочка ПОСТАВЩИК проставляется! Если посмотреть на вышеуказанный код, то вполне все логично: при выгрузке система находит договор с видом: С ПОСТАВЩИКОМ галочку ПОКУПАТЕЛЬ "убирает", а галочку ПОСТАВЩИК "проставляет".
Прошу совета как изменить правила, чтобы для данного примера проставились и ПОСТАВЩИК и ПОКУПАТЕЛЬ!
BabySG
Так ответ ПОЧЕМУ заключается в:
Код
Значение = НЕ РезультатЗапроса.Пустой();
ХочуСпец
Извините, если честно не понял (
ХочуСпец
Здесь ведь проблема в том что нельзя обратиться из КД к базе данных приемника
BabySG
Событие ПРИ ЗАГРУЗКЕ никто не отменял
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.