Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Конвертация данных. ОбменДанными.Загрузка слетает в ложь

Конвертация данных. ОбменДанными.Загрузка слетает в ложь
Я
   mefisto666series
 
07.05.18 - 16:45
Проблема такова: при загрузке объекта в конфигурацию приемник в методах ПередЗаписью проверка
Если ОбменДанными.Загрузка Тогда        
    Возврат;
КонецЕсли;

Срабатывает, в методе ОбработкаПроведения тоже, а в ОбработкаПроверкиЗаполнения слетает.
а по сути - это как раз то место, где мне и надо пресечь все действия когда объект загружается в рамках обмена. Я тут почитал всякое, в ПКО прописал

Объект.ОбменДанными.Загрузка = Истина;

Результата нет. В чем дело? Я так понимаю, что это не баг, а фича, но как ее обойти?
 
 
   DrShad
 
1 - 07.05.18 - 17:41
обработка проверки заполнения в основном в момент проведения, а проведение в режиме Обмена данными невозможно
   mefisto666series
 
2 - 07.05.18 - 17:44
(1) ну так а почему проверка происходит тогда?
   Fragster
 
3 - 07.05.18 - 18:23
если прилетает проведенный документ, то никак
   DrShad
 
4 - 08.05.18 - 08:07
(2) ну так ты наверное пытаешься его сразу и провести
   Cyberhawk
 
5 - 08.05.18 - 08:09
В ПриЗагрузке или в ПослеЗагрузки пропиши РежимЗаписи = "Запись"
   mefisto666series
 
6 - 08.05.18 - 09:03
(4) признак проведения я передаю. но создание документом движений мне не нужно. движения я отдельно передаю
   mefisto666series
 
7 - 08.05.18 - 09:03
(3) см (6)
   Fragster
 
8 - 08.05.18 - 09:08
(6) см. 3, КД2(3) не РИБ так не умеет. проведенный документ будет проведен в приемнике.
   Fragster
 
9 - 08.05.18 - 09:11
тем более, если он не проходит проверку, то не совсем правильно переносить его в приемник в таком виде, да еще и проведенным, вдруг кто его провести попробует?
   mefisto666series
 
10 - 08.05.18 - 09:12
(8) То есть пресечь выполнение кода в методе "ОбработкаПроверкиЗаполнения" нельзя никак, в смысле, опираясь на обменДанными.Загрузка?
 
 Рекламное место пустует
   Ёпрст
 
11 - 08.05.18 - 09:55
(8) КД2 так умеет, т.е умеет переносить движения вместе с документом и НЕ проводить его в базе приёмнике. Или, не об этом речь ?
   DrShad
 
12 - 08.05.18 - 09:57
(11) +1
умеет КД2 переносить документ с флагом Проведен и при этом не проводить его
   Ёпрст
 
13 - 08.05.18 - 10:12
Единственное, если обмен будет встроенной обработкой ОбменДаннымиXML по планам обмена, то её придётся слегка поправить, чтоб она не очищала движения регистров перед загрузкой (есть там косяк в этом).
   mefisto666series
 
14 - 08.05.18 - 10:13
(12) ну вот это мне и надо. Но почему-то цепляется. Да и вообще, непонятно как-то. Вот я для проверки прописал:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Если ОбменДанными.Загрузка Тогда        
        
        Возврат;
        Отказ = Истина;
        
    КонецЕсли;
    
    ВызватьИсключение("ПередЗаписью + ОбменДанными.Загрузка = " + ОбменДанными.Загрузка + " Отказ = " + Отказ);
    
    Если Не Отказ Тогда
        //обработчик передзаписью

    КонецЕсли;
    
КонецПроцедуры

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    Если ОбменДанными.Загрузка Тогда        
        Возврат;
    КонецЕсли;
    
    ВызватьИсключение("ОбработкаПроведения + ОбменДанными.Загрузка = " + ОбменДанными.Загрузка + " Отказ = " + Отказ);
    
    //обработка проведения

    
КонецПроцедуры

а в результате обмена получаю следующее:
10 документов с предупреждением
"ПередЗаписью + ОбменДанными.Загрузка = Нет Отказ = Нет"
   DrShad
 
15 - 08.05.18 - 10:16
тут нужно правила щупать, смысл гадать что ты там понаписал?
   Ёпрст
 
16 - 08.05.18 - 10:21
(14) какой обработкой пользуешься, это для начала ?

ОбменДаннымиXML или УниверсальныйОбменДаннымиXML ?
   Ёпрст
 
17 - 08.05.18 - 10:23
если второй, то там на форме есть галка про режим загрузки и в правилах, писать ничего не надо
   Ёпрст
 
18 - 08.05.18 - 10:23
если у тебя кд-3 , то там хз, как сделано, не пользовался, не было надобности
   Fragster
 
19 - 08.05.18 - 10:24
(11)(12) я про обмен подсистемы обмен данными БСП, в базе не умеет не проводить документ. Способы обхода есть, но специалисты фирмы 1с не рекомендуют, потому что этот документ будет неконсистентным в базе-приемнике.
   mefisto666series
 
20 - 08.05.18 - 10:38
(15) да там, в общем-то, 1 к 1 почти передается документ. В обработчиках событий - ничего. В настройках только искать в приемнике по уид
(16) я через общую форму "Синхронизация данных" обмен делаю. Пошукал, не нашел явных обращений к обработкам, но у меня в принципе в конфе есть только универсальныйОбменДаннымиXML, соответственно вариант с (17) отпадает, т.к. ладно бы мне пользоваться этим обменом.
(18) пользую кд 2
   mefisto666series
 
21 - 08.05.18 - 10:39
(14) кстати, при бОльшем количестве документов, какие-то валятся по моему исключению, а какие-то проводятся, точнее, пытаются
   DrShad
 
22 - 08.05.18 - 11:00
[я через общую форму "Синхронизация данных" обмен делаю.] ну вот и получаешь проведение документов
   Ёпрст
 
23 - 08.05.18 - 11:22
(19) если это кд2, то умеет в любой бсп. Там только чутка модифицировать обработку обмена, в которой зачем-то всегда чистят прилетевшие движения.
   Fragster
 
24 - 08.05.18 - 11:48
(23) да не надо ничего модифицировать, а то автор потом получит кучу косяков из-за неконсистентных документов.
   Fragster
 
25 - 08.05.18 - 11:49
не каждый может смотреть в завтрашний день(с)
   Ёпрст
 
26 - 08.05.18 - 13:31
(24) слово то какое, ненашенское...
У меня к примеру, разный механизм проведения, а сливается всё в одну ЦБ, в которой доки и не проводятся совсем, а прилетают из каждой базы со своими движениями. Разные механизмы обмена бывают.
   Fragster
 
27 - 08.05.18 - 13:46
(26) ну у меня в "консолидированноотчетную" базу прилетают движения с регистратором, у которого признак того, что он проводится - ложь. потому что он не проводится и не должен. а нормальные документы - прилетают в таком виде, в котором их можно перепровести.
   Ёпрст
 
28 - 08.05.18 - 13:48
(27) у нас разные системы учета в принципе, и перепроводить документ нельзя :)
   Ёпрст
 
29 - 08.05.18 - 13:49
поэтому летит в центр как есть, со своей движухой и проводками
   Fragster
 
30 - 08.05.18 - 13:52
(28)(29) по этому я и сделал такой документ, который в принципе не проводится, и он нормально прилетает вместе с движениями.
   mefisto666series
 
31 - 08.05.18 - 16:41
подведу итог.
Проблема передачи документов с отметкой о проведении в том, что сначала документ просто записывается и помещается в список на отложенное проведение, поэтому обменДанными.Загрузка ложь. Выставление признака в истину принудительно перед проведением, как минимум не удалось, с формулировкой типа "операция не может быть выполнена в режиме загрузки данных.". Однако, в методе ВыполнитьОтложенноеПроведениеДокументов обработки "КонвертацияОБъектовИнформационныхБаз", перед тем как проверить заполнение и провести документ производится следующее:

Объект.ДополнительныеСвойства.Вставить("ОтложенноеПроведение");

На что можно опираться уже в модуле объекта в методе "ПередЗаписью".


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