Каталог решений - Оплата платежными (банковскими) картами и кредитами в 1С Бухгалтерия 2.0 (эквайринг)

Оплата платежными (банковскими) картами и кредитами в 1С Бухгалтерия 2.0 (эквайринг)

Оплата платежными (банковскими) картами и кредитами в 1С Бухгалтерия 2.0 (эквайринг)

В наличии

Столкнулся с задачей реализовать оплату платежными картами от покупателя в конфигурации 1C Бухгалтерия 2.0 (на примере одноименного документа в конфигурациях УТ 10 и 11).
Необходимость возникла в связи с тем, что у заказчика не классическая розничная торговля в деньги (деньги взял — товар отдал), а вариант: «утром деньги — вечером стулья».
Т.е. для отражения факта отгрузки товара используется документ «Реализация товаров и услуг», при этом оплата может быть от покупателей частичная наличными и по платежным картам, это может быть просто аванс без отгрузки или наоборот доплата.

Категория:

Описание

Данная публикация будет интересна тем, кто ведет учет в 1С: Бухгалтерия 2.0 при этом торгует в розницу и использует документ «Реализация товаров и услуг».
На скриншотах видно, как заполняется документ и в результате формируются проводки по всем разделам учета (это основная цель всех заморочек).

Документ «Оплата платежными картами» формирует проводку:
Дт 57.03 (Банк эквайер, договр)  —  Кт 62 (Покупатель, договор)
Стандартным документом «Поступление на расчетный счет» с видом операции : поступление от продаж по платежным картам и банковским кредитам формирует проводку:
Дт 51 (Расчетный счет)  —  Кт 57.03 (Банк эквайер, договр)

Так как речь идет о доработки стандартной конфигурации, то последняя соответсвенно должна быть доступна для изменений.

Цели доработки:

— регистрировать оплату платежными картами с привязкой к конкретному покупателю;

— регистрировать оплату кредитами с привязкой к конкретному покупателю;

формирование соответствующих проводок: Дт 57.03 (Банк эквайер, договр)  —  Кт 62 (Покупатель, договор);

— важным было формирование движений по дополнительным регистрам, для корректного отображения в книгах доходов/ расходов УСН и по Патенту;

— максимально уйти от ручного формирования проводок и движений;

— сохранить зачеты авансов по документам движения.

Из всего выше сказанного вариант с переброской долга документом «Корректировка взаиморасчетов» отброшен сразу, т.к. неотвечал ни одному из условий задачи.

Реализация задуманного:

1. И так, чтобы не выдумывать велосипед за основу был взят документ «Приходный кассовый ордер» — данный документ необходимо скопировать и переименовать, например «ОплатаПлатежнымиКартами». Далее в документ добавляем два реквизита: «БанкЭквайер» (тип СправочникСсылка.Контрагенты) и «ДоговорБанкаЭквайера» (тип СправочникСсылка.ДоговорыКонтрагентов). Размещаем реквизиты в форме документа и не забываем установить для договора связку по владельзу — для удобства выбора договора при работе.

Я так же удали кнопку «Чек» — чтобы не смущала (рядом ск нопкой «ОК»).

Укажите что документ может вводиться на основании «Реализации товаров и услуг».

2. Доработки модуля формы документа «Оплата платежными картами»:

Везде где есть строка Кнопки.Чек.Доступность = Истина  ( Кнопки.Чек.Доступность = Ложь) — закоментировать

например: //АА ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Чек.Доступность = Ложь;

Процедура ЗаполнитьСчетаКассы()
	
	МассивОтбора = Новый Массив;
	МассивОтбора.Добавить(ПланыСчетов.Хозрасчетный.Касса);

	......
	
	//АА Комментируем чтобы не выбирать стандартные счета кассы 50..
        //АА ЭлементыФормы.СчетКасса.СписокВыбора = РаботаСДиалогами.ЗаполнитьСписокВыбораСчетовДенежныхСредств(
	//АА МассивОтбора, ТолькоРубли, ПланыСчетов.Хозрасчетный.КассаОрганизации, МассивИсключений);
		
	//АА Добавляем в список выбора только нужный счет 50.03
	ЭлементыФормы.СчетКасса.СписокВыбора.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.03"), "57.03");
	
КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	Если ЭтоНовый() Тогда // проверить объект на то, что он еще не внесен в ИБ
		//АА Уберем запрос вида операции РаботаСДиалогами.ВыбратьВидОперации(ЭтотОбъект, Отказ);
		
		//АА Добавить чтобы не вводить каждый раз при создании документа
		ВидОперации = Перечисления.ВидыОперацийПКО.ОплатаПокупателя;
		СчетКасса  =ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.03");
		
	КонецЕсли;
	
	// Установка кнопок печати
        //АА комментируем чтобы не было меню Печать в форме документа	
        //АА УстановитьКнопкиПечати();
	
	// Установка кнопок заполнение ТЧ
	УстановитьКнопкиПодменюЗаполненияТЧ();
	
	ЗаполнитьСчетаКассы();
	
	ЗаполнитьСчетаБанка();
       
