Имя: Пароль:
1C
1С v8
СКД регистр накопления с регистратором
0 Csar
 
22.10.14
10:16
Ребята, доброе утро!
Пытаюсь нарисовать отчет СКД, использующий самый обычный рукописный регистр накопления (РН) типа номенклатура серия, количество, остаток. Подчинен регистратору. Необходимо выводить остаток по номенклатуре/серии, но с выводом регистратора. Вот с регистратором то и проблема, т.к. виртуальная таблица "Остатки" не содержит регистратор. У меня все просто - остаток каждой пары номенклатура/серия образован движением одного регистратора. Но возможно, что у этой пары было три движения (двумя-тремя другими регистраторами) - сначала приход, потом расход, потом снова приход с другими суммами. Нужно прилепить последний регистратор к остаткам.
Задача кажется простой и достаточно популярной, но что-то не могу сообразить как ее реализовать.
1 Looser-1c
 
22.10.14
10:17
Регистраторов в остатках не бывает (с)
2 Рэйв
 
22.10.14
10:19
Периодичность=Регистратор сделай
3 Рэйв
 
22.10.14
10:20
в запросе.
4 Csar
 
22.10.14
10:22
(2) в ВТ Остатки нет периодичности. Она есть в ВТ вида Обороты
5 Csar
 
22.10.14
10:24
(1) В том то и дело. Я пытался приделать Регистратор левым соединением, но у меня присоединяется вся история, а надо брать последний регистратор. Как это реализовать не знаю.
6 Рэйв
 
22.10.14
10:24
(4)Ну возьми тогда ОстаткиИОбороты. Там тоже есть
7 Csar
 
22.10.14
10:32
(6) Если брать эту ВТ, то тогда в поле Регистратор отображается вся история изменений регистраторов, т.е. они все вылазят.
8 Csar
 
22.10.14
10:35
На данный момент склепал вот такую конструкцию (честно не знаю что такое в фигурных скобочках, но без них не работает как надо)
ВЫБРАТЬ
    ДТ_ИсторияСоставаКомплектовОстатки.Номенклатура,
    ДТ_ИсторияСоставаКомплектовОстатки.СерияНоменклатуры,
    ДТ_ИсторияСоставаКомплектовОстатки.ХарактеристикаНоменклатуры,
    ДТ_ИсторияСоставаКомплектовОстатки.НоменклатураСостава,
    ДТ_ИсторияСоставаКомплектовОстатки.СерияНоменклатурыСостава,
    ДТ_ИсторияСоставаКомплектовОстатки.ХарактеристикаНоменклатурыСостава,
    ДТ_ИсторияСоставаКомплектовОстатки.КоличествоОстаток,
    ДТ_ИсторияСоставаКомплектовОстатки.СуммаНДСОстаток,
    ДТ_ИсторияСоставаКомплектовОстатки.СтоимостьОстаток,
    ДТ_ИсторияСоставаКомплектовОстатки.Номенклатура.Код,
    ДТ_ИсторияСоставаКомплектовОстатки.НоменклатураСостава.Код,
    ДТ_ИсторияСоставаКомплектовОстатки.Номенклатура.БазоваяЕдиницаИзмерения,
    ДТ_ИсторияСоставаКомплектовОстатки.НоменклатураСостава.БазоваяЕдиницаИзмерения,
    ДТ_ИсторияСоставаКомплектовОстатки.СтавкаНДС,
    ВложенныйЗапрос.Регистратор,
    ВложенныйЗапрос.ВидДвижения
ИЗ
    РегистрНакопления.ДТ_ИсторияСоставаКомплектов.Остатки(&Период, ) КАК ДТ_ИсторияСоставаКомплектовОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
            ДТ_ИсторияСоставаКомплектов.Регистратор КАК Регистратор,
            ДТ_ИсторияСоставаКомплектов.ВидДвижения КАК ВидДвижения,
            ДТ_ИсторияСоставаКомплектов.Номенклатура КАК Номенклатура,
            ДТ_ИсторияСоставаКомплектов.СерияНоменклатуры КАК СерияНоменклатуры,
            ДТ_ИсторияСоставаКомплектов.Период КАК Период
        ИЗ
            РегистрНакопления.ДТ_ИсторияСоставаКомплектов КАК ДТ_ИсторияСоставаКомплектов
        ГДЕ
            ДТ_ИсторияСоставаКомплектов.Период <= &Период
        {ГДЕ
            ДТ_ИсторияСоставаКомплектов.Номенклатура.*,
            ДТ_ИсторияСоставаКомплектов.СерияНоменклатуры.*}
        
        УПОРЯДОЧИТЬ ПО
            Период УБЫВ) КАК ВложенныйЗапрос
        ПО ДТ_ИсторияСоставаКомплектовОстатки.Номенклатура = ВложенныйЗапрос.Номенклатура
            И ДТ_ИсторияСоставаКомплектовОстатки.СерияНоменклатуры = ВложенныйЗапрос.СерияНоменклатуры
9 Csar
 
22.10.14
10:35
+ (8), но эта конструкция мне кажетсяне особо удачной.
10 Csar
 
22.10.14
10:47
Ой, она вообще не работает =) Никак не работает.
11 Kalambur
 
22.10.14
10:52
" Нужно прилепить последний регистратор к остаткам. "
ответ в (1)
12 Csar
 
22.10.14
10:55
(11) Я понимаю, что их нет в ВТ вида Остатки.