Имя: Пароль:
1C
1С v8
Отчет в СКД. Как правильно вывести кол-во непродленных подписок ИТС?
,
0 reznik911
 
05.08.14
10:08
отчет в СКД - Расчет НПП за период. показывает сколько продленных, непродленных, актуальных и новых подписок на прошедший месяц(например дата начала задается 01.02.14 а данные покажет за Январь 2014г.) Кол-во продленных - это кол-во тех у кого н\р: закончилась подписка на 01.05.14 и они продлили договора на 01.05.14г. Непродленные, конечно же, те у кого завершилась но так и не продлили подписку. так вот бывают случаи когда под одним номером сертификата регистрируется та же фирма с новым именем, т.е. к примеру фирма "Прайм" купила 1с бухгалтерию 01.04.13г с номером 98997789, а потом 01.04.14 продлила под названием "Фиаско" с тем же номером. это когда номер продукта не изменился. вот когда фирма Прайм продлила под тем же именем но с другим номером серт. ил купила другую программу - отчет уже думает что это разные фирмы и показывает что они не продлили подписку((

вот примеры на картинке. первая фирма ЧУ Региональный социально-инновационный университет. подписка завершилась 01.11.14г, дата начала новой подписки 01.05.14г , название фирмы и номер тот же

http://savepic.org/5840893.png

Второй пример также только номер сертификата другой. Его показывает как непродленный

http://savepic.org/5897212.png

Листинг:

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(ИТС_Подписки.ДатаЗавершения, МЕСЯЦ) КАК Период,
    ИТС_Подписки.Организация,
    ВЫБОР
        КОГДА ИТС_Подписки.Партнер = ЗНАЧЕНИЕ(справочник.контрагенты.пустаяссылка)
            ТОГДА "Наша подписка"
        ИНАЧЕ ИТС_Подписки.Партнер
    КОНЕЦ КАК Партнер,
    ИТС_Подписки.ВидПодписки,
    1 КАК КоличествоЗавершенных,
    ИТС_Подписки.Контрагент,
    ИТС_Подписки.ДатаЗавершения,
    ИТС_Подписки.ДатаНачала,
    ИТС_Подписки.КоличествоВыпусков,
    ИТС_Подписки.Заявка.РегНомер
ПОМЕСТИТЬ Завершенные
ИЗ
    РегистрСведений.ИТС_Подписки КАК ИТС_Подписки
ГДЕ
    ИТС_Подписки.СостояниеЗаявки = ЗНАЧЕНИЕ(ПЕРЕЧИСЛЕНИЕ.ИТС_ВидыСостоянийЗаявок.Подписана)
    И ИТС_Подписки.ДатаЗавершения МЕЖДУ &НачалоПериода И &КонецПериода
    И ИТС_Подписки.Партнер <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    1 КАК КоличествоПродленных,
    ЕСТЬNULL(Завершенные.Организация, Новые.Организация) КАК Организация,
    ЕСТЬNULL(Завершенные.Контрагент, Новые.Контрагент) КАК Контрагент,
    ЕСТЬNULL(Завершенные.ВидПодписки, Новые.ВидПодписки) КАК ВидПодписки,
    НАЧАЛОПЕРИОДА(Завершенные.ДатаЗавершения, МЕСЯЦ) КАК Период,
    ЕСТЬNULL(Завершенные.Партнер, Новые.Партнер) КАК Партнер,
    ЕСТЬNULL(Завершенные.ЗаявкаРегНомер, Новые.ЗаявкаРегНомер) КАК РегНомер
ПОМЕСТИТЬ Продленные
ИЗ
    Новые КАК Новые
        ЛЕВОЕ СОЕДИНЕНИЕ Завершенные КАК Завершенные
        ПО Новые.Период = Завершенные.Период
            И (Завершенные.Организация = Новые.Организация)
            И Новые.ЗаявкаРегНомер = Завершенные.ЗаявкаРегНомер
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЕСТЬNULL(Новые.Организация, Завершенные.Организация) КАК Организация,
    ЕСТЬNULL(Новые.Контрагент, Завершенные.Контрагент) КАК Контрагент,
    ЕСТЬNULL(Новые.ВидПодписки, Завершенные.ВидПодписки) КАК ВидПодписки,
    ЕСТЬNULL(Новые.Период, Завершенные.Период) КАК Период,
    СУММА(ЕСТЬNULL(Новые.КоличествоНовых, 0)) КАК КоличествоНовых,
    СУММА(ЕСТЬNULL(Завершенные.КоличествоЗавершенных, 0)) КАК КоличествоЗавершенных,
    ЕСТЬNULL(Новые.Партнер, Завершенные.Партнер) КАК Партнер,
    Завершенные.ДатаНачала,
    Завершенные.ДатаЗавершения,
    Завершенные.КоличествоВыпусков,
    ЕСТЬNULL(Новые.ЗаявкаРегНомер, Завершенные.ЗаявкаРегНомер) КАК РегНомер,
    Новые.КоличествоАктуальных
ПОМЕСТИТЬ Новые_Завершенные
ИЗ
    Новые КАК Новые
        ПОЛНОЕ СОЕДИНЕНИЕ Завершенные КАК Завершенные
        ПО Новые.Организация = Завершенные.Организация
            И Новые.ВидПодписки = Завершенные.ВидПодписки
            И Новые.Период = Завершенные.Период
            И Новые.Партнер = Завершенные.Партнер
            И Новые.ЗаявкаРегНомер = Завершенные.ЗаявкаРегНомер

СГРУППИРОВАТЬ ПО
    Завершенные.ДатаНачала,
    Завершенные.ДатаЗавершения,
    Завершенные.КоличествоВыпусков,
    Новые.КоличествоАктуальных,
    ЕСТЬNULL(Новые.Организация, Завершенные.Организация),
    ЕСТЬNULL(Новые.Контрагент, Завершенные.Контрагент),
    ЕСТЬNULL(Новые.ВидПодписки, Завершенные.ВидПодписки),
    ЕСТЬNULL(Новые.Период, Завершенные.Период),
    ЕСТЬNULL(Новые.Партнер, Завершенные.Партнер),
    ЕСТЬNULL(Новые.ЗаявкаРегНомер, Завершенные.ЗаявкаРегНомер)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Новые_Завершенные.Организация,
    Новые_Завершенные.Контрагент,
    Новые_Завершенные.ВидПодписки,
    Новые_Завершенные.Период КАК Период,
    СУММА(Новые_Завершенные.КоличествоНовых) КАК КоличествоНовых,
    СУММА(ВЫБОР
            КОГДА Новые_Завершенные.КоличествоЗавершенных <> 0
                ТОГДА 1
        КОНЕЦ) КАК КоличествоЗавершенных,
    СУММА(Продленные.КоличествоПродленных) КАК КоличествоПродленных,
    Новые_Завершенные.Партнер,
    СУММА(ВЫБОР
            КОГДА Новые_Завершенные.КоличествоЗавершенных <> 0
                ТОГДА ЕСТЬNULL(Новые_Завершенные.КоличествоЗавершенных, 0) - ЕСТЬNULL(Продленные.КоличествоПродленных, 0)
        КОНЕЦ) КАК КоличествоНепродленных,
    Новые_Завершенные.ДатаНачала,
    Новые_Завершенные.ДатаЗавершения,
    Новые_Завершенные.КоличествоВыпусков,
    Новые_Завершенные.РегНомер,
    СУММА(Новые_Завершенные.КоличествоАктуальных) КАК КоличествоАктуальных,
    0 КАК ПроцентОтвала
ИЗ
    Новые_Завершенные КАК Новые_Завершенные
        ЛЕВОЕ СОЕДИНЕНИЕ Продленные КАК Продленные
        ПО Новые_Завершенные.Организация = Продленные.Организация
            И Новые_Завершенные.Период = Продленные.Период
            И Новые_Завершенные.Партнер = Продленные.Партнер
            И Новые_Завершенные.ВидПодписки = Продленные.ВидПодписки
            И Новые_Завершенные.РегНомер = Продленные.РегНомер

СГРУППИРОВАТЬ ПО
    Новые_Завершенные.Организация,
    Новые_Завершенные.Контрагент,
    Новые_Завершенные.ВидПодписки,
    Новые_Завершенные.Период,
    Новые_Завершенные.Партнер,
    Новые_Завершенные.ДатаНачала,
    Новые_Завершенные.ДатаЗавершения,
    Новые_Завершенные.КоличествоВыпусков,
    Новые_Завершенные.РегНомер

УПОРЯДОЧИТЬ ПО
    Период
1 reznik911
 
05.08.14
10:11
скрин с отчета

http://savepic.org/5886972.png
2 reznik911
 
05.08.14
10:20
ап
3 reznik911
 
05.08.14
10:30
разные связи пробовал условия не помогло((( уже 2 недели мучаюсь
4 reznik911
 
05.08.14
13:33
+
5 reznik911
 
06.08.14
07:50
+