Загрузка справочника БИК банков с сайта Национального банка Республики Беларусь http://www.nbrb.by для конфигураций 1С 7.7 используя AddIn.V7HttpReader с разбором файла ответа в формате JSON

07.04.18

Учетные задачи - Банковские операции

Обработка для загрузки справочника БИК банков с сайта Национального банка Республики Беларусь. Пример скачивания файла из интернет из 1С 7.7, пример простого разбора файла JSON из 1С 7.7.

Скачать файлы

Наименование Файл Версия Размер
Загрузка справочника БИК банков с сайта Нацонального банка Республики Беларусь http://www.nbrb.by для конфигураций 1С 7.7 используя AddIn.V7HttpReader с разбором файла ответа в формате JSON:
.ert 42,50Kb
4
.ert 42,50Kb 4 Скачать

С 4 июля 2017г. в Республике Беларусь осуществлен переход на международный формат номера банковского счета IBAN (International Bank Account Number) и новые банковские идентификационные коды банков BIC (Bank Identifier Code). На сайте Национального банка Республики Беларусь представлен перечень действующих БИК банков, с описанием АPI по справочнику БИК можно ознакомиться по ссылке: http://www.nbrb.by/apihelp/bic. Файл-ответ с сайта содержит файл в формате JSON.

Обработка получает файл-ответ в формате JSON c сайта (используется внешняя компонента v7plus.dll), разбирает файл JSON и записывает новые банки в справочник банков конфигурации 1С 7.7.

Обработка тестировалось на версиях конфигураций 1С 7.7 Юкола. Бухгалтерский учет. Типовая настройка для РБ; Мисофт. Бухгалтерский учет, редакция 4,5.

//Вспомогательная функция
Функция ПреобразоватьСтрокуИзУТФ8(Стр) 
	Длина = СтрДлина(Стр); 
	Итог = ""; 
	Для Н=1 По Длина Цикл 
		Знак = Сред(Стр, Н, 1); 
		Код = КодСимв(Знак); 
		Если Код < 128 Тогда 
			Итог = Итог + Знак; 
		ИначеЕсли (Код >= 128) И (Код < 192) Тогда 
		Иначе 
			Н = Н + 1; 
			Знак2 = Сред(Стр,Н,1); 
			Код2 = КодСимв(Знак2); 
			Если Код = 208 Тогда 
				Итог=Итог + Симв(КодСимв("А")  +Код2 - 144); 
			ИначеЕсли Код = 209 Тогда 
				Итог=Итог + Симв(КодСимв("р") + Код2 - 128); 
			КонецЕсли; 
		КонецЕсли; 
	КонецЦикла; 
	Возврат Итог; 
КонецФункции 

Процедура Сформировать()
	///**** 1 **** Подключить внешнюю компоненту
	Если ЗагрузитьВнешнююКомпоненту("v7plus.dll") <> 1 Тогда
        Сообщить("Компонента v7plus.dll не найдена!");
        Возврат;
    КонецЕсли;
    ///**** 1 ****
	
	///**** 2 **** Скачать файл из интернета средствами 1С 7.7
    HTTPСоединение=СоздатьОбъект("AddIn.V7HttpReader");
    URL ="http://www.nbrb.by/API/BIC"; 
	//Описание API: http://www.nbrb.by/apihelp/bic
    ИмяФ = КаталогВременныхФайлов() + "bic.txt"; 
    Попытка
        HTTPСоединение.ПолучитьКакФайл(URL, ИмяФ);
    Исключение
        Ответ = HTTPСоединение.СтрокаСостоянияОтвета;
        Сообщить(Ответ);
        Возврат;
    КонецПопытки;
	///**** 2 ****
	 
	///**** 3 **** Разобрать файл JSON программно из 1С 7.7, заполнить ТаблицуЗначений
	//Образец описания банка в формате JSON
	//{"typ":"Банк","CDBank":"ABLTBY22","CDHeadBank":"ABLTBY22","NrBank":"898","BICStatus":"0",
	//"NmBankShort":"ЗАО 'АБСОЛЮТБАНК'","AdrBank":"Г.МИНСК","CdControl":null,"DtControl":null,"CdBankSuccessor":null} 
	ТЗ = СоздатьОбъект("ТаблицаЗначений");
	ТЗ.НоваяКолонка("КодБанка"); 
	ТЗ.НоваяКолонка("НомерБанка");
	ТЗ.НоваяКолонка("НазваниеБанка");
	ТЗ.НоваяКолонка("АдресБанка");
	Файл = СоздатьОбъект("Текст");
	Файл.Открыть(ИмяФ);
	Файл.КодоваяСтраница(1);
	Для инд = 1 По Файл.КоличествоСтрок() Цикл
		Стр = Файл.ПолучитьСтроку(инд); 
		Стр = ПреобразоватьСтрокуИзУТФ8(Стр);
		НачалоБанка = Найти(Стр, "{");
		Пока НачалоБанка > 0 Цикл 
			КонецБанка = Найти(Стр, "}");
			СтрокаБанка = Сред(Стр, НачалоБанка, КонецБанка - НачалоБанка + 1);
			Стр = СтрЗаменить(Стр, СтрокаБанка, "");
			НачалоБанка = Найти(Стр, "{");
			
			ТЗ.НоваяСтрока();
			
			Нач = Найти(СтрокаБанка, "CDBank");
			Кон = Найти(СтрокаБанка, "CDHeadBank");
			ТЗ.КодБанка = Сред(СтрокаБанка, Нач + 9, Кон - Нач - 12);  
			
			Нач = Найти(СтрокаБанка, "NrBank");
			Кон = Найти(СтрокаБанка, "BICStatus");
			ТЗ.НомерБанка = Сред(СтрокаБанка, Нач + 9, Кон - Нач - 12);
			
			Нач = Найти(СтрокаБанка, "NmBankShort");
			Кон = Найти(СтрокаБанка, "AdrBank");
			ТЗ.НазваниеБанка = Сред(СтрокаБанка, Нач + 14, Кон - Нач - 17);
			
			Нач = Найти(СтрокаБанка, "AdrBank");
			Кон = Найти(СтрокаБанка, "CdControl");
			ТЗ.АдресБанка = Сред(СтрокаБанка, Нач + 10, Кон - Нач - 13);
			
		КонецЦикла;
	КонецЦикла;
	///**** 3 ****
	
	///**** 4 **** Записать новые банки Республики Беларусь в справочник банков 1С 7.7 (МИСОФТ/ЮКОЛА)
	Банки = СоздатьОбъект("Справочник.Банки");
	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку() = 1 Цикл
		Если Банки.НайтиПоКоду(ТЗ.КодБанка) <> 0 Тогда
			Продолжить; //Банк уже существует в справочнике
		КонецЕсли;                                         
		Банки.Новый();
		Банки.Код = ТЗ.КодБанка;
		Банки.Наименование = ТЗ.НазваниеБанка;
		Банки.Адрес = ТЗ.АдресБанка;
		Банки.Записать();
		Сообщить("Загружен банк " + Тз.НазваниеБанка + " " + ТЗ.КодБанка);
	КонецЦикла;
	///**** 4 ****

	ФС.УдалитьФайл(ИмяФ);

КонецПроцедуры

Загрузка файла из интернет программно 1С 7.7 HTTPСоединение JSON Классификатор банков РБ

См. также

Загрузка банковской выписки для 1С 7.7 любой конфигурации

Банковские операции Загрузка и выгрузка в Excel Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Платные (руб)

Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.

3588 руб.

29.07.2021    20600    13    22    

14

Печать выписки с упорядоченными суммами (1С 7.7)

Банковские операции Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Абонемент ($m)

Обработка позволяет печатать банковскую выписку с упорядочиванием сумм по дебету и кредиту.

1 стартмани

28.07.2022    2341    0    morin    0    

3

Загрузка курсов валют с НБУ (Украина) в 1С 7.7

Банковские операции WEB-интеграция Платформа 1С v7.7 Конфигурации 1cv7 Украина Абонемент ($m)

Загрузка курсов валют в 1С 7.7 с сайта НБУ (Украина), используя "Msxml2.ServerXMLHTTP.6.0"

1 стартмани

31.05.2021    6539    5    user729873    0    

2

Загрузка банков Федерального казначейства для конфигураций 1С 7.7 ПУБ и Бухгалтерия из нового формата классификатора БИК

Банковские операции Платформа 1С v7.7 1С:Бухгалтерия 7.7 1С:Производство+Услуги+Бухгалтерия Россия Бухгалтерский учет Абонемент ($m)

Загрузка банков Федерального казначейства для конфигураций 1С 7.7 ПУБ и Бухгалтерия из нового формата классификатора БИК. Обработка разбирает файл JSON и записывает новые банки в справочник банков конфигурации 1С 7.7.

1 стартмани

02.02.2021    12873    45    zaic    9    

8

Загрузка БИКов из JSON для 1c7.7

Банковские операции Файловый обмен (TXT, XML, DBF), FTP Оперативный учет 7.7 1С:Комплексная 7.7 Россия Бухгалтерский учет Абонемент ($m)

При переходе на Казначейские счета стандартная загрузка классификаторов банков с сайта rbc.ru не работает так, как хочется. Данная обработка решает эту проблему.

1 стартмани

20.01.2021    8830    4    serpent    2    

2

Загрузка курсов валют с сайта Нацбанка Республики Беларусь (МиСОФТ 1С 7.7 )

Банковские операции WEB-интеграция Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Беларусь Бухгалтерский учет Абонемент ($m)

Изменились правила загрузки курсов валют с сайта Нацбанка Республики Беларусь. Обновление обработки типовой загрузки курсов валют в конфигурации бухгалтерии 1С 7.7 Мисофт.

1 стартмани

16.11.2020    10893    5    igor_1c    6    

3

Загрузка курсов валют с сайта НБРБ по защищенному протоколу HTTPS для 1С 7.7

Банковские операции WEB-интеграция Платформа 1С v7.7 Конфигурации 1cv7 Беларусь Абонемент ($m)

В связи с переходом Национального банка РБ с сентября 2020 на защищенный протокол HTTPS внесены изменения в обработку загрузки курсов валют с сайта Национального банка РБ для 1С 7.7.

2 стартмани

28.09.2020    13738    12    dimitryas    29    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Dnki 4 03.09.18 00:57 Сейчас в теме
Благодарю за идею - не знал про API сайта.
Скачиваю в знак благодарности.
Как замечание могу только сказать: из всего списка банков есть несколько со статусом "Закрыт", "Ликвидирован". Вы их обрабатываете как нормальные банки.
2. Dnki 4 03.09.18 01:11 Сейчас в теме
А здорово, когда есть в распоряжении инструменты! Набросал аналог на 8-ке:
Функция Загрузить()
	
	//	Запрос
	Соединение = Новый HTTPСоединение("www.nbrb.by");
	Попытка
	АшТТП_Ответ		= Соединение.Получить(Новый HTTPЗапрос("/API/BIC"));
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат Ложь;
	КонецПопытки;
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(АшТТП_Ответ.ПолучитьТелоКакСтроку());
	Т_Массив = ПрочитатьJSON(ЧтениеJSON, Ложь);
	
	//	Разбор
	КолНов = 0;
	КолУдл = 0;
	СпрМен = Справочники.Банки;
	Для каждого ТекЭлемент Из Т_Массив Цикл
		Т_Статус= ТекЭлемент.CdControl;
		Т_Удл	= (СтрНайти("ЛИКВ,ЗАКР", Т_Статус) > 0);
		Т_БИК	= ТекЭлемент.CdBank;
		
		//	Поиск
		СпрСылка = СпрМен.НайтиПоКоду(Т_БИК);
		
		//	Есть
		Если ЗначениеЗаполнено(СпрСылка) Тогда
			Если Т_Удл И НЕ СпрСылка.ПометкаУдаления Тогда
				СпрОбъект = СпрСылка.ПолучитьОбъект();
				СпрОбъект.УстановитьПометкуУдаления(Истина);
				Увеличить(КолУдл);
			КонецЕсли;

		//	Нету
		Иначе
			Если НЕ Т_Удл Тогда
				СпрОбъект = СпрМен.СоздатьЭлемент();
				СпрОбъект.Код			= Т_БИК;
				СпрОбъект.Наименование	= ТекЭлемент.NmBankShort;
				СпрОбъект.Адрес			= ТекЭлемент.AdrBank;
				Попытка
				СпрОбъект.Записать();
				Исключение
					Сообщить(ОписаниеОшибки());
				КонецПопытки;
				Увеличить(КолНов);
			КонецЕсли;
		КонецЕсли;	// ЗначениеЗаполнено(СпрСылка)
	КонецЦикла;	// Т_Массив

	Предупреждение("Новых: "+ КолНов+ Символы.ПС+ "Удалено: "+ КолУдл, 10);
	Возврат Истина;
КонецФункции	// Загрузить
Показать
1v7; svilsa; +2 Ответить
3. 1v7 235 30.07.21 15:23 Сейчас в теме
4. svilsa 12 05.08.21 12:04 Сейчас в теме
(3) Да, поменялся адрес ресурса, пришлите в личку почту, вышлю новую версию. Будет 2 файла: для разных версий windows.
5. 1v7 235 05.08.21 12:06 Сейчас в теме
(4) Спасибо за ответ. Можно сюда прислать: milkprom2000 собачка ya.ru
6. user1075873 05.07.22 20:30 Сейчас в теме
(4) можно и мне? smishas собачка mail.ru
7. svilsa 12 06.07.22 11:24 Сейчас в теме
(6)
smishas собачка mail.ru
Отправила
8. user1075873 06.07.22 12:22 Сейчас в теме
(7) прошу прощения, не правильно адрес указал(( smishas собачка inbox.ru
Оставьте свое сообщение