|  | Ошибка в обработчике "Перед загрузкой объекта" | ☑ | 
    
        | 0
    
        Web00001   13.01.16✎ 16:17 | 
        Доброго времени суток! Переношу данные УТ 10.3 -> БП3
Получаю вот такую ошибку
 
 {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3405)}: ВНЕШНЕЕ СОЕДИНЕНИЕ: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(4211)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта
 ИмяПКО                 =  Контрагенты
 ТипОбъекта             =  Контрагент
 Объект                 =  ЗдесьНаименованиеКонтрагента
 Обработчик             =  ПослеЗагрузкиОбъекта
 ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
 ПозицияМодуля          =  (21)
 КСообщенияОбОшибках    =  21
 ВызватьИсключение СтрокаСообщенияОбОшибке;
 ВызватьИсключение СтрокаСообщения;
 
 Как быть? Куда копать?
 |  | 
    
        | 1
    
        Web00001   13.01.16✎ 16:18 | 
        Ошибся в заголовке перед, а на самом деле "ПослеЗагрузкиОбъекта"     |  | 
    
        | 2
    
        Cumpuciy   13.01.16✎ 16:21 | 
        А текст обработчика?     |  | 
    
        | 3
    
        Web00001   13.01.16✎ 16:25 | 
        в обработчике только Выполнить(Алгоритмы.ЗаполнитьРеквизитыПоУмолчанию)
а в алгоритмах
 
 
Процедура ЗаполнитьРеквизитыПоУмолчанию(Объект) Экспорт
 
 //подставляет обязательные значения
 МетаданныеДокумента = Объект.Метаданные();
 Если Метаданные.Документы.Содержит(МетаданныеДокумента) Тогда
 
 ОбъектСодержитРеквизитОрганизация      = ОбщегоНазначения.ЕстьРеквизитОбъекта("Организация", МетаданныеДокумента);
 ОбъектСодержитРеквизитСклад            = ОбщегоНазначения.ЕстьРеквизитОбъекта("Склад", МетаданныеДокумента);
 ОбъектСодержитПодразделениеОрганизации = ОбщегоНазначения.ЕстьРеквизитОбъекта("ПодразделениеОрганизации", МетаданныеДокумента);
 
 Если ОбъектСодержитРеквизитОрганизация И НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
 Объект.Организация = Параметры.ОсновнаяОрганизация;
 КонецЕсли;
 
 Если ОбъектСодержитРеквизитСклад Тогда
 Если (НЕ ЗначениеЗаполнено(Объект.Склад)) Тогда
 Объект.Склад = Параметры.СкладДляОбменаДаннымиСУТ;
 КонецЕсли;
 КонецЕсли;
 
 // Заполнение реквизита ПодразделениеОрганизации
 Если ТипЗнч(Объект) = Тип("ДокументОбъект.СписаниеСРасчетногоСчета")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПоступлениеНаРасчетныйСчет")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПриходныйКассовыйОрдер")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
 Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация Тогда
 
 Если ТипЗнч(Объект) = Тип("ДокументОбъект.СписаниеСРасчетногоСчета") Тогда
 // Заполнение подразделения организации
 Если ЗначениеЗаполнено(Объект.Организация)
 И ЗначениеЗаполнено(Объект.СчетОрганизации)
 Тогда
 СвойстваСчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
 Объект.СчетОрганизации,
 "ПодразделениеОрганизации"
 );
 Объект.ПодразделениеОрганизации = СвойстваСчета.ПодразделениеОрганизации;
 КонецЕсли;
 
 Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ОплатаПоставщику")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ВозвратПокупателю")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ПрочиеРасчетыСКонтрагентами")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.РасчетыПоКредитамИЗаймам")
 Тогда
 Объект.ПодразделениеДт = Неопределено;
 // {ОбособленныеПодразделения
 Иначе
 Объект.ПодразделениеДт = Объект.ПодразделениеОрганизации;
 // }ОбособленныеПодразделения
 КонецЕсли;
 ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ПоступлениеНаРасчетныйСчет") Тогда
 // Заполнение подразделения организации
 Если ЗначениеЗаполнено(Объект.Организация)
 И ЗначениеЗаполнено(Объект.СчетОрганизации)
 Тогда
 СвойстваСчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
 Объект.СчетОрганизации,
 "ПодразделениеОрганизации"
 );
 Объект.ПодразделениеОрганизации = СвойстваСчета.ПодразделениеОрганизации;
 КонецЕсли;
 
 Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.ВозвратОтПоставщика")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.ПрочиеРасчетыСКонтрагентами")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.РасчетыПоКредитамИЗаймам")
 Тогда
 Объект.ПодразделениеКт = Неопределено;
 // {ОбособленныеПодразделения
 Иначе
 Объект.ПодразделениеКт = Объект.ПодразделениеОрганизации;
 // }ОбособленныеПодразделения
 КонецЕсли;
 ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ПриходныйКассовыйОрдер") Тогда
 ОсновноеПодразделение = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
 Если ОсновноеПодразделение.Владелец = Объект.Организация Тогда
 Объект.ПодразделениеОрганизации = ОсновноеПодразделение;
 Иначе
 Объект.ПодразделениеОрганизации = Неопределено;
 КонецЕсли;
 
 Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ОплатаПокупателя")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ВозвратОтПоставщика")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ВозвратОтПодотчетногоЛица")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ПолучениеНаличныхВБанке")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.РасчетыПоКредитамИЗаймам")
 Тогда
 Объект.ПодразделениеКт = Неопределено;
 // {ОбособленныеПодразделения
 Иначе
 Объект.ПодразделениеКт = ?(ОбъектСодержитПодразделениеОрганизации, Объект.ПодразделениеОрганизации, Неопределено);
 // }ОбособленныеПодразделения
 КонецЕсли;
 ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
 ОсновноеПодразделение = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
 Если ОсновноеПодразделение.Владелец = Объект.Организация Тогда
 Объект.ПодразделениеОрганизации = ОсновноеПодразделение;
 Иначе
 Объект.ПодразделениеОрганизации = Неопределено;
 КонецЕсли;
 
 Если (Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ОплатаПоставщику")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВозвратПокупателю")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыдачаПодотчетномуЛицу")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.РасчетыПоКредитамИЗаймам")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВзносНаличнымиВБанк")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыплатаДепонентов")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыПоВедомостям")
 ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику"))
 Тогда
 Объект.ПодразделениеДт = Неопределено;
 // {ОбособленныеПодразделения
 Иначе
 Объект.ПодразделениеДт = Объект.ПодразделениеОрганизации;
 // }ОбособленныеПодразделения
 КонецЕсли;
 КонецЕсли;
 КонецЕсли;
 ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.АвансовыйОтчет")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОтчетКомиссионераОПродажах")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОтчетКомитентуОПродажах")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.КорректировкаДолга") Тогда
 //Выполнить процедуру ЗаполнениеДокументов.ПриИзмененииЗначенияОрганизации(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"));
 Если ОбъектСодержитРеквизитОрганизация И ОбъектСодержитПодразделениеОрганизации
 И ЗначениеЗаполнено(Объект.Организация) Тогда
 ПодразделениеПоУмолчанию = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
 // Если ПодразделениеОрганизации не заполнено.
 Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация Тогда
 Если НЕ ЗначениеЗаполнено(Объект.ПодразделениеОрганизации) Тогда
 // Если ПодразделениеПоУмолчанию соответствует выбранной организации, подставляем его.
 Если ПодразделениеПоУмолчанию.Владелец = Объект.Организация Тогда
 Объект.ПодразделениеОрганизации = ПодразделениеПоУмолчанию;
 КонецЕсли;
 Иначе // Если ПодразделениеОрганизации заполнено.
 // Если ПодразделениеОрганизации не соответствует выбранной организации.
 Если НЕ Объект.ПодразделениеОрганизации.Владелец = Объект.Организация Тогда
 // Если ПодразделениеПоУмолчанию соответствует выбранной организации, подставляем его.
 Если ПодразделениеПоУмолчанию.Владелец = Объект.Организация Тогда
 Объект.ПодразделениеОрганизации = ПодразделениеПоУмолчанию;
 Иначе // Выбрана не основная организация. ПодразделениеОрганизации нужно очистить.
 Объект.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
 КонецЕсли;
 КонецЕсли;
 КонецЕсли;
 КонецЕсли
 КонецЕсли;
 ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ГТДИмпорт") Тогда
 // Выполнить процедуру ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект);
 Если ОбъектСодержитРеквизитОрганизация
 И ЗначениеЗаполнено(Объект.Организация)
 И ОбъектСодержитПодразделениеОрганизации
 И (НЕ ЗначениеЗаполнено(Объект.ПодразделениеОрганизации)) Тогда
 
 ПодразделениеОрганизации = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
 
 Если ЗначениеЗаполнено(ПодразделениеОрганизации) И ПодразделениеОрганизации.Владелец = Объект.Организация Тогда
 Объект.ПодразделениеОрганизации = ПодразделениеОрганизации;
 КонецЕсли;
 КонецЕсли;
 ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ВозвратТоваровОтПокупателя")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ВозвратТоваровПоставщику")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОприходованиеТоваров")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОтчетОРозничныхПродажах")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПоступлениеТоваровУслуг")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.РеализацияТоваровУслуг")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.СписаниеТоваров")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ТребованиеНакладная")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.КомплектацияНоменклатуры")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.СчетНаОплатуПокупателю")
 ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПеремещениеТоваров") Тогда
 
 Если ТипЗнч(Объект) = Тип("ДокументОбъект.ПеремещениеТоваров") Тогда
 Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ПодразделениеОтправитель", МетаданныеДокумента) Тогда
 Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация ИЛИ Объект.Ссылка.СкладОтправитель <> Объект.СкладОтправитель Тогда
 Объект.ПодразделениеОтправитель = ОбщегоНазначенияБПВызовСервера.ПолучитьПодразделение(Объект.Организация, Объект.СкладОтправитель);
 КонецЕсли;
 КонецЕсли;
 Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ПодразделениеПолучатель", МетаданныеДокумента) Тогда
 Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация ИЛИ Объект.Ссылка.СкладПолучатель <> Объект.СкладПолучатель Тогда
 Объект.ПодразделениеПолучатель = ОбщегоНазначенияБПВызовСервера.ПолучитьПодразделение(Объект.Организация, Объект.СкладПолучатель);
 КонецЕсли;
 КонецЕсли;
 Иначе
 Если ОбъектСодержитРеквизитОрганизация
 И ОбъектСодержитРеквизитСклад
 И ОбъектСодержитПодразделениеОрганизации
 Тогда
 Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация ИЛИ Объект.Ссылка.Склад <> Объект.Склад Тогда
 Объект.ПодразделениеОрганизации = ОбщегоНазначенияБПВызовСервера.ПолучитьПодразделение(Объект.Организация, Объект.Склад);
 КонецЕсли;
 КонецЕсли;
 КонецЕсли;
 КонецЕсли;
 КонецЕсли;
 
 КонецПроцедуры
 
 
 |  | 
    
        | 4
    
        Web00001   15.01.16✎ 04:17 | 
        Взял новую бухг. Настроил новую синхронизацию. Последний релиз УТ10.3 и последний релиз БУХ3. Ситуация не изменилась. Ошибка один в один. Как я понял проблема в договорах. Если убрать все договора у контрагента, проблема уходит. Никто не видел решения подобной проблемы? Все должно работать же из коробки синхронизация торговли и БП. Все типовое.     |  | 
    
        | 5
    
        Godofsin   15.01.16✎ 05:06 | 
        Ну отладчиком же можно воспользоваться.     |  | 
    
        | 6
    
        Web00001   15.01.16✎ 05:47 | 
        (5)Воспользовался. В какой момент происходит ошибка присвоения по индексу по коду сказать невозможно. Сама ошибка появляется в момент перед записью данных в файл при проверке флага "ЕстьОшибки". Что делать?     |  | 
    
        | 7
    
        Godofsin   15.01.16✎ 05:52 | 
        (6) А что в этой строке? Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3405)     |  | 
    
        | 8
    
        Godofsin   15.01.16✎ 05:55 | 
        ив этой: Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(4211) на стороне приемника     |  | 
    
        | 9
    
        Web00001   15.01.16✎ 06:25 | 
        (7)     |  | 
    
        | 10
    
        Godofsin   15.01.16✎ 06:27 | 
        (9) ага, а в (8)?     |  | 
    
        | 11
    
        Web00001   15.01.16✎ 06:27 | 
        (8)     |  | 
    
        | 12
    
        Godofsin   15.01.16✎ 06:28 | 
        (11) Млять))))     |  | 
    
        | 13
    
        Godofsin   15.01.16✎ 06:31 | 
        (11) Ну как вариант меняться через файл и закатить отладчик на стороне приемника + поставить точки остановки во всех случаях вызова ЗаписатьИнформацибОбОшибкеЗагрузкиПКО(...)     |  | 
        Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший