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

Запрос по двум регистрам

Автор SSC, 28 мая 2021, 10:03

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

SSC

Есть два регистра (ОстаткиНоменклатуры и ЦеныНоменклатуры). Необходимо запросом выбрать остатки по номенклатуре за определенный период(задается на форме датаначальная и датаконечная) и добавить добавить к номенклатуре цены за прошлый день. Как это правильно сделать? Сейчас запрос выгляди так:

Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ЦеныНоменклатуры.Цена КАК Цена,
      |   ОстаткиНоменклатуры.Номенклатура КАК Номенклатура,
      |   ОстаткиНоменклатуры.Количество КАК Количество
      |ИЗ
      |   РегистрНакопления.ОстаткиНоменклатуры КАК ОстаткиНоменклатуры
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
      |      ПО ОстаткиНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
      |ГДЕ
      |   И ОстаткиНоменклатуры.Период МЕЖДУ &ПериодОстаткиНач И &ПериодОстаткиКон";
      
   Запрос.УстановитьПараметр("ПериодОстаткиНач", ДатаНач);
   Запрос.УстановитьПараметр("ПериодОстаткиКон", ДатаКон);




LexaK

как-то неправильно формулируете задачу
Остатки за период - это что?
есть понятие остатки на какую-то дату, а за период считают обороты

цена за прошлый день - это как?
а если цена уже неделю не менялась, это все равно срез последних?
или нужен срез предпоследних?

Четко/правильно поставленная задача - это уже 50% решения! :befhbt:
ответ Понравился? (в смысле пригодился?)

SSC

Цитата: LexaK от 28 мая 2021, 10:14
как-то неправильно формулируете задачу
Остатки за период - это что?
есть понятие остатки на какую-то дату, а за период считают обороты

цена за прошлый день - это как?
а если цена уже неделю не менялась, это все равно срез последних?
или нужен срез предпоследних?

Четко/правильно поставленная задача - это уже 50% решения! :befhbt:

Получается так: Есть интервал (допустим между 1 мая 2021 и 3 мая 2021 ).Нужно на каждую дату выбрать остатки по всем регистраторам. Например, документ ПриходнаяНакладная сделал движение в этот регистр 1 мая. Мне,соответственно, нужно взять все количество по каждой номенклатуре и добавить еще в запросе цену по этой номенклатуре за прошлый день(т.е. 30 апреля). да же если цена не менялась. все равно нужно за предпоследний день

LexaK

с ходу можно предложить простой вариант с СКД
создаете два набора данных
1.это ваши остатки за период (по каждому дню), с рассчитанной колонкой ДатаВчера = Период - 1 день
2.набор срез последних по ценам
далее на закладке Связи наборов, указываете источник 1. приемник 2.
и задаете параметр из 1.ДатаВчера как параметр для среза на дату для 2.

запутанно но ничего сложного

или создать сложный запрос с кучей временных таблиц, для получения именно цены до указанной даты на каждый день ваших остатков
(еще запутанней получилось)



ответ Понравился? (в смысле пригодился?)

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск