Как настроить автоматическое заполнение вида оплаты в документе «Оплата от покупателя платежной картой» в УТ 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Разбор логики работы документа

Для того чтобы понять, как именно автоматизировать заполнение, давайте проанализируем модуль формы документа. В УТ 10.3 логика работы с эквайрингом тесно завязана на реквизит ДоговорЭквайринга. Именно при выборе договора в форме документа срабатывает обработчик события ПриИзменении, который инициализирует расчеты, связанные с торговой уступкой.

Посмотрим на пример кода, который уже реализован в типовой конфигурации (процедура ДоговорЭквайрингаПриИзменении):


Процедура ДоговорЭквайрингаПриИзменении(Элемент)
    ПриИзмененииДоговораЭквайринга;
    Если НЕ ЗначениеЗаполнено(ВидОплаты) Тогда
        Ответ = КодВозвратаДиалога.Да;
    Иначе
        Ответ = Вопрос("Пересчитать значение торговой уступки?", РежимДиалогаВопрос.ДаНет);
    КонецЕсли;
    Если Ответ = КодВозвратаДиалога.Да Тогда
        ПроцентТорговойУступки = УправлениеРозничнойТорговлей.ПолучитьПроцентТорговойУступки(ДоговорЭквайринга, ВидОплаты);
        ПересчитатьТорговуюУступку;
    КонецЕсли;
    УстановитьВидимость;
КонецПроцедуры

Шаги по внедрению автоматического заполнения

Чтобы система «запоминала» и подставляла Вид оплаты автоматически, нам необходимо модифицировать процедуру ПриИзмененииДоговораЭквайринга. Рассмотрим пошаговый план действий:

  1. Откройте конфигуратор и найдите документ ОплатаОтПокупателяПлатежнойКартой.
  2. Перейдите в форму документа и выберите элемент управления ДоговорЭквайринга.
  3. В палитре свойств элемента найдите событие ПриИзменении. Убедитесь, что оно ссылается на соответствующую процедуру в модуле формы.
  4. Внесите изменения в процедуру ПриИзмененииДоговораЭквайринга, добавив логику получения Вида оплаты из выбранного договора.

Реализация программной логики

Разберем, как может выглядеть дополнение кода. Нам нужно, чтобы при выборе договора эквайринга система проверяла, заполнен ли Вид оплаты, и если нет — подставляла значение по умолчанию. Важно учитывать, что при изменении Вида оплаты необходимо корректно пересчитать торговую уступку, иначе данные в документе будут неверными.


Процедура ПриИзмененииДоговораЭквайринга()
    // Получаем текущий эквайрер и валюту
    Эквайрер = ДоговорЭквайринга.Эквайрер;
    ДоговорВзаиморасчетовЭквайрера = ДоговорЭквайринга.ДоговорВзаиморасчетов;
    
    // Если ВидОплаты пуст, пробуем подставить значение
    Если НЕ ЗначениеЗаполнено(ВидОплаты) Тогда
        ВидОплаты = ДоговорЭквайринга.ОсновнойВидОплаты; // Пример обращения к реквизиту договора
    КонецЕсли;

    // Далее стандартный код пересчета
    ВалютаДокумента = ДоговорВзаиморасчетовЭквайрера.ВалютаВзаиморасчетов;
    УстановитьКурсДокумента;
    
    Если РасшифровкаПлатежа.Количество > 0 Тогда
        Для каждого СтрокаПлатеж Из РасшифровкаПлатежа Цикл
            РассчитатьСуммуПлатежа;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

Важные рекомендации при разработке

Работая с кодом конфигурации 1С, придерживайтесь следующих правил:

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

← На главную