Проверка счетов IBAN Беларусь

12.06.17

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

С 04.07.2017 в Беларуси вводится новая нумерация банковских счетов. Обработка поможет расчитать контрольную цифру, и проверить введенный счет на правильность. + Небольшое количество инфы по переходу

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Проверка счетов IBAN Беларусь:
.epf 6,45Kb
4
4
1 SM
Скачать Купить за 1 850 руб.

Итак. Официально и обо всем можно прочитать здесь: https://www.nbrb.by/payment/IBANBIC

О порядке расчета контрольной цифры и порядке проверки счета: https://www.nbrb.by/Legislation/documents/P_440.pdf

Таблица соответствия текущих банковских кодов кодам BIC лежит здесь: https://www.nbrb.by/payment/IBANBIC/ConformanceTableBICOldAndNew.docx

09.06.2017 Нацбанк опубликовал инструмент для пакетной обработки счетов старых в новые: http://iban.bisc.by/

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

Обработка умеет расчитывать контрольную цифру, а также проверять счет на правильность.

Часто можно увидеть некоторую корреляцию между старыми и новыми счетами, но у различных банков она разная. Инвестбанк, судя по всему, вообще выдал новые номера.

Ниже я выкладываю код обработки для тех кто любит все бесплатно, но при наличии у вас $m буду благодарен, если поделитесь, путем загрузки обработки. Ибо сам обычно нищенствую.

&НаКлиенте
Функция ЧетыреЗнакаВХвост(СчетДляПроверки)

    ЧетыреЗнака = ""+Лев(СчетДляПроверки, 4);
    ЧистаяСтрока = Сред(СчетДляПроверки, 5);
    
    Возврат ""+ЧистаяСтрока+ЧетыреЗнака;

КонецФункции

&НаКлиенте
Функция ПостроитьМатрицуЗнаков()
	МатрицаЗнаков = Новый Соответствие;
	МатрицаЗнаков.Вставить("0","0");
	МатрицаЗнаков.Вставить("1","1");
	МатрицаЗнаков.Вставить("2","2");
	МатрицаЗнаков.Вставить("3","3");
	МатрицаЗнаков.Вставить("4","4");
	МатрицаЗнаков.Вставить("5","5");
	МатрицаЗнаков.Вставить("6","6");
	МатрицаЗнаков.Вставить("7","7");
	МатрицаЗнаков.Вставить("8","8");
	МатрицаЗнаков.Вставить("9","9");
	МатрицаЗнаков.Вставить("A","10");
	МатрицаЗнаков.Вставить("B","11");
	МатрицаЗнаков.Вставить("C","12");
	МатрицаЗнаков.Вставить("D","13");
	МатрицаЗнаков.Вставить("E","14");
	МатрицаЗнаков.Вставить("F","15");
	МатрицаЗнаков.Вставить("G","16");
	МатрицаЗнаков.Вставить("H","17");
	МатрицаЗнаков.Вставить("I","18");
	МатрицаЗнаков.Вставить("J","19");
	МатрицаЗнаков.Вставить("K","20");
	МатрицаЗнаков.Вставить("L","21");
	МатрицаЗнаков.Вставить("M","22");
	МатрицаЗнаков.Вставить("N","23");
	МатрицаЗнаков.Вставить("O","24");
	МатрицаЗнаков.Вставить("P","25");
	МатрицаЗнаков.Вставить("Q","26");
	МатрицаЗнаков.Вставить("R","27");
	МатрицаЗнаков.Вставить("S","28");
	МатрицаЗнаков.Вставить("T","29");
	МатрицаЗнаков.Вставить("U","30");
	МатрицаЗнаков.Вставить("V","31");
	МатрицаЗнаков.Вставить("W","32");
	МатрицаЗнаков.Вставить("X","33");
	МатрицаЗнаков.Вставить("Y","34");
	МатрицаЗнаков.Вставить("Z","35");
	
	Возврат МатрицаЗнаков;
КонецФункции

&НаКлиенте
Функция ПолучитьКонтрольноеЧисло(СчетДляПроверки)
	
	ВхСчет = СокрЛП(""+Прав(СчетДляПроверки, 24)+"BY00");
	
    ДлинуПроверил = ?(СтрДлина(ВхСчет) = 28, Истина, Ложь);
    КонтрольноеЧисло = "";
    Если ДлинуПроверил Тогда
       
		МатрицаЗнаков = ПостроитьМатрицуЗнаков();
		
		СтрокаСчета = "";
		Ном = 0;
        Для Ном = 1 По СтрДлина(СчетДляПроверки) Цикл
        	СтрокаСчета = СтрокаСчета + МатрицаЗнаков.Получить(Сред(ВхСчет, Ном, 1));    
        КонецЦикла; 
		МатрицаЗнаков = Неопределено;
		
		Число123 = Число(СтрокаСчета);
		Число124 = Цел(Число123/97);
		Число125 = Число124*97;
		Число126 = Число123-Число125;
		Число127 = 98 - Число126;
		КонтрольноеЧисло = Прав("00"+Число127,2);
	КонецЕсли;
	Возврат КонтрольноеЧисло;
КонецФункции

&НаКлиенте
Функция ПроверитьСчетIBAN(СчетДляПроверки)
	
	ВхСчет = СокрЛП(СчетДляПроверки);
	
    ДлинуПроверил = ?(СтрДлина(ВхСчет) = 28, Истина, Ложь);
    Правильно = ЛОЖЬ;
    Если ДлинуПроверил Тогда
        
		ЧетыреЗнака = ""+Лев(ВхСчет, 4);
    	ЧистаяСтрока = ""+Сред(ВхСчет, 5)+ЧетыреЗнака;
		
		МатрицаЗнаков = ПостроитьМатрицуЗнаков();
		
        Ном = 0;
        СтрокаСчета = "";
        Для Ном = 1 По СтрДлина(ЧистаяСтрока) Цикл
        
            СтрокаСчета = СтрокаСчета + МатрицаЗнаков.Получить(Сред(ЧистаяСтрока, Ном, 1));    
        
        КонецЦикла; 
		МатрицаЗнаков = Неопределено;
		
		Число132 = Число(СтрокаСчета);
		Число133 = Цел(Число132/97);
		Число134 = Число133*97;
		Число135 = Число132-Число134;
		Правильно = (Число135 = 1);
	КонецЕсли;
	Возврат Правильно;
КонецФункции

&НаКлиенте
Процедура Проверить(Команда)
	
	Сообщить(ПолучитьКонтрольноеЧисло(СчетДляПроверки));
	
	Сообщить(ПроверитьСчетIBAN(СчетДляПроверки))
	
КонецПроцедуры

См. также

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

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

15000 руб.

21.03.2023    9614    53    14    

51

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

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

20400 руб.

03.04.2013    124089    247    377    

161

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

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

10.10.2017    37177    75    Xershi    41    

63

Банковские операции Обмен с интернет-банком Загрузка и выгрузка в Excel Программист Бухгалтер Платформа 1С v8.3 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. При этом будут созданы загружаемые контрагенты и их р/с.

3840 руб.

19.04.2019    42773    135    52    

69

Обмен с интернет-банком Рабочее место Банковские операции Бухгалтер Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Россия Бухгалтерский учет Платные (руб)

В банковской выписке есть информация о номерах счетов на оплату? Номера заказов? Номера и даты договоров ? Программа поможет их найти, чтобы заполнить аналитику. В банковской выписке, помимо покупателей и поставщиков, есть мемориальные ордера, перечисление зарплаты, оплата кредитов? Программа определит прочие операции и укажет нужный субсчет : не только 60 и 62, но и 91, 70, 71, 57, 67, 66, 79 и другие. Субконто для мемориальных ордеров назначается автоматически. Договоры подтягиваются из заказа, счета на оплату, счета-фактуры, накладной. В банковской выписке есть мемориальные ордера? Программа создаст документы вида "Платежный ордер". Тратите много времени и сил на разноску выписки ? Получите быстрый и качественный результат!

7800 руб.

31.08.2015    61018    16    11    

20

Пакетная печать Банковские операции Кассовые операции Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработка для групповой печати чеков ККМ с настройкой, загруженных из банковской выписки. На основании документа Поступление на расчетный счет!

4800 руб.

21.08.2019    20050    71    10    

24

Обмен с интернет-банком Банковские операции Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Эффективное решение для загрузки банковской выписки из Клиент-Банка в 1С: Управление Торговлей ред. 10.3 Требования к файлу экспорта из клиент-банка: поддержка формата 1С:Предприятие для обмена с клиент-банками. Быстрая разноска выписки по видам операции, видам документов, статьям движения денежных средств, контрагентам, подразделениям. Легкая настройка правил разноски выписки. Работа с видами документов: Платежное поручение и Платежный ордер. Набор часто встречающихся правил разноски выписки при начале работы с обработкой: автозаполнение. Создание новых контрагентов (ИНН, КПП, полное наименование, банковский счет, договор) Проверка уникальности справочника "Контрагенты" по ИНН, номеру расчетного счета. Ранее созданные платежные поручения учитываются. Проведение документов банковской выписки.

4800 руб.

18.05.2015    71450    39    29    

45
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MSConfig 11.05.17 15:42 Сейчас в теме
IBAN.
Не очень сильно вникал в суть разработки, но название приятное. Душевное название я бы сказал. Плюс за хороший нейминг!
2. GOshaSaveiko 39 11.05.17 16:01 Сейчас в теме
(1) Для программеров и юзеров оно действительно как называется, так и выглядит, но для справки:
IBAN (International Bank Account Number) – это номер банковского счета клиента в банке или другом финансовом учреждении, присвоенный в соответствии с международным стандартом ISO 13616:2007
3. merlin1975 2 11.05.17 18:58 Сейчас в теме
Интересненько.
Только от себя добавил удаление пробелов в счете, ибо нашел счет в "красивом" виде с пробелами.
4. GOshaSaveiko 39 11.05.17 23:03 Сейчас в теме
(3) ну, тут, скорее, методология, чем обработка. Вряд ли вы ее именно в таком чистом виде использовать. Но 28 символов длины практически обязывают проверять за человеком.
Для удобства восприятия человеком, код IBAN записывается, как правило, группами по 4 знака, разделяемых пробелами, начиная с первого. В платёжных и иных документах в электронном формате IBAN вводится без пробелов.
По-идее пробела или любого другого символа кроме цифр и букв в соответствии нет. Если значение в соответствии не найдено, то метод Получить() вернёт неопределено. А в свою очередь "строка"+неопределено вернёт просто "строка". По-идее должен проглотить без модификаций. И пробелы и неразрывные пробелы и чёрточки и точечки и что там ещё кому на голову упадет.
5. merlin1975 2 11.05.17 23:28 Сейчас в теме
Посидел вечерок и на основе Вашей обработки написал для 8.2 и 7.7 и выяснил, что в 8-ке надобно использовать СтрокаСчета = "0" и преобразование Число(СтрокаСчета)+Число(МатрицаЗнаков.Получить(Сред(ЧистаяСтрока, Ном, 1))) иначе она все подряд лепит (по крайней мере у меня). Выяснил это расчетным путем в 7-ке. Стал выводить все расчеты в сообщения и удивился...
6. GOshaSaveiko 39 11.05.17 23:34 Сейчас в теме
(5)
число("1")+число("10")
// = 11 
. Нам же не надо символы складывать между собой. Нам надо получить слепленную строку "110" и в самом конце получить огромное число 110.
Мы, как бы подменяем буквы цифрами. Цифры в соответствии для фильтрации левых символов.
В 7.7 мне это видится как отдельная функция с чередой
Если символ = "1" тогда
Возврат "1";
ИначеЕсли символ = "2" тогда
Возврат "2";
//....
ИначеЕсли символ = "А" тогда
Возврат "10";
//....
Иначе возврат ""; конецесли
Показать
" *не судите. Пишу с телефона.
Кстати Число132, Число135 - это не просто от балды названия переменных. Это пункты 1.3.2, 1.3.5 из методологии расчета контрольного числа в документах нацбанка.
7. merlin1975 2 12.05.17 10:08 Сейчас в теме
Благодарю!
Теперь понял, а то суммировал... В семерке я реализовал через ТЗ и обращение к ней.
8. Bonia1979 13.05.17 11:25 Сейчас в теме
Из вышеперечисленных файлов немного подкорректировал файл банков добавил адрес и город в формате Dbf и xls .Также присутствует универсальная обработка загрузи из DBF файлов для 1с7,7 Думаю пригодится ребятам. https://yadi.sk/d/d-KwToRh3J6sX8
daraiznau; +1 Ответить
9. merlin1975 2 13.05.17 13:34 Сейчас в теме
10. wtlz 268 31.05.17 12:01 Сейчас в теме
Спасибо! Очень пригодилось!
11. GOshaSaveiko 39 31.05.17 15:50 Сейчас в теме
12. Dnki 4 01.06.17 06:35 Сейчас в теме
Буду скачивать. Сейчас над этой темой работаем.
13. GOshaSaveiko 39 01.06.17 15:45 Сейчас в теме
(12), я так понимаю, сейчас почти все над этой темой работают. )))
14. wtlz 268 14.06.17 10:54 Сейчас в теме
http://iban.bisc.by - появилась такая пакетная штука. Через WSDL к ней кто-нибудь научился обращаться (напрямую из 1С подсовывать входной файл и забирать результат?)
15. wtlz 268 14.06.17 12:38 Сейчас в теме
(14) сам себе отвечу ответом от НБРБ:
работа калькулятора в качестве веб-сервиса не предусмотрена и реализовываться не будет.
AlenkaZu; +1 Ответить
Оставьте свое сообщение