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

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

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

Оффлайн AlenkaInt

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


Оффлайн sitnik

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

Оффлайн AlenkaInt

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

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1348
  • РЕПУТАЦИЯ: 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

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

Оффлайн AlenkaInt

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

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1348
  • РЕПУТАЦИЯ: 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
Просмотров: 4898
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
РС "СостояниеОСОрганизаций" в запросе

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

Ответов: 1
Просмотров: 1341
Последний ответ 07 Янв 2015, 05:33
от ILLUMI
Объединить и Объединить все в одном запросе

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

Ответов: 3
Просмотров: 337
Последний ответ 16 Янв 2018, 21:35
от Tsaiger
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

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

Ответов: 4
Просмотров: 2645
Последний ответ 26 Апр 2018, 06:45
от Геннадий ОбьГЭС
"Поле не найдено" в запросе, но оно есть.

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

Ответов: 3
Просмотров: 3293
Последний ответ 27 Окт 2015, 10:29
от vitasw

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
139 Сообщений
alex0402
64 Сообщений
oleg-x
54 Сообщений
AIFrame AIFrame
53 Сообщений
buketov.av buketov.av
47 Сообщений
ilyay ilyay
39 Сообщений
wise wise
37 Сообщений
Анюта17
33 Сообщений
Alter
32 Сообщений
alexandr_ll
30 Сообщений

* Кто онлайн

  • Точка Гостей: 199
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal