Обновить существующие страны мира. Обновляем только существующие элементы стран мира по классификатору.
// Обновляем только существующие элементы стран мира по классификатору.
Процедура ОбновитьСуществующиеСтраныМира() Экспорт
Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") = Неопределено Тогда
Возврат;
КонецЕсли;
ВсеОшибки = "";
Добавлять = Ложь;
Фильтр = Новый Структура("Код");
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
// Сравнивать в запросе нельзя из-за возможной регистронезависимости базы данных.
Для Каждого СтрокаКлассификатора Из МодульРаботаСАдресами.ТаблицаКлассификатора() Цикл
Фильтр.Код = СтрокаКлассификатора.Код;
Выборка = Справочники.СтраныМира.Выбрать(,, Фильтр);
СтранаНайдена = Выборка.Следующий();
Если Не СтранаНайдена И Добавлять Тогда
// Добавление страны
Страна = Справочники.СтраныМира.СоздатьЭлемент();
ИначеЕсли СтранаНайдена И (
Выборка.Наименование <> СтрокаКлассификатора.Наименование
Или Выборка.КодАльфа2 <> СтрокаКлассификатора.КодАльфа2
Или Выборка.КодАльфа3 <> СтрокаКлассификатора.КодАльфа3
Или Выборка.НаименованиеПолное <> СтрокаКлассификатора.НаименованиеПолное) Тогда
// Изменение страны
Страна = Выборка.ПолучитьОбъект();
Иначе
Продолжить;
КонецЕсли;
НачатьТранзакцию();
Попытка
Если Не Страна.ЭтоНовый() Тогда
ЗаблокироватьДанныеДляРедактирования(Страна.Ссылка);
КонецЕсли;
ЗаполнитьЗначенияСвойств(Страна, СтрокаКлассификатора, "Код, Наименование, КодАльфа2, КодАльфа3, НаименованиеПолное");
Страна.ДополнительныеСвойства.Вставить("НеПроверятьУникальность");
Страна.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
Инфо = ИнформацияОбОшибке();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Ошибка записи страны мира %1 (код %2) при обновлении классификатора, %3'"),
Выборка.Код, Выборка.Наименование, КраткоеПредставлениеОшибки(Инфо));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка,,,
ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(Инфо));
ВсеОшибки = ВсеОшибки + Символы.ПС + ТекстОшибки;
КонецПопытки;
КонецЦикла;
Если Не ПустаяСтрока(ВсеОшибки) Тогда
ВызватьИсключение СокрЛП(ВсеОшибки);
КонецЕсли;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
СтранаМираОбработкаВыбора (БСП)
ДанныеКлассификатораСтранМираПоНаименованию (БСП)
СтранаМираПоКодуИлиНаименованию (БСП)
СтранаМираПоДаннымКлассификатора (БСП)
КоллекцияСтранМираПоДаннымКлассификатора (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)