0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 49
1

Курс валют на пятницу в запросе

15.09.2012, 18:29. Показов 1758. Ответов 9
Метки нет (Все метки)

Здравствуйте. Передо мной стоит задача написать запрос, в котором надо вывести документ «Поступление товаров и услуг», Сумму документа в рублях и в долларах. Необходимо учитывать, что документы могут быть оформлены в выходные дни, а курс валют на выходные дни действует с пятницы.
Не могу понять как надо вычислять пятничный курс. У меня есть такой код:
КОГДА ДЕНЬНЕДЕЛИ(ПоступлениеТоваровУслуг.Дата) = 6
ИЛИ ДЕНЬНЕДЕЛИ(ПоступлениеТоваровУслуг.Дата) = 7
ТОГДА ПоступлениеТоваровУслуг.СуммаДокумента / Пятничный курс
ИНАЧЕ ВЫРАЗИТЬ(ПоступлениеТоваровУслуг.СуммаДокумента / КурсыВалют.Курс КАК ЧИСЛО(15, 2))
КОНЕЦ КАК СуммаДокументаВДолларах
Вот как мне найти этот пятничный курс?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2012, 18:29
Ответы с готовыми решениями:

Курс валют
Возможно ли в VB6 в TextBox получить текущий курс Американского доллара к рублю, автоматически?

Курс валют
Добрый день! Помогите решить возникшую трудность. Вот скрипт курса валют Работает не всегда...

Курс валют
Здравствуйте. У меня есть программка которая должна доставать отсюда...

Курс валют (например $)
Здравствуйте. Подскажите как программно реализовать копирование курса валют с rbk или других...

9
2953 / 1765 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
15.09.2012, 18:59 2
1. Найти пятницу в виде даты.
2. Получить курс на эту дату. Для этого левым сединением по Док.Валюта РегСв.КурсыВалют
1C
1
|ПоступлениеТоваровУслуг.СуммаДокумента / РегСвКурсы.Курс
0
0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 49
15.09.2012, 20:27  [ТС] 3
Я вот о чем подумала, т.к. курс не меняется в выходные, значит можно использовать последний. Это надо использовать РегистрСведений.КурсыВалют.СрезПоследних?
0
2953 / 1765 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
15.09.2012, 23:03 4
Цитата Сообщение от AlenkaInt Посмотреть сообщение
Это надо использовать РегистрСведений.КурсыВалют.СрезПоследних?
Да, как ни странно.
0
0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 49
16.09.2012, 12:54  [ТС] 5
Если я использую срезпоследних у меня возвращается последний документ Поступление товаров и услуг. А мне нужны все документы.
0
2953 / 1765 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
16.09.2012, 20:39 6
Очевидно, Вы не так его исползуете. Курсы д.б. в левом соединении к нужному списку основных данных
0
0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 49
17.09.2012, 19:50  [ТС] 7
Я решила сделать так - сначало получить таблицу с датами и курсом. А потом уже соединять с поступлением товаров и услуг. Подскажите, как это реализовать.
Вот такой у меня сейчас запрос.
ВЫБРАТЬ
КурсыВалют.Валюта,
КурсыВалют.Курс,
РегламентированныйПроизводственныйКалендарь.Пятидневка,
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
ПО (НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.Д атаКалендаря, ДЕНЬ) = КурсыВалют.Период)

В выходные дни в ячейках пусто, как заполнить их актуальным курсом?

Спасибо.
0
2953 / 1765 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
17.09.2012, 20:19 8
Выгружайте в таблицу, заполняйте нули методом СрезПоследних.
Список доков ЛЕВОЕ СОЕДИНЕНИЕ ВЫБРАТЬ * ИЗ &Таблица
0
0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 49
17.09.2012, 21:26  [ТС] 9
Вот таким образом?
ВЫБРАТЬ
КурсыВалют.Валюта,
КурсыВалют.Курс,
РегламентированныйПроизводственныйКалендарь.Пятидневка,
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
ПО (НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.Д атаКалендаря, ДЕНЬ) <= КурсыВалют.Период)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КурсыВалютСрезПоследних.Период,
КурсыВалютСрезПоследних.Валюта,
КурсыВалютСрезПоследних.Курс,
ИсходныеДанные.Валюта КАК Валюта1,
ИсходныеДанные.Курс КАК Курс1,
ИсходныеДанные.ДатаКалендаря
ИЗ
ИсходныеДанные КАК ИсходныеДанные
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
ПО ИсходныеДанные.ДатаКалендаря >= КурсыВалютСрезПоследних.Период
0
2953 / 1765 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
17.09.2012, 22:00 10
Я имел в виду не совсем корректное, но вполне рабочее решение:
1C
1
2
3
4
5
6
7
8
9
10
11
12
текст="ВЫБРАТЬ Курсы.Валюта,Курсы.Курс,РПК.Пятидневка,РПК.ДатаКалендаря
ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РПК
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Курсы
ПО (НАЧАЛОПЕРИОДА(РПК.ДатаКалендаря, ДЕНЬ)=КурсыВалют.Период)";
Запрос.Текст=текст;
т=Запрос.Выполнить().Выгрузить();
Для Каждого Ик Из т Цикл
Если Ик.Курс=0 Тогда
Ик.Курс=РегистрыСведений.КурсыВалют.СрезПоследних(Дата,Новый Структура("Валюта",Доллар))[0].Курс;
КонецЕсли;
Запрос.Текст="ВЫБРАТЬ ПН.Ссылка,т.Курс Из Документ.ПН КАК ПН ЛЕВОЕ СОЕДИНЕНИЕ ВЫБРАТЬ Курс Из &т КАК т ПО НАЧАЛОПЕРИОДА(ПН.Дата, ДЕНЬ)=т.ДатаКалендаря";
Запрос.УстановитьПараметр("т",т);
Добавлено через 4 минуты
Если на то пошло, оптимальнее цикл по докам с получением курса на дату дока с контролем на дубль даты.

Добавлено через 2 минуты
Или левое курсы к списку доков. А потом пустой курс циклом. Без календаря: всё равно елозить срезомпоследних

Добавлено через 4 минуты
1C
1
2
3
4
5
6
"ВЫБРАТЬ ПН.Ссылка,ПН.Дата,Курсы.Курс Из Документ.ПН КАК ПН ЛЕВОЕ СОЕДИНЕНИЕ ВЫБРАТЬ Курс Из РегистрыСведений.КурсыВалют КАК Курсы ПО..."
т=Запрос.Выполнить().Выгрузить();
Для Каждого Ик Из т Цикл
Если Ик.Курс=0 Тогда
Ик.Курс=РегистрыСведений.КурсыВалют.СрезПоследних(Дата,Новый Структура("Валюта",Доллар))[0].Курс;
КонецЕсли;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2012, 22:00

Инструкция if, курс валют
Добрый день. Подскажите, пожалуйста, в чём здесь ошибка? При выборе любого наименования валюты...

Курс валют с сайта
Привет! я тут голову ломаю как мне достать из сайта курсы валют... вот что написал $content =...

Курс валют из Инет
Может кто знает, как достать скриптом из Инет текущий курс usd и eur? Не понимаю, с какой стороны...

Курс валют через функцию
Здравствуйте, самостоятельно в свободное время изучаю JS. Пытаюсь освоить функции. Возможно, сильно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.