Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 17:01

Подскажите пожалуйста по расчету цен в выбранной валюте

Автор Sweet bun, 23 сен 2024, 15:22

0 Пользователей и 1 гость просматривают эту тему.

Sweet bun

Добрый день! Помогите пожалуйста разобраться, что не так в коде? Суммы в рублях записываются в регистр хозрасчетный , как валютные...

Функция общего модуля

Функция РасчитатьЦеныВВыбраннойВалюте (Валюта, Дата) Экспорт
   
      //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) КАК Курс
      |ИЗ
      |   РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалютСрезПоследних";
   
   Запрос.УстановитьПараметр("Валюта", Валюта);
   Запрос.УстановитьПараметр("Дата", Дата);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
   Если ВыборкаДетальныеЗаписи.Следующий() Тогда   
      Возврат ВыборкаДетальныеЗаписи.Курс; 
   ИначеЕсли Валюта = Справочники.Валюты.НайтиПоНаименованию("Рубль") Тогда
      Возврат 1;
   Иначе
      Возврат 0;   
   КонецЕсли;
   
   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецФункции

Это расходный кассовый, модуль

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


Еще добавила файл, как выглядит сам регистр

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск