Имя: Пароль:
1C
1С v8
v8: Проблема не пойму с чем...
,
0 Omskdizel
 
30.04.12
17:39
Столкнулся с занятной проблемой девиантного поведения платформы. Опишу симптомы, а вы пните меня в каком-нить направлении, чтобы покопать и порешать проблему.

УТ11.0.7.19, БП2, 8.2.15.289/301/310
Собственно выгрузка данных из УТ в БП. Обработка за сие отвечающая называется "КонвертацияОбъектовИнформационныхБаз". Модуль объекта.

Выгружаю один объект, тип "ПередачаТоваровМеждуОрганизациями". Так происходит с любым объектом этого типа.

Все прекрасно работает с другими типами объектов.

Работа обработки доходит до строки 9892, в которой выполняется метод "Выполнить"
Попытка
   Выполнить(ПКО.ПередВыгрузкой);
Исключение
   ЗаписатьИнформациюОбОшибкеВыгрузкиОбработчикаПКО(41, ОписаниеОшибки(), ПКО, Источник, "ПередВыгрузкойОбъекта");
КонецПопытки;

Содержимое ПКО.ПередВыгрузкой следующее

РеквизитыСчетФактуры = Неопределено;
СчетФактура = Документы.СчетФактураВыданный.СчетФактураДокумента(Источник.Ссылка, Источник.Организация, РеквизитыСчетФактуры);

Если Источник.РасчетыЧерезОтдельногоКонтрагента Тогда
   ВходящиеДанные.Вставить("ПредъявленСчетФактура",    Источник.ПредъявленСчетФактура);
   ВходящиеДанные.Вставить("ДатаВходящегоСчетаФактуры",    Источник.ДатаСчетаФактуры);
   ВходящиеДанные.Вставить("НомерВходящегоСчетаФактуры",    Источник.НомерСчетаФактуры);
Иначе
   Если ЗначениеЗаполнено(СчетФактура) Тогда
       НомерСчетаФактуры        = РеквизитыСчетФактуры.Номер;
       НомерСчетаФактурыДляПечати    = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(НомерСчетаФактуры, Ложь, Истина);
       
       ВходящиеДанные.Вставить("ПредъявленСчетФактура",    Истина);
       ВходящиеДанные.Вставить("ДатаВходящегоСчетаФактуры",    РеквизитыСчетФактуры.Дата);
       ВходящиеДанные.Вставить("НомерВходящегоСчетаФактуры",    НомерСчетаФактурыДляПечати);
   Иначе
       ВходящиеДанные.Вставить("ПредъявленСчетФактура",    Ложь);
       ВходящиеДанные.Вставить("ДатаВходящегоСчетаФактуры",    Неопределено);
       ВходящиеДанные.Вставить("НомерВходящегоСчетаФактуры",    Неопределено);
   КонецЕсли;
КонецЕсли;

Запросы.ТоварыИУслугиИзВидовЗапасовИКПокупка.УстановитьПараметр("Ссылка", Источник.Ссылка);
РезультатыЗапроса = Запросы.ТоварыИУслугиИзВидовЗапасовИКПокупка.ВыполнитьПакет();
ВходящиеДанные.Вставить("Услуги", РезультатыЗапроса[1].Выгрузить());
ВходящиеДанные.Вставить("Товары", РезультатыЗапроса[3].Выгрузить());

Код прекрасно отрабатывает, ибо ВходящиеДанные.Товары полны правильными данными.

И теперь фишка: Сразу после отрабатывания "Выполнить" программный курсор в Отладчике прыгает на строку 10104. Из-за чего документ не выгружается вообще. Пробовал на трех релизах платформы, пробовал в двух релизах конфигурации. Правила не менялись, обработка не менялась. Подскажите, чего попробовать сотворить, что бы заработала обработка? Как обрулить ситуевину, может кто сталкивался?
1 kotletka
 
30.04.12
18:11
а строка 10104 что содержит?
2 kotletka
 
30.04.12
18:12
+ посмотри отладчиком РезультатЗпроса[1].Выгрузить() и результатЗапроса[2].Выгрузить() - что там
3 kotletka
 
30.04.12
18:13
не результатЗапроса[2].Выгрузить() а результатЗапроса[3].Выгрузить() конечно же
4 Omskdizel
 
01.05.12
19:48
(1) Там середина (!) какого-то условия. Ладно хоть процедура та же. Завтра буду на работе гляну точно, только там никак не связанный с выполненным кодом кусок процедуры.
(2) В результатах все нормально. В [1] пустая таблица, т.к. услуг не было, в [3] табличная часть передачи товаров между организациями. Т.е. оно именно в момент окончания срабатывания Выполнить где-то глючит.

На данный момент пришлось сделать в лоб. Если имя правил обмена это, то выполняется выдернутый из правила код, иначе как было. Но надо будет обновы накатывать, не хотелось бы так оставлять.
5 Omskdizel
 
02.05.12
11:29
Апну, может кто чего подскажет...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший