Внешняя Обработка, внешний отчет. Как добавить курс нац банка?

1. VKuser384403765 2 16.09.19 15:10 Сейчас в теме
Всем доброго времени суток.
не могли бы подсказать?
Как в Параметр Валюта добавить Курс нац банка.

Как я понял искать надо в УстановкаЦенНоменклатуры>Товары>Цена и Номенклатура. Но как ее присобачить?? Точнее куда? Чужой код специфичен,нестандартный.
Чисто для себя, учусь. Заранее благодарю.


Если нужен код:
Функция  ЕжедневныйОтчет(ТекСмена = Неопределено,Знач НомерОтчета) Экспорт 
	Если ТекСмена = Неопределено Тогда  	
		ТекСмена = Смена ; 	
	КонецЕсли;
	ТабДок = Новый ТабличныйДокумент ;  	
	Парам = Новый Структура("СвсИмя,Смена","01)ЗакрытиеСмены", ТекСмена) ;
	Показатели = РезЗапроса(Парам.СвсИмя, Парам.Смена) ;
	ДокСмены = Показатели.ДокСмены ;
	Если ДокСмены.Количество() > 0 Тогда
		Показатели.Вставить("Организация",ДокСмены[0].Объект.Организация) ;
		Показатели.Вставить("БИН",ДокСмены[0].Объект.Организация.ИдентификационныйНомер) ;
		Показатели.Вставить("НачСмены",Показатели.НачСмены ) ;
		Показатели.Вставить("НачОст",НачОстКЗ(Показатели.НачСмены) + НачОстВалюты(Показатели.НачСмены)) ; // + ПодкрепыЗаСмену(ДокСмены)) 
		Показатели.Вставить("Получено",ПодкрепыЗаСмену(ДокСмены)) ;
	КонецЕсли;       //23.06.2017 11:05:37 	
	Если НомерОтчета >  0 Тогда  		
		Показатели.Вставить("НомерОтчета","(" + НомерОтчета + ")" ) ;		
	Иначе  		
		Показатели.Вставить("НомерОтчета","") ; 
	КонецЕсли;
	
	Обл(ТабДок, Показатели ,"Заголовок","ЕжедневныйОтчет") ;
	//НомерСтроки,Буквы,Курс,СуммаВал,СуммаНац,СуммаТнг,Прибыль	
	ОбщПрибыль = 0 ;  	
	ТабПоступлений =      СтрокиПродаж("ПоступлениеТоваровУслуг",ТекСмена )  ;
	ОбщПрибыль = ОбщПрибыль + ТабПоступлений.Итог("Прибыль") ; 
	Обл(ТабДок,ТабПоступлений,"СтрокаВалюты","ЕжедневныйОтчет") ;
	Обл(ТабДок,Показатели ,"СтрокаПродано","ЕжедневныйОтчет") ;
	ТабПродаж =      СтрокиПродаж("РеализацияТоваровУслуг",ТекСмена,-1 )  ;
	ОбщПрибыль = ОбщПрибыль + ТабПродаж.Итог("Прибыль") ;  
	Обл(ТабДок, ТабПродаж ,"СтрокаВалюты","ЕжедневныйОтчет") ;
	Обл(ТабДок,Показатели ,"Раздел","ЕжедневныйОтчет") ;
	Парам.Вставить("ОбщПрибыль",ОбщПрибыль) ;
	Показатели.Вставить("Сдано",ИнкассацииЗаСмену(ДокСмены) ) ;
	КонОст =   НачОстКЗ(Показатели.Смена + 1) + НачОстВалюты(Показатели.Смена + 1) ; //Показатели.НачОст - ТабПоступлений.Итог("СуммаТнг")+ ТабПродаж.Итог("СуммаТнг")   ;
	Показатели.Вставить("КонОст",КонОст ) ;
	Обл(ТабДок,Показатели ,"Подвал","ЕжедневныйОтчет") ;  	
	Возврат ТабДок ;     	
КонецФункции


Функция РезЗапроса(Парам, СвсЗнч = Неопределено)  Экспорт
	Перем СвсИмя ;
	Если ТипЗнч(Парам) = Тип("Структура") Тогда
		Парам.Свойство("СвсИмя",СвсИмя) ;
		Парам.Свойство("СвсЗнч",СвсЗнч) ;  
	Иначе
		СвсИмя  = Парам ;
	КонецЕсли;
	Показатели = Новый Структура ;
	Показатели.Вставить("СвсИмя", СвсИмя) ;
	Показатели.Вставить("Смена", СвсЗнч) ;	
	Макет = ПолучитьМакет("ЕжедневныйОтчет");
	Запрос = Новый Запрос;
	Запрос.Текст =                                                     
	"ВЫБРАТЬ
	|	ЗначенияСвойствОбъектов.Объект ,
	|	ЗначенияСвойствОбъектов.Объект.Дата КАК Дата
	|ИЗ
	|	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
	|ГДЕ
	|	ЗначенияСвойствОбъектов.Свойство.Наименование = &СвсИмя
	|	И ЗначенияСвойствОбъектов.Значение = &СвсДанные";  // И ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Объект) = ТИП(Документ.РеализацияТоваровУслуг) 
	Запрос.УстановитьПараметр("СвсДанные", СвсЗнч);
	Запрос.УстановитьПараметр("СвсИмя", СвсИмя);    
	Результат = Запрос.Выполнить();
	Таб =  Результат.Выгрузить() ;
	Показатели.Вставить("ДокСмены",Таб) ;
	Таб.Колонки.Добавить("Сумма") ;
	Показатели.Вставить("КоличествоДокументов",Таб.Количество()) ;
	
	Показатели.Вставить("НачСмены", ПолучитьНачСмены(СвсЗнч) ) ; 	
	Возврат Показатели  ;
КонецФункции
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. danjer74 4 16.09.19 15:39 Сейчас в теме
Есть периодический регистр сведений с курсами валют. Можно получить оттуда нужный курс, через РегистрСведений.КурсВалюты.ПолучитьПоследнее(); В качестве параметра использовать дату, на которую необходимо получить курс.
Pavel Rodinchenko; +1 Ответить
3. VKuser384403765 2 17.09.19 09:54 Сейчас в теме
(2) На текущий день к примеру? "Текущая дата"??
4. danjer74 4 17.09.19 14:23 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот