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

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

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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);
	Возврат Истина;
КонецФункции	// Загрузить
Показать
Оставьте свое сообщение
Вопросы с вознаграждением