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

03.02.17

Задачи пользователя - Адаптация типовых решений

Столкнулся с задачей реализовать оплату платежными картами от покупателя в конфигурации 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. Также для возможности просмотра движений документа по кнопк ДтКт необходимо добавить наш документ в тип реквизита "ДокументОбъект" обработки "КорректировкаДвижений"

 

 

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

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

 

 

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

 

 

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

 

 

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

 

 

См. также

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

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

15000 руб.

21.03.2023    9506    53    14    

51

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    5149    11    5    

20

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3530    8    0    

27

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    4727    dimanich70    15    

20

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    3615    dimanich70    8    

16

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    2788    21    avmartynov    14    

53
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. drimer 59 21.07.17 20:13 Сейчас в теме
// Проверка ручной корректировки

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

//АА Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
// Возврат
//КонецЕсли;
Отключение проверки ручной корректировки приведёт к добавлению строк проводок к ранее записанным.
Для исправления ошибки необходимо включить документ в Подписки на события - ПередЗаписьюДокументаДляУдаленияДвижений.
Realyzer; insurgut; +2 Ответить
2. insurgut 207 06.07.18 10:32 Сейчас в теме
А ведь ещё и чек при необходимости нужно выбить... жаль ничего нет тут на этот счет :-/
3. insurgut 207 08.07.18 12:05 Сейчас в теме
Чтобы корректно данные доработки работали с УСН/ЕНВД необходимо ещё немного доработок:

1. В общем модуле НалоговыйУчетУСН добавить:

Процедура ДвиженияУСН(...) Экспорт
...
ИначеЕсли
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПоступлениеНаРасчетныйСчет") ИЛИ
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.СписаниеСРасчетногоСчета") ИЛИ
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") ИЛИ
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ОплатаОтПокупателяПлатежнойКартой") ИЛИ //<--доработка
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") ИЛИ
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") ИЛИ
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПоступлениеДенежныхДокументов") ИЛИ
ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ВыдачаДенежныхДокументов") Тогда

ОтразитьВУСН(ДокументСсылка, ,СтруктураШапкиДокумента, , СтруктураДопПараметров);
...
Показать


2. В тип измерения РегистрНакопления.РасходыПриУСН.Партия добавить наш документ
Realyzer; +1 Ответить
4. SnakePlisskin 3 25.09.18 19:17 Сейчас в теме
Доброго дня! А можете прояснить момент, когда на следующий день придут выписки из банка и деньги упадут на расчетный счет, что в этом случае делать?
5. alexhline 110 25.09.18 23:18 Сейчас в теме
Смотрите скриншот выше: "Движения при регистрации поступления денег от банка эквайера: погашении долга банка эквайера, списание комиссии банка на счет расходов, движения по регистру для учета УСН/Патент".
Будет формирование проводок по закрытию долга Эквайера: Дт 51 (Расчетный счет) - Кт 57.03 (Банк эквайер, договр)
6. SnakePlisskin 3 26.09.18 08:56 Сейчас в теме
(5)я так понимаю, данная доработка уже прошла "боевые" испытания, как показала себя в работе?
7. alexhline 110 26.09.18 20:02 Сейчас в теме
(6) Это доработка программы, а не обработка отдельная.
У одного заказчика работала два года назад, сейчас актуальность не могу сказать.
Данная тема (статья) ранее мной была переведена в архив, как вы ее находите...
8. SnakePlisskin 3 27.09.18 08:59 Сейчас в теме
(7)я понимаю что это доработка конфигурации. поиском нашлась, очень полезная штука, как раз нужно что-то типа такого)
Оставьте свое сообщение