| 
    
            
         
         | 
    
  | 
Конвертация данных. Выгрузить по правилу | ☑ | ||
|---|---|---|---|---|
| 
    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 
 | 
         
        либо после выгрузитьпоправилу()  отказ=истина;     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |