Проведение документа при обмене данными

1. Skripagan 23.07.18 15:58 Сейчас в теме
Коллеги здравствуйте.

Столкнулся со следующей проблемой:

При обмене данными. В базе приемнике документы после обмена встают в очередь проведения. При этом сужествующий документы распроводятся.

Требуется
т.к. очередь проведения в нашем случаем может быть огромной портянкой. Необходимо чтобы документы проводились при загрузке или чтоб существующие не снимались с проведения.

Что сделано:

1. реквизит проведен - синхронизируется.
2. В обработчике перед выгрузкой "РежимЗаписи = "Проведение"" установил. При ручной выгрузке - загрузке все срабатывает, при выполнени обмена через план обмена - нет.
3. В обработчике после выгрузки , прописал явное проведение документа. При ручной выгрузке - загрузке все срабатывает, при выполнени обмена через план обмена - нет.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Timur.V 78 23.07.18 16:18 Сейчас в теме
3. Skripagan 23.07.18 16:21 Сейчас в теме
(2) Как раз таки по этой статье и дорабатывал . Вы предлагаете, все - таки, пойти по пути создания параметра "ТаблицаДокументов". Зачем ? Как я понял должен работать и метод
"ПКО документа, перед загрузкой:
РежимЗаписи = "Проведение";"

Этот метод и работает, но только при ручной выгрузке загрузке. (
4. Timur.V 78 23.07.18 16:26 Сейчас в теме
(3) Обратите внимание на шаг 4.
Добавьте в код
Сообщить("ДОКУМЕНТ НЕ ПРОВЕДЕН : "+ ОписаниеОшибки(), СтатусСообщения.ОченьВажное);

чтобы было понятно, почему документ не проводится.
5. Skripagan 23.07.18 16:37 Сейчас в теме
(4) не пойму зачем это. Я же пробовал вариант явного проведения "3. В обработчике после выгрузки , прописал явное проведение документа. При ручной выгрузке - загрузке все срабатывает, при выполнени обмена через план обмена - нет. ".

Он срабатывает толкьо при ручной выгрузке загрузке.

По сути, приведенный выше вариант , то же самое, только через параметр .
6. ginshou 23.07.18 16:53 Сейчас в теме
Ручную выгрузку делаете через универсальный обмен, а автоматическую через стандартный обмен данными xml? Воообще , немного топорно , но можно создать параметр с галкой при загрузке , перед загрузкой объекта записать документ в этот массив , сделать отказ =истина при загрузке , а потом уже в модуле правил после загрузки сделать проведение этих документов из массива и очистку регистра отложенных движений.
7. ginshou 23.07.18 17:03 Сейчас в теме
Ну или проще в модуле после загрузки вызывать отложеное проведение документов , из общих модулей в зависимости от конфы , или из самой обработки обменачто - то типа
обОтложенноеПроведение = обработки.ОбменДаннымиXML.Создать();
обОтложенноеПроведение.ВыполнитьОтложенныеОперацииСДокументами();
8. Skripagan 24.07.18 11:03 Сейчас в теме +1 $m
Спасибо всем участникам дискуссии. Остановился на следующем варианте, если кому интересно :


- В событии ПослеЗагрузки Отказ = Истина, чтобы обработчик по отложенному проведению не срабатывал.
- Принудительная запись и проведение документа в этом же обработчике
AmoZ; Anchoret; +2 Ответить
9. shoy 19 25.07.18 11:05 Сейчас в теме
(8)
А вы при этом не отменяли условие?
"ПКО документа, перед загрузкой:
РежимЗаписи = "Проведение";"
11. Skripagan 08.08.18 15:21 Сейчас в теме
10. lefthander 25.07.18 15:16 Сейчас в теме
В ПКО в событие после загрузки прописываю код. Идея не моя, видел ее здесь, на Инфостарте.
   Если  объект.Проведен тогда
	  Если не ОбъектНайден тогда
		 Объект.Проведен=ложь//иначе типовые механизмы ругаются 
	  КонецЕсли;            
	  Объект.Записать(РежимЗаписиДокумента.Проведение);
   Иначе
	  Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
   КонецЕсли;
Показать
maksa2005; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот