Имя: Пароль:
1C
 
Помогите с запросом
0 repin_mike
 
16.03.16
11:53
Задаются начальная и конечная дата. Между этими датами выбираются все стоки ТЧ "товары" проведённых документов "реализация товаров и услуг" - номенклатура, контрагент, дата продажи, количество проданного. Получается таблица реализаций {1}

В итоге мы знаем какой товар кому когда продали и в каком количестве. Задача узнать - а у кого мы этот товар покупали, когда и по сколько? Не заморачиваясь с партионным учётом, считаем что нужные данные содержатся в ТЧ проведённых доков "поступление товаров и услуг" (и пофиг что это неправильно), то есть к каждой строке таблицы {1} необходимо справа дописать несколько строк (возможно 0 если поступлений не было) с тем, чтобы поступления были самыми свежими по дате, но не превышали дату продажи из строки таблицы {1}; и разумеется общее количество всех поступлений должно быть равно количеству проданного (может быть меньше, если поступлений не было).

Я могу написать такой отчёт в виде Запрос - перебор его строк в цикле - для каждой строки из цикла ещё один запрос.
Скорее всего, такое возможно реализовать в СКД, хотя я и не знаю пока каким образом.

Вопрос: а возможно ли вытащить такие данные обычным, не динамически сформированным запросом? Если да то обозначьте направление для поисков.
1 ViSo76
 
16.03.16
11:59
Скорее всего 2 запроса ( по продажам и отдельно по поступлениям для данных продаж ) и последующая бработка на клиенте ( скорее всего аналитику проще делать чем лепить всё в одном запросе ). И затем подготовленную таблицу в СКД

PS: На данные нужно смотреть чтобы определиться можно ли в одном запросе или нет.
2 LordCMEPTb
 
16.03.16
12:08
В запросе такое сделать можно, где-то находил статью на инфостарте, но сейчас уже вряд ли найду...
Могу только пример скинуть того запросика, который мучал: https://yadi.sk/i/UZQMGbVjqE5V7
3 Рэйв
 
16.03.16
12:08
Я бы сделал только таблицу продаж. А статистику закупок формировал подробно отдельной таблице по клику на интересующей строке
4 Рэйв
 
16.03.16
12:09
Все вместе получится нечитаемо имхо
5 Рэйв
 
16.03.16
12:10
Или наоброт. Таблицу укого что закупали с колокнокой продаж
6 Aceforg
 
16.03.16
12:19
Копай в сторону "нумерация строк в запросе".

Имхо выйдет дико не читаемый запрос, делать можно лишь из-за академического интереса.
Твоя задача не тот случай, чтобы сделать в одном запросе. Делай запрос в цикле и не парься
7 Ildarovich
 
16.03.16
12:40
Интересный вопрос, который уже много раз обсуждали.
Вот подборка ссылок из статьи http://catalog.mista.ru/public/201526/

http://catalog.mista.ru/public/20221/ Отчет по просроченной задолженности/задолженность по интервалам http://catalog.mista.ru/public/58966 Нарастающие итоги в запросе и методы ускорения его выполнения http://catalog.mista.ru/public/60670/ SubSys: Просроченная задолженность по срокам (режим - по договорам в целом ФИФО)
http://catalog.mista.ru/public/61295/ Подведем итоги. Нарастающие
http://catalog.mista.ru/public/61745/ Запрос. Нарастающий итог. Как я его понимаю
http://catalog.mista.ru/public/62137/ Запрос. Нарастающий итог. Как я его НЕ понимаю (вторая часть).
http://catalog.mista.ru/public/62899/ БП1.6.Просроченная задолженность по 62 сч. Продолжение разговара http://catalog.mista.ru/public/68225/ ФИФО для любопытных http://catalog.mista.ru/public/82098/ Запрос. Нарастающий итог. Как я его НЕ понимаю (третья часть). http://catalog.mista.ru/public/88999/ Использование нарастающих итогов в партионном учете и не только http://catalog.mista.ru/public/122548/ Нарастающие итоги. Объединение двух таблиц с нарастающими итогами
8 AceVi
 
16.03.16
13:00
(0)
Что вы тут развели - если опираться только на задачу из 0 поста это тупо левое соединение НомПродажи=НомПокупки ДатаПродажи>=ДатаПокупки и потом группировка при выводе отчета.
Другое дело что этих условий далеко недостаточно - т.к. тут нет инфо что вот эту номенклатуру покупали именно этим документом.
Эти данные ты никак не получишь из табличных частей документов. Научись получать информацию из регистров - например ПартииТоваровНаСкладах где Регистратор - это твой документ продажи а ДокументОприходывания - документ покупки.
9 repin_mike
 
16.03.16
13:33
(8) Нет, это не тупо левое соединение НомПродажи=НомПокупки ДатаПродажи>=ДатаПокупки

Надо ещё отобрать нужное количество. Например, если продали 16 марта 100 штук, а предыдущие поступления были 15марта 50шт и 14 марта 70 шт, то в отчёте нужно левоприсоединить именно 50, чтобы в сумме было 100. А поступление 13марта 300шт вообще присоединять не надо.
10 Zhuravlik
 
16.03.16
13:44
(9) Получается что-то вроде эмуляции среза последних на каждую дату? Вроде не сложно. Собрать все различные даты реализации в одном месте, по ним - последние поступления, и результирующую таблицу левым к исходной.
11 Dotoshin
 
16.03.16
13:50
(0) А для чего это нужно? Рентабельность продаж хотите проанализировать?
12 Geroy
 
16.03.16
13:51
(0) Оборачиваемость запасов на складах?
13 AceVi
 
16.03.16
14:15
(9) О чем я и говорю. для это информации(что бы получить ее в запросе) нужно ставить партионный учет.
Если нет такого - то только в цикле как ты описывал. т.к. тебе надо учитывать какие документы покупки ты уже распределил по продажам а какие нет.
14 Ildarovich
 
16.03.16
15:24
(9) вы просили "направить". В (7) куча ссылок как люди решали эту задачу. С подробными пояснениями по построению запроса. Это тема "ФИФО запросом" многих в свое время интересовала и решения были опубликованы и обсуждены. С точки зрения скорости, сложности и тому подобное.
В (0) у вас условие "последние, такие, что дата поступления не позже даты продажи". Это говорит о ЛИФО, а не ФИФО. Все равно принцип тот же.
(13) ставить партионный учет не нужно, можно обойтись без этого и тем более без цикла, гляньте ссылки.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан