При работе в конфигурации «1С:Бухгалтерия 7.7» (особенно в белорусских редакциях от компании «Мисофт») пользователи часто сталкиваются с жестко заданными алгоритмами в документах. Одной из таких задач является отражение комиссии банка по эквайрингу. Стандартный документ «Услуги сторонних организаций» предлагает ограниченный выбор типов исполнителей, привязанных к счетам 60 или 76. Если же учет требует списания комиссии со счета 57.4 («Переводы в пути по банковским картам»), стандартных средств становится недостаточно.
В данной статье мы разберем, как технически изменить список типов исполнителей в конфигураторе и обсудим методологические аспекты отражения таких операций.
Проанализируем ситуацию. В платформе 1С 7.7 логика выбора счетов в документах часто закладывается непосредственно в программный код модуля формы. Документ «Услуги сторонних организаций» спроектирован для взаимодействия с внешними контрагентами (поставщиками услуг). Тип исполнителя здесь — это не просто строковое значение, а переключатель, который определяет:
Поскольку счет 57.4 методически считается транзитным счетом для денежных средств, а не счетом расчетов с поставщиками, разработчики типовых решений не включают его в список выбора. Однако для корректного закрытия сумм эквайринга, когда банк перечисляет выручку за вычетом комиссии, бухгалтеру необходимо списать эту самую комиссию именно со счета 57.4.
Для решения задачи нам потребуется внести изменения в конфигурацию. Рассмотрим подробнее, где именно в программе «Мисофт» (или типовой Бухгалтерии 4.5) находится нужный нам код. Разберем по шагам процесс редактирования документа.
Откроем конфигуратор, найдем документ УслугиСтороннихОрганизаций и перейдем в Модуль формы. В процедуре, отвечающей за инициализацию формы (обычно это ПриОткрытии), формируется список доступных вариантов. Выясним причину ограничения: программа использует объект типа СписокЗначений.
Нам необходимо найти блок кода, похожий на следующий, и добавить в него новую строку:
СписокТиповИсполнителей.ДобавитьЗначение(1, "Поставщик (счет 60)");
СписокТиповИсполнителей.ДобавитьЗначение(2, "Прочий кредитор (счет 76.7)");
СписокТиповИсполнителей.ДобавитьЗначение(3, "Расчеты по страхованию (счет 76.2)");
СписокТиповИсполнителей.ДобавитьЗначение(4, "Услуга филиала (счет 79)");
// Добавляем наш вариант:
СписокТиповИсполнителей.ДобавитьЗначение(5, "Эквайринг (счет 57.4)");
Просто добавить пункт в список недостаточно. Проанализируем процедуру ПриВыбореИсполнителя. Она срабатывает, когда пользователь меняет значение в выпадающем списке на форме. Нам нужно прописать, чтобы при выборе пятого пункта программа подставляла счет 57.4.
Пример кода для модификации процедуры:
Процедура ПриВыбореИсполнителя()
ТипИсполнителя = СписокТиповИсполнителей.ПолучитьЗначение(СписокТиповИсполнителей.ТекущаяСтрока());
Если ТипИсполнителя = 1 Тогда
СчетРасчетов = СчетПоКоду("60.1");
ИначеЕсли ТипИсполнителя = 2 Тогда
СчетРасчетов = СчетПоКоду("76.7");
// ... существующие проверки ...
ИначеЕсли ТипИсполнителя = 5 Тогда
СчетРасчетов = СчетПоКоду("57.4");
КонецЕсли;
// Перерисовываем субконто на форме, если это необходимо
Форма.СчетРасчетов.Доступность(0); // Обычно счет расчетов закрыт для ручного редактирования
КонецПроцедуры
Это самый важный этап. Посмотрим на пример: у счета 60 субконто — «Контрагенты». У счета 57.4 в белорусских конфигурациях часто используется аналитика «Места хранения» (терминалы) или «Банковские счета». Если мы просто выберем счет 57.4, но на форме останется выбор из справочника «Контрагенты», программа выдаст ошибку или не даст выбрать значение.
Вам необходимо в коде формы добавить условие для смены типа субконто. В 1С 7.7 это делается методом НазначитьТип. Если выбран тип исполнителя «Эквайринг», поле ввода контрагента должно начать работать со справочником, привязанным к счету 57.4.
После визуальных настроек нужно убедиться, что Модуль документа (процедура ОбработкаПроведения) корректно воспринимает новый счет. Проанализируем алгоритм проведения. Обычно типовые документы используют переменную СчетРасчетов, выбранную на форме. Если в коде проведения нет жестких ограничений (например, проверки Если СчетРасчетов.ПринадлежитГруппе(СчетПоКоду("60"))), то проводка Дт 44 (91) - Кт 57.4 сформируется автоматически.
В ходе обсуждения на форумах часто возникает вопрос: какой счет использовать в качестве дебета? Рассмотрим два основных подхода:
Важный нюанс: Если вы используете счет 57.4 как "Место хранения", убедитесь, что банк-эквайер заведен в соответствующем справочнике. Если же вы хотите сохранить аналитику по контрагенту, возможно, стоит рассмотреть вариант использования промежуточного счета 76, на который сначала будет падать комиссия, а затем закрываться со счетом 57.4.
Если вы не имеете доступа к Конфигуратору или боитесь повредить обновление программы, разберем альтернативный путь:
Дт 44 - Кт 57.4 на сумму комиссии. Это не так удобно, как автоматический акт, но не требует вмешательства в программный код.Подводя итог, можно сказать, что добавление счета 57.4 в тип исполнителя — задача вполне решаемая для специалиста, знакомого с языком 1С 7.7. Это значительно упрощает жизнь бухгалтеру, позволяя автоматизировать учет эквайринговых операций и корректно формировать отчетность по затратам.