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