Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 13:03
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Курс валют на пятницу в запросе  (Прочитано 6855 раз)

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

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте. Передо мной стоит задача написать запрос, в котором надо вывести документ «Поступление товаров и услуг», Сумму документа в рублях и в долларах. Необходимо учитывать, что документы могут быть оформлены в выходные дни, а курс валют на выходные дни действует с пятницы.
Не могу понять как надо вычислять пятничный курс. У меня есть такой код в поле в запросе:
КОГДА ДЕНЬНЕДЕЛИ(ПоступлениеТоваровУслуг.Дата) = 6
ИЛИ ДЕНЬНЕДЕЛИ(ПоступлениеТоваровУслуг.Дата) = 7
ТОГДА ПоступлениеТоваровУслуг.СуммаДокумента / Пятничный курс
ИНАЧЕ ВЫРАЗИТЬ(ПоступлениеТоваровУслуг.СуммаДокумента / КурсыВалют.Курс КАК ЧИСЛО(15, 2))
КОНЕЦ КАК СуммаДокументаВДолларах
Вот как мне найти этот пятничный курс?


Оффлайн sitnik

Нужно использовать текущий курс.
Т.к. в субботу и воскресенье он не менялся, то значит в истории этого курса остается значение по состоянию на пятницу.

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
А как найти текущий курс? Это надо использовать РегистрСведений.КурсыВалют.СрезПоследних?

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Если вам нужен 1 курс на 1 дату, то срез последних подойдет. Судя по тексту вопроса, у вас будет не 1 курс на 1 дату, а курс на дату каждого документа, который попадет в результат вашего запроса. Это значит, что срез последних вам не подходит и нужно использовать левое соединение по периоду, а потом под ГДЕ отобрать последние данные по курсу валюты. Приблизительно вот так будет:
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Ссылка,
КурсыВалют.Курс,
КурсыВалют.Валюта
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
ПО ПоступлениеТоваровУслуг.Дата >= КурсыВалют.Период
ГДЕ
КурсыВалют.Период В
(ВЫБРАТЬ ПЕРВЫЕ 1
Курсы.Период
ИЗ
РегистрСведений.КурсыВалют КАК Курсы
ГДЕ
Курсы.Период >= ПоступлениеТоваровУслуг.Дата
И Курсы.Валюта = КурсыВалют.Валюта)

приведенный запрос выбирает самые свежие курсы валют для каждого документа ПоступлениеТоваровУслуг

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Большое спасибо! Мне усложнили задачу, мне надо сгруппировать документы по месяцам. Это надо делать второй запрос и там в поле прописывать условие?

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Нет, никакой второй запрос не нужен. Добавьте поле
НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслуг.Дата, МЕСЯЦ) КАК ПериодМесяц
и итоги по этому полю - это и будет группировка по месяцам

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
всегда пожалуйста )

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Сегодня пробовала ваш код. Не вышло. Во первых не понятно почему в этом месте
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО ПоступлениеТоваровУслуг.Дата >= КурсыВалют.Период,
дата документа больше даты курса валют, по идее надо условие ставить на равенство.
Во вторых, эта часть кода не работает -
КурсыВалют.Период В
            (ВЫБРАТЬ ПЕРВЫЕ 1
                Курсы.Период
            ИЗ
                РегистрСведений.КурсыВалют КАК Курсы
            ГДЕ
                Курсы.Период >= ПоступлениеТоваровУслуг.Дата
Вообщем при выполнении получается пустой отчет :-(

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Я решила сделать так - сначало получить таблицу с датами и курсом. А потом уже соединять с поступлением товаров и услуг. Подскажите, как это реализовать.
Вот такой у меня сейчас запрос.
ВЫБРАТЬ
КурсыВалют.Валюта,
КурсыВалют.Курс,
РегламентированныйПроизводственныйКалендарь.Пятидневка,
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
ПО (НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) = КурсыВалют.Период)

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

Спасибо.


Теги:
 

Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 4153
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
РС "СостояниеОСОрганизаций" в запросе

Автор ILLUMIРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1122
Последний ответ 07 Янв 2015, 05:33
от ILLUMI
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2127
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Поле не найдено" в запросе, но оно есть.

Автор ferrari314Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2690
Последний ответ 27 Окт 2015, 10:29
от vitasw
Временная таблица во вложенном запросе+Группировка VS Таблица значений + Свернуть

Автор TsaigerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 595
Последний ответ 14 Июл 2017, 23:10
от Tsaiger

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
55 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 280
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal