Данная публикация будет интересна тем, кто ведет учет в 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. Также для возможности просмотра движений документа по кнопк ДтКт необходимо добавить наш документ в тип реквизита "ДокументОбъект" обработки "КорректировкаДвижений"
В итоге получаем при проведении документов оплаты от покупателя и поступления этих денежных стредств из банка:
Движения при регистрации оплаты картой от покупателя: погашении долга покупателя, увеличение долга банка эквайера, движения по регистру для учета УСН/Патент
Движения при регистрации поступления денег от банка эквайера: погашении долга банка эквайера, списание комиссии банка на счет расходов, движения по регистру для учета УСН/Патент
- движения по регистру КУДиР: признание расходов ЕНВД (или УСН в ином случае)
- движения по регистру Книги учета доходов при Патенте (отсутствует в случае УСН)