Имя: Пароль:
1C
1С v8
v8: Программное добавление записи в Регистр сведений "Контактная информация"
,
0 Naivniy
 
12.02.14
16:00
Ниже приведеный код, не добавляет запись в регистр. Смотрю отладчиком в объектах ФА и Тел все данные заполнены корректно, но запись не добавляется.

Запись = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
ФА = Запись.Добавить();    
ФА.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
ФА.Объект = СпрКонтр.Ссылка;                    
ФА.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;    
ФА.Представление = ФактАдр;
Запись.Записать();

Запись = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Тел = Запись.Добавить();
Тел.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
Тел.Объект = СпрКонтр.Ссылка;
Тел.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильный;    
Тел.Представление = КонтрТел;
Запись.Записать();

Помогите, пожалуйста, разобраться.
1 х86
 
12.02.14
16:03
Функция ЗаписатьКонтактнуюИнформацию(НаборДанных, СсылкаНаОбъект, ТипКИ, ВидКИ, СтрокаСообщения)

    ЕстьОшибки = Ложь;
    
    Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
    Набор.Отбор.Объект.Установить(СсылкаНаОбъект);
    Набор.Отбор.Тип.Установить(ТипКИ);
    Набор.Отбор.Вид.Установить(ВидКИ);
    
    НовЗапись = Набор.Добавить();
    ЗаполнитьЗначенияСвойств(НовЗапись, НаборДанных);
    НовЗапись.Объект = СсылкаНаОбъект;
    НовЗапись.Тип = ТипКИ;
    НовЗапись.Вид = ВидКИ;
    
    Попытка
        Набор.Записать(Истина);
    Исключение
        СтрокаСообщения = "Ошибка при записи адреса: " + ОписаниеОшибки();
        ЕстьОшибки = Истина;
    КонецПопытки;
    
    Возврат НЕ ЕстьОшибки;

КонецФункции
2 Yea-Yea
 
12.02.14
16:04
для набора записей необходимо устанавливать отборы. не хочешь отборы - юзай менеджер записи
3 Naivniy
 
12.02.14
16:19
(1), (2) Добавил отборы. Записи в регистре не добавились.
4 Поpyчик-4
 
12.02.14
16:27
(3) Почитать СП или посмотреть примеры кода в сети не предлагаю.
5 Yea-Yea
 
12.02.14
16:29
код покажи
6 Naivniy
 
12.02.14
16:32
(5)
Запись = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Запись.Отбор.Объект.Установить(СпрКонтр.Ссылка);
Запись.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Телефон);
Запись.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ТелефонМобильный);
Тел = Набор.Добавить();
Тел.Представление = КонтрТел;
Тел.Объект = СпрКонтр.Ссылка;
Тел.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
Тел.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильный;
Запись.Записать(Истина);
7 floody
 
12.02.14
16:34
Тел = Набор?.Добавить();
8 Поpyчик-4
 
12.02.14
16:35
9 Naivniy
 
12.02.14
16:36
(6), (7) Тел = Запись.Добавить(); ****
10 Naivniy
 
12.02.14
16:43
(8)
По ссылке пример рабочего кода:
  Набор = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
  Набор.Отбор.МоёИзмерение1.Установить(КакоетоЗначение1);
  Набор.Отбор.МоёИзмерение2.Установить(КакоетоЗначение2);
  
  НовЗапись = Набор.Добавить();
  НовЗапись.МоёИзмерение1= КакоетоЗначение1;
  НовЗапись.МоёИзмерение2= КакоетоЗначение2;
  НовЗапись.МойРесурс = КакоетоЧисло;
  Набор.Записать();

Мой Код не работает:

Запись = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Запись.Отбор.Объект.Установить(СпрКонтр.Ссылка);
Запись.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Телефон);
Запись.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ТелефонМобильный);
Тел = Запись.Добавить();
Тел.Объект = СпрКонтр.Ссылка;
Тел.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
Тел.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильный;
Тел.Представление = КонтрТелефон;
Запись.Записать(Истина);

Найдите 5 отличий :(
11 х86
 
12.02.14
16:48
(1)+
    НаборДанных.Поле3 = СокрЛП(НаборДанных.РабочийТелефон);
    НаборДанных.Поле3 = НаборДанных.Поле3 + ?(ЗначениеЗаполнено(НаборДанных.Поле3), ", ", "") + СокрЛП(НаборДанных.СотовыйТелефон);
    
    НаборДанных.Представление = НаборДанных.Поле3;
12 Naivniy
 
12.02.14
16:53
Взлетело

Запись = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Запись.Отбор.Объект.Установить(СпрКонтр);            
Запись.Прочитать();
Тел = Запись.Добавить();
Тел.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
Тел.Объект = СпрКонтр;
Тел.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонМобильный;    
Тел.Представление = КонтрТел;
Запись.Записать();
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.