Да я так уже пробовал, но безрезультатно.
Сделал вот так
...
НаборЗаписей.Прочитать();
Сообщить(НаборЗаписей.Количество());
Для каждого Запись из НаборЗаписей Цикл
...
Результат "0", т.е. получается в цикл даже не заходим и соответственно ничего и не меняется.
У меня как-то получилось что данные попали в регистрсведений, но они попали дополнительной строкой. Но как это получилось уже непомню, т.к. сразу удалил код из-за того, что нужно заносить адрес в уже имеющуюся строку а не создавать новую. Если память не изменяет то кажется это получилось посредством НаборЗаписей.Добавить();
Так выгладит изначально таблица контактной информации (все записи серые - неактивные)
Тип Вид Представление
Адрес Юридический адрес контрагента
Телефон Телефон контрагента
После добавление
Тип Вид Представление
Адрес ЮрАдресКонтрагента Здесь адрес
Адрес Юридический адрес контрагента А тут по прежнему пусто
Телефон Телефон контрагента
Что-то я упускаю, а что не пойму.
Да кстати обработка регистра сведений происходит в процедуре внутри ф-ции Функция НайтиСоздатьКонтрагента(Ссылка77)
// Создадим новый, если элемент не найден.
Если Найден = 0 Тогда
Клиент = Справочники.Контрагенты.СоздатьЭлемент();
//Клиент.Код = Ссылка77.Код;
КонецЕсли;
//перезаполним данные в карточке
Клиент.Наименование = Ссылка77.Наименование;
Клиент.НаименованиеПолное = Ссылка77.ПолнНаименование;
Клиент.ИНН = СокрЛП(Ссылка77.ИНН);
Клиент.КодПоЕДРПОУ = Ссылка77.ЕГРПОУ;
Клиент.НомерСвидетельства = Ссылка77.НомерСвидетельства;
Клиент.Родитель = Справочники.Контрагенты.НайтиПоНаименованию(Ссылка77.Родитель.Родитель.Наименование);
// вот здесь располагается код по работе с регистром сведений
Если Ссылка77.ВидКонтрагента.Идентификатор() = "ЧастноеЛицо" Тогда
Клиент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо;
Клиент.ДокументУдостоверяющийЛичность = "Паспорт серия "+СокрЛП(Ссылка77.ДокументСерия)+" номер "+(Ссылка77.ДокументНомер) +" выдан "+СокрЛП(Ссылка77.ДокументДатаВыдачи)+""+СокрЛП(Ссылка77.ДокументКемВыдан);
Иначе
Клиент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
КонецЕсли;
Клиент.Комментарий = "Импортирован из 7.7";
Клиент.Записать();
// Пробовал и после записи контрагента/клиента вставлять код - тоже ноль
С Уважением, Дмитрий.
Все разобрался, получилось таким образом (добавил условие на количество и если = 0, то просто добавляю новые)
...
Клиент.Записать();
НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(Клиент.Ссылка);
НаборЗаписей.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
НаборЗаписей.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
НаборЗаписей.Прочитать();
НаборЗаписей.Записывать = истина; // не уверен что это здесь нужно, просто забыл убрать от прежних экспериментов, но т.к. не мешает убирать не буду
Если НаборЗаписей.Количество() > 0 Тогда
Для каждого Запись из НаборЗаписей Цикл
Если Запись.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда
Запись.Представление = Ссылка77.ЮридическийАдрес;
КонецЕсли;
КонецЦикла;
Иначе
НовСтр = НаборЗаписей.Добавить();
НовСтр.Объект = Клиент.Ссылка;
НовСтр.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
НовСтр.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
НовСтр.Представление = Ссылка77.ЮридическийАдрес;
КонецЕсли;
НаборЗаписей.Записать();
...
Теперь наверное лучше вынесу это в отдельную функцию/процедуру :-)
Спасибо,
Vofka, диалог с Вами способствовал зарождению верной мысли
С Уважением, Дмитрий.