|
Выгрузка документов поступления из УТ11 в БП 2.0 | ☑ | ||
---|---|---|---|---|
0
_stay true_
27.01.14
✎
11:06
|
Добрый день, товарищи! Проблема такая: нужно, чтобы при переносе из УТ11 документов поступления, в этом документе в БП счет-фактура перегружалась "в галочку", т.е. проограммно установить признаки "ПредъявленСчетФактура" и "Отразить вычет НДС в Книге покупок" в ИСТИНУ и программно заполнить дату и номер входящего счета-фактуры. Идея следующая: в ПКО документа в обработчике "ПередВыгрузкой" запросом получить дату и номер входящего счета фактуры и передать эти данные в обработчик "ПослеЗагрузки".
В правила обмена УТ-БП(выгрузил из УТ) в обработчик ПЕРЕДВЫГРУЗКОЙ ПКО ПТУ_ЗакупкаТоваровУслуг добавил такой простенький код: Запрос2 = Новый Запрос( "ВЫБРАТЬ | СчетФактураПолученныйДокументыОснования.ДокументОснование.Ссылка, | СчетФактураПолученныйДокументыОснования.Ссылка.Номер, | СчетФактураПолученныйДокументыОснования.Ссылка.ДатаСоставления |ИЗ | Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования |ГДЕ | СчетФактураПолученныйДокументыОснования.ДокументОснование.Ссылка = &Ссылка"); //Такой запрос работает, проверял отдельно на внешней обработке Запрос2.УстановитьПараметр("Ссылка", Источник.Ссылка); Результат2 = Запрос2.Выполнить(); ВыборкаДетальныеЗаписи = Результат2.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Параметры.Вставить("НомерСФ",ВыборкаДетальныеЗаписи.Номер); Параметры.Вставить("ДатаСФ",ВыборкаДетальныеЗаписи.ДатаСоставления); КонецЦикла; В обработчик этого же ПКО "ПослеЗагрузки" добавляю такой код: Объект.ПредъявленСчетФактура = ИСТИНА; Объект.КодВидаОперации = "01"; Объект.НомерВходящегоСчетаФактуры = Параметры.НомерСФ; Объект.ДатаВходящегоСчетаФактуры = Параметры.ДатаСФ; Объект.НДСПредъявленКВычету = ИСТИНА; Подгружаю правила в УТ. Выгрузка данных из УТ проходит без проблем. Переходим в БП, выполняем обмен, вылетает вот такая ошибка: При загрузке сообщения обмена возникли ошибки: Ошибка при загрузке данных: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3748)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = ПТУ_ЗакупкаТоваровУслуг ТипОбъекта = Поступление товаров и услуг Объект = Поступление товаров и услуг ВМУТ-000001 от 10.01.2014 0:00:00 Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Поле объекта не обнаружено (НомерСФ) ПозицияМодуля = (50) КСообщенияОбОшибках = 21 Как я понял, ругается на Параметры.НомерСФ и соответственно Параметры.ДатаСФ. Подскажите, в чем может заключаться проблема и как с этим бороться? |
|||
1
vicof
27.01.14
✎
11:18
|
А сразу на стороне источника номер и дату СФ нельзя определять и подставлять их в реквизиты преименика?
|
|||
2
_stay true_
27.01.14
✎
11:30
|
(1) Это я и пытаюсь сделать. Что посоветуете?
|
|||
3
_stay true_
27.01.14
✎
11:37
|
(1) Разве можно тупо запихнуть в реквизиты данные из выборки?
|
|||
4
vicof
27.01.14
✎
11:40
|
В свойстве ДатаСФ, сопоставленному с таким же свойством в приемнике, пишешь:
Значение = ТвояНайденнаяДата; ТО же самое с номером |
|||
5
_stay true_
27.01.14
✎
11:46
|
(4)Если честно, не совсем понял вас. Запрос выполнять в обработчике свойства ДатаСФ?
|
|||
6
vicof
27.01.14
✎
11:57
|
(5) Можно. Но сильно долго будет. Лучше свою выборку формировать в ПВД одним запросом, а затем из этой выборки заполнять свойства ПКО.
|
|||
7
_stay true_
27.01.14
✎
12:21
|
(6)Вариант не подошел. Правила уже допиленные - конфу обновили, изменились имена реквизитов, эти свойства просто отключены оказались. Нам доступно только программное изменение реквизитов "в лоб". Можно как-то "в лоб" это сделать"? Просто вытянуть из источника дату и номер и засунуть уже в "после загрузки" эти дату и номер в реквизиты?
|
|||
8
_stay true_
27.01.14
✎
13:04
|
Всё получилось, спасибо за подсказки. Замутил новые свойства в ПКО без указания источника, но с указанием приемника, там в обработчик "ПередВыгрузкой" впихнул свой код
Запрос2 = Новый Запрос( "ВЫБРАТЬ | СчетФактураПолученныйДокументыОснования.ДокументОснование.Ссылка, | СчетФактураПолученныйДокументыОснования.Ссылка.Номер, | СчетФактураПолученныйДокументыОснования.Ссылка.ДатаСоставления |ИЗ | Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования |ГДЕ | СчетФактураПолученныйДокументыОснования.ДокументОснование.Ссылка = &Ссылка"); //Такой запрос работает, проверял отдельно на внешней обработке Запрос2.УстановитьПараметр("Ссылка", Источник.Ссылка); Результат2 = Запрос2.Выполнить(); ВыборкаДетальныеЗаписи = Результат2.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Значение = ВыборкаДетальныеЗаписи.Номер; КонецЦикла; Вроде быстро отработало. Всем огромное спасибо за помощь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |