КД "Не замещать существующие объекты ..." можно по условию? #595252


#0 by Mikhail Volkov
В ПКО есть галочка "Не замещать существующие объекты в приемнике при загрузке...". Обычно я ее использую при загрузки из периферийных баз (из УТ в УПП), но это не всегда правильно. Бывает вечером объявился новый клиент, в УТ заполнили только основные реквизиты, а утром все остальные. Но обмен ночью прошел, и дозаполненные реквизиты уже не попадают в УПП. Самое неприятное, что в УПП ничего по нему не заполняли, переложили в другую папку. И при обмене этот полупустой клиент вернулся в УТ, и затер все, что там дозаполнили!? Есть ли возможность, чтобы объект замещался по условию?
#1 by Рэйв
По какому условию?
#2 by Mikhail Volkov
А еще лучше, чтобы в ПКС "Не замещать значение свойства у существующих объектов в приемнике" работало по условию, чтобы перезаписывались только не заполненные реквизиты приемника? (или хотя бы не пустыми?)
#3 by Mikhail Volkov
Источник заполнен, а приемник пустой.
#4 by Рэйв
в ПКО ПослеЗагрузки  Сравнивай  Объект и Объект.Ссылка  Соотвественно если не надо замещать - отказ= истина
#5 by Mikhail Volkov
"После загрузки" поздно - Объект уже записан.
#6 by Mikhail Volkov
А "При загрузки", например, для одного реквизита: Правильно будет?
#7 by Mikhail Volkov
Или надо "Перед загрузкой"? Где пример посмотреть?
#8 by Aleksey
Совсем народ ленивый стал, даже справку лень почитать
#9 by Aleksey
Перед загрузкой Условия возникновения события Только для платформы V8. Событие выполняется перед загрузкой объекта. Возможен отказ от загрузки, например, в случае невыполнения каких-либо условий. Загружаемый в БД объект еще не инициализирован. Параметры: НеЗамещатьОбъект - Если для данного параметра установить значение Истина, то объект идентифицированный при загрузке (т.е. найденный в информационной базе приемнике по значению синхронизирующих полей) не будет изменен/замещен.
#10 by Aleksey
При загрузке Условия возникновения события Только для платформы V8. Событие выполняется после попытки идентификации. В случае успешной синхронизации доступен найденный объект. В противном случае его значение Неопределено. Можно произвести произвольную инициализацию, заполняемого данными объекта. Параметры: НеЗамещатьОбъект - Булево - Если установить значение Истина, то существующий объект информационной базы не будет изменен.
#11 by Aleksey
После загрузки Условия возникновения события Только для платформы V8. Событие выполняется после прочтения и установки атрабутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта. Параметры: Отказ - Булево - Если Истина, то объект загружен не будет.
#12 by Aleksey
Неужели так трудно нажать большую кнопку информация по обработчикам?
#13 by Aleksey
Твоя фантазия?
#14 by Aleksey
НЕТ, не правильно, потому что при загрузки нет такого параметра ОТКАЗ
#15 by Рэйв
Почитай внимательно мануалы. Объект готов к записи но еще не записан.
#16 by Mikhail Volkov
Хорошо: НеЗамещатьОбъект = Истина; Объект.Реквизит1 при загрузке доступен, а Источник.Реквизит1 – уже нет, из ФайлОбмена выковыривать надо?
#17 by Mikhail Volkov
"Объект готов к записи но еще не записан" - как его сравнить с тем что в базе?
#18 by Рэйв
Читай Объект содержит то что пришло. Объект.Ссылка - то что в базе лежит
#19 by Рэйв
+ ...записывать без условий .Это новый
#20 by Aleksey
т.е. ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе ОбъектМодифицирован – Булево. Флажок указывает на то, что в обработчике объект был изменен. По умолчанию содержит значение Истина. То есть обработка загрузки считает, что если выполнялся какой-либо обработчик, то объект мог быть модифицирован, и его необходимо записать в информационную базу. Параметр относится только к текущему обработчику. Если объект был изменен ранее, то при любом значении переменной ОбъектМодифицирован он будет записан. Только для платформы 1С:Предприятие 8. Не для нас?
#21 by Рэйв
Нах такие сложности?  Когда простая стандартная проверка на пустую ссылку дат требуемую инфу.
#22 by Рэйв
дат = дает
#23 by Aleksey
А зачем лишний раз дергать базу? когда можно просто написать
#24 by Aleksey
А вообще автор не с той стороны пошел
#25 by Aleksey
У реквизитов при выгрузки можно прописать Отказ - Булево - Если Истина, то конвертация свойства не производится, обработка правила конвертации свойств прекращается Т.е. Если не ЗначениеЗаполнено(Источник.ТвойРеквизит) тогда Это гарантированно не будет выгружать пустые (незаполненые) реквизиты, а значит не будет затирать то, что уже внесли в приемник ручками
#26 by Рэйв
Я тебя умоляю:-))Почитай модуль загрузчика. База в процессе загрузки дергается столько, что один раз просто потонет в этом океане.:-)
#27 by Рэйв
+И не доверяю я этим ОбъектНайден. Косяков видел достаточно со стороны этих "прославленных" разработчиков...Лучше ужя я сам железобетонно буду уверен.
#28 by Aleksey
А зачем тогда КД юзать? Не проще ли написать свое, ну что бы железобетонно
#29 by Рэйв
Ну зачем же изобретать изобретенный вертолет. Просто , по моему опыту, не стоит безоглядно верить его приборам. а если хватает сообразительности то лучше эти приборы немного улучшить под себя.
#30 by Mikhail Volkov
Это мне нравится, но если объект выгрузится с пустым реквизитом, то где гарантия, что в приемнике он не затрет этот реквизит?
#31 by Aleksey
Реквизиты не выгрузятся в этом случае, его не будет в файле, а значит и ничего не загрузится
#32 by байт
после загрузки отрабатывает я проводил подобное
#33 by Mikhail Volkov
А единый обработчик для всех ПКС справочников есть? Как-то накладно прописывать это условие во всех ПКС... или групповой обработкой?
#34 by Агент Инфостарта
Глобальные обработчики "Конвертация" Перед конвертацией объекта Условия возникновения события Событие выполняется перед началом конвертации объекта по правилу конвертации. Вызов осуществляется до вызова обработчика "Перед выгрузкой" правила конвертации объектов.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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