Каталог решений - Указание вида оплаты по умолчанию в документе «Оплата от покупателя платежной картой». УТ 10.3

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

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

В наличии

Добавлеем вид оплаты по умолчанию для документа «Оплата от покупателя платежной картой».

Категория:

Описание

Тестировалось на "Управление торговлей", редакция 10.3 (10.3.76.2) 

В стандартной конфигурации нет возможности указать "ВидОплаты" по умолчанию для документа "ОплатаОтПокупателяПлатежнойКартой".

 

 

Конфигурацию стараюсь не редактировать для удобства поддержки.

Здесь, к сожалению, совсем без редактирования не обойдется.

Для упрощения поддержки конфигурации было решено разрешить редактировать общий модуль "РаботаСДиалогами"

Будем вносить правки через него.

В этом модуле есть процедура "АктивизироватьРеквизитВФорме", которая вызывается практически во всех документах в событии "ПриОткрытии" как раз в ее конце, добавим в ее начало следующие строки:

 

// Активизирует один из реквизитов при открытии документа.
Процедура АктивизироватьРеквизитВФорме(ДокументОбъект, ФормаДокумента) Экспорт

	// FLANKER START LINES
	// Добавляем заполнение "ВидОплаты" по умолчанию для документа "ОплатаОтПокупателяПлатежнойКартой"
	// Событие "ПриОткрытии" для формы "ОплатаОтПокупателяПлатежнойКартой" вызывает эту процедуру в конце процедуры (когда уже заполнены остальные поля по умолчанию)
	// перехватываем тут, чтобы не редактировать модуль
	Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ОплатаОтПокупателяПлатежнойКартой") Тогда
		//Сообщить("ДокументОбъект.ОплатаОтПокупателяПлатежнойКартой");
		Если Не ЗначениеЗаполнено(ДокументОбъект.ВидОплаты) Тогда
			ДокументОбъект.ВидОплаты = ФЛ_Модуль.ПолучитьОсновнойВидОплатыПлатежнойКартой();
			ДокументОбъект.ПроцентТорговойУступки = УправлениеРозничнойТорговлей.ПолучитьПроцентТорговойУступки(ДокументОбъект.ДоговорЭквайринга, ДокументОбъект.ВидОплаты);
			ДокументОбъект.СуммаТорговойУступки = ДокументОбъект.СуммаДокумента * ДокументОбъект.ПроцентТорговойУступки / 100;
		КонецЕсли;
	КонецЕсли;
	// FLANKER END LINES

В случае если функцию вызывает нужный документ, то произойдет заполнение "ВидОплаты" значением из настроек пользователя.

ДокументОбъект.ВидОплаты = ФЛ_Модуль.ПолучитьОсновнойВидОплатыПлатежнойКартой();

Функция получения настроек вынесена в отдельный модуль ФЛ_Модуль, для удобства. Привожу текст функции.

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

Настройки храним в типовом регистре сведений "НастройкиПользователей"

 

Настойки удобно меняются известной обработкой:

 

 

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