Загрузка платежей из Сбербанк Онлайн по картам физических лиц

27.09.18

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

Код для загрузки выписки по карте из Сбербанк.Онлайн НЕ Сбербанк Бизнес Онлайн.

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

В Сбербанк.Онлайн нет возможности выгрузить выписку в формате XLS или CSV или любом другом формате для простого импорта в 1С. На текущий момент выписка предоставляется в обычном TXT файле без каких либо разделителей полей.

Данный программный код преобразует текстовый файл в массив структур с данными платежа.

Как использовать:

1. Закажите на почту выписку по карте через Сбербанк-Онлайн.
2. Скачайте файл выписки в формате TXT.
3. Отдать парсеру данные из файла

Функция МассивМесяцев()
	Месяцы = Новый Структура;
	Месяцы.Вставить("НУЛ",0);
	Месяцы.Вставить("ЯНВ",1);
	Месяцы.Вставить("ФЕВ",2);
	Месяцы.Вставить("МАР",3);
	Месяцы.Вставить("АПР",4);
	Месяцы.Вставить("МАЙ",5);
	Месяцы.Вставить("ИЮН",6);
	Месяцы.Вставить("ИЮЛ",7);
	Месяцы.Вставить("АВГ",8);
	Месяцы.Вставить("СЕН",9);
	Месяцы.Вставить("ОКТ",10);
	Месяцы.Вставить("НОЯ",11);
	Месяцы.Вставить("ДЕК",12);
	
	Возврат Месяцы;
КонецФункции

Функция РазбитьСтроку(Стр,Разделитель)
	
	ФСтр = Стр;
	Масс = Новый Массив;
	
	Пока Найти(ФСтр,Разделитель) <> 0 Цикл
		ФФ = Лев(ФСтр,Найти(ФСтр,Разделитель)-1);
		Масс.Добавить(ФФ);
		ФСтр = Прав(ФСтр,СтрДлина(ФСтр)-Найти(ФСтр,Разделитель));
	КонецЦикла;
	
	Масс.Добавить(ФСтр);
	
	Возврат Масс;
КонецФункции

Функция СбербанкВМассив(Текст)
	Месяцы = МассивМесяцев();

	Данные = РазбитьСтроку(Текст,Символы.ПС);
	
	Возвр = Новый Массив;
	
	ТекСтрока = Неопределено;
	Для Каждого Стр Из Данные Цикл
		Месяц1 = Неопределено;
		День1 = Неопределено;
		День2 = Неопределено;
		Месяц2 = Неопределено;
		Год2 = Неопределено;
		СуммаОперации = Неопределено;
		СуммаПлатежа = Неопределено;
		НомерОперации = Неопределено;
		
		Попытка День1 = Число(Сред(Стр, 21, 2)) Исключение КонецПопытки;
		Попытка Месяц1 = Число(Месяцы[Сред(Стр, 23, 3)]) Исключение КонецПопытки;
		Попытка День2 = Число(Сред(Стр, 27, 2)) Исключение КонецПопытки;
		Попытка Месяц2 = Число(Месяцы[Сред(Стр, 29, 3)]) Исключение КонецПопытки;
		Попытка Год2 = 2000 + Число(Сред(Стр, 32, 2)) Исключение КонецПопытки;

		// Operation comment and text before and after it
		СодержаниеПлатежа = Сред( Стр, 42, 22 );
		врм1 = Сред( Стр, 21, 21 );
		врм2 = Сред( Стр, 66, 34 );

		// Operation currency, summs and direction
		Валюта = Сред( Стр, 65, 3 );
		Попытка СуммаОперации = Число(СокрЛП(Сред( Стр, 69, 15 ))) Исключение КонецПопытки;
		Попытка СуммаПлатежа = Число(СокрЛП(Сред( Стр, 85, 11 ))) Исключение КонецПопытки;
		
		Плюс = ?(Сред( Стр, 96, 2 ) = "CR", Истина, Ложь);

		Попытка НомерОперации = Число(Сред( Стр, 35, 6 )) Исключение КонецПопытки;

		Если (врм1 = "                     ") И (врм2 = "                                  ") И СодержаниеПлатежа <> ("                     ") Тогда
			Если ( ТекСтрока <> Неопределено ) Тогда
				ТекСтрока.СодержаниеПлатежа = ТекСтрока.СодержаниеПлатежа + СодержаниеПлатежа;
			КонецЕсли;

		ИначеЕсли ЗначениеЗаполнено(День1) И ЗначениеЗаполнено(Месяц1) И ЗначениеЗаполнено(День2) И ЗначениеЗаполнено(Месяц2) И 
			ЗначениеЗаполнено(Год2) И ЗначениеЗаполнено(СодержаниеПлатежа) И ЗначениеЗаполнено(Валюта) Тогда

			Если ТекСтрока <> Неопределено Тогда
				ТекСтрока.СодержаниеПлатежа = СокрЛП(ТекСтрока.СодержаниеПлатежа);
				Возвр.Добавить(ТекСтрока);
				ТекСтрока = Неопределено;
			КонецЕсли;

			ДатаИсполнения = Дата(Формат(Год2,"ЧЦ=4; ЧРГ=; ЧН=0; ЧВН=; ЧГ=")+Формат(Месяц2,"ЧЦ=2; ЧН=0; ЧВН=")+Формат(День2,"ЧЦ=2; ЧН=0; ЧВН=")+"000000");
			
			Год1 = ?(Месяц1 > Месяц2, Год2 - 1, Год2);
			ДатаОперации = Дата(Формат(Год1,"ЧЦ=4; ЧРГ=; ЧН=0; ЧВН=; ЧГ=")+Формат(Месяц1,"ЧЦ=2; ЧН=0; ЧВН=")+Формат(День1,"ЧЦ=2; ЧН=0; ЧВН=")+"000000");

			ТекСтрока = Новый Структура;
			ТекСтрока.Вставить("ДатаОперации",ДатаОперации);
			ТекСтрока.Вставить("ДатаИсполнения",ДатаИсполнения);
			ТекСтрока.Вставить("НомерОперации",НомерОперации);
			ТекСтрока.Вставить("СуммаОперации",СуммаОперации);
			ТекСтрока.Вставить("Валюта",Валюта);
			ТекСтрока.Вставить("СуммаПлатежа",?(Плюс,СуммаПлатежа,-1*СуммаПлатежа));
			ТекСтрока.Вставить("СодержаниеПлатежа",СодержаниеПлатежа);
		ИначеЕсли (ТекСтрока <> Неопределено ) Тогда
			ТекСтрока.СодержаниеПлатежа = СокрЛП(ТекСтрока.СодержаниеПлатежа);
			Возвр.Добавить(ТекСтрока);
			ТекСтрока = Неопределено;
		КонецЕсли;

	КонецЦикла;

	Если ТекСтрока <> Неопределено Тогда
		ТекСтрока.СодержаниеПлатежа = СокрЛП(ТекСтрока.СодержаниеПлатежа);
		Возвр.Добавить(ТекСтрока);
		ТекСтрока = Неопределено;
	КонецЕсли;

	Возврат Возвр;

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

