Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Настройка порядок выгрузки объектов в КД 2.1

Настройка порядок выгрузки объектов в КД 2.1
Я
   Demetres
 
19.05.14 - 13:53
Добрый день! Подскажите как настроить порядок выгрузки объектов в КД 2.1?
Мне нужно чтобы документы всегда выгружались в определенном порядке Док1, Док2, ...., ДокПоследний, а не как сейчас ДокПоследний, ДокN, ...., Док2. В ПВД настроил приоритет выгрузки с учетом нужного порядка, но выгрузка идет совсем не по нему.
 
 
   Demetres
 
1 - 19.05.14 - 14:08
Причем порядок в котором идет выгрузка всегда постоянный и не зависит от группировки в ПВД и выставленных приоритетов. Буду пока код смотреть обработки выгрузки. Может там найду ответ :(
   SleepyHead
 
2 - 19.05.14 - 14:09
В таком случае, используй произвольный алгоритм, грузи документы в коллекцию ВыборкаДанных и сортируй ее так как тебе надо, а потом используй ВыгрузитьПоПравилу()
   SleepyHead
 
3 - 19.05.14 - 14:10
Не понял, что называешь приоритетом. Приоритет у ПВД - это очередность срабатывания самого ПВД, приоритет у ПКО - это очередность применения ПКО, но никак не конкретного экземпляра выгружаемого объекта.
   Demetres
 
4 - 19.05.14 - 14:13
(3) Пардон, а очередность срабатывания это разве не одно и тоже с порядком выгрузки?
Приоритет у ПВД это имелось ввиду "Порядок выполнения".
   Demetres
 
5 - 19.05.14 - 14:17
Я понял. Нужно грузить не объекты по какой-то очереди а типы объектов. Сначала док-ты "ПриемНаРаботуВОрганизацию", потом док-ты "КадровоеПеремещениеОрганизаций", далее док-ты "УвольнениеИзОрганизаций"
   Demetres
 
6 - 19.05.14 - 14:18
Извините что не понятно написал.
ТипДок-ов1, ТипДок-ов2, ...., ТипДок-овПоследний
   SleepyHead
 
7 - 19.05.14 - 14:19
(5) Ну таки да, в первом приближении.
   Demetres
 
8 - 19.05.14 - 14:21
(7) так как настроить этот порядок???
ТипДок-ов1, ТипДок-ов2, ...., ТипДок-овПоследний
   SleepyHead
 
9 - 19.05.14 - 14:25
(8) настроить приоритет. Подвигать ПВД вверх/вниз при настройке правил. Сам не пробовал, не уверен что поможет

Если не поможет, то при выгрузке пометить первый вид документа, остальные пометки снять, выгрузить

Следующая итерация - второй вид документа, и так далее. Это грустный и унылый метод, конечно. Но сработает.
   Demetres
 
10 - 19.05.14 - 14:33
(9) Про стрелки и "Порядок выполнения" почему-то не срабатывает, а выгружать сначала один тип документов потом другой не вариант. Но все равно спасибо за участие :)
   SleepyHead
 
11 - 19.05.14 - 14:37
(10) открываем ПВД, на закладке "Дополнительно" ставим нужный приоритет - и потом в обработке обмена правила не так сортируются, как расставлены приоритеты? Так?
   Demetres
 
12 - 19.05.14 - 14:41
(11) Да. Только в ПВД он называется "Порядок выполнения".
Сейчас по коду посмотрю что происходит.
   SleepyHead
 
13 - 19.05.14 - 14:49
(12) напоминаю про вариант, озвученный в (2), что-то мне подсказывает, что он может сработать. Имя правила же указывается явно, в зависимости от вида документа.

Собрать все нужные документы в одну коллекцию, отсортировать в нужном порядке, потом обойти и применить метод ВыгрузитьПоПравилу()
   SleepyHead
 
14 - 19.05.14 - 14:50
Плюс к этому в ПКО отключить флажок "Запоминать выгруженные объекты", чтобы все корректно сработало.
   Demetres
 
15 - 19.05.14 - 15:00
В коде обработки "MD82Exp.epf" для получения изменений для узла обмена используется "ПланыОбмена.ВыбратьИзменения" он то и не понимает порядка который мы задаем в правилах конвертации. Тут нужно будет дописать что-то что бы сооблюдался порядок из правил.
(13) Тут много кодить нужно будет, и не понятно где хранить эту коллекцию.
   Demetres
 
16 - 19.05.14 - 15:29
Вместо конструкции:
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения, МассивВыгружаемыхМетаданных);

используем:

        Для Каждого ЭлемМетаданных Из МассивВыгружаемыхМетаданных Цикл 
        
            //ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения, МассивВыгружаемыхМетаданных);

            ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения, ЭлемМетаданных);
            ...
        КонецЦикла;

и будет вам счастье и обход по порядку настроенном в правилах обмена для обработки "MD82Exp.epf" !-)
   Demetres
 
17 - 19.05.14 - 15:53
Это кстати работает и для обработки ОбменДаннымиXML. Надеюсь будет кому-нибудь полезно.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.