|
КД УТ 10.3 -> БП 2.0 Реализация товаров и услуг, ошибка | ☑ | ||
---|---|---|---|---|
0
sora_tm
23.02.12
✎
19:13
|
Пытаюсь править правило в КД, необходимо чтобы при выгрузке из УТ, если стоит в документе контрагент, и у контрагента есть головной контрагент, чтобы в БП в реализацию попадал Головной контрагент. Проблема возникла с договорами. Есть код в ПКО РЕализация Т и у, в ПослеВыгрузки
Объект.Контрагент = Объект.Контрагент.ГоловнойКонтрагент; Объект.ДоговорКонтрагента = ПолучитьДоговорКонтрагента(Объект.Контрагент, Объект.Дата); Функция ПолучитьДоговорКонтрагента(Контрагент, Дата) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДоговорыКонтрагентов.Ссылка |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Владелец = &Владелец | И ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора | И ДоговорыКонтрагентов.Дата = &Дата | И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)"; Запрос.УстановитьПараметр("Владелец", Контрагент); Запрос.УстановитьПараметр("ВидДоговора", Перечисления.ВидыДоговоровКонтрагентов.СПокупателем); Запрос.УстановитьПараметр("Дата", НачалоМесяца(Дата)); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда ДогС = Выборка.Ссылка; Иначе Дог = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); Дог.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить(); Дог.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом; Дог.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем; Дог.Владелец = Контрагент; Дог.Дата = НачалоМесяца(ДатаТиража); Дог.УстановитьНовыйКод(); Дог.Наименование = "Газеты за "+Формат(Дата, "ДФ='MMMM yyyy'"); Дог.Организация = Организация; Дог.ТипЦен = Контрагент.ОсновнойДоговорКонтрагента.ТипЦен; Попытка Дог.Записать(); ДогС = Дог.Ссылка; Исключение Сообщить(ОписаниеОшибки()); ДогС = Справочники.ДоговорыКонтрагентов.ПустаяСсылка(); КонецПопытки; Конецесли; Возврат ДогС; КонецФункции Ошибка при обмене в БП: Начало загрузки: 23.02.2012 18:58:23 Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = РеализацияТоваровУслуг ТипОбъекта = Реализация товаров и услуг Объект = Реализация товаров и услуг УТ000000465 от 04.01.2012 0:00:01 Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(6,1)}: Ожидается последовательность операторов ПозицияМодуля = Обработка.ОбменДаннымиXML(7531) КодСообщения = 21 Ошибка при загрузке данных: {Обработка.ОбменДаннымиXML(1596)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = РеализацияТоваровУслуг ТипОбъекта = Реализация товаров и услуг Объект = Реализация товаров и услуг УТ000000465 от 04.01.2012 0:00:01 Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(6,1)}: Ожидается последовательность операторов ПозицияМодуля = Обработка.ОбменДаннымиXML(7531) КодСообщения = 21 Окончание загрузки: 23.02.2012 18:58:27 Где накосячил? В обработке код работает, хочу его сунуть в обмен... |
|||
1
sora_tm
23.02.12
✎
19:16
|
Дог.Дата = НачалоМесяца(ДатаТиража);
Я исправил, но тоже самое. |
|||
2
Агент Инфостарта
23.02.12
✎
19:18
|
(0) При выгрузке или загрузке договоров надо менять владельца.
|
|||
3
eduspec82
23.02.12
✎
19:18
|
отладку включи при выгрузке с подстановкой кодов процедур сразу увидишь где ошибка ...
|
|||
4
Агент Инфостарта
23.02.12
✎
19:20
|
Нет, владельца менять не следует, создавать новый договор для головного контрагента.
|
|||
5
eduspec82
23.02.12
✎
19:20
|
ошибка компиляции = синтаксическая ошибка кода при выполнить (...)
|
|||
6
sora_tm
23.02.12
✎
19:22
|
(4) Дык я и пытаюсь создавать...
|
|||
7
Агент Инфостарта
23.02.12
✎
19:24
|
(6) А в чём проблема?
|
|||
8
sora_tm
23.02.12
✎
19:26
|
(7) ТАк в (0) же все написал.
|
|||
9
sora_tm
23.02.12
✎
19:27
|
(7) Функция ПолучитьДоговорКонтрагента ищет, если не находит создает.
|
|||
10
sora_tm
23.02.12
✎
19:29
|
(3) К сожалению как это сделать не знаю, пользуюсь только когда код пишу, а как при обмене использовать не понял.
|
|||
11
Агент Инфостарта
23.02.12
✎
19:31
|
(10) Надо пользоваться алгоритмами КД2, если эта функция у вас не входит в конфигурацию.
|
|||
12
sora_tm
23.02.12
✎
19:36
|
(11) Т.е. описывать функцию в ПКО в ПослеВыгрузки нельзя?
|
|||
13
Агент Инфостарта
23.02.12
✎
19:38
|
(12) Можно, флажок "Использовать при загрузке" алгоритма. Похоже, вы неправильно понимаете принцип использования алгоритмов в КД 2.
|
|||
14
sora_tm
23.02.12
✎
19:42
|
(13) В справке написано, что используются алгоритмы, когда необходимо один алгоритм использовать в нескольких ПКО, у меня один ПКО :)
|
|||
15
Агент Инфостарта
23.02.12
✎
19:45
|
(14) Тогда пишите код непосредственно в обработчике, раз в справке "напейсано".
Так сказал капрал, а капралу надо верить. (с) |
|||
16
sora_tm
23.02.12
✎
19:47
|
(15) Так у меня все и написано. Может вы не разворачивали +Code в первом посте?
|
|||
17
Агент Инфостарта
23.02.12
✎
19:51
|
(16) Развернул. Сама Функция ПолучитьДоговорКонтрагента(Контрагент, Дата) где у вас находится? Если в алгоритмах, то так не правильно.
|
|||
18
sora_tm
23.02.12
✎
19:55
|
(17) Нет, все сейчас находится в ПКО РеализацияТоваровУслуг, в вкладке После Загрузки
|
|||
19
Агент Инфостарта
23.02.12
✎
19:57
|
(18) Функции и процедуры в обработчиках не объявляются, так как код обработчика выполняется через процедуру Выполнить(.............);
|
|||
20
sora_tm
23.02.12
✎
20:03
|
Спасибо огромное, в этом и проблема. Т.е. ее надо объявить в алгоритмах?
|
|||
21
Агент Инфостарта
23.02.12
✎
20:04
|
(20) Объявить в алгоритмах, но вызывать не как процедуру/функцию.
|
|||
22
sora_tm
23.02.12
✎
21:06
|
(21) Спасибо огромное, все получилось!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |