#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
Результат.Добавить("*");
Возврат Результат;
КонецФункции
Функция ПоляЕстественногоКлюча() Экспорт
Результат = Новый Массив();
Результат.Добавить("Код");
Результат.Добавить("КоррСчет");
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Возврат;
КонецЕсли;
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| КлассификаторБанков.Ссылка
|ИЗ
| Справочник.КлассификаторБанков КАК КлассификаторБанков
|ГДЕ
| НЕ КлассификаторБанков.ЭтоГруппа
| И КлассификаторБанков.КодСтраны = """"
| И КлассификаторБанков.УдалитьСтрана <> &ПустаяСсылкаСтраны";
МодульУправлениеКонтактнойИнформациейСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейСлужебный");
ПустаяСсылкаСправочникаСтраныМира = МодульУправлениеКонтактнойИнформациейСлужебный.ПустаяСсылкаСправочникаСтраныМира();
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ПустаяСсылкаСтраны", ПустаяСсылкаСправочникаСтраныМира);
Банки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Банки);
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Возврат;
КонецЕсли;
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат
КонецЕсли;
ОбъектовОбработано = 0;
ПроблемныхОбъектов = 0;
МодульУправлениеКонтактнойИнформациейСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейСлужебный");
КодыСтран = МодульУправлениеКонтактнойИнформациейСлужебный.КодыСтран();
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.КлассификаторБанков");
Пока Выборка.Следующий() Цикл
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.КлассификаторБанков");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
Банк = Выборка.Ссылка.ПолучитьОбъект();
Банк.КодСтраны = КодыСтран[Банк.УдалитьСтрана];
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Банк);
ОбъектовОбработано = ОбъектовОбработано + 1;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ВызватьИсключение;
КонецПопытки;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.КлассификаторБанков");
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обработать некоторых участников расчетов (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
Иначе
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, Метаданные.Справочники.КлассификаторБанков,,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Обработана очередная порция участников расчетов печати: %1'"),
ОбъектовОбработано));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецЕсли