|
Конвертация данных. Выгрузить по правилу | ☑ | ||
---|---|---|---|---|
0
Валера Программист
26.01.16
✎
13:21
|
Добрый день, коллеги! Воюю с Конвертацией. Правила обмена для идентичных Комплексных автоматизаций.
Необходимо, чтобы из одной в другую автоматом грузились определенные типы документов только за сегодняшний день. Меняю правила выгрузки (пробую на заказах Поставщику и Покупателю). Вариант 1. Объект выборки - ДокументСсылка.ЗаказПоставщику Способ выборки - Произвольный алгоритм Правило конвертации - ЗаказПоставщику В обработчике "Перед обработкой": Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущаяДата", День(ТекущаяДата())); Запрос.Текст = "ВЫБРАТЬ | ЗаказПоставщику.Ссылка |ИЗ | Документ.ЗаказПоставщику КАК ЗаказПоставщику |ГДЕ | ДЕНЬ(ЗаказПоставщику.Дата) = &ТекущаяДата"; РезультатЗапроса = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); Для Каждого Строка Из РезультатЗапроса.Строки Цикл ВыгрузитьПоПравилу(Строка.Ссылка, , , , "ЗаказПоставщику"); КонецЦикла; Итог: Отбора не происходит, выгружаются все документы, а не только за сегодня. Вариант 2: Объект выборки - (оставила пустым) Способ выборки - Произвольный алгоритм Правило конвертации - ЗаказПоставщику В обработчике "Перед обработкой": Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущаяДата", День(ТекущаяДата())); Запрос.Текст = "ВЫБРАТЬ | ЗаказПоставщику.Ссылка |ИЗ | Документ.ЗаказПоставщику КАК ЗаказПоставщику |ГДЕ | ДЕНЬ(ЗаказПоставщику.Дата) = &ТекущаяДата"; РезультатЗапроса = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); Для Каждого Строка Из РезультатЗапроса.Строки Цикл ВыгрузитьПоПравилу(Строка.Ссылка, , , , "ЗаказПоставщику"); КонецЦикла; Итог: все падает с ошибкой Ошибка при выгрузке данных для узла плана обмена ОписаниеОшибки = Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер '1') ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(12187) КодСообщения = 72 УзелПланаОбмена = Комплексная автоматизация 1.1 Ошибка при загрузке объектов. Было загружено: 0 Произошла ошибка при выгрузке объектов. Было выгружено: 0 |
|||
1
anatoly
26.01.16
✎
13:23
|
выгрузка как делается?
если типовой обработкой обмена по ХМЛ в конфе - почему бы там период не задавать и не портить правила? |
|||
2
Godofsin
26.01.16
✎
13:26
|
(0) Скажи мне, программист Валера, что возвращает функция День()?
|
|||
3
GreatOne
26.01.16
✎
13:33
|
Во всех обработчиках доступны глоб. переменные датанач и датакон(ну или датаначала и датаокончания, не помню уже), берутся из обработки выгрузки данных(стандартная).
Второе:
Третье - используй переменную выборкаданных. Четвертое - проверяй в глоб. обработчике ПередКовертациейОбъекта выгружаемые документы. Вместе с твоим документов могут тянутся документы из табличных частей, оснований и прочее, а дату могут иметь хоть 3 года назад. |
|||
4
GreatOne
26.01.16
✎
13:35
|
У меня в ПередКонвератциейОбъекта такое стоит:
В моем случае беспрепятственно выгружаются только документы текущего квартала, что раньше - только ссылка, чтобы ничего не менялось в закрытых периодах. |
|||
5
GreatOne
26.01.16
✎
13:37
|
И вот кстати ошибку нашел.
ТолькоПолучитьУзелСсылки нифига не работает, хоть и везде написана в справке. Отладчик показал, что вместо этой переменной стоит использовать "ВыгрузитьТолькоСсылку" |
|||
6
Валера Программист
26.01.16
✎
13:39
|
(3) Спасибо за резонные комментарии. Сейчас попробую.
По поводу датанач и датакон. Не могли бы поподробней. (2) Это дааа)) Надо переделать. Спасибо |
|||
7
Godofsin
26.01.16
✎
13:42
|
(3) Чем обосновано?
Третье - используй переменную выборкаданных. |
|||
8
Godofsin
26.01.16
✎
13:43
|
(6) Если для обмена юзаешь УниверсальныйОбмен или выгрузкаЗагрузкаХМЛ, то для выборки за период не нужно использовать произвольный алгоритм. Юзаешь стандартную выборку, а период указываешь в обработке.
|
|||
9
Ma3eIIa
26.01.16
✎
13:50
|
||||
10
Ma3eIIa
26.01.16
✎
13:50
|
(6) советую почитать http://v8.1c.ru/metod/books/book.jsp?id=436
|
|||
11
GreatOne
26.01.16
✎
14:19
|
(7) потому что он все остальное тоже будет грузить. Мы сделаем выгрузитьпоправилу() и далее будет стандартная выборка
|
|||
12
GreatOne
26.01.16
✎
14:19
|
либо после выгрузитьпоправилу() отказ=истина;
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |