Имя: Пароль:
1C
1С v8
Как это сделать (СКД)?
,
0 Тоненький Клиент
 
23.10.12
17:11
В СКД новичок, прошу помощи.
Подскажите, как сделать следующее:
одним запросом я выцепляю данные по расходу номенклатуры по дням
ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) КАК Период,
   СУММА(Продажи.Количество) КАК КоличествоОтгрузка,
   Продажи.Номенклатура,
   Продажи.Контрагент
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ГДЕ
   Продажи.Контрагент = &Контрагент
   И Продажи.Номенклатура = &Номенклатура
   И Продажи.Период МЕЖДУ &НачПериод И &КонПериод
   И Продажи.Количество < &Порог //порог равен нулю

СГРУППИРОВАТЬ ПО
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ),
   Продажи.Номенклатура,
   Продажи.Контрагент

вторым получаю количество прихода номенклатуры (то же, но Продажи.Количество > &Порог.

Как сделать соединение результатов запроса так, чтобы в одной колонке было количество расхода, в другой - количество прихода, если в данный день было хотя бы какое-то движение?
Например
дата        расход    приход  
01.01.2011    -2       5
02.01.2011             6
04.01.2011    -3      

Заранее спасибо, извините за глупые вопросы.
1 Kashemir
 
23.10.12
17:13
Зачем тебе 2 таблицы. Делай одной - значение ресурса ограничь условием а не таблицы

Выбор когда Продажи.Количество > &Порог Тогда
Продажи.Количество
иначе
0
конец как ПродажиВышеПорога
2 GLazNik
 
23.10.12
17:15
(0) А использовать РегистрНакопления.Продажи.Обороты не судьба?
3 Тоненький Клиент
 
23.10.12
17:16
(2) а он даст мне возможность отделить положительные и отрицательные движения в пределах дня, а не общим итогом?
4 Kashemir
 
23.10.12
17:20
(3) Ну так поставь периодичность день
5 GLazNik
 
23.10.12
17:21
(3) Хмъ... Продажи... регистр оборотный... так понимаю... но нафига тут тогда приход????
Ну и (1) как вариант... вот только зачем использовать параметр &Порог тож не пойму... можно ж сразу с 0 и сравнить.
6 GLazNik
 
23.10.12
17:22
+(5) к (0) похоже у вас кривая архитектура и используете не те регистры и не в том месте...
7 Тоненький Клиент
 
23.10.12
17:25
Подскажите, какие лучше использовать...
8 Тоненький Клиент
 
23.10.12
17:33
или вот такой ... говн0код я сделал

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) КАК Период,
   СУММА(Продажи.Количество) КАК приход,
   0 КАК расход,
   Продажи.Номенклатура,
   Продажи.Контрагент
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ГДЕ
   Продажи.Контрагент = &Контрагент
   И Продажи.Номенклатура = &Номенклатура
   И Продажи.Период МЕЖДУ &НачПериод И &КонПериод
   И Продажи.Количество > &Порог

СГРУППИРОВАТЬ ПО
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ),
   Продажи.Номенклатура,
   Продажи.Контрагент

ОБЪЕДИНИТЬ ВСЕ

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

СГРУППИРОВАТЬ ПО
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ),
   Продажи.Номенклатура,
   Продажи.Контрагент

УПОРЯДОЧИТЬ ПО
   Период

В итоге получил ПОЧТИ то, что хотел:
дата           приход  расход   номенклатура    контрагент
02.05.2011    4        Тара    Крючков  маг.Крючков
07.05.2011        -3    Тара    Крючков  маг.Крючков
07.05.2011    2        Тара    Крючков  маг.Крючков
10.05.2011        -6    Тара    Крючков  маг.Крючков

Но надо, чтобы было не две строчки на 07.05.12, а одна типа

07.05.2011    2    -3    Тара    Крючков  маг.Крючков

Подскажите, пожалуйста!
9 GLazNik
 
23.10.12
17:36
(8) вы регистр сами добавили или он уже был? что за конфа? какая задача вообще стоит?
10 Всеяд
 
23.10.12
17:39
Если предположить, что действительно так и нужно использовать сей регистр, то тебе не хватает либо группировки в СКД, либо итоговой группировки результата объединения в запросе.
11 Тоненький Клиент
 
23.10.12
17:40
(9) это УТ 10.3, типовая на 99%
стоит задача получить отчет движения номенклатуры-тары, которая продается через РТиУ буз стоимости (бесплатно), а потом возвращается Возвратом товаров от покупателя.
Надо всего лишь получить в отчете инфу по схеме: день изменений - входящий остаток - движение приход (если было) - движение расход (если было) -конечный остаток.
Проблемы у меня возникли именно с тем, как объединить те дни, когда были движения и расхода и прихода, чтобы они не сворчивались в сумму
12 Тоненький Клиент
 
23.10.12
17:41
(10) как итоговую группировку сделать?
13 GLazNik
 
23.10.12
17:45
(11) хмъ... вот чего нет под рукой того нет... Регистр Продажи оборотный?
14 Тоненький Клиент
 
23.10.12
17:46
оборотный
15 GLazNik
 
23.10.12
17:50
(14) странные движения он делает.... и в "+" и в "-"...
а вообще вернись к (1) там ответ был:

Сумма(Выбор когда Продажи.Количество > 0 Тогда
  Продажи.Количество
иначе
0
конец) как КоличествоПриход

аналогично и для расхода...
но возможно правильнее будет использовать какой-то другой регистр...
16 Тоненький Клиент
 
23.10.12
17:57
(15) спасибо, но всё равно не могу объединить в одну строчку (((

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) КАК Период,
   СУММА(Выбор когда Продажи.Количество > 0 Тогда Продажи.Количество иначе 0 конец) КАК приход,
   0 КАК расход,
   Продажи.Номенклатура,
   Продажи.Контрагент
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ГДЕ
   Продажи.Контрагент = &Контрагент
   И Продажи.Номенклатура = &Номенклатура
   И Продажи.Период МЕЖДУ &НачПериод И &КонПериод
   И Продажи.Количество > &Порог

СГРУППИРОВАТЬ ПО
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ),
   Продажи.Номенклатура,
   Продажи.Контрагент

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ),
0 как приход,    
Сумма(Выбор когда Продажи.Количество < 0 Тогда Продажи.Количество иначе 0 конец) как Расход,
   Продажи.Номенклатура,
   Продажи.Контрагент
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ГДЕ
   Продажи.Контрагент = &Контрагент
   И Продажи.Номенклатура = &Номенклатура
   И Продажи.Период МЕЖДУ &НачПериод И &КонПериод
   И Продажи.Количество < &Порог

СГРУППИРОВАТЬ ПО
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ),
   Продажи.Номенклатура,
   Продажи.Контрагент

УПОРЯДОЧИТЬ ПО
   Период

или не так?
17 GLazNik
 
23.10.12
18:00
(16) или не так... думалку то включать надо иногда...

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) КАК Период,
   СУММА(Выбор когда Продажи.Количество > 0 Тогда Продажи.Количество иначе 0 конец) КАК приход,
   СУММА(Выбор когда Продажи.Количество < 0 Тогда Продажи.Количество иначе 0 конец) КАК расход,
   Продажи.Номенклатура,
   Продажи.Контрагент
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ГДЕ
   Продажи.Контрагент = &Контрагент
   И Продажи.Номенклатура = &Номенклатура
   И Продажи.Период МЕЖДУ &НачПериод И &КонПериод

СГРУППИРОВАТЬ ПО
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ),
   Продажи.Номенклатура,
   Продажи.Контрагент
18 Тоненький Клиент
 
23.10.12
18:04
(17) спасибо тебе огромное!!!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.