Имя: Пароль:
1C
1С v8
СКД. Простейший отчет. Странная строка в данных.
,
0 WED
 
16.11.12
10:58
Сделал простейший отчет на СКД с запросом из регистра накоплений: движение товаров.

Если в настройках указан конец периода, то в группировках по номенклатуре появляются странные строки, если конец периода в параметрах выключаешь - строк нет.
На картинке выделена одна из таких строк.
Почему такое может быть?

http://www.picshare.ru/view/510886/
1 НастоящееИмя
 
16.11.12
11:00
Возможно, как вариант, одинаковое название этого поля, что в параметрах, что в наборе данных.
2 WED
 
16.11.12
11:02
В параметрах нет поля Регистратор.
3 WED
 
16.11.12
11:02
Никаких отборов, ничего кроме периода.
И только конец периода так влияет.
4 Aprobator
 
16.11.12
11:02
остаток на конец периода показывается, чего странного то?
5 WED
 
16.11.12
11:03
(4) Почему и как убрать?
6 НастоящееИмя
 
16.11.12
11:03
(2)Причём тут регистратор
7 Aprobator
 
16.11.12
11:05
запрос показывай.
8 НастоящееИмя
 
16.11.12
11:05
(5)Если,красиво - то через объединение запросов
9 НастоящееИмя
 
16.11.12
11:06
Как пример:

ВЫБРАТЬ
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.СуммаОборот > 0
           ТОГДА ВЫРАЗИТЬ("2. Приход" КАК СТРОКА(10))
       ИНАЧЕ ВЫРАЗИТЬ("3. Расход" КАК СТРОКА(10))
   КОНЕЦ КАК ВидДвижения,
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ВЫБОР
                   КОГДА ХозрасчетныйОбороты.Субконто1 = &ПустоеСубконто
                       ТОГДА ВЫРАЗИТЬ("<Не выбран>" КАК СТРОКА(20))
                   ИНАЧЕ ХозрасчетныйОбороты.Субконто1
               КОНЕЦ
       ИНАЧЕ ВЫБОР
               КОГДА ХозрасчетныйОбороты.Субконто2 = &ПустоеСубконто
                   ТОГДА ВЫРАЗИТЬ("<Не выбран>" КАК СТРОКА(20))
               ИНАЧЕ ХозрасчетныйОбороты.Субконто2
           КОНЕЦ
   КОНЕЦ КАК СтатьяДвиженияДС,
   ХозрасчетныйОбороты.Регистратор,
   ХозрасчетныйОбороты.КорСубконто1 КАК Субконто,
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ХозрасчетныйОбороты.СуммаОборот
   КОНЕЦ КАК СуммаОборотКасса,
   ВЫБОР
       КОГДА НЕ ХозрасчетныйОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ХозрасчетныйОбороты.СуммаОборот
   КОНЕЦ КАК СуммаОборотРС,
   ХозрасчетныйОбороты.СуммаОборот,
   ВЫБОР
       КОГДА НЕ ХозрасчетныйОбороты.ПериодМесяц ЕСТЬ NULL
           ТОГДА ХозрасчетныйОбороты.ПериодМесяц
   КОНЕЦ КАК ПериодМесяц,
   ВЫБОР
       КОГДА НЕ ХозрасчетныйОбороты.ПериодДень ЕСТЬ NULL
           ТОГДА ХозрасчетныйОбороты.ПериодДень
   КОНЕЦ КАК ПериодДень
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, Авто, Счет В ИЕРАРХИИ (&МассивСчетов), , {(Организация = &ВыбОрганизация)}, , ) КАК ХозрасчетныйОбороты

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

ВЫБРАТЬ
   ВЫРАЗИТЬ("1. Начальный остаток" КАК СТРОКА(20)),
   NULL,
   NULL,
   NULL,
   ВЫБОР
       КОГДА ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток
   КОНЕЦ,
   ВЫБОР
       КОГДА НЕ ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток
   КОНЕЦ,
   NULL,
   NULL,
   NULL
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Авто, , Счет В ИЕРАРХИИ (&МассивСчетов), , {(Организация = &ВыбОрганизация)}) КАК ХозрасчетныйОстаткиИОбороты

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

