![]() |
|
КД2 произвольный алгоритм объектов из плана обмена | ☑ | ||
---|---|---|---|---|
0
Csar
28.10.14
✎
21:00
|
Всем привет!
Я написал правила для обмена, в котором в ПВД для Расходной накладной указываю произвольный алгоритм выборки. На всякий случай привожу код ниже: ВходящиеДанные = Новый ТаблицаЗначений;
Я сначала писал не для плана обмена, а просто за период брал документы и все получалось (там массив складов определял для отбора в запросе выборки). Но теперь понял, что надо обрабатывать именно план обмена, т.е. все, что попало в план обмена, а не за период. И то, не совсем все, а с определенным условием, но это уже не так важно. Так вот с планом обмена не хочет работать. Подскажите, пожалуйста, какой принцип написания произвольного алгоритма для случая, когда данные надо брать из плана обмена и их обрабатывать, что бы послать в ПКО (в ПКО у меня нет Источника - туда я посылаю данные как ВходящиеДанные). |
|||
1
Csar
28.10.14
✎
22:22
|
Стоит добавить, что использую конф УНФ 1.4.9.41 и платформу 8.3.5.1231, вылезает ошибка:
{Документ.РасходнаяНакладная.МодульОбъекта(1376,2)}: Переменная не определена (УправлениеНебольшойФирмойЭлектронныеДокументыСервер)
Вот куда ссылается: ////////////////////////////////////////////////////////////////////////////////
В упор не понимаю как там оказывается универсальная обработка выгрузки. Отладчик не останавливается там, что бы посмотреть. |
|||
2
Csar
28.10.14
✎
22:52
|
Загнал произвольный алгоритм ПВД во внешнюю обработку и выяснил, что вылетает на методе Получить() из ВыборкиДанных:
Пока Выборка.Следующий() Цикл
У меня в плане обмена номенклатура и расходные накладные. Обработка корректно проходоит номенклатурные позиции, а как доходит до первой расходной накладной, то выдается ошибка. Причем отладчик по-прежнему не может зафиксировать ошибку. |
|||
3
GreyK
28.10.14
✎
22:57
|
(2) Ты хоть отбор на тип в выборке по изменениям установи.
|
|||
4
Csar
28.10.14
✎
23:09
|
(3) Согласен, тип нужно установить, но это для правил КД. А тут это ничем не поможет.
|
|||
5
Csar
28.10.14
✎
23:14
|
(3) В ПВД объекта Расходная накладная пробегается ВыборкаПланаОбмена и на методе Получить() вываливается ошибка, адресованная в модуль Объекта РасходнаяНакладная. Откуда она там? И почему я не могу отладчиком ее зафиксировать - не пойму. Подскажите, пожалуйста.
|
|||
6
GreyK
28.10.14
✎
23:17
|
(4) У тебя у всех объектов зарегистрированных в изменениях есть реквизит "СтруктурнаяЕдиница", судя по "Если Док.СтруктурнаяЕдиница <>"?
|
|||
7
Csar
28.10.14
✎
23:19
|
(6) У меня до этого не доходит - только первая строка, еще до проверки на нужный тип. Там еще не важно есть ли этот реквизит
|
|||
8
Csar
28.10.14
✎
23:19
|
(6) Вылетает на:
Док = Выборка.Получить(); |
|||
9
Csar
28.10.14
✎
23:42
|
Любопытно, код, что указал в (0) вываливается с ошибкой, а такой же ниже отрабатывает корректно:
Узел = ПланыОбмена.ОбменСБух.НайтиПоНаименованию("центр");
|
|||
10
Csar
28.10.14
✎
23:58
|
UPD. Причину похоже нашел. Дело в том, что в моем случае Док = Выборка.Получить(); не хочет корректно выполняться в толстом клиенте. Хотя в СП написано, что толстый клиент поддерживается.
|
|||
11
GreyK
29.10.14
✎
00:22
|
(10) Добавь в (9)
Если Док.СтруктурнаяЕдиница <> Справочники.СтруктурныеЕдиницы.НайтиПоКоду("000000005") //Склад Б ПЦ1 И Док.СтруктурнаяЕдиница <> Справочники.СтруктурныеЕдиницы.НайтиПоКоду("000000003") //Склад Б ПЦ2 И Док.СтруктурнаяЕдиница <> Справочники.СтруктурныеЕдиницы.НайтиПоКоду("000000008") Тогда //Склад Б ПЦ3 ПланыОбмена.УдалитьРегистрациюИзменений(Узел, Док); Продолжить; КонецЕсли; |
|||
12
Csar
29.10.14
✎
00:36
|
(11) У меня до этого не доходит код. Метод не может выполниться, и на следующую строчку не переходит.
|
|||
13
GreyK
29.10.14
✎
00:53
|
(12) Тогда я не понял (9)
|
|||
14
hhhh
29.10.14
✎
00:53
|
(12) ну вот это подозрительно
Узел = ПланыОбмена.ОбменСБух.НайтиПоНаименованию("центр"); наверно надо Узел = ПланыОбмена.ОбменСБух.НайтиПоНаименованию("периферия"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |