Создание банков из классификатора банков. БП3
Понадобилось создавать банки по БИК.
В БП есть справочник КлассификаторБанков с синонимом «Справочник БИК».
Но автоматом банки из него не переносятся.
Поэтому если банк не найден, я его создаю из классификатора. А если и в классификаторе нет, создаю с названием «БИК ХХХХХ» в корне:

Уточню, что БИК в обоих справочниках («Банки» и «Справочник БИК») хранится в поле Код.
Вот код для Обновлятора:
//Ищем банк по БИК
Банк = v8.Справочники.Банки.НайтиПоКоду(БИК);
Если НЕ v8.ЗначениеЗаполнено(Банк) Тогда
Сообщить("Банк с БИК: " + БИК + " не найден!");
//Создаем по классификатору, если там заполнено
КлассификаторБанкаСсылка = v8.Справочники.КлассификаторБанков.НайтиПоКоду(БИК);
Если v8.ЗначениеЗаполнено(КлассификаторБанкаСсылка) Тогда
Сообщить("Банк с БИК: " + БИК + " найден в классификаторе: " + v8.String(КлассификаторБанкаСсылка) + ". Будет создан из классификатора!");
М = v8.NewObject("Массив"); М.Добавить(КлассификаторБанкаСсылка);
v8.РаботаСБанкамиБП.ПодобратьБанкИзКлассификатора(М, Истина);
Банк = v8.Справочники.Банки.НайтиПоКоду(БИК); //Повторно ищем банк по коду после создания
КонецЕсли;
//Если все же не загрузили из классификатора или не нашли, создаем
Если НЕ v8.ЗначениеЗаполнено(Банк) Тогда
Сообщить("Банк с БИК: " + БИК + " будет создан!");
БанкОбъект = v8.Справочники.Банки.СоздатьЭлемент();
БанкОбъект.Код = БИК;
БанкОбъект.Наименование = "БИК: " + БИК;
БанкОбъект.Записать();
Банк = БанкОбъект.Ссылка;
КонецЕсли;
КонецЕсли;
Если классификатор банков обновить, и создать заново банк с таким БИК, он создастся, но уже в нужной группе региона, возникнет дубль:

Поэтому лучше все же банк с таким же БИК не создавать. Только из классификатора. 1С не предусмотрела поддержание уникальности БИК, к сожалению.
Среда: БП 3.0.176.38 Объем: 1 час




Свежие комментарии