|
|
|
Подскажите по ошибке в КД | ☑ | ||
|---|---|---|---|---|
|
0
zippygrill
20.02.12
✎
10:25
|
Не могу получить значение из входящие данные для свойство Родитель у контрагентов. И непонятно причина ошибки.
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1637)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки ПВД = Контрагенты Обработчик = ПередОбработкойВыгрузкиДанных ОписаниеОшибки = Ошибка получения свойства объекта из входящих данных ПКО = Контрагенты (:) ПКС = 10 ( --> Родитель) Объект = Дилеры (Контрагент) СвойствоПриемника = Родитель (СправочникСсылка.Контрагенты) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8201) КодСообщения = 68 ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1618) КодСообщения = 31 В ПВД Контрагенты написал: Если Параметры.мДокументов.Количество() <> 0 Тогда Для Каждого Элемент Из Параметры.мДокументов Цикл ИсходящиеДанные = Новый Структура; ИсходящиеДанные.Вставить("Родитель", Элемент.Контрагент.Родитель); ИсходящиеДанные.Вставить(........., Элемент.Контрагент...........); ВыгрузитьПоПравилу(Элемент.Контрагент,,ИсходящиеДанные,,"Контрагенты"); КонецЦикла; Иначе Отказ = Истина; КонецЕсли; В свойство Родитель для ПКО Контрагенты поставил ПолучитьИзВхДанные и Пойск. А в самой ПКО Контрагенты в ПоляПойска: Если НомерВариантаПоиска = 1 Тогда Если ЗначениеЗаполнено(СвойстваПоиска.Получить("ИНН")) Тогда СтрокаИменСвойствПоиска = "ИНН, КПП"; Иначе СтрокаИменСвойствПоиска = "Родитель, ЭтоГруппа, ИНН, Наименование"; КонецЕсли; КонецЕсли; |
|||
|
1
zippygrill
20.02.12
✎
10:33
|
ап
|
|||
|
2
zippygrill
20.02.12
✎
10:36
|
отладчик без проблемы заходит в ИсходящиеДанные.Вставить("Родитель", Элемент.Контрагент.Родитель); и выгружает по правиле.
|
|||
|
3
zippygrill
20.02.12
✎
10:45
|
еще
|
|||
|
4
zippygrill
20.02.12
✎
10:50
|
еще раз
|
|||
|
5
zippygrill
20.02.12
✎
10:59
|
?
|
|||
|
6
Skylark
20.02.12
✎
11:02
|
написал сумбура какого-то
Ошибка при Получение элемента по индексу для значения не определено вот такая: > Получение элемента по индексу для значения не определено Открывай обработчик Получение элемента по индексу для значения не определено и ищи там кусок кода, где идет обращение по индексу к чему-нибудь |
|||
|
7
Skylark
20.02.12
✎
11:03
|
Ошибка при ПередОбработкойПравилаВыгрузки вот такая:
> Получение элемента по индексу для значения не определено Открывай обработчик ПередОбработкойПравилаВыгрузки и ищи там кусок кода, где идет обращение по индексу к чему-нибудь |
|||
|
8
zippygrill
20.02.12
✎
11:28
|
ты тоже написал сумбура какого-то
|
|||
|
9
GenV
20.02.12
✎
11:36
|
(0) У тебя родитель родителя тоже должен переноситься? Если да, то как передаешь его значение. Пока только у тебя передается первый родитель ...
|
|||
|
10
zippygrill
20.02.12
✎
11:51
|
(9) а вот с этим не знаю. можно подробнее?
|
|||
|
11
zippygrill
20.02.12
✎
11:51
|
родитель тоже хотел-бы перенести.
|
|||
|
12
GenV
20.02.12
✎
11:57
|
(10) У тебя в ПКО контрагенты у родителя стоит галка "Из вх. данных" и назначено правило ПКС "Контрагенты". Как думаешь что произойдет когда будет выполняться выгрузка родителя контрагента, а в правиле контрагенты для родителя не будет переданного как в (0) родителя в входящих данных?
(11) Либо дописывай заполнение ИсходящиеДанные в родителе или создай и назначь для родителя другое правило, где родитель конвертируется обычным образом. |
|||
|
13
zippygrill
20.02.12
✎
12:00
|
(12) я думаю прописать ПКС Родитель в ПередВыгрузкой мою Структуру(только ЭтоГруппа,Наименование,Родитель)?
|
|||
|
14
Naumov
20.02.12
✎
12:02
|
А если выгрузка контрагента инициализируется не из выгрузки документа, а договора, например, что у тебя попытается получить обработчик?
|
|||
|
15
zippygrill
20.02.12
✎
12:04
|
(14) кроме документа как источник данных не может быть в моем случае.
|
|||
|
16
GenV
20.02.12
✎
12:09
|
(13) Не запрещаю ) Главное в "ИсходящиеДанные" пиши.
ЗЫ Самый универсальный способ - снять галку из вх. данных, а в нужных свойствах в ПередВыгрузкой проверять равно ли ВходящиеДанные структуре и есть ли у этой структуры нужное свойство и если есть заменять им значение. |
|||
|
17
zippygrill
20.02.12
✎
12:36
|
(16)
Если ВходящиеДанные <> Неопределено Тогда Если Не ВходящиеДанные.Свойство(ПКС.Приемник) Тогда Отказ = Истина; Иначе Значение = ВходящиеДанные[ПКС.Приемник]; КонецЕсли; Иначе Отказ = Истина; КонецЕсли; как в штатных правилах :)? |
|||
|
18
GenV
20.02.12
✎
13:18
|
(17) Нет. Тут у тебя свойство не будет выгружаться совсем, если оно не задано в входящих данных. Примерно так:
Если ВходящиеДанные <> Неопределено Тогда Если ВходящиеДанные.Свойство(ПКС.Приемник) Тогда Значение = ВходящиеДанные[ПКС.Приемник]; КонецЕсли; КонецЕсли; |
|||
|
19
zippygrill
20.02.12
✎
13:35
|
А еще у меня что-то стало возникать ошибку при повторной загрузки данных(в правиле сказано чтобы замещать существуюший объект) именно документ. Передача мутабельного значения на сервере.
|
|||
|
20
zippygrill
20.02.12
✎
13:53
|
апну.
|
|||
|
21
zippygrill
20.02.12
✎
14:01
|
записать-то не дает второй раз :):)
|
|||
|
22
GenV
20.02.12
✎
14:07
|
(21) У тебя в Параметры.мДокументов что? Не документ-объект?
|
|||
|
23
GenV
20.02.12
✎
14:12
|
22+ сорри не туда, это при выгрузке.
|
|||
|
24
zippygrill
20.02.12
✎
14:20
|
(23) в Параметры.мДокументов тип элемента = ДокументСсылка.
|
|||
|
25
GenV
20.02.12
✎
14:27
|
(24) Грузишь в обычное или управляемое приложение? Раньше, к примеру, такая ошибка была в обычном приложении, если в одном из обработчиков документа неправильно передавались данные содержащие ДокументОбъект.
|
|||
|
26
zippygrill
20.02.12
✎
14:32
|
эээээ гружу в режиме обычное приложение. А вот в событие ПослеЗагрузки присвайваю пару значении.
|
|||
|
27
GenV
20.02.12
✎
14:37
|
(26) Если без этого обработчика грузится нормально, то нужно смотреть его код.
|
|||
|
28
zippygrill
20.02.12
✎
14:46
|
(27) без него тоже самое.
|
|||
|
29
GenV
20.02.12
✎
14:49
|
(28) Значит проверяй на каком этапе выпадает - в КД или в документе. Может в одном из обработчиков документа проблема. Вроде тебе номер строки ошибки должен показаться.
|
|||
|
30
zippygrill
20.02.12
✎
15:02
|
(29) да это уже в документе при записи:
Ошибка записи объекта ТипОбъекта = Поступление товаров Объект = Поступление товаров 00000000044 от 07.02.2012 15:19:37 ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПередЗаписью': {ОбщийМодуль.ПрефиксацияОбъектовСобытия.Модуль(215)}: Ошибка при вызове метода контекста (ДатаИлиОрганизацияОбъектаИзменена): Попытка передачи с клиента на сервер мутабельного значения 2-го параметра метода ДатаИлиОрганизацияОбъектаИзменена (). ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(4782) КодСообщения = 26 На строке 4782 вызывается Объект.Записать() |
|||
|
31
zippygrill
20.02.12
✎
15:04
|
и похоже у меня тут тип объект а не ссылка.
|
|||
|
32
Naumov
20.02.12
✎
15:11
|
(15) Ну я не знаю что у тебя за конфигурации, но Если есть договор, то его поле Владелец тоже как-то должно выгружаться, а это будет контрагент.
|
|||
|
33
zippygrill
20.02.12
✎
15:16
|
(32) в Рознице 2 нету договоров с контрагентами. только эквайринговые
|
|||
|
34
Franchiser
20.02.12
✎
15:21
|
(0) СтрокаИменСвойствПоиска = "Родитель, ЭтоГруппа, ИНН, Наименование";
С каких пор у родителя есть ИНН? |
|||
|
35
GenV
20.02.12
✎
15:24
|
(33) Если в рознице такой код:
ПрефиксацияОбъектов.ДатаИлиОрганизацияОбъектаИзменена(Объект.Ссылка, Объект.Метаданные(), Объект.Дата, Объект.Организация) то советую добавить в начало (как в БСП и УТ 11): Если Объект.ОбменДанными.Загрузка Тогда Возврат; ИначеЕсли Объект.ЭтоНовый() Тогда Возврат; КонецЕсли; |
|||
|
36
Franchiser
20.02.12
✎
15:25
|
И вообще какого искать по ИНН, когда он не заполнен
|
|||
|
37
zippygrill
20.02.12
✎
15:26
|
(34) я полностю согласен с тобой. Но это так написано в штатных правил 1С :)
(35) да ести я и пытаюсь отладчк попасть в ней :) |
|||
|
38
GenV
20.02.12
✎
15:29
|
35+ я имел ввиду обработчик ОбщийМодуль.ПрефиксацияОбъектовСобытия.ПроверитьНомерОбъектаПоДатеИОрганизации(Объект)
(37) В твоем случае, это почти гарантированная ошибка во втором параметре. В БСП и УТ 11 вызов изменен на ПрефиксацияОбъектов.ДатаИлиОрганизацияОбъектаИзменена(Объект.Ссылка, Объект.Дата, Объект.Организация, Объект.Метаданные().ПолноеИмя()) где передачи метаданных нет |
|||
|
39
zippygrill
20.02.12
✎
15:29
|
(38)я понял
фигеть а, в рознице ести проверка толька на Новый в УТ еще на ОбменДанными.Загрузка() с чего это связанно? |
|||
|
40
GenV
20.02.12
✎
15:34
|
(39) Вообще странно что этой проверки не было. Это считается нормой - при загрузке не вызывать обработчики оперирующие данными объекта. Считается, что необходимые все данные будут загружаться.
|
|||
|
41
Franchiser
20.02.12
✎
15:36
|
(40) а разве галка при загрузке ОбменДанными.Загрузка = Истина на это не влияет?
|
|||
|
42
zippygrill
20.02.12
✎
15:37
|
(40) эх спасибо огромное.
|
|||
|
43
GenV
20.02.12
✎
15:38
|
(41) Только если есть её проверка
|
|||
|
44
Franchiser
20.02.12
✎
15:46
|
(43) смотрю бухгалтерию корп там нет ОбщийМодуль.ПрефиксацияОбъектовСобытия
|
|||
|
45
GenV
20.02.12
✎
15:49
|
(44) А подумать? Чем отличается БП КОРП от БСП, УТ 11, УНФ, Розница 2?
|
|||
|
46
Franchiser
20.02.12
✎
15:51
|
(45) сорри прочитал БСП как БП
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |