|
Универсальный обмен XML, отказ от передачи | ☑ | ||
---|---|---|---|---|
0
rudnitskij
15.09.18
✎
23:04
|
Доброе всем.
Вопрос в следующем. При универсальном обмене УТ-БУХ по правилам обмена передаются документы, если они в УТ изменились - они при повторной передаче меняются и в бухгалтерии. Подскажите пожалуйста, можно ли как-то настроить правила таким образом, чтобы при определенных значениях реквизита уже переданного документа в базе-приемнике повторной его передачи не происходило? |
|||
1
NuclearWinter
16.09.18
✎
00:45
|
Можно
|
|||
2
rudnitskij
16.09.18
✎
00:50
|
(1) спасибо
|
|||
3
rudnitskij
16.09.18
✎
00:51
|
а можно чуть более развернуто?)
|
|||
4
MaxS
16.09.18
✎
05:41
|
В КД2 в ПКО на вкладке Перед выгрузкой написать
Отказ = Источник.МойРеквизит=КакоеТоЗначение; Если обмен через планы обмена, то в правилах регистрации можно поправить. |
|||
5
rudnitskij
16.09.18
✎
15:04
|
(4) не совсем то, у меня отказ должен зависеть от значения реквизита не в источнике, а в приемнике
|
|||
6
rudnitskij
16.09.18
✎
15:12
|
в ПКО ПередВыгрузкой пришлось вот такой велосипед изобретать:
// если в базе-приемнике уже есть документ и в нем указаны ведомости по выплате ЗП // не выгружаем его Если Источник.ВидОперации = Перечисления.ВидыОперацийППИсходящее.ПрочееСписаниеБезналичныхДенежныхСредств Тогда Коннектор = Новый COMОбъект("V83.COMConnector"); База = Коннектор.Connect("Srvr=""localhost""; Ref=""БазаПриемник""; Usr=""логин""; Pwd=""пароль"""); ДокПриемник = База.Документы.ПлатежноеПоручениеИсходящее.НайтиПоНомеру(Источник.Номер,Источник.Дата); // если документ по выплате ЗП уже есть в базе Если ДокПриемник.СтатьяДвиженияДенежныхСредств.Код = "(тут вписать нужный код справочника)" // сравнение по ссылке почему-то не срабатывает И ДокПриемник.ВыплатаЗаработнойПлаты.Количество() Тогда Отказ = Истина; КонецЕсли; КонецЕсли; |
|||
7
Cyberhawk
16.09.18
✎
17:19
|
(6) О боже
Просто в ПослеЗагрузки анализируешь объект в БД приемнике и взводишь Отказ = Истина |
|||
8
rudnitskij
17.09.18
✎
12:58
|
(7) "Просто в ПослеЗагрузки анализируешь объект в БД приемнике и взводишь Отказ = Истина"
после загрузки значения реквизитов уже изменены на те, что были в базе-источнике, толку их проверять? |
|||
9
Mankubus
17.09.18
✎
13:07
|
(8) ложное утверждение
|
|||
10
Mankubus
17.09.18
✎
13:08
|
(9) + изменения еще не записаны. значит можно проверить старые значения по ссылке
|
|||
11
rudnitskij
17.09.18
✎
17:48
|
(9) "ложное утверждение" - не ложное, а проверенное на практике. Когда уже перенес данные - хрен ты что проверишь
ЗЫ. Сколько экспертов-теоретиков вылезло когда решился вопрос... |
|||
12
rudnitskij
17.09.18
✎
17:48
|
(10) "+ изменения еще не записаны. значит можно проверить старые значения по ссылке" - вы бы хоть проверили прежде чем вводить людей в заблуждение
|
|||
13
Cool_Profi
17.09.18
✎
17:49
|
(11) овощЪ там. Данные перехали на ту сторону, но ещё не записаны.
Это как в ПередЗаписью отказ поставить. |
|||
14
Cyberhawk
17.09.18
✎
18:25
|
Что-то автор со своими опровержениями бакланит. Если у него в коде обработчиков правил конвертации принудательно объект записывается, то кто ж в этом виноват?
|
|||
15
zmaximka
17.09.18
✎
18:55
|
(6) велосипед из костылей. Жесть просто
|
|||
16
zmaximka
17.09.18
✎
18:57
|
в ПКО в событии при загрузке
Если ОбъектНайден И Объект.Проведен Тогда НеЗамещатьОбъект = Истина; КонецЕсли; Вместо Объект.Проведен напиши свое условие |
|||
17
rudnitskij
18.09.18
✎
13:04
|
(14) что-то комментаторы не хотят проверить свои умствования на практике
|
|||
18
rudnitskij
18.09.18
✎
13:06
|
(16) на практике вы проверяли это всё? "Проведен" это не реквизит. Контрагент, например, на момент выполнения ПриЗагрузке уже в документе заменен на выгружаемый из источника. Пусть он и не записан - толку с того, мне старый негде брать
|
|||
19
NuclearWinter
18.09.18
✎
13:14
|
rudnitskij
В 16 все корректно написано, Проведен такой же стандартный реквизит как и пометка удаления. |
|||
20
Franchiser
гуру
18.09.18
✎
13:23
|
Обработчики "Правила конвертации объектов"
После загрузки Условия возникновения события Только для платформы V8. Событие выполняется после прочтения и установки атрибутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта. Параметры: Отказ - Булево - Если Истина, то объект загружен не будет. Объект - Произвольный - загруженный объект. Ссылка – Произвольный – ссылка на найденный объект в информационной базе. ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры переденные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено. ОбъектМодифицирован – Булево. Флажок указывает на то, что в обработчике объект был изменен. По умолчанию содержит значение Истина. То есть обработка загрузки считает, что если выполнялся какой-либо обработчик, то объект мог быть модифицирован, и его необходимо записать в информационную базу. Параметр относится только к текущему обработчику. Если объект был изменен ранее, то при любом значении переменной ОбъектМодифицирован он будет записан. Только для платформы 1С:Предприятие 8. ИмяТипаОбъекта – Строка. Имя типа загруженного объекта, например, «СправочникСсылка.Номенклатура». НаборЗаписей – РегистрСведенийНаборЗаписей. Загруженный набор записей. Только при загрузке в обработке УниверсальныйОбменДаннымиXML. |
|||
21
Franchiser
гуру
18.09.18
✎
13:25
|
(18) Объект - это новый, Ссылка - это старый
|
|||
22
rudnitskij
18.09.18
✎
14:19
|
(21) ну если так то наверное да, испытаю на досуге
Спасибо за разъяснение |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |