Проект

Общее

Профиль

Регистры накоплений, сведений

Манипулирование записями регистров без использования регистратора

https://its.1c.ru/db/metod8dev/content/2719/hdoc

Перезапись ресурсов регистра сведений

    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    КонтактнаяИнформация.Объект,
        |    КонтактнаяИнформация.Тип,
        |    КонтактнаяИнформация.Вид,
        |    КонтактнаяИнформация.Поле10,
        |    КонтактнаяИнформация.Представление
        |ИЗ
        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |ГДЕ
        |    КонтактнаяИнформация.Вид = &ВидКИ";

    Запрос.УстановитьПараметр("ВидКИ", ВидКИ);
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ТелТекст = сокрЛП(ВыборкаДетальныеЗаписи.Представление);

        Поле10 = ВернутьТолькоЦифры(ТелТекст);
        Если СтрДлина(Поле10)=11 и (Лев(Поле10, 1)= "8" или Лев(Поле10, 1)= "7") тогда
            Поле10 = Прав(Поле10, 10);
        КонецЕсли;
        сообщить(ТелТекст + "  / " + поле10);

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

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

        ОбработкаПрерыванияПользователя();
    КонецЦикла;