Вход | Регистрация


1С:Предприятие ::

Метки: 

Нужна помощь по получению данных на каждый день(даже пустых) из регистра накопл.

Я
   memogolik
 
27.12.12 - 10:48
Есть регистр Продажи.
Есть запрос:
ВЫБРАТЬ
    ПродажиОбороты.Период,
    СУММА(ПродажиОбороты.КоличествоОборот)
ИЗ
    РегистрНакопления.Продажи.Обороты(
            &НачПериода,
            &КонПериода,
            День,
                Номенклатура = &ВыбНоменклатура) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Период

УПОРЯДОЧИТЬ ПО
    ПродажиОбороты.Период

Он выводит количество продаж на дни, в которых были продажи, как сделать так, чтобы он выводил нули на те дни, в которых продаж не было?
Заранее спасибо за ответы.
 
 
   memogolik
 
1 - 27.12.12 - 10:54
апс
   le_
 
2 - 27.12.12 - 10:56
Если отчет на СКД, то там есть возможность указать дополнение периода "День".
   Sandy_S
 
3 - 27.12.12 - 10:57
от например как можно выбрать все дни в месяце 
+ Code
ВЫБРАТЬ
    Календарь.Период КАК Период
ИЗ
    (ВЫБРАТЬ
        ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВложенныйЗапрос.Поле1 * 8 + ВложенныйЗапрос1.Поле1 - 1) КАК Период
    {ВЫБРАТЬ
        Период}
   ИЗ
        (ВЫБРАТЬ
            1 КАК Поле1
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
           2
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
           3
       
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            0) КАК ВложенныйЗапрос
            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                1 КАК Поле1
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
               2
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
               3
           
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
               4
           
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
               5
           
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
               6
           
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
               7
           
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
                8) КАК ВложенныйЗапрос1
            ПО (ИСТИНА)
    ГДЕ
        МЕСЯЦ(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВложенныйЗапрос.Поле1 * 8 + ВложенныйЗапрос1.Поле1 - 1)) = МЕСЯЦ(&НачалоПериода)) КАК Календарь

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

Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(Дата));

Далее помещаешь календарь в менеджер и пользуешь в основном запросе
   Axel2009
 
4 - 27.12.12 - 10:57
(0) чтобы это получить, нужно чтобы гдето уже была таблица на каждый период. либо как написали СКД
   DrShad
 
5 - 27.12.12 - 10:58
(3), (4) у вас устаревшие данные
(2) +100500
   memogolik
 
6 - 27.12.12 - 11:03
(2) а где это дополнение устанавливается?
   Axel2009
 
7 - 27.12.12 - 11:04
(5) а если не скд?
   cw014
 
8 - 27.12.12 - 11:05
В помощь тебе БУХ 2.0, Документ.РасчетЕСН.МодульОбъекта.ПолучитьДанныеРасчета, а конкретнее 725 строка
   DrShad
 
9 - 27.12.12 - 11:05
(7) а где в (4) написано что это для всех случаев кроме СКД?
   le_
 
10 - 27.12.12 - 11:06
(6) http://s018.radikal.ru/i509/1212/87/e928d6d588cd.png
(7) В запросах можно использовать директиву ПЕРИОДАМИ, только выборку потом неудобно делать...
 
 Рекламное место пустует
   kible
 
11 - 27.12.12 - 11:06
(6) Сделай группировку по периоду и на закладке "Группировки" укажи метод дополнения.

(7) Выполнить запрос на скд и выгрузить в коллекцию.
   Cube
 
12 - 27.12.12 - 11:07
(5) А я вот до сих пор пользуюсь методом (3). Работает - не трогаю)))
Как-то решил заморочится, переделать как предлагает (2), но не взлетело... А таким макаром можно получить остатки РН на каждый день?
   le_
 
13 - 27.12.12 - 11:09
(12) Можно.
   pessok
 
14 - 27.12.12 - 11:10
(13) даже если не было оборотов?
если так, то пора пересматривать свои древние отчеты :)
   Cube
 
15 - 27.12.12 - 11:12
(13) Ну не знаю, видимо я что-то не догнал тогда...
   le_
 
16 - 27.12.12 - 11:12
(14) Да, можно, даже если не было оборотов.
   pessok
 
17 - 27.12.12 - 11:14
(16) мерси, пошло раскуривать. по идее оно должно на порядок быстрее соединения с календарем или (3) работать
   Cube
 
18 - 27.12.12 - 11:15
(17) Да ладно)) Быстрее не будет, а вот удобочитемей, вполне)
   Axel2009
 
19 - 27.12.12 - 11:24
(9) давай расскажи, как это сделать? =)
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот
ИЗ
    РегистрНакопления.Продажи.Обороты(&ДН, &ДК, День, Номенклатура = &Н) КАК ПродажиОбороты

только еще, чтобы потом можно было использовать эти данные в других запросах пакета
   DrShad
 
20 - 27.12.12 - 11:25
(19) ты не осилил (11)?
   Cube
 
21 - 27.12.12 - 11:32
Ладно, шутки в сторону, поговорим на конкретном примере)))
Прост ой отчет: http://files.mail.ru/US1FUH
Скрин: http://storage6.static.itmages.ru/i/12/1227/h_1356593361_5173296_5d965ea1ef.jpeg
Слева результат отчета на СКД, справа типовой отчет, оражающий реальное положение дел. Снизу настройки отчета на СКД.
Где ошибка?
   Axel2009
 
22 - 27.12.12 - 11:32
(20) во первых это работает только для выборки, а не промежуточных таблиц, во вторых
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Период КАК Период,
    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот
ИЗ
    РегистрНакопления.Продажи.Обороты(&ДН, &ДК, День, Номенклатура = &Н) КАК ПродажиОбороты
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот)
ПО
    Номенклатура,
    Период ПЕРИОДАМИ(ДЕНЬ, &ДН, &ДК)

нифига ниче не дополняет
   cw014
 
23 - 27.12.12 - 11:33
(21) А где ты ошибку нашел?
   Cube
 
24 - 27.12.12 - 11:34
(22) Типа нам пытаются объяснить что, в СКД дополнение периодами иначе работает.
   DrShad
 
25 - 27.12.12 - 11:34
(21) ну ты группировку по периодам совсем не там сделал
   cw014
 
26 - 27.12.12 - 11:34
Ну почему же типовые механизмы, уже реализованные в типовых конфах так упорно игнорируют?
   Cube
 
27 - 27.12.12 - 11:34
(23) А что, отчет на СКД выводит остаток взаиморасчетов на каждый день? Да, выводит, но не правильный и не сначала периода.
   DrShad
 
28 - 27.12.12 - 11:35
(22) еще один
мля, смотрите на закладке группировка в СКД, а не в настройках
   Cube
 
29 - 27.12.12 - 11:35
(25) Специально отчет выложил. Покажи на примере, плиз)
   DrShad
 
30 - 27.12.12 - 11:36
(29) это было бы слишком просто :))) курите, ребята, курите самостоятельно
   Cube
 
31 - 27.12.12 - 11:37
(30) Всё ясно. Это как Саша Грей - все про нее говорят, но никто её не видел :)))
   Axel2009
 
32 - 27.12.12 - 11:39
(28) псц, пиши нормально. для запросов нельзя, для скд можно, и то только для окончательной выборки, а значит куча ограничений на использование.
без твоих витьеватых фраз, которые понять невозможно.
   Cube
 
33 - 27.12.12 - 11:51
И что? Всё что-ли?))) Где там те, кто знает волшебные три буквы ЭС КА ДЭ? :))
 
 
   Axel2009
 
34 - 27.12.12 - 11:53
(33) да при выводе поля период зайди в настройку группировки, там есть метод дополнения. вот там укажи ДЕНЬ и еще обязательно укажи вручную даты с.. по.. даже не параметр
   Cube
 
35 - 27.12.12 - 11:56
(34) Сам пробовал? На скрине в (21) всё как ты описал, за исключением "с" - "по", если их указать, то будут записи за все дни, но сумма остатка не верная всё-равно.
   Axel2009
 
36 - 27.12.12 - 11:57
(35) а при чем тут сумма остатка и метод дополнения? =) даты добавились? добавились.. а ты еще хочешь чтобы суммы посчитались? =)
   le_
 
37 - 27.12.12 - 11:57
(21) У тебя запрос неправильно написан. Читай статьи на ИТС о проблемах при расчете остатков.
   le_
 
38 - 27.12.12 - 11:59
(22) Читай статью на ИТС "Использование дополнения итогов периодами в построителе отчета".
   Cube
 
39 - 27.12.12 - 12:00
(37) Цитата:
Cube : А таким макаром можно получить остатки РН на каждый день?
le_ : Можно.
   Cube
 
40 - 27.12.12 - 12:01
(38) А что, ты думаешь, у меня ИТС нет? Есть!) Пойду прочту и вернусь...
   le_
 
41 - 27.12.12 - 12:01
(39) см. (37)
   Cube
 
42 - 27.12.12 - 12:02
(38) Казалось бы, причем здесь построитель... про СКД ведь говорим...
   le_
 
43 - 27.12.12 - 12:02
(40) С тебя 500 рублей за наводку.
   le_
 
44 - 27.12.12 - 12:02
(42) В (22) речь не о СКД. Ты вменяемый?
   Cube
 
45 - 27.12.12 - 12:03
(41) Если ты не понял, то переведу: предъява (37) не принимается, т.к. в (13) ты другое говорил.
   le_
 
46 - 27.12.12 - 12:03
(45) Перечитай еще раз ветку.
   Cube
 
47 - 27.12.12 - 12:04
(44) Так ты сам-то вменяемый? Первое упоминание о построителе было в (38) до этого говорили про СКД.
   le_
 
48 - 27.12.12 - 12:05
(47) Ты в СКД запросы пишешь так, как в (22) написано?
   Cube
 
49 - 27.12.12 - 12:05
(43) Не заслужил.
 
 Рекламное место пустует
   Cube
 
50 - 27.12.12 - 12:06
(48) Это пример. Я говорил, что у меня не получилось без использования (3) в СКД получить остаток РН на каждый день, ты начал доказывать, что это возможно. Уже отнекиваешься?
   le_
 
51 - 27.12.12 - 12:08
(50) Ты запросы неправильно пишешь. СКД не может с твоими запросами корректно рассчитать остатки. Хоть дополняй период, хоть не дополняй.
   le_
 
52 - 27.12.12 - 12:09
"Особенности расчета итогов по полям остатка. Использование реквизитов измерений."
http://a.imageshack.us/img412/5521/18053290.jpg

"Типичные проблемы при расчете остатков."
http://a.imageshack.us/img405/476/73796797.jpg
   Cube
 
53 - 27.12.12 - 12:09
(38) Прочел. Статья не в тему. Ты можешь сделать простой пример или ты поговорить зашел?
   Axel2009
 
54 - 27.12.12 - 12:09
(50)
01.11.2012 0:00:00    1,000    1,000
02.11.2012 0:00:00    1,000    1,000
03.11.2012 0:00:00    1,000    1,000
04.11.2012 0:00:00    1,000    1,000
05.11.2012 0:00:00    1,000    1,000
06.11.2012 0:00:00    1,000    1,000
07.11.2012 0:00:00    1,000    
08.11.2012 0:00:00        
09.11.2012 0:00:00        
10.11.2012 0:00:00        
11.11.2012 0:00:00        
12.11.2012 0:00:00        
13.11.2012 0:00:00        
14.11.2012 0:00:00        
15.11.2012 0:00:00        
16.11.2012 0:00:00        
17.11.2012 0:00:00        
18.11.2012 0:00:00        
19.11.2012 0:00:00        20,000
20.11.2012 0:00:00    20,000    14,000
21.11.2012 0:00:00    14,000    6,000
22.11.2012 0:00:00    6,000    1,000
23.11.2012 0:00:00    1,000    1,000
24.11.2012 0:00:00    1,000    1,000
25.11.2012 0:00:00    1,000    1,000
26.11.2012 0:00:00    1,000    1,000
27.11.2012 0:00:00    1,000    1,000
28.11.2012 0:00:00    1,000    
29.11.2012 0:00:00        
30.11.2012 0:00:00        
01.12.2012 0:00:00        
02.12.2012 0:00:00        
03.12.2012 0:00:00        20,000
04.12.2012 0:00:00    20,000    20,000
05.12.2012 0:00:00    20,000    8,000
06.12.2012 0:00:00    8,000    
07.12.2012 0:00:00        
08.12.2012 0:00:00        
09.12.2012 0:00:00        
10.12.2012 0:00:00        
11.12.2012 0:00:00        
12.12.2012 0:00:00        
13.12.2012 0:00:00        
14.12.2012 0:00:00        
15.12.2012 0:00:00        
16.12.2012 0:00:00        
17.12.2012 0:00:00        
18.12.2012 0:00:00        
19.12.2012 0:00:00        
20.12.2012 0:00:00        
21.12.2012 0:00:00        
22.12.2012 0:00:00        
23.12.2012 0:00:00        
24.12.2012 0:00:00        
25.12.2012 0:00:00        
26.12.2012 0:00:00        
27.12.2012 0:00:00        
28.12.2012 0:00:00        
29.12.2012 0:00:00        
30.12.2012 0:00:00        
31.12.2012 0:00:00        
Итого    1,000
   le_
 
