Имя: Пароль:
1C
 
Конвертация данных
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
Никто не подскажет?