Перерасчет цен по курсам валют УНФ

В УНФ при смене курса валют цены автоматом не пересчитываются.

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

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

В одной статье я обнаружил, что кнопка «Регистрировать новые цены и закрыть» добавляет цены в очередь расчета цен:

И это действительно оказалось так! При нажатии кнопки очередь заполнялась всей номенклатурой, и номенклатурой с характеристиками. К сожалению, по плохой традиции 1С, этот код не вынесен в отдельную функцию.

Поэтому был написан код, который сначала повторяет действия этой кнопки, а затем расчитывает очередь.

Проверил, после выполнения кода новые цены расчитались:

Кстати, из картинки видно, что динамические цены рассчитываются при проведении установки цен и формируются в движениях документа установки цен.

Код разместил в дополнительной внешней обработке, которую выполняю по расписанию:

Процедура ВыполнитьКодНаСервере() Экспорт
	
	// Тут выполнение кода на сервере  
	ЗаписьЖурналаРегистрации("Отладка.РегистрацияЦен");       
	
	ВидЦен = Справочники.ВидыЦен.НайтиПоНаименованию("Продажная");   
	ЗарегистрироватьВидЦен(ВидЦен);
	
	ЗаписьЖурналаРегистрации("Отладка.РасчетЦенПоРасписанию");
	ЦенообразованиеСервер.ОчередьРасчетаЦен();
	
КонецПроцедуры   

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

Классика — код получился простой, но чтобы его написать, потребовалось много времени.

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

image_pdfimage_print

fixin

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

Вам может также понравиться...

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

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