55 - 27.12.12 - 12:09
(53) "Сделай сам" (c)
   Cube
 
56 - 27.12.12 - 12:10
(54) Что это?
   Cube
 
57 - 27.12.12 - 12:10
(55) Понятно, мистабол. Слив засчитан.
   le_
 
58 - 27.12.12 - 12:11
(57) Иди нах#й, дурик.
   Axel2009
 
59 - 27.12.12 - 12:11
(55) прочитал. все что написано про СКД. где построитель запроса?
   DrShad
 
60 - 27.12.12 - 12:13
(54) а что это? что не так?
сорри за отсутствие
   Cube
 
61 - 27.12.12 - 12:13
Ну что, ещё кто-нибудь знает, как получить остатки РН на каждый день в СКД или все как (58) мистаболы?
   le_
 
62 - 27.12.12 - 12:14
(59) см. (38)
   DrShad
 
63 - 27.12.12 - 12:14
(61) а на твоем скрине что тебя смущает?
   Cube
 
64 - 27.12.12 - 12:15
(63) С 11.12.2012 по 26.12.2012 каждый день остаток был -14757, а отчет говорит, что небыло ничего.
   Axel2009
 
65 - 27.12.12 - 12:20
(56) это остатки по товарам на складах. как видно корректно показывает остаток на каждый день
   Cube
 
66 - 27.12.12 - 12:21
(65) Тебе видно? А мне не видно... Где записи регистра или данные типового отчета, чтобы сравнить?
К тому же не понятно, как получена это таблица. Я тебе в блокноте хоть щас такую нарисую.
   DrShad
 
67 - 27.12.12 - 12:23
(65) http://s017.radikal.ru/i410/1212/5f/71f26033819e.jpg

что я делаю не так?
   Axel2009
 
68 - 27.12.12 - 12:23
(67) мне то чего доказываешь. что в скд можно? я говорю можно.
   Axel2009
 
69 - 27.12.12 - 12:24
(66) ну тогда тебе прямиком в СС идти. в блокноте мы рисуем
   DrShad
 
70 - 27.12.12 - 12:24
(68) сорри, (67) к (64)
   Cube
 
71 - 27.12.12 - 12:24
(67) покажи типовой отчет, чтобы сравнить.
   Cube
 
72 - 27.12.12 - 12:25
(69) Я говорю, доказать можешь достоверность данных или на слово тебе верить надо? Выложи свою обработку на файлопомойку.
   DrShad
 
73 - 27.12.12 - 12:26
   DrShad
 
74 - 27.12.12 - 12:26
(72) а как же курить мануал?
   Cube
 
75 - 27.12.12 - 12:28
(73) Похоже на правду. Показывай, как делал.
   Cube
 
76 - 27.12.12 - 12:29
(74) Так скурен уже, а второго мануала нет...
   DrShad
 
77 - 27.12.12 - 12:29
(75) вот так за просто? :))))
   le_
 
78 - 27.12.12 - 12:31
   Cube
 
79 - 27.12.12 - 12:31
(77) Ну, а ты как хотел?)) Докажи, что ты не просто так тут языком чешешь))
   DrShad
 
80 - 27.12.12 - 12:32
(79) лови почту
   Cube
 
81 - 27.12.12 - 12:34
(80) Блин, это на какой конфе?))
   DrShad
 
82 - 27.12.12 - 12:42
на бухии, а что?
   Cube
 
83 - 27.12.12 - 12:43
(82) В УПП не открывается)
   DrShad
 
84 - 27.12.12 - 12:44
(83) открывай в бухии
какой был пофигуратор открыт - на том и сваял
   DrShad
 
85 - 27.12.12 - 12:54
(83) ну чего приуныл? где посыпание головы пеплом?
   Cube
 
86 - 27.12.12 - 12:55
О, да!!!! Короче, отчет в (21) правильный. Просто нужно, чтобы запрос выбирал ещё и поле "СуммаВзаиморасчетовНачальныйОстаток", тогда (даже если начальный остаток не выводить) конечный остаток считается верно, скрин: http://storage1.static.itmages.ru/i/12/1227/h_1356598318_8677902_a5c591912a.jpeg

Короче, запрос такой:
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодДень,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, , Авто, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
   Cube
 
87 - 27.12.12 - 12:56
(85) Я расписывал для истории, делал скрины... :)))
Чувствую, нужно снова покупать книжку Хрусталевой и перечитывать, а то мою кто-то подрезал... :))
   Cube
 
88 - 27.12.12 - 12:57
Для истории: DrShad - МУЖИК!))
   DrShad
 
89 - 27.12.12 - 12:58
(88) не катит! пепельницу на голову и только так
   Cube
 
90 - 27.12.12 - 12:59
(89) Посыпаю голову пеплом)
   DrShad
 
91 - 27.12.12 - 13:01
(90) МУЖИК!
   DrShad
 
92 - 27.12.12 - 13:04
ну я думаю, что после такого холивара, ТС уж всяко разберется как ему реализовать задачу
   Axel2009
 
93 - 27.12.12 - 13:17
(92) а средние остатки тогда как посчитать подобным методом?
   le_
 
94 - 27.12.12 - 14:00
   dk
 
95 - 28.12.12 - 08:45
Тоже вчера озадачился темой получения остатков на каждый день
Про разворот в СКД в курсе, но захотелось получить без СКД, а в простом запросе, т.к. так проще встраивать в уже существующие запросы.
В итоге вроде получилось обойтись без СКД

Небольшой взброс:
ВЫБРАТЬ 
    ДАННЫЕ.*
ИЗ
(ВЫБРАТЬ
    ВЛОЖ1._1 _1
    , ВЛОЖ2._1 _2
    , ВЛОЖ2._2 _3
ИЗ
(ВЫБРАТЬ
    1 _1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    3
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    4
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    5
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    6
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    7) ВЛОЖ1,
(ВЫБРАТЬ
    6 _1
    ,27 _2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    4 _1
    ,15 _2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    3 _1
    ,8 _2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    1 _1
    ,3 _2
) ВЛОЖ2
ГДЕ
    ВЛОЖ2._1 <= ВЛОЖ1._1) КАК Данные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ
    ВЛОЖ1._1 _1
    , МАКСИМУМ(ВЛОЖ2._1) _2
ИЗ
(ВЫБРАТЬ
    1 _1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    3
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    4
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    5
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    6
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    7) ВЛОЖ1,
(ВЫБРАТЬ
    6 _1
    ,27 _2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    4 _1
    ,15 _2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    3 _1
    ,8 _2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
    1 _1
    ,3 _2
) ВЛОЖ2
ГДЕ
    ВЛОЖ2._1 <= ВЛОЖ1._1
СГРУППИРОВАТЬ ПО
    ВЛОЖ1._1) КАК КЛЮЧ ПО КЛЮЧ._1 = Данные._1 И КЛЮЧ._2=ДАННЫЕ._2

Где
 Влож1 - имитирует календарь
 Влож2 - таблицу с остатками на конец дня (с пропусками дней без движений)
---
Пока громоздко получилось и есть 1 момент - не получилось отсортировать Влож2 по убыванию - пишет что=то про для упорядочивания вложенного запроса используйте конструкцию ПЕРВЫЕ ...
   Alex S D
 
96 - 28.12.12 - 08:51
(92) ты как водитель мерса из анектода про мерс и легковушку в кювете
   Axel2009
 
97 - 28.12.12 - 11:53
(94) спс



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует