Режим "ОбменДанными.Загрузка = Истина" в "Конвертации данных" #626441


#0 by Voittamaton
Всем привет! При выгрузке через обработку "УниверсальныйОбменДанными..." есть возможность установить галочку "ОбменаДанными.Загрузка = Истина". Как установить эту галочку в конфигурации "Конвертация данных"? Можно ли задать эту опцию для отдельных объектов конфигурации?
#1 by Voittamaton
Обмен данными происходит через план обмена с прямым подключением к базе-приёмнику.
#2 by Йохохо
это проперти Объекта ПослеЗагрузки
#3 by Voittamaton
- хм... Что-то не работает... Всё равно выполняет код после Может попробовать в событии ПКО "При загрузке"?
#4 by Рэйв
Так оно для того там и проверяется
#5 by Рэйв
Чтобы обойти всякие хитрые проверки и всю подобную лабуду
#6 by Voittamaton
вот я написал в ПКО: И в "ПриЗагрузке", и в "ПослеЗагрузки", а при выполнении кода в модуле документа Если ОбменДанными.Загрузка  Тогда всё равно Обмен.Данными.Загрузка = Ложь.
#7 by Йохохо
значит (Объект.ОбменДанными.Загрузка <> ОбменДанными.Загрузка) = true
#8 by acsent
и что этот код не падает с ошибкой?
#9 by Рэйв
Такой код прервет загрузку. потому что ты выйдешь из процедуры ЗагрузитьИзФайла
#10 by Рэйв
Или ЗагрузитьОбъект ...не помню уже точно
#11 by Voittamaton
- параметр "Объект.ОбменДанными.Загрузка" я устанавливаю в "Истину" в ПКО. НО: в модуле документа он по-прежнему равняется "Ложь" :-( С ошибкой не вылетает.
#12 by Torquader
обмен данными загрузка равно истина имеет вообще опосредоыанное отношение к обмену данными - этот режим отключает любые проверки корректности загружаемого или создаваемого объекта,то есть позволяет,например,создать два элемента с одинаковым кодом,когда установлена уникальность кода. применение данной галочки в конвертации нежелательно,так как может приводить к нарушениям в базе данных. при обмене же мы не можем не загрузить объект,который пришёл к нам из другой базы данных,так как там он уже есть и не может быть удалён. ,а в случае переноса данных нежелательно создавать новые объекты,если есть уже созданный объект с тем же кодом.
#13 by Mikhail Volkov
Для чего режим "ОбменДанными.Загрузка = Истина" и так понятно. Вопрос: кто, где его устанавливает? Вроде как УниверсальныйОбменДаннымиXML, но где, в каком месте? Отловить это мне не удалось... для одних документов он Истина, для других - Ложь. Прописывал в правилах обмена - игнорируется!?
#14 by Йохохо
понятно же, что все работает и не игнорируется. просто ты торопишься в конвертации многое автоматом обернуто в попытку, надо быть аккуратнее вероятно, если ты детально все опишешь - сам же найдешь косяк
#15 by Алистар
а может это свойство не работает если объект не включен ни в один план обмена
#16 by acsent
Окуеть зyатоки o_O
#17 by Voittamaton
Я был не прав - параметр "Объект.Обмен.ЗагрузкаДанных" устанавливается и срабатывает корректно. Дело было в том, что объект выгружался два раза, и при повторной выгрузке параметр равнялся "ложь". Всем спасибо!
#18 by Voittamaton
Как я понял, процедура "ПередЗаписью" в модуле документа выполнялась один раз перед записью, и один раз перед проведением. В связи с этим возникает вопрос: как выгрузить документ таким образом, чтобы он не проводился в базе-приёмнике, но чтобы переносились его движения по регистрам и пометка проведения равнялась истине?
#19 by Йохохо
связи нету между посылкой и вопросом. чтобы не выполнялась 2 раза - найди галку не выгружать ляляля по ссылке, чтобы док целиком выгружался 1 раз
#20 by Voittamaton
- объясню иначе. Я выгружаю только один документ. Загрузка = Истина срабатывает при записи документа. Если же документ проводится, тогда Загрузка автоматом ставится в "Ложь" и выполняются действия, которые не должны (по задумке) выполняться. Флаг "Не выгружать объекты свойств источника по ссылкам" относится к подчинённым объектам. В своём же случае я выгружаю только один документ и на него не ссылаются другие, так как они попросту не выгружаются. Я же хочу, чтобы не срабатывал код, который написан в модуле документа в процедуре "Перед записью". Как я понял, при проведении он будет срабатывать в любом случае (или я ошибаюсь?). И единственный способ - не проводить документ, а переносить его движения. Но как это сделать? :-(
#21 by Йохохо
в заказе УТ 10.3 Если ОбменДанными.Загрузка  Тогда КонецЕсли; так что, если избавишься от двойной загрузки и так взлетит
#22 by Voittamaton
При выгрузке документа (только одного!) при первом выполнении (при записи) процедуры оператор заходит в цикл (так как ОбменДанными.Загрузка = Истина), а при втором выполнении (при проведении) процедуры оператор НЕ заходит в цикл (так как ОбменДанными.Загрузка = Истина). Какие есть варианты сделать ОбменДанными.Загружка = Истина при проведении? Если написать команду в ПКО, то всё равно при проведении параметр будет равен "Ложь".
#23 by Voittamaton
- напутал немного. При выгрузке документа (только одного!) при первом выполнении (при записи) процедуры оператор заходит в цикл (так как ОбменДанными.Загрузка = Истина), а при втором выполнении (при проведении) процедуры оператор НЕ заходит в цикл (так как ОбменДанными.Загрузка = ЛОЖЬ). Какие есть варианты сделать ОбменДанными.Загрузка = Истина при проведении? Если написать команду в ПКО, то всё равно при проведении параметр будет равен "Ложь".
#24 by kosts
>Какие есть варианты сделать ОбменДанными.Загрузка = Истина при проведении? Так нельзя. Это в нарушение логики работы конфигурации. Мучился с такой же проблемой, перенести документ 1 к 1 со всеми движениями из базы в базу. Получилось только переделкой модуля обмена и модулей документа. Но на данный момент отказался от переноса 1 к 1, решил, что для нас лучше будет это проведение документа при загрузке. (И при не успешном проведении документ остается старый).
#25 by Voittamaton
- хм... А на что тогда влияют наборы движений регистров накопления в КД в конвертации свойств? Ведь если бы движения не переносились вручную, а только создавались заново при проведении в базе-приёмнике, то какой смысл от этих строчек ("Набор движений регистра накопления") в конвертации свойств? Или я Вас неправильно понял?
#26 by kosts
В этой конвертации столько заморочек, черт ногу сломит... :-( Регистр сведений есть (видимо для переноса независимых регистров), регистра накоплений нет (тоже доделывал, что бы был, но сейчас вернул назад).
#27 by Йохохо
РежимЗаписи = "Проведение";
#28 by GenV
Если загружаешь через обработку "УниверсальныйОбменДаннымиXML", то документ проводиться, если указано , иначе переносится как есть вместе с движениями. Если через стандартный механизм обмена по правилам и плану обмена (это будет обработка "ОбменДаннымиXML"), то документ будет проводиться при загрузке, если выгружается статус проведения.
#29 by GenV
28+ ОбменДанными.Загрузка = Истина может повлиять на обход проверок в событиях и подписках, только если в них есть проверка на "ОбменДанными.Загрузка = Истина".
#30 by Voittamaton
- спасибо за информацию!
#31 by Mikhail Volkov
Дык, в каком месте должно быть прописано "ОбменДанными.Загрузка = Истина", чтобы Истина была в ходе всей загрузки?
#32 by Mikhail Volkov
Все же, где?
#33 by Voittamaton
- я перепроверил режим "Загрузка = Истина" и пришёл к выводу, что он выставляется автоматически в "ложь" при записи объекта и в "истину" при проведении. Почему-то не работает команда "ОбменДанными.Загрузка = Истина" в ПКО.
#34 by Йохохо
а вот эта работает Объект.ОбменДанными.Загрузка = Истина;
#35 by Mikhail Volkov
Это надо прописывать в ПКО каждого объекта, или где-то (где?) можно один раз прописать?
#36 by Voittamaton
- именно это я и имел ввиду, может я что-то делаю не так? Прописывал в ПКО "При загрузке" и "После загрузки". Затем проверил значение параметра в процедуре "При записи" документа. Если только записывать документ, тогда параметр "Загрузка" равняется истине, если документ записывается и проводится, то сначала параметр равняется истине, затеи лжи.
#37 by Светлый Гений
нужно помещать эту проверку в процедуру ПриЗаписи в модуле объекта
#38 by Voittamaton
- именно туда и поместил проверку параметра
#39 by Mikhail Volkov
"ПриЗаписи" - не в КД, а конфе базы приемника, как у ?
#40 by Йохохо
!!!111 "первом выполнении (при записи) процедуры оператор заходит в цикл (так как ОбменДанными.Загрузка = Истина), а при втором выполнении (при проведении) процедуры оператор НЕ заходит в цикл (так как ОбменДанными.Загрузка = ЛОЖЬ)" при первом выполнении ты выставил в коде ОбменДанными в Истину, но при втором выполнении нет. это не реквизит, это указание конфигурации, как себя вести, он не хранится в базе и не считывается из нее Не надо проводить два раза, сделай все в первом проходе
#41 by Voittamaton
- я выставлял значение в "ложь", а оператор всё равно заходит в цикл. Второй же проход цикла, видимо, выполнялся при проведении, потому что я специально проверял на одном документе и не выгружал его по ссылкам через другие элементы конфигурации.
#42 by Йохохо
что за цикл? "если обмен = истина тогда возврат"?) в обработке загрузки есть код типа "записать если (модифицирован или НЕ записыватьтолькоизмененныеобъекты)" вероятно первый раз записываешь ты кодом в обработчике, а второй раз обработка сама
#43 by Voittamaton
- да, я имел ввиду конструкцию "Если ... Тогда" :-) Хорошо, попробую установить этот параметр.
#44 by Йохохо
в форме записыватьтолькоизмененныеобъекты = ага ПослеЗагрузки если обработканепишиясамзапишу тогда вроде так
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С