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

Публикация № 911391

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

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

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

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

 

Специальные предложения

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

См. также

"Неверный реквизит платежного документа КодНазПлатежа". Исправляем обработку КлиентБанк

Обмен с банком v8 1cv8.cf Россия Бесплатно (free)

C 01.06.2020 банки требуют указывать реквизит КодНазПлатежа (код вида дохода) в выписках. При этом его заполнение необязательно. Соответственно в старых версиях обработок "Клиент банк" не загружаются файлы с плат.поручениями.

01.06.2020    34167    d.zhukov    67    

Заполнение ведомости на выплату в банк, когда у человека несколько зарплатных проектов (ЗУП 3.1)

Зарплата Банковские операции v8 v8::СПР ЗУП3.x Россия Бесплатно (free)

По долгу работы не раз приходилось сталкиваться с проблемой, когда у сотрудника несколько зарплатных карт. Я предлагаю небольшое решение данного вопроса, т.к. не нашёл в интернете и на форуме информацию, которая бы помогла решить вопрос.

04.03.2020    3105    nestokay    5    

Многофакторная авторизация. Шаблон проектирования для «1С:Предприятие 8». На примере API «Приватбанка» для юр. лиц

Информационная безопасность Обмен с банком v8 Бесплатно (free)

Многим из читателей знакомы понятия стандартов разработки и шаблонов проектирования. Для платформы «1С:Предприятие 8» на сайте its.1c.ru описаны базовые стандарты оформления кода и некоторые полезные примеры, но отсутствует информация об высокоуровневых абстракциях. Почти у каждого банка есть реализация обмена с конфигурациями «1С:Предприятие 8», но анализировать код, а тем более реализацию без слёз невозможно. Данная статья предлагает использовать некий шаблон оформления кода для многофакторной авторизации.

11.09.2017    13354    pbazeliuk    6    

Оплата банковскими картами в "Управлении торговлей для Украины"

Пользователю системы Банковские операции Розничная торговля Банковские операции Розничная торговля v8 1cv8.cf Украина УУ Бесплатно (free)

Доля безналичных оплат в торговле неуклонно растет, и сегодня уже существует законодательное требование к торговым точкам, согласно которому наличие POS-терминала является обязательным требованием. Процесс оплаты банковскими картами называется «Эквайринг». Для организации оплаты картами в своем магазине необходимо обратиться в банк и заключить с ним договор эквайринга. Существуют различные условия этого договора, но, по сути, они отличаются лишь процентной ставкой. В данной статье описывается порядок работы для конфигурации «Управление торговлей для Украины», если оплата производится с помощью платежных карт.

23.05.2017    24376    pbazeliuk    1    

Печать QR кодов для 1С:Бухгалтерия 2.0 для платежек Сбербанка

Практика программирования Банковские операции Банковские операции v8 БП2.0 Россия Бесплатно (free)

Печать QR кодов оффлайн в 1С:Бухгалтерия 2.0 с помощью бесплатной ActiveX компоненты для платежек Сбербанка

30.03.2017    35599    Chaotic    34    

Интеграция ДБО BS-Client (Белагропромбанк) и БП 1.6 (не используемая обработка "КлиентБанк")

Файловые протоколы обмена, FTP Обмен с банком Банковские операции Банковские операции v8 БП1.6 Беларусь Бесплатно (free)

Как можно сделать рабочую интеграцию с клиентом банка за два часа? Привожу пример из личного опыта.

26.11.2016    18828    c1nil    1    

Работа с 1С:ДиректБанк в системе ДБО iBank 2

Бухгалтерский учет Обмен с банком Банковские операции Банковские операции v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ ERP2 Россия Бесплатно (free)

В современных типовых конфигурациях фирмы "1С" есть возможность работать с системой ДБО iBank 2 напрямую из 1С:Предприятия. Пользователям доступны такие функции, как подпись и отправка платежа в банк, подтверждение платежа по SMS и получение выписки. Промышленная система ДБО iBank 2 установлена в более чем трети российских банков, и многие из них уже начали предоставление сервиса прямого обмена. В статье вкратце описан порядок подключения услуги и настройки DirectBank с системой ДБО iBank 2.