Процедура КнопкаВыполнитьНажатие(Кнопка)
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Если Диалог.Выбрать() Тогда
		ИмяФайла = Диалог.ПолноеИмяФайла;
		
		Текст = Новый ТекстовыйДокумент;
		Текст.Прочитать(ИмяФайла);
			
		ДанныеФайла = Текст.ПолучитьТекст();
		МассивОпераций = СбербанкВМассив(ДанныеФайла);
		Для Каждого Стр Из МассивОпераций Цикл
			НовСтр = ТабличноеПоле1.Добавить();
			ЗаполнитьЗначенияСвойств(НовСтр,Стр);
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

 

Сбербанк Выписка обработка загрузка

См. также

Автоматическая обработка документов по банку при загрузке банковской выписки в 1С

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

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

12000 руб.

21.03.2023    8175    32    12    

43

Обмен с клиентом банка для Беларуси

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

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

10.10.2017    36389    69    Xershi    41    

57

SALE! 20%

Обмен с клиентом банка для БП 3.0, ERP 2.4, ERP 2.5 с дополнительными правилами загрузки

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

Выписка клиент-банка загружается и обрабатывается по Вашим правилам. Заполнение реквизитов документов, анализ назначения платежа. Работа с клиент банком не отличается от типового варианта, а документы автоматически заполняются так, как нужно вам. Дополнительная обработка, работающая совместно с основным расширением позволяет подключать собственные произвольные алгоритмы.

20400 16320 руб.

03.04.2013    122251    243    377    

158

Загрузка банковской выписки из Excel и формирование файла формата 1CClientBankExchange (kl_to_1c)

Банковские операции Обмен с интернет-банком Загрузка и выгрузка в 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    41654    128    52    

62

Обработка обслуживания терминалов пин-пад Ingenico IPP320/350 для УТ 10.х

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

Обработка обслуживания эквайринговых терминалов пин-пад Ingenico и АТОЛ PT-5 ( ПО Arcus2) позволяет подключить банковские терминалы Ingenico и АТОЛ PT-5 к 1С:Управление торговлей редакция 10. Может быть использована в 1С: Управление производственным предприятием 1.3 и 1С: Комплексная автоматизация 1.1 и 1С:Розница 1.х

4200 руб.

14.05.2019    59682    135    178    

119
Оставьте свое сообщение