Обновление / загрузка классификаторов банка из zip-архива для давно не обновлявшихся баз 1С

25.11.21

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

И старые версии 1С:Бухгалтерия - имеют право на новые классификаторы банков!!!))

Файлы

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

Наименование Скачано Купить файл
Обновление/Загрузка классификаторов банка из zip-архива для "ДавноНеОбновлявшихся1с":
.epf 16,22Kb
9 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

1С:Бухгалтерия,например, версии 3.70.50 и до 80-х версий - распознавание зашифрованных банковских счетов  у них старенькое и, соответственно, обработка, вшитая в типовую 1С:Бухгалтерию,- так же старенькая....

А с начала этого (2021г) - бюджетники (налоговая и иже с ними) перешли на новые счета в своих банках (у них поменялся корр.счет и сам расчетный счет)...

Так вот, если у Вас типовая 1С:Бухгалтерия застыла в старых версиях и пока НИКАК не может обновиться, например, по причине  сильной переписки типовой конфигурации, то стандартными обработками, вшитыми в конфигурацию, - невозможно обновить Классификатор банков, а следовательно в бухгалтерии - не смогут создать новые расчетные банковские счета для контрагентов, таким образом бухгалтерам придется вручную в клиент банке рисовать платежки...

Здесь на Инфостарте есть парочка готовых обработок, которые могут загружать Классификаторы Банков не только с сайта 1С, но с РБК и др. Я выбрала вот эту: //infostart.ru/public/1208625/

Но оказалось, что данная обработка не может помочь мне загрузить из интернета ни с сайта 1с ни с сайта РБК....может потому что у меня серверный вариант базы, но пробовала и на файловой - нет, нужно дописать код корректной загрузки с сайта, если кто шарит, то дорисуйте - будет здорово.

Меня вполне устраивала загрузка не с сайта, а напрямую из zip-архива на компьютере (просто я заранее залила на комп архивы из 1с и с РБК - см. скрин как из 1С слить архив банка:

 

 

). Но здесь появилась следующая проблема: скаченная обработка обращается к готовой ТИПОВОЙ обработке "ЗагрузкаКлассификатораБанков"......а у меня конфигурация старая и переписанная - у меня изначально в конфигурации эта обработка старая и, конечно, она не будет работать!....какой тогда смысл?

Нашла выход: установила свежую версию демо 1С:Бухгалтерия - и по кусочкам затягивала в исходную скачанную обработку - программный код из типовой обработки "ЗагрузкаКлассификатораБанков" свежей версии 1сБух. Все четко! Получилось загрузить из архива Классификатор Банков!!!! Ураааа!!!

Но, внутри моей версии 1С: 1) старый распознаватель расшифровки банковских счетов; 2) в справочнике Классификатор Банков - не хватает нового реквизита БИКРКЦ.....................ну и ладно, так как конфигурация у нас все равно уже переписанная, то чуток нашего кода ей уже не повредит))

Итак, начнем: в нашей конфигурации открываем справочник "КлассификаторБанков" и добавляем новый реквизит БИКРКЦ, тип которого ссылка на этот же справочник (см. скрин)

 

 

Далее, открываем в конфигураторе справочник"БанковскиеСчета", открываем форму Элемента, далее модуль формы, находим Процедуру ПередЗаписью(), там идет обращение к другой процедуре БанковскиеСчетаФормыКлиент.ПередЗаписью(Объект.НомерСчета, БИКБанка, Объект.Ссылка, Отказ), правая клавиша мышки на эту процедуру и "Перейти к определению", нас переносит в Общий модуль на следующую процедуру ПередЗаписью(НомерСчета, БИКБанка, СсылкаНаОбъект, Отказ) Экспорт, внутри этой процедуры - есть обращение к функции БанковскиеПравила.ЭтоКорректныйСчетБанкаРФ(НомерСчета, БИКБанка), вновь кликаем по ней правой кнопкой мышки-"Перейти к определению"-летим внутрь этой функции, а внутри нее - еще одно обращение к другой функции ЭтоКорректныйСчетБанкаРФ(НомерСчета, КодБанка) Экспорт, летим вновь внутрь этой и видим ссылку еще на одну функцию ПроверитьКонтрольныйКлючВНомереБанковскогоСчета(НомерСчета, КодБанка), прыгаем в нее, и вуа ля! то, что мы искали!!! 

Теперь все, что находится внутри функции ПроверитьКонтрольныйКлючВНомереБанковскогоСчета(НомерСчета, КодБанка) - затираем (ставим // вначале каждой строки), и копируйте вот отсюда код и вставляйте его внутрь функции:

	// Письмо ЦБР от 8 сентября 1997 г. N 515
	
	Если СтрокаСоответствуетФормату = Неопределено Тогда
		СтрокаСоответствуетФормату = СтрокаСоответствуетФорматуБанковскогоСчета(НомерСчета);
	КонецЕсли;
	
	Если Не СтрокаСоответствуетФормату Тогда
		Возврат Ложь;
	КонецЕсли;
	
	Если Не ПроверитьДлинуБИК(БИК) Тогда
		Возврат Ложь;
	КонецЕсли;
	
	Если Не ПроверитьДлинуНомераСчета(НомерСчета) Тогда
		Возврат Ложь;
	КонецЕсли;
	
	Если ЭтоБИКТОФК(БИК) И ЭтоКазначейскийСчет(НомерСчета) Тогда
		// Ключевание не предусмотрено.
		Возврат Истина;
	КонецЕсли;
	
	// 2. Для расчета контрольного ключа используется совокупность двух реквизитов - 
	// условного номера РКЦ (если лицевой счет открыт в РКЦ)
	// или кредитной организации (если лицевой счет открыт в кредитной организации)
	// и номера лицевого счета.
	
	// 3. Значение трехзначного условного номера РКЦ соответствует разрядам 5 и 6 
	// банковского идентификационного кода (БИК), дополненным слева нулем до трех разрядов.
	// 4. Значение условного номера кредитной организации соответствует разрядам 7, 8 и 9 БИК.
	
	Если ЭтоОтделениеЦентральногоБанка(БИК) Тогда
		УсловныйНомер = "0" + Сред(БИК, 5, 2);
	Иначе
		УсловныйНомер = Сред(БИК, 7, 3);
	КонецЕсли;
	
	Если Не СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(УсловныйНомер) Тогда
		Возврат Ложь;
	КонецЕсли;
	
	//        Контрольный ключ (К)
	//        ^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^88;   Порядковые номера разрядов ^72;^72;^72;^72;^72;^72;^88;
	//   ^84;^72;_16;^72;_16;^72;^88; ^84;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;_24;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;^88;  ^74;
	//   ^74;1^74;2^74;3^74; ^74;1^74;2^74;3^74;4^74;5^74;6^74;7^74;8^74;9^74;10^74;11^74;12^74;13^74;14^74;15^74;16^74;17^74;18^74;19^74;20^74;<^72;^96;
	//   ^92;^72;_24;^72;_24;^72;^96; ^92;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;^96;
	//   ^74;     ^74; ^74;        Номер лицевого счета                      ^74;
	//   ^74;     ^74; ^92;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^96;
	//   ^74;     ^92;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;
	//   ^74;  Условный номер РКЦ или кредитной организации
	//   ^92;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;
	
	ВсеСимволы = УсловныйНомер + НомерСчета;
	ТипЧисло   = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
	ПроверяемыйНаборЦифр = Новый Массив(23);
	Для НомерСимвола = 1 По 23 Цикл
		Цифра = ТипЧисло.ПривестиЗначение(Сред(ВсеСимволы, НомерСимвола, 1));
		ПроверяемыйНаборЦифр[НомерСимвола-1] = Цифра;
	КонецЦикла;
	
	// 8. При наличии алфавитного значения в 6-ом разряде лицевого счета 
	// (в случае использования клиринговой валюты) данный символ заменяется на соответствующую цифру:

	// ^84;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;_16;^72;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;^88;
	// ^74;Допустимое алфавитное значение 6-го разряда^74; А^74;В^74;С^74;Е^74;Н^74;К^74;М^74;Р^74;Т^74;Х^74;
	// ^74;номера лицевого счета                      ^74;  ^74; ^74; ^74; ^74; ^74; ^74; ^74; ^74; ^74; ^74;
	// _00;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;_32;^72;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_08;
	// ^74;Соответствующая цифра                      ^74; 0^74;1^74;2^74;3^74;4^74;5^74;6^74;7^74;8^74;9^74;
	// ^92;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;_24;^72;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;^96;

	// После выполнения замены расчет и проверка значения контрольного ключа производится в соответствии с п. 6 и п. 7.
	
	АлфавитныйСимвол = Сред(НомерСчета, 6, 1);
	Если Не СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(АлфавитныйСимвол) Тогда
		ЦифраШестогоРазряда = СтрНайти(ДопустимыеАлфавитныеСимволыНомераБанковскогоСчета(), АлфавитныйСимвол);
		Если ЦифраШестогоРазряда = Неопределено Тогда
			Возврат Ложь;
		КонецЕсли;
		ЦифраШестогоРазряда = ЦифраШестогоРазряда - 1;
		ПроверяемыйНаборЦифр[3+6] = ЦифраШестогоРазряда;
	КонецЕсли;
		
	// 5. Контрольный ключ рассчитывается с использованием весовых коэффициентов,
	// устанавливаемых каждому разряду.

	//                                 Порядковые номера разрядов ^72;^72;^72;^72;^72;^72;^88;
	//    ^84;^72;_16;^72;_16;^72;^88; ^84;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;_16;^72;^72;^88;  ^74;
	//    ^74;1^74;2^74;3^74; ^74;1^74;2^74;3^74;4^74;5^74;6^74;7^74;8^74;9^74;10^74;11^74;12^74;13^74;14^74;15^74;16^74;17^74;18^74;19^74;20^74;<^72;^96;
	//    _00;^72;_32;^72;_32;^72;_08; _00;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_32;^72;^72;_08;
	// ^84;^72;>^74;7^74;1^74;3^74; ^74;7^74;1^74;3^74;7^74;1^74;3^74;7^74;1^74;3^74; 7^74; 1^74; 3^74; 7^74; 1^74; 3^74; 7^74; 1^74; 3^74; 7^74; 1^74;
	// ^74;  ^92;^72;_24;^72;_24;^72;^96; ^92;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;_24;^72;^72;^96;
	// ^74;
	// ^92;^72;^72; Весовые коэффициенты
	
	ВесовыеКоэффициенты = Новый Массив;
	ВесовыеКоэффициенты.Добавить(7);
	ВесовыеКоэффициенты.Добавить(1);
	ВесовыеКоэффициенты.Добавить(3);
	
	// 7. Алгоритм проверки правильности расчета контрольного ключа:
	// 7.1. Рассчитываются произведения значений разрядов на соответствующие весовые коэффициенты 
	// с учетом контрольного ключа.
	// 7.2. Рассчитывается сумма младших разрядов полученных произведений.
	
	Сумма = 0;
	Для Разряд = 0 По 22 Цикл
		ИндексВесовогоКоэффициента = Разряд % 3;//3%3=0, 4%3=1, 5%3=2
		ВесовойКоэффициент = ВесовыеКоэффициенты[ИндексВесовогоКоэффициента];
		Произведение  = ПроверяемыйНаборЦифр[Разряд] * ВесовойКоэффициент;
		МладшийРазряд = Произведение % 10;
		Сумма = Сумма + МладшийРазряд;
	КонецЦикла;
	
	// При получении суммы, кратной 10 (младший разряд равен 0), 
	// значение контрольного ключа считается верным.

	Возврат Сумма % 10 = 0;
	
//******************************************

новый код обращается еще к двум функциям, которых в старой конфигурации нету, поэтому прямо сразу после нашей измененной функции  ПроверитьКонтрольныйКлючВНомереБанковскогоСчета(НомерСчета, КодБанка), копируем и вставляем вот эти пару функций:

Функция ЭтоБИКТОФК(КодБанка) Экспорт  
	
	ПервыеЦифрыБИК = Лев(КодБанка, 2);
	
	Результат = ПроверитьДлинуБИК(КодБанка)
		И (ПервыеЦифрыБИК = "00" Или ПервыеЦифрыБИК = "01" Или ПервыеЦифрыБИК = "02");
	
	Возврат Результат;
	
КонецФункции

Функция ЭтоКазначейскийСчет(НомерСчета) Экспорт
	
	Возврат СтрНачинаетсяС(НомерСчета, "0");
	
КонецФункции

Все, жмите F7 и запускайте пользовательский режим. Откройте мою внешнюю обработку "Загрузка классификаторов банка" - выбирайте ТОЛЬКО из файла (предварительно скачайте эти файлы: хоть с РБК, хоть с 1С), укажите путь - где находится ваш zip-архив, жмите кнопку "Загрузить" - все загрузится.

 

 

Далее в клиента вбиваете новый вид банковского счета - и замечательно проходит проверка и записывается банковский счет!

 

 

п.с. специально не стала убирать переключатель на загрузку с сайта - возможно, что кто-нибудь набросает рабочий код на загрузку с сайта, и будет вообще красота!)

***

п.с. тестировалась данная обработка на ЗУП редакции 3.0.70.50 - работает! на редакции 3.0.88.22 - летает!) а с последнего релиза на сегодня 3.0.105.31 - были взяты архивы Классификаторов Банка на сайте ИТС.

Вступайте в нашу телеграмм-группу Инфостарт

Бухгалтерия программный код загрузка Классификатора банка для старых версий начинающего программиста помощь бухгалтеру

См. также

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Устали вручную дозаполнять и корректировать документы по банку после загрузки банковской выписки? С помощью правил обработки банковской выписки вы сможете автоматически определять правильный вид хозяйственной операции, заполнять расшифровку, аналитику платежа и многое другое.

19520 руб.

21.03.2023    22356    155    34    

120

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Мастера заполнения Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки, и оно автоматически применится при загрузке выписки, экономя ваше время (Можно настроить отбор по любому реквизиту или по регулярному выражению). Решение позволяет автоматически заполнять расшифровку платежа, исключать загрузку ненужных документов (дублей) из банка, заполнять комиссию за эквайринг и многое другое. Вам не нужно доплачивать за алгоритмы, они уже включены в решение. Автоматическая обработка применяется при загрузке данных как из файлов клиент банка, так и через DirectBank. Доступен AI чат бот который умеет консультировать по функционалу решения.

