Создание расхода по счету в правильной валюте. УНФ 1.6

Клиент обнаружил ошибку типовой УНФ — если в списке «Банк и касса» сделать отбор по банковскому счету, то при создании документа расхода со счета документ все равно создается в валюте по умолчанию.

К счастью, не пришлось вмешиваться в процедуру заполнения, оказалось достаточно просто доработать данные заполнения — добавить в структуру валюту денежных средств. Иногда она там есть, но неправильная, иногда ее нет. Своим кодом мы ее гарантированно добавляем.

Расширяем процедуру ЗаполнитьДокумент модуля ЗаполнениеОбъектовУНФ:

&Вместо("ЗаполнитьДокумент")
Процедура дор_ЗаполнитьДокумент(ДокументОбъект, Знач ДанныеЗаполнения, Знач СтратегияЗаполнения, ИсключаяСвойства)
	Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.РасходСоСчета") И ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда                                
		//2022-11-28 Осипов Сергей
		//Неправильно определяется валюта денежных средств, поправляем
		Если ДанныеЗаполнения.Свойство("БанковскийСчет") Тогда //И ДанныеЗаполнения.Свойство("ВалютаДенежныхСредств") Тогда
			ДанныеЗаполнения.Вставить("ВалютаДенежныхСредств", ДанныеЗаполнения.БанковскийСчет.ВалютаДенежныхСредств);
		КонецЕсли;
	КонецЕсли;
	
	ПродолжитьВызов(ДокументОбъект, ДанныеЗаполнения, СтратегияЗаполнения, ИсключаяСвойства);
КонецПроцедуры

Сначала я хотел вмешиваться на уровне формы — если валюта при открытии не соответствует банковскому счету, поправлять. Но так оказалось проще.

Среда: УНФ 1.6.27.167. Объем: 0.5 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *