Имя: Пароль:
1C
1С v8
Пропадают данные из регистра сведений Контактная информация
,
0 Чинандалар Бонг
 
20.09.13
09:01
Вчера пропали все записи.
Подозреваю, что обработкой какой-то могли зачистить кодом типа такого:
НоваяЗапись = HегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
  НоваяЗапись.Записать();

т.е. записывали без отбора
НО ничего такого нет, есть только одна обработка, котрой пользовались с незапамятных времен, очень похоже что она потерла, т.к. одна запись в РС есть, которая как раз могла быть создана из этой обработки. Вот ее код:

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

кто-нибудь видит криминал в этом коде?
Повторяю, ей пользуемся давно, проблем не было. Единственно что поменялось - поменяли платформу с 8.2.18 на 8.2.19
1 Godofsin
 
20.09.13
09:02
А ЖР ничего не говорит?
2 neckto
 
20.09.13
09:06
Сам же написал: >>т.е. записывали без отбора
А теперь посмотри на код обработки.
3 Чинандалар Бонг
 
20.09.13
09:07
(2) куда именно смотреть?
4 Godofsin
 
20.09.13
09:08
ну и поднять бэкап и протестировать на нем
5 SeraFim
 
20.09.13
09:11
НаборКонтактнойИнформации.Прочитать() где???
6 neckto
 
20.09.13
09:14
(3) Сорь, не заметил параметр Ложь.
7 lapinio
 
20.09.13
09:21
Надо отбор установить

НаборКонтактнойИнформации.Отбор.Регистратор.Установить(Ссылка)

И записи пропадать не будут
8 Чинандалар Бонг
 
20.09.13
09:24
(7) он не подчинен регистратору
9 Чинандалар Бонг
 
20.09.13
09:26
буду признателен если ктонибудь модифицирует этот код - как должно быть
10 lapinio
 
20.09.13
09:29
Зачем тогда вообще использовать набор. Проще использовать СоздатьМенеджерЗаписи(). И проблем не будет.
11 lapinio
 
20.09.13
09:34
Мой вариант

        МенеджерРС = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
        
        МенеджерРС.Вид    = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Телефон мобильный");
        МенеджерРС.Тип    = Перечисления.ТипыКонтактнойИнформации.Телефон;
        МенеджерРС.Объект = ФИОКлиента;
        
        МенеджерРС.Поле2  = Лев(ТелефонМобильный,3);
        МенеджерРС.Поле3  = Прав(ТелефонМобильный,9);
        
        УправлениеКонтактнойИнформацией.СформироватьПредставлениеТелефона(НоваяЗапись);
        
        Попытка
            МенеджерРС.Записать();    
        Исключение
            Отказ = Истина;
            Сообщить(ОписаниеОшибки());
            Возврат;
        КонецПопытки;
12 lapinio
 
20.09.13
09:34
(11) УправлениеКонтактнойИнформацией.СформироватьПредставлениеТелефона(МенеджерРС);
13 Чинандалар Бонг
 
20.09.13
10:07
(11) спасибо
добавил еще прочитать() перед записью