26.05.2016    27896    ph_1984    33    

Из клиент-банка в 1С загружается не вся информация

Практика программирования Банковские операции Банковские операции v8 УТ10 Бесплатно (free)

Столкнулся в проблемой - банк нашего поставщика вернул перечисленные нами деньги обратно на наш расчетный счет (по причине неправильного заполнения поля Наименование получателя). Но при загрузке из программы Сбербанка в 1С УТ 10.3 этот возврат никак не отображался. Пришлось разбираться, почему...

21.04.2016    10227    CXY    1    

Загрузка выписки из Банк - клиента в 1С: Бухгалтерию - настройка

Обмен с банком Банковские операции Банковские операции v8 БП2.0 БУ Бесплатно (free)

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

23.03.2016    38103    Bylka    2    

Клиент банк из 1С

Обмен с банком Банковские операции Банковские операции v8 КА1 БП2.0 УТ10 УНФ ERP2 БУ УУ Бесплатно (free)

Хочу рассказать про отличную возможность 1с Бухгалтерии 3.0 (и некоторых других конфигураций) использования клиент банка прямо из 1С. Теперь не надо делать выгрузку в файлик и загружать выписки из файлика. Достаточно нажать кнопку Обмен с банком в 1С и получить необходимые документы. А для платежек нажать кнопку Создать и отправить электронные документы.

12.02.2016    54085    ameli-130412    65    

Варианты отражения факторинговых операций в УТ 10.3

Бухгалтерский учет Банковские операции Банковские операции v8 УТ10 Россия УУ Бесплатно (free)

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

16.10.2015    11244    irina_shick    3    

Счета-фактуры на аванс, БП 2.0 как есть

Пользователю системы Бухгалтерский учет Банковские операции Кассовые операции Оптовая торговля Банковские операции Кассовые операции Оптовая торговля v8 БП2.0 БУ НУ НДС Бесплатно (free)

Формирование авансовых счетов-фактур, вычет НДС с полученных авансов, как работает и от чего зависит в Бухгалтерии предприятия 2.0, в том числе и про 5 дней.

30.03.2012    30238    Yury1001    10    

Экспорт платежных поручений в казначейство г. Москвы

Обработка документов Обмен с банком Обмен через XML Банковские операции Банковские операции v8 БГУ Государственные, бюджетные структуры Россия Госбюджет Бесплатно (free)

Устанавливая конфигурацию "1С: Бухгалтерия государственного учреждения" (1С:БГУ) в одном из детских садиков г. Москвы, столкнулся с проблемой - казначейство не принимает платежные поручения (платежки), выгруженные из 1С:БГУ стандартной обработкой обмена.

09.02.2012    16798    AVK_Alex    1    

Банковские дни запросом

Практика программирования Банковские операции Банковские операции v8 1cv8.cf Россия БУ Бесплатно (free)

Часто в отчетах требуется получить дату через N банковских дней, данный запрос на выходе дает таблицу: Дата | Дата_Через_N_Банковских дней. Параметр (&КоличествоБанковскиДней*1.5 + 20) не случаен 20 - максимальное количество не банковских дней подряд (примерно) 1,5 - отношение количества банковских дней к календарным дням, чем он меньше тем быстрее выполняется запрос, но если он слишком мал, не все даты могут попасть в результат, поэтому взял с запасом.

24.11.2011    9711    sm0123    13    

Получение курса валюты по списку дат

Практика программирования Банковские операции Банковские операции v8 1cv8.cf Россия БУ Бесплатно (free)

Иногда у меня возникала необходимость в запросе получить значение курсов валют на разные даты, причем заранее список дат неизвестен. Естественно было желание сделать все одним запросом. Буквально вчера нашел я оптимальное решение задачи. Т.к. подобные задачи могут возникать и у других, то решил результат здесь.

20.03.2010    18125    Nikola23    17