ВЫБРАТЬ
   ВЫРАЗИТЬ("4. Конечный остаток" КАК СТРОКА(20)),
   NULL,
   NULL,
   NULL,
   ВЫБОР
       КОГДА ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток
   КОНЕЦ,
   ВЫБОР
       КОГДА НЕ ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Счет50)
           ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток
   КОНЕЦ,
   NULL,
   NULL,
   NULL
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Авто, , Счет В ИЕРАРХИИ (&МассивСчетов), , {(Организация = &ВыбОрганизация)}) КАК ХозрасчетныйОстаткиИОбороты

УПОРЯДОЧИТЬ ПО
   ВидДвижения
10 WED
 
16.11.12
11:06
(7) ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокНачальныйОстаток) КАК НачальныйОстаток,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокКонечныйОстаток) КАК КонечныйОстаток,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокПриход) КАК Приход,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокРасход) КАК Расход,
   ТоварыНаСкладахОстаткиИОбороты.Период,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Регистратор, , Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Комплектующее)) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.Период,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор

УПОРЯДОЧИТЬ ПО
   Склад,
   Номенклатура
11 samozvanec
 
16.11.12
11:06
в настройках скд у периода дополнение есть?
12 WED
 
16.11.12
11:07
Период в запросе добавлен временно, что бы показать скриншот
13 WED
 
16.11.12
11:07
(11) нет
14 WED
 
16.11.12
11:08
(9) Да ну не может быть, что б простейший запрос надо было превращать в объединение запросов...
15 Aprobator
 
16.11.12
11:08
СГРУППИРОВАТЬ, СУММА, УПОРЯДОЧИТЬ за использование данных конструкций применительно к виртуальной таблице, да еще и в СКД - расстрел на месте без суда и следствия.
16 WED
 
16.11.12
11:10
(15) Да не использую я их в СКД :) Это уже эксперименты пошли..
17 НастоящееИмя
 
16.11.12
11:10
(14) Этожбубыльгум/читай 1С/
18 WED
 
16.11.12
11:11
+(15) Вот запрос изначальный из CRL^

<code>
ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокНачальныйОстаток КАК НачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокКонечныйОстаток КАК КонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокПриход КАК Приход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоОстатокРасход КАК Расход,
   ТоварыНаСкладахОстаткиИОбороты.Период,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Регистратор, , Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Комплектующее)) КАК ТоварыНаСкладахОстаткиИОбороты
</code>
19 НастоящееИмя
 
16.11.12
11:11
(14)А как ты хотел вывести начальный и конечный остаток?
20 НастоящееИмя
 
16.11.12
11:12
(14)Раз в строки запихал - получай
21 WED
 
16.11.12
11:13
(19,20) Тогда почему ж там только конечный остаток, да еще и в начале группировки
22 WED
 
16.11.12
11:16
+(21) Вкурил. В начале он, потому что сортировка по регистратору, а на конец периода регистратора нет - пустой, потому и в начале группировки. Если делать сортировку по периоду, то строка уходит в конец группировки, что логично..

Вопрос как её вообще нафиг убрать?
23 hhhh
 
16.11.12
11:17
(22) ГДЕ НЕ (РЕГИСТРАТОР ЕСТЬ NULL)
24 hhhh
 
16.11.12
11:18
(23)+ И РЕГИСТРАТОР <> НЕОПРЕДЕЛЕНО
25 WED
 
16.11.12
11:22
(23) И что это даст? Движений по регистру без регистратора итак нет.
А строка выводится потому что на конец периода тоже данные получаются.
26 hhhh
 
16.11.12
11:27
(25) ну не знаю, что даст? У меня получилось. Строки с пустым регистратором убрались.
27 WED
 
16.11.12
11:28
(26) Покажи запрос
28 hhhh
 
16.11.12
12:32
(27) стоп, я похоже не в запросе делал. А в СКД в поле отбор установил такой отбор.
29 riv40rus
 
16.11.12
12:39
(27) в настройках СКД
1. для поля Регистратор  - Игнорировать значения NULL, Период = 1
2. Для поля Период - Игнорировать значения NULL, Период = 2
30 riv40rus
 
16.11.12
12:39
(27) -> (0)
31 WED
 
16.11.12
12:43
(29) Похоже на правду. Строк с пустым регистратором нет. Спасибо.
32 Lady исчезает
 
16.11.12
12:46
А почему не хотите выставить периодичность по регистратору?
33 WED
 
16.11.12
12:47
(32) А потому что она итак по регистратору :)
Основная теорема систематики: Новые системы плодят новые проблемы.