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

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.Добавить();
			ЗаполнитьЗначенияСвойств(НовСтр,Стр);
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

 

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

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

19520 руб.

21.03.2023    23382    163    39    

124

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Мастера заполнения Программист Бухгалтер Пользователь 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    15709    70    29    

65

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

Автоматическая загрузка банковской выписки — это решение для интеграции с банками через API, которое упрощает процедуру загрузки банковских операций в 1С, экономя время и ускоряя бизнес-процессы предприятия. Решение поддерживает в т.ч. автоматическую загрузку выписок из файлов в электронной почте и локальном каталоге.

73200 руб.

26.03.2026    1060    2    2    

1

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

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

12200 руб.

10.10.2017    42593    97    49    

81

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

Групповая печать фискальных чеков по документам "Поступление на расчетный счет" с возможностью настройки НДС, признаков расчета и автоматической отправкой чеков клиентам.

6499 руб.

21.08.2019    22843    87    11    

26

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

104

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

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

20740 руб.

03.04.2013    132814    267    381    

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