15250 руб.

20.12.2024    14899    65    27    

62

Банковские операции Обмен с интернет-банком Бухгалтер 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Беларусь Россия Бухгалтерский учет Платные (руб)

Типовая обработка "Клиент-банк" из конфигурации 1С "Бухгалтерия для Беларуси, редакция 2.1" корректно работает с выписками только банка "Дабрабыт", до 28.01.2019 "Москва-Минск". А бухгалтеру нужно работать и с другими банками и с другими конфигурациями. Для этого было разработано расширение, которое позволит решить данную проблему!

12200 руб.

10.10.2017    42245    96    49    

81

Банковские операции Обмен с ГосИС Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Обработка для выгрузки платежных поручений из конфигураций 1С:БП 3.0 и ERP/КА в банк Департамента финансов г. Москвы. Поддерживается выгрузка в текстовом и XML-форматах.

19520 руб.

15.06.2020    26235    86    42    

61

Обмен с интернет-банком Банковские операции Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Модуль представляет собой комплексную автоматизацию обмена данными 1С с банком для БП 3.0, ERP 2.4, ERP 2.5. Выписка клиент-банка загружается и обрабатывается по Вашим правилам. Заполнение реквизитов документов, анализ назначения платежа. Работа с клиент банком не отличается от типового варианта, а документы автоматически заполняются так, как нужно вам. Дополнительная обработка, работающая совместно с основным расширением позволяет подключать собственные произвольные алгоритмы.

20740 руб.

03.04.2013    132176    266    378    

170

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9760 руб.

17.06.2025    3215    9    0    

8

Банковские операции Обмен с интернет-банком Загрузка и выгрузка в Excel Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Обработка создания файла по стандарту обмена с системами "Клиент банка" kl_to_1c.txt Формат файла обмена Российская Федерация, версия 1.03 При восстановлении учета в случае отсутствия в 1с банковских выписок (например, р/с в банке закрыт в связи с банкротством и доступ к выгрузке из клиент-банка невозможен), можно запросить у банка выписку за период в формате Excel. С помощью этой обработки создается файл формата 1CClientBankExchange, в 1с77 он назывался kl_to_1c.txt который загружается штатными средствами в 1с8. При этом будут созданы загружаемые контрагенты и их р/с.

5612 руб.

19.04.2019    49167    169    54    

103
Для отправки сообщения требуется регистрация/авторизация