Имя: Пароль:
1C
1С v8
КД выгрузка связанного документа
0 Cumpuciy
 
03.03.15
11:33
Переделываю правила обмена под БП 3.0
Документ поступления товаров попадают в план обмена после установки соответствующего флага в документе.
Надо, что бы вместе с ПТУ выгружалась и связанная с ним СФ входящая.
При обмене с БП 2.0 прекрасно работала такая конструкция:
НайденнаяСФ = НайтиПодчиненныйДокумент(Источник, "СчетФактураПолученный");
Если НайденнаяСФ <> Неопределено тогда
    ВыгрузитьПоПравилу(НайденнаяСФ,,,,"СчетФактураПолученный");
КонецЕсли;
но когда выгружаю в БП 3.0, если ПТУ в БП ещё нет, то выдает ошибку. Поле объекта не обнаружено.
Как бы так по хитрому, сперва выгрузить ПТУ, а затем СФ.
1 Naumov
 
03.03.15
11:39
Обмен через ПланОбмена или через универсальныйобмен?
2 Cumpuciy
 
03.03.15
11:41
(1) Через обработку универсальный обмен данными, и регистрация в плане обмена. ПТУ при установке флага регистрируется в плане обмена, затем выгрузка только зарегистрированных объектов.
3 Cumpuciy
 
03.03.15
11:42
Конструкция:
НайденнаяСФ = НайтиПодчиненныйДокумент(Источник, "СчетФактураПолученный");
Если НайденнаяСФ <> Неопределено тогда
    ВыгрузитьПоПравилу(НайденнаяСФ,,,,"СчетФактураПолученный");
КонецЕсли;
работала в ПКО ПоступлениеТоваровУслуг в обработчике После Выгрузки.
4 Naumov
 
03.03.15
11:51
Если через универсальный обмен, то выгрузка через
НайденнаяСФ = НайтиПодчиненныйДокумент(Источник, "СчетФактураПолученный");
Если НайденнаяСФ <> Неопределено тогда
    ВыгрузитьПоПравилу(НайденнаяСФ,,,,"СчетФактураПолученный");
КонецЕсли;
работала в ПКО ПоступлениеТоваровУслуг в обработчике После Выгрузки.

Должна так же работать.
5 Cumpuciy
 
03.03.15
11:57
(4) ну вот не работает. выгрузка останавливается с ошибкой
ошибка в обработчике ПослеВыгрузки
Поле объекта не обнаружено. всё. какое поле, какого объекта, подробностей нет.
НО! только если в БП поступления товаров ещё нет, т.е. это первая выгрузка объекта. Причем ПТУ в БП создается. И при повторной выгрузке этой ошибки нет.
в ПКО СчетФактураПолученный в обработчике После Загрузки
выполняется код:
//добавим документ основание в тч
Если Объект.ДокументыОснования.Количество() = 0 тогда
    НоваяСтрока = объект.ДокументыОснования.Добавить();
    НоваяСтрока.ДокументОснование = Объект.ДокументОснование;
конецесли;
объект.КодВидаОперации =  "01";
объект.КодСпособаПолучения = 1;
объект.НДСПредъявленКВычету = истина;
объект.ДоговорКонтрагента =  Объект.ДокументОснование.ДоговорКонтрагента.Ссылка;
объект.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыПолученного.НаПоступление;
объект.Контрагент =  Объект.ДокументОснование.Контрагент.Ссылка;
Объект.Записать();
Есть подозрение, что ПТУ ещё не создан, а уже идёт выгрузка СФ, где есть ссылка на ПТУ.
но ведь когда выгружал в 2.0 всё работало прекрасно.
6 стаканыч
 
03.03.15
11:58
(5) ну так отладчиком чего ты
7 Cumpuciy
 
03.03.15
12:05
(6) ну видимо придется
8 Naumov
 
03.03.15
12:06
(5) Какое поле-то не обнаружено? при чем тут события, если код кривой?
9 Naumov
 
03.03.15
12:07
(5) а что у тебя за Объект?
При выгрузке есть Источник.
10 Naumov
 
03.03.15
12:08
+Ты сам понимаешь, что пишешь:
"Есть подозрение, что ПТУ ещё не создан, а уже идёт выгрузка СФ, где есть ссылка на ПТУ. "
У тебя событие из конвертации ПТУ обрабатывается. как его может не существовать?
11 Cumpuciy
 
03.03.15
12:11
(8) Просто "Поле объекта  не обнаружено". всё. на этом сообщение об ошибке заканчивается.
(9) ПКО СчетФактураПолученный в обработчике После Загрузки Объект - это Счет фактура полученный.
12 PLUT
 
03.03.15
12:21
(11)
там обычно еще в тексте ашипки
Объект= бла-бла-бла
Обормотчик = бла-бла-бла
Позиция модуля =(...)

где ... - номер строки в модуле обормотчика
13 Cumpuciy
 
03.03.15
12:47
(12)
ПКО                    =  ПоступлениеТоваровУслуг  (Документ: Поступление товаров и услуг)
    Объект                 =  Поступление товаров и услуг И0000097 от 26.02.2015 12:00:00  (Поступление товаров и услуг)
    Обработчик             =  ПослеВыгрузкиОбъекта
    ОписаниеОшибки         =  Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6964)}: Поле объекта не обнаружено
    ПозицияМодуля          =  Обработка.УниверсальныйОбменДаннымиXML(1238)
    КодСообщения           =  43
14 Йохохо
 
03.03.15
12:49
(13) мб в Поступление товаров и услуг И0000097 от 26.02.2015 12:00:00 нет объект.ВидСчетаФактуры?
15 Naumov
 
03.03.15
13:06
сдается мне, что в правилах есть какое-то недозаполненное ПКС, вот и появляется поле, которого нет не обнаружено.
(11) А где текст обработчика "ПослеВыгрузки"?
на кой нам после загрузки, если ошибка при выгрузке?
16 Cumpuciy
 
03.03.15
13:08
(14) у Поступление товаров и услуг И0000097  есть СФ И0000091
Выгрузка обрывается, объект И0000097  появляется в базе, но без номенклатуры например. т.е. недогружен. если запустить выгрузку повторно, то всё ок, появляется и прикрепленная СФ и вообще всё ок.
Если включить  подробный комментарий выгрузки:
-идет выгрузка ПТУ
--выгружает реквизиты
-- табличные части
--выгружает СФ
---выгружает документ основание
и тут я кажется понял, что самдурак.
в СФ выгрузка документа основания - ПТУ идет по совсем другому ПКО, сделано было специально, чтоб не замещались найденные объекты при загрузке. и в этом правиле я прошляпил отключить выгрузку отсутствующих в БП 3.0 реквизиты.
рукалицо.
прошу прощения, что отвлек. всем спасибо.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой