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

Автор Тема: Как в запросе получить цены номенклатуры на каждую дату периода?  (Прочитано 5255 раз)

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

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6555
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С

Как в запросе получить цены номенклатуры на каждую дату периода?


Задача часто возникает при выведении различных отчетов, где нужно отследить динамику изменения какого-либо показателя.


Так же получение чего либо по датам периода актуально при различных периодических начислениях будть то аренда, зарплата, налоги, кредиты или что-то другое.


Рассмотрим задачу на примере периодического регистра сведений цены номенклатуры.
Наш регистр имеет одно единственное измерение - Номенклатура.
Ресурс у данного регистра - Цена.


Запрос будет выглядеть следующим образом:


"ВЫБРАТЬ
| 1 КАК Единица
|ПОМЕСТИТЬ Единицы
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 2
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 3
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 4
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 5
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 6
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 7
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 8
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 9
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 10
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, 1000 * (Тысячи.Единица - 1) + 100 * (Сотни.Единица - 1) + 10 * (Десятки.Единица - 1) + Единицы.Единица - 1), ДЕНЬ) КАК ТекущаяДата
|ПОМЕСТИТЬ ДатыПериода
|ИЗ
| Единицы КАК Единицы,
| Единицы КАК Десятки,
| Единицы КАК Сотни,
| Единицы КАК Тысячи
|ГДЕ
| ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, 1000 * (Тысячи.Единица - 1) + 100 * (Сотни.Единица - 1) + 10 * (Десятки.Единица - 1) + Единицы.Единица - 1) <= &ДатаОкончания
|;
|
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СтоимостьНоменклатурыСрезПоследних.Номенклатура,
| СтоимостьНоменклатурыСрезПоследних.Период
|ПОМЕСТИТЬ ПериодыСтоимости
|ИЗ
| РегистрСведений.ЦеныНоменклатуры КАК СтоимостьНоменклатурыСрезПоследних
|ГДЕ
| СтоимостьНоменклатурыСрезПоследних.Активность
| И СтоимостьНоменклатурыСрезПоследних.Период >= НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СтоимостьНоменклатурыСрезПоследних.Номенклатура,
| СтоимостьНоменклатурыСрезПоследних.Период
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ),
| Активность) КАК СтоимостьНоменклатурыСрезПоследних
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПериодыСтоимости.Номенклатура,
| МАКСИМУМ(ПериодыСтоимости.Период) КАК Период,
| ДатыПериода.ТекущаяДата
|ПОМЕСТИТЬ ДатыСтоимости
|ИЗ
| ДатыПериода КАК ДатыПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ПериодыСтоимости КАК ПериодыСтоимости
| ПО ДатыПериода.ТекущаяДата >= ПериодыСтоимости.Период
|
|СГРУППИРОВАТЬ ПО
| ПериодыСтоимости.Номенклатура,
| ДатыПериода.ТекущаяДата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДатыСтоимости.ТекущаяДата,
| СтоимостьНоменклатуры.Номенклатура,
| СтоимостьНоменклатуры.Цена
|ИЗ
| ДатыСтоимости КАК ДатыСтоимости
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК СтоимостьНоменклатуры
| ПО ДатыСтоимости.Номенклатура = СтоимостьНоменклатуры.Номенклатура
| И ДатыСтоимости.Период = СтоимостьНоменклатуры.Период
|УПОРЯДОЧИТЬ ПО ТекущаяДата
|; "


 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
27 Сообщений
Golickoff Golickoff
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal