Регистры сведений » История » Версия 2
Версия 1 (Всеволод Дорофеев, 02.03.2020 10:18) → Версия 2/3 (Всеволод Дорофеев, 02.03.2020 10:22)
h1. Регистры сведений
h3. Перезапись ресурсов регистра сведений
<pre>
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтактнаяИнформация.Объект,
| КонтактнаяИнформация.Тип,
| КонтактнаяИнформация.Вид,
| КонтактнаяИнформация.Поле10,
| КонтактнаяИнформация.Представление
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Вид = &ВидКИ";
Запрос.УстановитьПараметр("ВидКИ", ВидКИ);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ТелТекст = сокрЛП(ВыборкаДетальныеЗаписи.Представление);
Поле10 = ВернутьТолькоЦифры(ТелТекст); ТолькоЦифры(ТелТекст);
Если СтрДлина(Поле10)=11 и (Лев(Поле10, 1)= "8" или Лев(Поле10, 1)= "7") тогда
Поле10 = Прав(Поле10, 10);
КонецЕсли;
сообщить(ТелТекст + " / " + поле10);
МенеджерЗаписи = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Объект;
МенеджерЗаписи.Тип = ВыборкаДетальныеЗаписи.Тип;
МенеджерЗаписи.Вид = ВыборкаДетальныеЗаписи.Вид;
МенеджерЗаписи.Прочитать();
Если МенеджерЗаписи.Выбран() Тогда
МенеджерЗаписи.Поле10 = Поле10;
Попытка
МенеджерЗаписи.Записать();
Исключение
ТекстСообщения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление информационной базы'"), УровеньЖурналаРегистрации.Ошибка,,, ТекстСообщения);
КонецПопытки;
КонецЕсли;
ОбработкаПрерыванияПользователя();
КонецЦикла;
</pre>
h3. Перезапись ресурсов регистра сведений
<pre>
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтактнаяИнформация.Объект,
| КонтактнаяИнформация.Тип,
| КонтактнаяИнформация.Вид,
| КонтактнаяИнформация.Поле10,
| КонтактнаяИнформация.Представление
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Вид = &ВидКИ";
Запрос.УстановитьПараметр("ВидКИ", ВидКИ);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ТелТекст = сокрЛП(ВыборкаДетальныеЗаписи.Представление);
Поле10 = ВернутьТолькоЦифры(ТелТекст); ТолькоЦифры(ТелТекст);
Если СтрДлина(Поле10)=11 и (Лев(Поле10, 1)= "8" или Лев(Поле10, 1)= "7") тогда
Поле10 = Прав(Поле10, 10);
КонецЕсли;
сообщить(ТелТекст + " / " + поле10);
МенеджерЗаписи = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Объект;
МенеджерЗаписи.Тип = ВыборкаДетальныеЗаписи.Тип;
МенеджерЗаписи.Вид = ВыборкаДетальныеЗаписи.Вид;
МенеджерЗаписи.Прочитать();
Если МенеджерЗаписи.Выбран() Тогда
МенеджерЗаписи.Поле10 = Поле10;
Попытка
МенеджерЗаписи.Записать();
Исключение
ТекстСообщения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление информационной базы'"), УровеньЖурналаРегистрации.Ошибка,,, ТекстСообщения);
КонецПопытки;
КонецЕсли;
ОбработкаПрерыванияПользователя();
КонецЦикла;
</pre>