Имя: Пароль:
1C
1С v8
Почему не записывает в регистр сведения ?
,
0 maxmb
 
12.09.12
12:47
Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
               Набор.Отбор.Объект.Установить(ФИО);
               Набор.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
               Набор.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00021"));
               
               новЗапись                     = Набор.Добавить();
               новЗапись.Объект              = ФИО.Ссылка;
               новЗапись.Тип                 = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
               новЗапись.Вид                 = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00021");
               новЗапись.Представление       = СокрЛП(ТекСтрока.Почта);
               Набор.Записать(Истина);
1 Maxus43
 
12.09.12
12:49
ругается на что-то? или просто не записывает?
2 maxmb
 
12.09.12
12:49
Просто не записывает, все ок по коду
3 мистер игрек
 
12.09.12
12:50
Организацию не забыл?
4 мистер игрек
 
12.09.12
12:51
может так?


Набор.Отбор.Объект.Установить(ФИО.ссылка);
5 МурЬка
 
12.09.12
12:51
Поскольку замещение стоит Истина, то рискну предположить, что записывает. Просто такая запись в регистре уже была.
Проверить добавить после
Набор.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00021"));

Набор. Прочитать();

(вроде так)
и проверить отладчиком состав набора.
6 maxmb
 
12.09.12
12:53
ФИО = Выборка.Ссылка;
7 Coldboy
 
12.09.12
12:55
а пробывал без отбора записать?
8 Kreont
 
12.09.12
12:57
Набор = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
               Набор.Отбор.Объект.Установить(ФИО);
               Набор.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
               Набор.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00021"));
//Added
Набор.Прочитать();
Набор.Очистить();
//Added
               новЗапись                     = Набор.Добавить();
               новЗапись.Объект              = ФИО.Ссылка;
               новЗапись.Тип                 = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
               новЗапись.Вид                 = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00021");
               новЗапись.Представление       = СокрЛП(ТекСтрока.Почта);
               Набор.Записать(Истина);

(7) Не смешно :)
9 maxmb
 
12.09.12
12:59
Спасибо
Стоял блок в начале
НачатьТранзакцию();
в конце
ЗафиксироватьТранзакцию();
все заработало ... код переписал , спасибо всем
               ФИО = Выборка.Ссылка;
               //6. Запишем телефоны
               Если СокрЛП(ТекСтрока.Почта) <> "" Тогда
                   НаборТелефоны = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
                   НаборТелефоны.Отбор.Объект.Установить(ФИО.Ссылка);
                   НаборТелефоны.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
                   НаборТелефоны.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00021"));
                   
                   НаборТелефоны.Прочитать();
                   
                   НеИзменять = Ложь;
                   Для Каждого Запись Из НаборТелефоны Цикл
                       Если Запись.Представление  = СокрЛП(ТекСтрока.Почта) Тогда
                           НеИзменять = Истина;
                       КонецЕсли;      
                   КонецЦикла;
                   
                   Если Не НеИзменять Тогда
                       новТелефоны                     = НаборТелефоны.Добавить();
                       новТелефоны.Объект              = ФИО.Ссылка;
                       новТелефоны.Тип                 = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
                       новТелефоны.Вид                 = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00021");
                       новТелефоны.Представление       = СокрЛП(ТекСтрока.Почта);
                       новТелефоны.ЗначениеПоУмолчанию = СокрЛП(ТекСтрока.Почта);
                       НаборТелефоны.Записать(Истина);
                       Сообщить("               У Оператора: "+ФИО+" ("+ТекСтрока.Почта+") изменена почта.");
                       Изменено=1;
                   КонецЕсли;
               КонецЕсли;
10 ptiz
 
12.09.12
13:00
Уверен, что не записывает?
Может для элемента справочника с ВидыКонтактнойИнформации с кодом="00021" не указан ВидОбъектаКонтактнойИнформации и ты просто в карточке физ.лица не видишь?
11 shuhard
 
12.09.12
13:00
(8) +1
Для Каждого СтрокаТЧ Из Кандидаты Цикл    
       Физик=СтрокаТЧ.ФизЛицо.ПолучитьОбъект();
       Физик.ИНН=СтрокаТЧ.ИНН;
       Физик.СтраховойНомерПФР=СтрокаТЧ.СтраховойНомерПФР;
       Физик.МестоРождения=СтрокаТЧ.МестоРождения;
       Физик.ДатаРождения=СтрокаТЧ.ДатаРождения;
       Физик.Записать();
       Наборчик=РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
       Наборчик.Отбор.Объект.ВидСравнения=ВидСравнения.Равно;
       Наборчик.Отбор.Объект.Значение=Физик.Ссылка;                                                          
       Наборчик.Отбор.Объект.Использование=Истина;
       Наборчик.Отбор.Тип.ВидСравнения=ВидСравнения.Равно;
       Наборчик.Отбор.Тип.Значение=Перечисления.ТипыКонтактнойИнформации.Адрес;                                                          
       Наборчик.Отбор.Тип.Использование=Истина;
       Наборчик.Отбор.Вид.ВидСравнения=ВидСравнения.Равно;
       Наборчик.Отбор.Вид.Значение=Справочники.ВидыКонтактнойИнформации.ЮрАдресФизЛица;                                                          
       Наборчик.Отбор.Вид.Использование=Истина;
       Наборчик.Прочитать();
       Наборчик.Очистить();
       СтрокаНаборчика=Наборчик.Добавить();
       СтрокаНаборчика.Активность=Истина;                                                                    
       СтрокаНаборчика.Объект=Физик.Ссылка;
       СтрокаНаборчика.Период=Дата(1900,01,01);
       СтрокаНаборчика.Вид=Справочники.ВидыКонтактнойИнформации.ЮрАдресФизЛица;
       СтрокаНаборчика.Тип=Перечисления.ТипыКонтактнойИнформации.Адрес;
       СтрокаНаборчика.Представление=СтрокаТЧ.Представление;
       СтрокаНаборчика.Поле1=строкаТЧ.Поле1;
       СтрокаНаборчика.Поле2=строкаТЧ.Поле2;
       СтрокаНаборчика.Поле3=строкаТЧ.Поле3;
       СтрокаНаборчика.Поле4=строкаТЧ.Поле4;
       СтрокаНаборчика.Поле5=строкаТЧ.Поле5;
       СтрокаНаборчика.Поле6=строкаТЧ.Поле6;
       СтрокаНаборчика.Поле7=строкаТЧ.Поле7;
       СтрокаНаборчика.Поле8=строкаТЧ.Поле8;
       СтрокаНаборчика.Поле9=строкаТЧ.Поле9;
       СтрокаНаборчика.Поле10=строкаТЧ.Поле10;
       Наборчик.Записать();
   
   КонецЦикла;
12 maxmb
 
12.09.12
13:02
Все ок , убрал НачатьТранзакцию();
и все
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший