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

07.04.18

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

С 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 Классификатор банков РБ

См. также

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

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

3588 руб.

29.07.2021    22334    14    22    

15

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

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

1 стартмани

28.07.2022    2434    0    A1WEB    0    

3

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

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

1 стартмани

31.05.2021    6763    5    user729873    0    

2

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

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

1 стартмани

02.02.2021    13203    48    zaic    9    

8

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

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

1 стартмани

20.01.2021    9008    5    serpent    2    

3

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

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

1 стартмани

16.11.2020    11247    5    igor_1c    6    

3

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

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

2 стартмани

28.09.2020    14093    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);
	Возврат Истина;
КонецФункции	// Загрузить
Показать
by_1Cnik; svilsa; +2 Ответить
3. by_1Cnik 236 30.07.21 15:23 Сейчас в теме
4. svilsa 12 05.08.21 12:04 Сейчас в теме
(3) Да, поменялся адрес ресурса, пришлите в личку почту, вышлю новую версию. Будет 2 файла: для разных версий windows.
5. by_1Cnik 236 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
Оставьте свое сообщение