|
Конвертация данных. ОбменДанными.Загрузка слетает в ложь | ☑ | ||
---|---|---|---|---|
0
mefisto666series
07.05.18
✎
16:45
|
Проблема такова: при загрузке объекта в конфигурацию приемник в методах ПередЗаписью проверка
Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Срабатывает, в методе ОбработкаПроведения тоже, а в ОбработкаПроверкиЗаполнения слетает. а по сути - это как раз то место, где мне и надо пресечь все действия когда объект загружается в рамках обмена. Я тут почитал всякое, в ПКО прописал Объект.ОбменДанными.Загрузка = Истина; Результата нет. В чем дело? Я так понимаю, что это не баг, а фича, но как ее обойти? |
|||
1
DrShad
07.05.18
✎
17:41
|
обработка проверки заполнения в основном в момент проведения, а проведение в режиме Обмена данными невозможно
|
|||
2
mefisto666series
07.05.18
✎
17:44
|
(1) ну так а почему проверка происходит тогда?
|
|||
3
Fragster
гуру
07.05.18
✎
18:23
|
если прилетает проведенный документ, то никак
|
|||
4
DrShad
08.05.18
✎
08:07
|
(2) ну так ты наверное пытаешься его сразу и провести
|
|||
5
Cyberhawk
08.05.18
✎
08:09
|
В ПриЗагрузке или в ПослеЗагрузки пропиши РежимЗаписи = "Запись"
|
|||
6
mefisto666series
08.05.18
✎
09:03
|
(4) признак проведения я передаю. но создание документом движений мне не нужно. движения я отдельно передаю
|
|||
7
mefisto666series
08.05.18
✎
09:03
|
(3) см (6)
|
|||
8
Fragster
гуру
08.05.18
✎
09:08
|
(6) см. 3, КД2(3) не РИБ так не умеет. проведенный документ будет проведен в приемнике.
|
|||
9
Fragster
гуру
08.05.18
✎
09:11
|
тем более, если он не проходит проверку, то не совсем правильно переносить его в приемник в таком виде, да еще и проведенным, вдруг кто его провести попробует?
|
|||
10
mefisto666series
08.05.18
✎
09:12
|
(8) То есть пресечь выполнение кода в методе "ОбработкаПроверкиЗаполнения" нельзя никак, в смысле, опираясь на обменДанными.Загрузка?
|
|||
11
Ёпрст
08.05.18
✎
09:55
|
(8) КД2 так умеет, т.е умеет переносить движения вместе с документом и НЕ проводить его в базе приёмнике. Или, не об этом речь ?
|
|||
12
DrShad
08.05.18
✎
09:57
|
(11) +1
умеет КД2 переносить документ с флагом Проведен и при этом не проводить его |
|||
13
Ёпрст
08.05.18
✎
10:12
|
Единственное, если обмен будет встроенной обработкой ОбменДаннымиXML по планам обмена, то её придётся слегка поправить, чтоб она не очищала движения регистров перед загрузкой (есть там косяк в этом).
|
|||
14
mefisto666series
08.05.18
✎
10:13
|
(12) ну вот это мне и надо. Но почему-то цепляется. Да и вообще, непонятно как-то. Вот я для проверки прописал:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ОбменДанными.Загрузка Тогда Возврат; Отказ = Истина; КонецЕсли; ВызватьИсключение("ПередЗаписью + ОбменДанными.Загрузка = " + ОбменДанными.Загрузка + " Отказ = " + Отказ); Если Не Отказ Тогда //обработчик передзаписью КонецЕсли; КонецПроцедуры Процедура ОбработкаПроведения(Отказ, РежимПроведения) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; ВызватьИсключение("ОбработкаПроведения + ОбменДанными.Загрузка = " + ОбменДанными.Загрузка + " Отказ = " + Отказ); //обработка проведения КонецПроцедуры а в результате обмена получаю следующее: 10 документов с предупреждением "ПередЗаписью + ОбменДанными.Загрузка = Нет Отказ = Нет" |
|||
15
DrShad
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 , то там хз, как сделано, не пользовался, не было надобности
|
|||
19
Fragster
гуру
08.05.18
✎
10:24
|
(11)(12) я про обмен подсистемы обмен данными БСП, в базе не умеет не проводить документ. Способы обхода есть, но специалисты фирмы 1с не рекомендуют, потому что этот документ будет неконсистентным в базе-приемнике.
|
|||
20
mefisto666series
08.05.18
✎
10:38
|
(15) да там, в общем-то, 1 к 1 почти передается документ. В обработчиках событий - ничего. В настройках только искать в приемнике по уид
(16) я через общую форму "Синхронизация данных" обмен делаю. Пошукал, не нашел явных обращений к обработкам, но у меня в принципе в конфе есть только универсальныйОбменДаннымиXML, соответственно вариант с (17) отпадает, т.к. ладно бы мне пользоваться этим обменом. (18) пользую кд 2 |
|||
21
mefisto666series
08.05.18
✎
10:39
|
(14) кстати, при бОльшем количестве документов, какие-то валятся по моему исключению, а какие-то проводятся, точнее, пытаются
|
|||
22
DrShad
08.05.18
✎
11:00
|
[я через общую форму "Синхронизация данных" обмен делаю.] ну вот и получаешь проведение документов
|
|||
23
Ёпрст
08.05.18
✎
11:22
|
(19) если это кд2, то умеет в любой бсп. Там только чутка модифицировать обработку обмена, в которой зачем-то всегда чистят прилетевшие движения.
|
|||
24
Fragster
гуру
08.05.18
✎
11:48
|
(23) да не надо ничего модифицировать, а то автор потом получит кучу косяков из-за неконсистентных документов.
|
|||
25
Fragster
гуру
08.05.18
✎
11:49
|
не каждый может смотреть в завтрашний день(с)
|
|||
26
Ёпрст
08.05.18
✎
13:31
|
(24) слово то какое, ненашенское...
У меня к примеру, разный механизм проведения, а сливается всё в одну ЦБ, в которой доки и не проводятся совсем, а прилетают из каждой базы со своими движениями. Разные механизмы обмена бывают. |
|||
27
Fragster
гуру
08.05.18
✎
13:46
|
(26) ну у меня в "консолидированноотчетную" базу прилетают движения с регистратором, у которого признак того, что он проводится - ложь. потому что он не проводится и не должен. а нормальные документы - прилетают в таком виде, в котором их можно перепровести.
|
|||
28
Ёпрст
08.05.18
✎
13:48
|
(27) у нас разные системы учета в принципе, и перепроводить документ нельзя :)
|
|||
29
Ёпрст
08.05.18
✎
13:49
|
поэтому летит в центр как есть, со своей движухой и проводками
|
|||
30
Fragster
гуру
08.05.18
✎
13:52
|
(28)(29) по этому я и сделал такой документ, который в принципе не проводится, и он нормально прилетает вместе с движениями.
|
|||
31
mefisto666series
08.05.18
✎
16:41
|
подведу итог.
Проблема передачи документов с отметкой о проведении в том, что сначала документ просто записывается и помещается в список на отложенное проведение, поэтому обменДанными.Загрузка ложь. Выставление признака в истину принудительно перед проведением, как минимум не удалось, с формулировкой типа "операция не может быть выполнена в режиме загрузки данных.". Однако, в методе ВыполнитьОтложенноеПроведениеДокументов обработки "КонвертацияОБъектовИнформационныхБаз", перед тем как проверить заполнение и провести документ производится следующее: Объект.ДополнительныеСвойства.Вставить("ОтложенноеПроведение"); На что можно опираться уже в модуле объекта в методе "ПередЗаписью". |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |