Как программно перегрузить документ из одной базы в другую? #695220


#0 by _stay true_
Здравствуйте. Нужно написать обработку, которая перегружала бы счета - фактуры из ТКПТ(конфа от раруса по управлению магазином) в БП 2.0. Ситуация такая: соответствия объектов баз хранятся в отдельной SQL-базе не сервере, есть база БП 2.0, нужно чтобы обработка выполнялась в ней, следовательно: 1. Нужно программно подключиться к базе ТКПТ(работает) и запросом вытянуть нужные счета-фактуры с отбором по периоду. 2. Проверить соответствие GUID объектов по базе SQL. Если есть соответствие - просто грузить, если нет - грузить и создать новое соответствие в базе SQL. 3. Загрузить документы из ТКПТ в БП. Процедура получилась такая: Результат такой: к SQL подключается, если соответствие находит - просто грузит объект, если не находит - грузит объект и добавляет соответствие в базу SQL. Запарка начинается на этапе загрузки документов и записи: В отладчике ОбъектСФДляЗагрузки определяется как COM-объект, и, следовательно, в базу не записывается как документ. На строку ОбъектСФДляЗагрузки.Записать(РежимЗаписиДокумента.Проведение) выдаёт ошибку: Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация (1C:Enterprise 8.2.19.80): Несоответствие типов (параметр номер '1') Если кто сталкивался с подобным - подскажите, пожалуйста, как вы решали подобную проблему? Заранее спасибо.
#1 by andreymongol82
Если ОбъектСФДляЗагрузки - это com-объект, то в записать Записать(РежимЗаписиДокумента.Проведение) - нужно как-то так Подключение.DocumentWriteMode.Posting
#2 by _stay true_
Попробовал так: ОбъектСФДляЗагрузки.Записать(Подключение.DocumentWriteMode.Posting) Выдал ошибку такую: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Заполнить): Произошла исключительная ситуация (1C:Enterprise 8.2.17.169): Ошибка при выполнении обработчика - 'ОбработкаЗаполнения' {ОбщийМодуль.обПроцедурыОбщегоНазначения.Модуль}: Конструктор не обнаружен (ВыборкаИзРезультатаЗапроса)
#3 by _stay true_
Неужели придется пореквизитно...
#4 by _stay true_
Неужели единственный выход это программно создавать новый документ и заполнять каждый реквизит отдельно?
#5 by Maxus43
сериализуй документ в xml, на той стороне загрузи. Если делаешь через ком - то создавай док и заполняй
#6 by ptiz
Представь себе! Искуственный интеллект, тягающий разнородные объекты между разными базами, еще не изобрели. То, что они называются одинаково: "СчетФактура", не значит, что это одно и то же (молчу про соответствие контрагентов, товаров и т.п.).
#7 by _stay true_
Спасибо за объяснения. Пойду пыхтеть))
#8 by _stay true_
Вопрос такой: как программно создать счет-фактуру с указанием ручной корректировки движений? Нужно, чтобы она дополнительно двинула регистр НДС Продажи.
#9 by _stay true_
Достаточно ли будет установить признак "ручная корректровка = истина" и создать и записать набор записей?
#10 by ptiz
Да
#11 by _stay true_
Спасибо. Пойду попробую.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С