КонецПроцедуры // ПередОткрытием()

Процедура СчетКассаПриИзменении(Элемент)

      //АА  В этой процедуре удалите весь код
	
КонецПроцедуры

3. Доработки модуля документа «Оплата платежными картами»:

Процедура ОбработкаПроведения(Отказ, Режим)
	
	...
	
	// Проверка ручной корректировки
	
        //АА Заблокировал, т.к. выдавало ошибку.. не стал разбираться.
        //АА НО ЕСЛИ КТОТ БУДЕТ КОРРЕКТИРОВАТЬ ПРОВОДКИ ВРУЧНУЮ - РАЗБЕРИТЕСЬ С ОШИБКОЙ
        // иначе ручные изменения будут слетать при перепроведении документа

        //АА Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
	//	Возврат
	//КонецЕсли;
	
        ...
	
КонецПроцедуры // ОбработкаПроведения
Процедура ДвиженияПоРегистрам(Режим, Отказ, Заголовок ,СтруктураШапкиДокумента)

       ...
   
	Если ЕстьРасчетыСКонтрагентами или ЕстьРасчетыПоКредитам Тогда

		СтруктураШапкиДокумента.Вставить("КоррСчет",СчетДт);
		
		ТаблицаДокумента = УправлениеДенежнымиСредствами.ПодготовитьТаблицуОплат(СтруктураШапкиДокумента);
		
		Если ЕстьРасчетыПоКредитам Тогда
			ТаблицаДокумента.ЗагрузитьКолонку(ТаблицаДокумента.ВыгрузитьКолонку("СчетОплаты"),"СчетАванса");
		КонецЕсли; 
		
		
		//АА Добавить наши субконто для счета 57.03
		ТаблицаДокумента.ЗаполнитьЗначения(БанкЭквайер, "КоррСубконто1");
		ТаблицаДокумента.ЗаполнитьЗначения(ДоговорБанкаЭквайера, "КоррСубконто2");
		//АА Конец
		

		ОпределятьСостояниеРасчетов = ЕстьРасчетыСКонтрагентами;
		
		ТаблицаРаспределенияОплат = УправлениеВзаиморасчетами.ПогаситьЗадолженностьКонтрагентов(
			СтруктураШапкиДокумента, ТаблицаДокумента, ЭтотОбъект, 
			Отказ, Заголовок, СодержаниеПроводки, ОпределятьСостояниеРасчетов);

         ...

КонецПроцедуры

4. Доработка общего модуля ОбщийМодуль.БухгалтерскийУчетРасчетовСКонтрагентами:

Функция ОпределениеНаправленияДвиженияДляДокументаДвиженияДенежныхСредств(Знач ВидДокумента,ВидОперации = неопределено) Экспорт

	ВидДействийДокумента = Новый Структура("Направление,РасчетыВозврат");
	ВидыДокументовДДС    = Новый Соответствие();

	ВидыДокументовДДС.Вставить("СписаниеСРасчетногоСчета", "Выбытие");
	ВидыДокументовДДС.Вставить("РасходныйКассовыйОрдер", "Выбытие");
	ВидыДокументовДДС.Вставить("ПоступлениеНаРасчетныйСчет", "Поступление");
	ВидыДокументовДДС.Вставить("ПриходныйКассовыйОрдер", "Поступление");
	
	//АА Добавить строку чтобы правильно формировал проводки Дт 57.03 Кт 62
	ВидыДокументовДДС.Вставить("ОплатаПлатежнымиКартами", "Поступление");

	ВидыДокументовДДС.Вставить("АвансовыйОтчет", "Выбытие");

5. Также для возможности просмотра движений документа по кнопк ДтКт необходимо добавить наш документ в тип реквизита «ДокументОбъект» обработки «КорректировкаДвижений»

В итоге получаем при проведении документов оплаты от покупателя и поступления этих денежных стредств из банка:

Движения при регистрации оплаты картой от покупателя: погашении долга покупателя, увеличение долга банка эвайера, движения по регистру для учета УСН/Патент

Движения при регистрации поступления денег от банка эквайера: погашении долга банка эквайера, списание коммисии банка на счет расходов, движения по регистру для учета УСН/Патент

— движения по регистру КУДиР: признание расходов ЕНВД (или УСН в ином случае)

— движения по регистру Книги учета доходов при Патенте (отсутствует в случае УСН)

has been added to your cart:
Оформление заказа