![]() |
![]() |
![]() |
|
Конвертация данных | ☑ | ||
---|---|---|---|---|
0
Boris1974
17.06.10
✎
10:45
|
Здравствуйте!
Есть правила конвертации. В них есть перенос регистра сведений контактной информации. Нужно не замещать имеющиеся данные в базе приемнике, но измерения составного типа и не дают отметить их как поля поиска. Как отключить замену полей в базе-приемнике? Заранее благодарен! |
|||
1
Boris1974
17.06.10
✎
10:54
|
Никто не знает?
|
|||
2
OneUser
17.06.10
✎
10:56
|
Нажимаешь 2 раза по правилу конвертации объекта, потом "Далее". Там есть галочка "Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их".
|
|||
3
Boris1974
17.06.10
✎
11:03
|
Установлен, все равно перезаписывает, если значения отличаются. Надо , например, не перезаписывать юридический адрес.
|
|||
4
Boris1974
17.06.10
✎
11:08
|
Никто посоветовать ничего не может?
|
|||
5
OneUser
17.06.10
✎
11:14
|
Можно еще попробовать не в "Правиле конвертации объекта", а в "Правиле конвертации свойства" установить галочку "Не замещать значение свойства у существующих объектов в приемнике".
|
|||
6
Boris1974
17.06.10
✎
11:23
|
Все равно замещает. А как можно перехватить в ПриЗагрузке и ПослеЗагрузки запись в регистр сведений? Сообщить(Объект); - ругается.
|
|||
7
Aleksey_3
17.06.10
✎
11:24
|
ПКО ПриЗагрузки
При загрузке Условия возникновения события Только для платформы V8. Событие выполняется после попытки идентификации. В случае успешной синхронизации доступен найденный объект. В противном случае его значение Неопределено. Можно произвести произвольную инициализацию, заполняемого данными объекта. Параметры: ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе Объект - Произвольный. Загружаемый, модифицируемый объект, созданный по ссылке или найденный в информационной базе. Если способ идентификации объекта в файле не указан (т.е. отсутствует узел "Ссылка"), то параметр содержит значение Неопределено. В этом случае в обработчике возможна произвольная инициализация загружаемого объекта, в противном случае, объект будет создан автоматически. НеЗамещатьОбъект - Булево - Если установить значение Истина, то существующий объект информационной базы не будет изменен. ОбъектМодифицирован – Булево. Флажок указывает на то, что в обработчике объект был модифицирован. По умолчанию содержит значение Истина. То есть обработка загрузки считает, что если выполнялся какой-либо обработчик, то объект мог быть модифицирован, и его необходимо записать в информационную базу. Параметр относится только к текущему обработчику и только к найденным объектам. Если объект не был найден, то при любом значении он будет создан и записан. Только для платформы 1С:Предприятие 8. |
|||
8
Defender aka LINN
17.06.10
✎
11:25
|
(5) Ты слова "регистр сведений", видимо пропустил, да?
|
|||
9
Aleksey_3
17.06.10
✎
11:27
|
(8) А что у РС другие галочки нежели, например, у справочника?
|
|||
10
Defender aka LINN
17.06.10
✎
11:29
|
(9) Типа того. Для РС поиск не производится в принципе.
|
|||
11
Boris1974
17.06.10
✎
11:45
|
В ПриЗагрузке Сообщить(РегистрСведений.КонтактнаяИнформация.Объект); ругается.
|
|||
12
Boris1974
17.06.10
✎
11:46
|
НеЗамещатьОбъект=Истина в ПриЗагрузке и После не помогает. Все равно все замещается.
|
|||
13
Aleksey_3
17.06.10
✎
11:53
|
(12) А если ПередЗагрузкой?
|
|||
14
Boris1974
17.06.10
✎
12:00
|
Если ОбъектНайден=Истина Тогда
НеЗамещатьОбъект=Истина; КонецЕсли; Все равно замещает все. |
|||
15
Aleksey_3
17.06.10
✎
12:04
|
(14) Можно было проще НеЗамещатьОбъект=ОбъектНайден
Но перед загрузкой нет объекта, поэтому такая конструкция ругалась бы НеЗамещатьОбъект - Если для данного параметра установить значение Истина, то объект идентифицированный при загрузке (т.е. найденный в информационной базе приемнике по значению синхронизирующих полей) не будет изменен/замещен. |
|||
16
Boris1974
17.06.10
✎
12:12
|
Если ОбъектНайден=Истина Тогда
Отказ=Истина; КонецЕсли; Написал так. ПередЗагрузкой ОбъектНайден выдает значение Истина, т.е. находит. Но теперь при Отказ=Истина он и новые записи не переносит, т.е. значение номер телефона при его первоначальном отсутствии не заполняет. |
|||
17
Boris1974
17.06.10
✎
12:13
|
Поля для синхронизации не возможно указать, т.к. а этом регистре они не ссылочного типа.
|
|||
18
Boris1974
17.06.10
✎
12:15
|
А можно данные найденной записи посмотреть и сравнить. Как к ним обратиться в ПриЗаписе, раз они находятся?
|
|||
19
Aleksey_3
17.06.10
✎
12:22
|
При записи это При загрузки?
|
|||
20
Boris1974
17.06.10
✎
12:23
|
Да, извините, ПриЗагрузке.
|
|||
21
Aleksey_3
17.06.10
✎
12:24
|
Никак, только После загрузки
Объект - твой обект Объект в Базе объект.ПолучитьОбъект(); |
|||
22
Boris1974
17.06.10
✎
12:47
|
При попытке вывести в ПослеЗагрузки Сообщить(СокрЛП(Объект));
или Сообщить(СокрЛП(РегистрСведенийМенеджерЗаписи.КонтактнаяИнформация.ПолучитьОбъект())); и еще несколько перебранных вариантов пишет: ИмяПКО = КонтактнаяИнформация ТипОбъекта = Регистр сведений запись: Контактная информация Объект = РегистрСведенийМенеджерЗаписи.КонтактнаяИнформация Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Метод объекта не обнаружен (Метаданные) Подскажите, как можно получить значение реквизитов этой записи? |
|||
23
Boris1974
17.06.10
✎
12:53
|
Очень нужно.
|
|||
24
Boris1974
17.06.10
✎
13:00
|
Никто не знает?
|
|||
25
Aleksey_3
17.06.10
✎
13:03
|
Явно не на эту строку ругается, потому что причем тут Метаданные?
|
|||
26
Boris1974
17.06.10
✎
13:07
|
Он , наверное, ссылается на метаданные, а пишет, что метод не обнаружен.
|
|||
27
Boris1974
17.06.10
✎
14:10
|
Там тип Объекта "РегистрСведенийЗапись.КонтактнаяИнформация", как мне значения ее реквизитов посмотреть. Объект.Поле1 выдает ошибку, хотя такой ревкизит в регистре есть.
|
|||
28
Boris1974
17.06.10
✎
14:18
|
Никто не подскажет?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |