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


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

Универсальный обмен XML, отказ от передачи

Универсальный обмен XML, отказ от передачи
Я
   rudnitskij
 
15.09.18 - 23:04
Доброе всем.
Вопрос в следующем. При универсальном обмене УТ-БУХ по правилам обмена передаются документы, если они в УТ изменились - они при повторной передаче меняются и в бухгалтерии.
Подскажите пожалуйста, можно ли как-то настроить правила таким образом, чтобы при определенных значениях реквизита уже переданного документа в базе-приемнике повторной его передачи не происходило?
 
 
   NuclearWinter
 
1 - 16.09.18 - 00:45
Можно
   rudnitskij
 
2 - 16.09.18 - 00:50
(1) спасибо
   rudnitskij
 
3 - 16.09.18 - 00:51
а можно чуть более развернуто?)
   MaxS
 
4 - 16.09.18 - 05:41
В КД2 в ПКО на вкладке Перед выгрузкой написать 
Отказ = Источник.МойРеквизит=КакоеТоЗначение;

Если обмен через планы обмена, то в правилах регистрации можно поправить.
   rudnitskij
 
5 - 16.09.18 - 15:04
(4) не совсем то, у меня отказ должен зависеть от значения реквизита не в источнике, а в приемнике
   rudnitskij
 
6 - 16.09.18 - 15:12
в ПКО ПередВыгрузкой пришлось вот такой велосипед изобретать:
// если в базе-приемнике уже есть документ и в нем указаны ведомости по выплате ЗП

// не выгружаем его
Если    
    Источник.ВидОперации = Перечисления.ВидыОперацийППИсходящее.ПрочееСписаниеБезналичныхДенежныхСредств 
    Тогда
    Коннектор = Новый COMОбъект("V83.COMConnector");
    База = Коннектор.Connect("Srvr=""localhost""; Ref=""БазаПриемник""; Usr=""логин""; Pwd=""пароль""");
    ДокПриемник = База.Документы.ПлатежноеПоручениеИсходящее.НайтиПоНомеру(Источник.Номер,Источник.Дата);
    // если документ по выплате ЗП уже есть в базе

    Если ДокПриемник.СтатьяДвиженияДенежныхСредств.Код = "(тут вписать нужный код справочника)"// сравнение по ссылке почему-то не срабатывает

        И
        ДокПриемник.ВыплатаЗаработнойПлаты.Количество()
        Тогда
        Отказ = Истина;
    КонецЕсли;
КонецЕсли;
   Cyberhawk
 
7 - 16.09.18 - 17:19
(6) О боже
Просто в ПослеЗагрузки анализируешь объект в БД приемнике и взводишь Отказ = Истина
   rudnitskij
 
8 - 17.09.18 - 12:58
(7) "Просто в ПослеЗагрузки анализируешь объект в БД приемнике и взводишь Отказ = Истина"
после загрузки значения реквизитов уже изменены на те, что были в базе-источнике, толку их проверять?
   Mankubus
 
9 - 17.09.18 - 13:07
(8) ложное утверждение
   Mankubus
 
10 - 17.09.18 - 13:08
(9) + изменения еще не записаны. значит можно проверить старые значения по ссылке
 
 Рекламное место пустует
   rudnitskij
 
11 - 17.09.18 - 17:48
(9) "ложное утверждение" - не ложное, а проверенное на практике. Когда уже перенес данные - хрен ты что проверишь
ЗЫ. Сколько экспертов-теоретиков вылезло когда решился вопрос...
   rudnitskij
 
12 - 17.09.18 - 17:48
(10) "+ изменения еще не записаны. значит можно проверить старые значения по ссылке" - вы бы хоть проверили прежде чем вводить людей в заблуждение
   Cool_Profi
 
13 - 17.09.18 - 17:49
(11) овощЪ там. Данные перехали на ту сторону, но ещё не записаны.
Это как в ПередЗаписью отказ поставить.
   Cyberhawk
 
14 - 17.09.18 - 18:25
Что-то автор со своими опровержениями бакланит. Если у него в коде обработчиков правил конвертации принудательно объект записывается, то кто ж в этом виноват?
   zmaximka
 
15 - 17.09.18 - 18:55
(6) велосипед из костылей. Жесть просто
   zmaximka
 
16 - 17.09.18 - 18:57
в ПКО в событии при загрузке 
Если ОбъектНайден И Объект.Проведен Тогда 
     НеЗамещатьОбъект = Истина;
КонецЕсли;    

Вместо Объект.Проведен напиши свое условие
   rudnitskij
 
17 - 18.09.18 - 13:04
(14) что-то комментаторы не хотят проверить свои умствования на практике
   rudnitskij
 
18 - 18.09.18 - 13:06
(16) на практике вы проверяли это всё? "Проведен" это не реквизит. Контрагент, например, на момент выполнения ПриЗагрузке уже в документе заменен на выгружаемый из источника. Пусть он и не записан - толку с того, мне старый негде брать
   NuclearWinter
 
19 - 18.09.18 - 13:14
rudnitskij
В 16 все корректно написано, Проведен такой же стандартный реквизит как и пометка удаления.
   Franchiser
 
20 - 18.09.18 - 13:23
Обработчики "Правила конвертации объектов"
После загрузки
Условия возникновения события
Только для платформы V8.
Событие выполняется после прочтения и установки атрибутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта.

Параметры:
Отказ - Булево - Если Истина, то объект загружен не будет.

Объект - Произвольный - загруженный объект.

Ссылка – Произвольный – ссылка на найденный объект в информационной базе.

ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе

ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры переденные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено.

ОбъектМодифицирован – Булево. Флажок указывает на то, что в обработчике объект был изменен. По умолчанию содержит значение Истина. То есть обработка загрузки считает, что если выполнялся какой-либо обработчик, то объект мог быть модифицирован, и его необходимо записать в информационную базу. Параметр относится только к текущему обработчику. Если объект был изменен ранее, то при любом значении переменной ОбъектМодифицирован он будет записан. Только для платформы 1С:Предприятие 8.

ИмяТипаОбъекта – Строка. Имя типа загруженного объекта, например, «СправочникСсылка.Номенклатура».

НаборЗаписей – РегистрСведенийНаборЗаписей. Загруженный набор записей. Только при загрузке в обработке УниверсальныйОбменДаннымиXML.
   Franchiser
 
21 - 18.09.18 - 13:25
(18) Объект - это новый, Ссылка - это старый
   rudnitskij
 
22 - 18.09.18 - 14:19
(21) ну если так то наверное да, испытаю на досуге
Спасибо за разъяснение


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