|
Ошибка при выгрузке обмена данными | ☑ | ||
---|---|---|---|---|
0
falselight
01.02.17
✎
08:35
|
Так как по ссылкам из документа отловить выгружаемый объект
можно только в обработчике ПередКонвертациейДанных, задаю туда код фильтрирующий выгрузку. // ПодразделениеФильтр = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("СВ0000028"); // КХМ ПОРТ САЛЕ // Если Источник.Метаданные().Реквизиты.Найти("бит_аэро_Подразделение") <> Неопределено Тогда Если ЗначениеЗаполнено(Источник.бит_аэро_Подразделение) Тогда Если НЕ(Источник.бит_аэро_Подразделение.ПринадлежитЭлементу(ПодразделениеФильтр) ИЛИ Источник.бит_аэро_Подразделение = ПодразделениеФильтр) Тогда Сообщить("|"); Сообщить("--ПКО--Источник не выгружен " +СТРОКА(Источник)+"--ПКО--"); Сообщить("|"); Отказ = Истина; КонецЕсли; КонецЕсли; ИначеЕсли Источник.Метаданные().Реквизиты.Найти("РК_ПодразделениеОрганизации") <> Неопределено Тогда Если ЗначениеЗаполнено(Источник.РК_ПодразделениеОрганизации) Тогда Если НЕ(Источник.РК_ПодразделениеОрганизации.ПринадлежитЭлементу(ПодразделениеФильтр) ИЛИ Источник.РК_ПодразделениеОрганизации = ПодразделениеФильтр) Тогда Сообщить("|"); Сообщить("--ПКО--Источник не выгружен " +СТРОКА(Источник)+"--ПКО--"); Сообщить("|"); Отказ = Истина; КонецЕсли; КонецЕсли; КонецЕсли; // Сообщить("--ПКО--ВЫГРУЖАЕТСЯ " + СТРОКА(Источник)+" СО СТАТУСОМ < Отказ = " + СТРОКА(Отказ) +"> --ПКО--"); // при работе выгрузки ошибка случается вот на этом блоке кода Обработки.ВыгрузкаДанныхXML // Глобальный обработчик ПередКонвертациейОбъекта Отказ = Ложь; Если ЕстьГлобальныйОбработчикПередКонвертациейОбъекта Тогда Попытка Если ФлагРежимОтладкиОбработчиков Тогда Выполнить(ПолучитьСтрокуВызоваОбработчика(Конвертация, "ПередКонвертациейОбъекта")); Иначе Выполнить(Конвертация.ПередКонвертациейОбъекта); КонецЕсли; когда идет ссылка на источник Перечисление.ВидыОперацийРеализацияТоваров, на этой строке Выполнить(Конвертация.ПередКонвертациейОбъекта); и выходит ошибка Ошибка в глобальном обработчике события ПередКонвертациейОбъекта (конвертация) ПКО = ВидыОперацийРеализацияТоваров (Перечисление: Виды операций документа "Реализация товаров и услуг") Объект = Продажа, комиссия (Виды операций документа "Реализация товаров и услуг") Обработчик = ПередКонвертациейОбъекта (глобальный) ОписаниеОшибки = Поле объекта не обнаружено (Реквизиты) ПозицияМодуля = (5) КодСообщения = 64 Ошибка при выгрузке данных для узла плана обмена ТипОбъекта = Документ объект: Реализация товаров и услуг Объект = Реализация товаров и услуг СВ000007286 от 02.12.2016 23:00:04 ОписаниеОшибки = Ошибка в глобальном обработчике события ПередКонвертациейОбъекта (конвертация) ПКО = ВидыОперацийРеализацияТоваров (Перечисление: Виды операций документа "Реализация товаров и услуг") Объект = Продажа, комиссия (Виды операций документа "Реализация товаров и услуг") Обработчик = ПередКонвертациейОбъекта (глобальный) ОписаниеОшибки = Поле объекта не обнаружено (Реквизиты) ПозицияМодуля = (5) КодСообщения = 64 ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(1617) КодСообщения = 72 |
|||
1
falselight
01.02.17
✎
08:37
|
(0+) Скажите при чем тут Перечисление.ВидыОперацийРеализацияТоваров. Что на нем выходит ошибка, при вызове обработчика ПередКонвертациейДанных.
О нем же там ни слова не сказано? ((( |
|||
2
falselight
01.02.17
✎
08:53
|
То есть ругаться начинает на перечислении!!!!!
А у перечисления есть Реквизиты? Так как в обработчике ПередКонвертациейОбъекта, идет проверка Если Источник.Метаданные().Реквизиты.Найти("Подразделение") <> Неопределено Тогда Может в этом обработчике идет все объекты вообще? И когда попадается перечисление на нем и ломается, так как у него нет реквизитов? |
|||
3
vicof
01.02.17
✎
09:12
|
Проверь ДНК.
Ну и что у тебя в источнике? И какие реквизиты у перечисления могут быть? |
|||
4
vicof
01.02.17
✎
09:13
|
"Может в этом обработчике идет все объекты вообще"
Там для самых умных идет встроенная справка |
|||
5
vicof
01.02.17
✎
09:13
|
И еще СП недалеко валяется
|
|||
6
falselight
01.02.17
✎
09:14
|
да видимо эта ошибка была от того что искались реквизиты в перечислении
сейчас сделал проверку на документ, ошибка ушла теперь!!!!! Так как я делал это на то что бы отсеить счет фактуру, кодом ИначеЕсли Источник.Метаданные().Реквизиты.Найти("РК_ПодразделениеОрганизации") <> Неопределено Тогда Если ЗначениеЗаполнено(Источник.РК_ПодразделениеОрганизации) Тогда Если НЕ(Источник.РК_ПодразделениеОрганизации.ПринадлежитЭлементу(ПодразделениеФильтр) ИЛИ Источник.РК_ПодразделениеОрганизации = ПодразделениеФильтр) Тогда Сообщить("|"); Сообщить("--ПКО--Источник не выгружен " +СТРОКА(Источник)+"--ПКО--"); Сообщить("|"); Отказ = Истина; КонецЕсли; КонецЕсли; КонецЕсли; так как у неё не то подразделение что надо, почему у неё отказ идет нет, все равно??? |
|||
7
falselight
01.02.17
✎
09:56
|
Не должно такого же быть?
У СФВ есть реквизит РК_ПодразделениеОрганизации, типа справочник подразделения организации в (6) проверка на установку его выгрузки отказ = истина |
|||
8
falselight
01.02.17
✎
10:06
|
(6+) там точно подразделение у СФВ отличное от того что задано в переменной ПодразделениеФильтр
|
|||
9
falselight
01.02.17
✎
10:40
|
Итак, в данный момент, данная ошибка продолжает появляться:
Обработчик = ПередКонвертациейОбъекта (глобальный) ОписаниеОшибки = Поле объекта не обнаружено (Реквизиты) Хотя я поставил условие, что бы обрабатывались только документы. Почему продолжает идти ошибка, как будто бы у объектов продолжают искать Реквизиты? // ПодразделениеФильтр = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("СВ0000028"); // // Если Найти(СТРОКА(Источник.Метаданные()), "ДокументСсылка") <> неопределено Тогда Если Источник.Метаданные().Реквизиты.Найти("Подразделение") <> Неопределено Тогда Если ЗначениеЗаполнено(Источник.Подразделение) Тогда Если НЕ(Источник.Подразделение.ПринадлежитЭлементу(ПодразделениеФильтр) ИЛИ Источник.Подразделение = ПодразделениеФильтр) Тогда Сообщить("|"); Сообщить("--ПКО--Источник не выгружен " +СТРОКА(Источник)+"--ПКО--"); Сообщить("|"); Отказ = Истина; КонецЕсли; КонецЕсли; ИначеЕсли Источник.Метаданные().Реквизиты.Найти("РК_ПодразделениеОрганизации") <> Неопределено Тогда Если ЗначениеЗаполнено(Источник.РК_ПодразделениеОрганизации) Тогда Сообщить("В документе " + Источник.РК_ПодразделениеОрганизации); Сообщить("В фильтре " + ПодразделениеФильтр); Если НЕ(Источник.РК_ПодразделениеОрганизации.ПринадлежитЭлементу(ПодразделениеФильтр) ИЛИ Источник.РК_ПодразделениеОрганизации = ПодразделениеФильтр) Тогда Сообщить("|"); Сообщить("--ПКО--Источник не выгружен " +СТРОКА(Источник)+"--ПКО--"); Сообщить("|"); Отказ = Истина; КонецЕсли; КонецЕсли; КонецЕсли; Сообщить("--ПКО--ВЫГРУЖАЕТСЯ " + СТРОКА(Источник)+" СО СТАТУСОМ < Отказ = " + СТРОКА(Отказ) +"> --ПКО--"); КонецЕсли; // |
|||
10
falselight
01.02.17
✎
10:53
|
(9+) Это поправил, нужно было сделать вот так
Если Найти(СТРОКА(Источник.Метаданные()), "ДокументСсылка") <> 0 Тогда сейчас идет такая ошибка, как её устранить, - Если Найти(СТРОКА(Источник.Метаданные()), "ДокументСсылка") <> неопределено Тогда Обработчик = ПередКонвертациейОбъекта (глобальный) ОписаниеОшибки = Метод объекта не обнаружен (Метаданные) ААА, попробую в Попытку вставить! |
|||
11
falselight
01.02.17
✎
10:54
|
Такая ошибка
Ошибка в глобальном обработчике события ПередКонвертациейОбъекта (конвертация) ПКО = ДанныеПервичныхДокументов (Регистр сведений: Данные первичных документов) Объект = РегистрСведенийЗапись.ДанныеПервичныхДокументов (Регистр сведений запись: Данные первичных документов) Обработчик = ПередКонвертациейОбъекта (глобальный) ОписаниеОшибки = Метод объекта не обнаружен (Метаданные) ПозицияМодуля = (5) КодСообщения = 64 Ошибка при выгрузке данных для узла плана обмена ТипОбъекта = Регистр сведений набор записей: Данные первичных документов Объект = РегистрСведенийНаборЗаписей.ДанныеПервичныхДокументов ОписаниеОшибки = Ошибка в глобальном обработчике события ПередКонвертациейОбъекта (конвертация) ПКО = ДанныеПервичныхДокументов (Регистр сведений: Данные первичных документов) Объект = РегистрСведенийЗапись.ДанныеПервичныхДокументов (Регистр сведений запись: Данные первичных документов) Обработчик = ПередКонвертациейОбъекта (глобальный) ОписаниеОшибки = Метод объекта не обнаружен (Метаданные) ПозицияМодуля = (5) КодСообщения = 64 ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(1617) КодСообщения = 72 |
|||
12
falselight
01.02.17
✎
11:00
|
8888\ Наконец то это все выгрузилось!
ПОПЫТКОЙ ИСКЛЮЧЕНИЕМ обощел все остальное! |
|||
13
falselight
01.02.17
✎
11:02
|
тольк опочему то счет фактура снова выгружается (
|
|||
14
falselight
01.02.17
✎
11:07
|
ХМ, то есть возможно нельзя использовать попытку
исключение в обработчике ПередКонвертациейОбъекта? |
|||
15
falselight
01.02.17
✎
12:51
|
мммм, молчим!
|
|||
16
vicof
01.02.17
✎
12:55
|
всем пофиг
|
|||
17
falselight
01.02.17
✎
13:19
|
вот так сделал, тестируя несколько раз, почему этот код не срабатывает (((( и не фильтруется счет фактура выданная?
Может кто подскачет? А то я утомился че то... // ПодразделениеФильтр = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("СВ0000028"); // КХМ ПОРТ САЛЕ // СООБЩИТЬ("--ПКО--В НАЧАЛЕ по объекту " + СТРОКА(Источник)); Если Найти(СТРОКА(Источник), "РегистрСведенийЗапись") = 0 Тогда //ПОПЫТКА Если Найти(СТРОКА(Источник.Метаданные()), "ДокументСсылка") <> 0 Тогда Если Источник.Метаданные().Реквизиты.Найти("бит_аэро_Подразделение") <> Неопределено Тогда Если ЗначениеЗаполнено(Источник.бит_аэро_Подразделение) Тогда Если НЕ(Источник.бит_аэро_Подразделение.ПринадлежитЭлементу(ПодразделениеФильтр) ИЛИ Источник.бит_аэро_Подразделение = ПодразделениеФильтр) Тогда Сообщить("|"); Сообщить("--ПКО--Источник не выгружен " +СТРОКА(Источник)+"--ПКО--"); Сообщить("|"); Отказ = Истина; КонецЕсли; КонецЕсли; ИначеЕсли Источник.Метаданные().Реквизиты.Найти("РК_ПодразделениеОрганизации") <> Неопределено Тогда Если ЗначениеЗаполнено(Источник.РК_ПодразделениеОрганизации) Тогда Сообщить("В документе " + Источник.РК_ПодразделениеОрганизации); Сообщить("В фильтре " + ПодразделениеФильтр); Если НЕ(Источник.РК_ПодразделениеОрганизации.ПринадлежитЭлементу(ПодразделениеФильтр) ИЛИ Источник.РК_ПодразделениеОрганизации = ПодразделениеФильтр) Тогда Сообщить("|"); Сообщить("--ПКО--Источник не выгружен " +СТРОКА(Источник)+"--ПКО--"); Сообщить("|"); Отказ = Истина; КонецЕсли; КонецЕсли; КонецЕсли; Сообщить("--ПКО--ВЫГРУЖАЕТСЯ " + СТРОКА(Источник)+" СО СТАТУСОМ < Отказ = " + СТРОКА(Отказ) +"> --ПКО--"); КонецЕсли; //ИСКЛЮЧЕНИЕ //СООБЩИТЬ("--ПКО--РАБОТАЕТ ИСКЛЮЧЕНИЕ по объекту " + СТРОКА(Источник)); // СООБЩИТЬ("--ПКО--РАБОТАЕТ ИСКЛЮЧЕНИЕ по объекту " + СТРОКА(Источник.Метаданные())); //КОНЕЦПОПЫТКИ; КонецЕсли; |
|||
18
falselight
01.02.17
✎
13:21
|
(17+) Это вставлено в обработчик ПередКонвертациейОбъекта
думаю что то логически напутано ( |
|||
19
falselight
01.02.17
✎
13:35
|
почему не заходит в эту строку, как узнать?
Если Найти(СТРОКА(Источник.Метаданные()), "ДокументСсылка") <> 0 Тогда |
|||
20
Redkiy
01.02.17
✎
13:37
|
Отдохни и снова в бой!
|
|||
21
falselight
01.02.17
✎
13:44
|
(20) да чето и так буксуется!!!!!
|
|||
22
vicof
01.02.17
✎
13:44
|
Скока платишь?
|
|||
23
falselight
01.02.17
✎
13:49
|
вот это никогда не сработает
Если Найти(СТРОКА(Источник), "РегистрСведенийЗапись") = 0 Тогда но а потом |
|||
24
falselight
01.02.17
✎
13:51
|
(23) вернее она всегда будет выполняться, че то я запутался
|
|||
25
falselight
01.02.17
✎
13:59
|
Подскажете ли, как в обработчике ПередКонвертациейОбъекта можно проверить какой объект методанных идет? Справочник, Документ, или Регистр?
|
|||
26
Cyberhawk
01.02.17
✎
14:01
|
(25) Получить объект МД методом Метаданные()
|
|||
27
Cyberhawk
01.02.17
✎
14:02
|
+(26) Дальше уже проверить вхождение этого объекта МД в коллекцию Метаданные.Справочники, Метаданные.Документы и т.д. методом Содержит()
|
|||
28
falselight
01.02.17
✎
14:10
|
(27) Например, вот это, пишется одинаково
СООБЩИТЬ(ТипЗнч(Источник)); СООБЩИТЬ(ПКО.Источник); названия что в режиме предприятия, то есть синонимы а на это Источник.Метаданные() бывает ругается, что неизвестен метод Метаданные() А как проверять то? Используя Источник же? |
|||
29
Cyberhawk
01.02.17
✎
14:17
|
(28) Альтернативный вариант:
Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Источник)) |
|||
30
falselight
01.02.17
✎
15:34
|
(29) Скажите почему ТипЗнч(Источник) возвращает не тип объекта, к примеру Документ.РеализацияТоваровУслуг, а синоним объекта?
|
|||
31
falselight
01.02.17
✎
15:37
|
(30+) Или я что то путаю?
И так, можно, фильтровать обработку только справочников и документов, в обработчике ПередКонвертациейОбъектов??? Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Источник)) Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Источник)) Какие есть ещё аналогичные методы? Этот чето прям очень глубокий! |
|||
32
falselight
01.02.17
✎
15:55
|
Скажите почему?
0 --ПВО--ВЫГРУЖАЕТСЯ РегистрСведенийНаборЗаписей.ДанныеПервичныхДокументов СО СТАТУСОМ < Отказ = Нет> --ПВО-- --ПКО--В НАЧАЛЕ по объекту ЗАО "ТРЕСТ" Организации Организации 0 --ПКО--В НАЧАЛЕ по объекту Реализация товаров и услуг СВ000007133 от 03.12.2016 10:31:59 Реализация товаров и услуг Реализация товаров и услуг 0 --ПКО--В НАЧАЛЕ по объекту РегистрСведенийЗапись.ДанныеПервичныхДокументов Регистр сведений запись: Данные первичных документов Регистр сведений запись: Данные первичных документов 0 СООБЩИТЬ(СТРОКА(Найти(СТРОКА(Источник), "Регистр сведений запись"))) - это возвращает всегда 0? Что туда не передать...? |
|||
33
falselight
01.02.17
✎
15:57
|
(32+) И причем, ни разу , не заходит в это условие,-
Если Найти(СТРОКА(Источник), "Регистр сведений запись") = 0 Тогда Что это может значить? |
|||
34
falselight
01.02.17
✎
16:19
|
(29) Это тоже хрень выдает!!!!
Счет фактура - Нет. Реализация товаров услуг - Да! |
|||
35
falselight
01.02.17
✎
16:44
|
(34) А ну сюда нужно ссылку передавать всегда!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |