Имя: Пароль:
1C
1С v8
Отчёт по контрактам
0 dust09
 
14.11.16
19:30
Добрый день!

Мне нужно доработать отчёт, вот тех. задание:

доработать отчёт "Контракты 50/50" для получения полной информации по оплате за ПРИНЯТЫЕ контракты за определённый промежуток времени:

1. количество ранее оплаченных контрактов с указанием номера документа и даты оплаты;

2. количество оплаченных контрактов в указанный промежуток времени с указанием номера документа и даты оплаты;

3. количество контрактов, оплаченных позже заданного промежутка времени.

4. количество неоплаченных (или оплаченных частично) контрактов.

В итоговых значениях отчёта должна быть отображена общая сумма оплаты за ПРИНЯТЫЕ контракты с разбиением на виды оплаты (уже есть в отчёте), а также на временные промежутки:

1. оплата за ранее оплаченные контракты, но принятые в заданный промежуток времени;

2. оплата за принятые и оплаченные контакты в заданный промежуток времени;

3. оплата, поступившая за контракты позже заданного промежутка времени.
1 Mauser
 
14.11.16
19:44
За тебя надо поболеть? Давай! Давай! Вперед! Вперед!
2 HeKrendel
 
14.11.16
21:20
(0) Задание класс, мы рады за тебя, давай, держись там!
3 dust09
 
15.11.16
05:12
(0) запрос изначальный:

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

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

ВЫБРАТЬ
    НепринятыеКонтрактыОбороты.Регистратор,
    НепринятыеКонтрактыОбороты.Контрагент,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    НепринятыеКонтрактыОбороты.Регистратор.Ответственный,
    НепринятыеКонтрактыОбороты.КоличествоПриход,
    НепринятыеКонтрактыОбороты.КоличествоРасход
ИЗ
    РегистрНакопления.НепринятыеКонтракты.Обороты(НАЧАЛОПЕРИОДА(&НачПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ), Авто, {(Контрагент В (&Контрагенты)) КАК Поле2}) КАК НепринятыеКонтрактыОбороты

ИНДЕКСИРОВАТЬ ПО
    Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТ_ПТКК.Регистратор,
    ВЫБОР
        КОГДА ПТК_РБ.СуммаЧека = 6000
            ТОГДА ПТК_РБ.СуммаЗачета
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаПлатежаБонусами6000,
    ВЫБОР
        КОГДА ПТК_РБ.СуммаЧека <> 6000
            ТОГДА ПТК_РБ.СуммаЗачета
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаПлатежаБонусамиПрочие,
    ВТ_ПТКК.Ответственный,
    ВТ_ПТКК.Контрагент,
    ПТК_РБ.НомерЧека
ПОМЕСТИТЬ ВТ_Бонусы
ИЗ
    ВТ_ПТКК КАК ВТ_ПТКК
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходЗаТоварЧерезКассу.РасшифровкаБонусов КАК ПТК_РБ
        ПО ВТ_ПТКК.Регистратор = ПТК_РБ.Ссылка
ГДЕ
    ВТ_ПТКК.Регистратор ССЫЛКА Документ.ПриходЗаТоварЧерезКассу
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Бонусы.Регистратор,
    СУММА(ВТ_Бонусы.СуммаПлатежаБонусами6000) КАК СуммаПлатежаБонусами6000,
    СУММА(ВТ_Бонусы.СуммаПлатежаБонусамиПрочие) КАК СуммаПлатежаБонусамиПрочие,
    ВТ_Бонусы.Ответственный,
    ВТ_Бонусы.Контрагент,
    ВТ_Бонусы.НомерЧека
ПОМЕСТИТЬ ВТ_Бонусы_ГР
ИЗ
    ВТ_Бонусы КАК ВТ_Бонусы
ГДЕ
    (ВТ_Бонусы.СуммаПлатежаБонусами6000 <> 0
            ИЛИ ВТ_Бонусы.СуммаПлатежаБонусамиПрочие <> 0)

СГРУППИРОВАТЬ ПО
    ВТ_Бонусы.Регистратор,
    ВТ_Бонусы.Ответственный,
    ВТ_Бонусы.Контрагент,
    ВТ_Бонусы.НомерЧека
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТ_Бонусы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    1 КАК ПериодДанных,
    ВТ_ПТКК.Регистратор,
    ВТ_ПТКК.Контрагент,
    ВТ_ПТКК.СуммаБанк,
    ВТ_ПТКК.СуммаВзаиморасчетов,
    ВТ_ПТКК.СуммаДокументы,
    ВТ_ПТКК.СуммаПлатежа,
    ВТ_ПТКК.СуммаПТК,
    0 КАК СуммаПлатежаБонусами6000,
    0 КАК СуммаПлатежаБонусамиПрочие,
    ВТ_ПТКК.СуммаПлатежаБонусамиВсего,
    ВТ_ПТКК.СуммаПлатежаКартой,
    ВТ_ПТКК.Ответственный,
    ВТ_ПТКК.КонтрактовОплачено,
    ВТ_ПТКК.КонтрактовПринято,
    ВТ_ПТКК.СуммаСтроки КАК СуммаВсего
ИЗ
    ВТ_ПТКК КАК ВТ_ПТКК

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

ВЫБРАТЬ
    1,
    ВТ_Бонусы_ГР.Регистратор,
    ВТ_Бонусы_ГР.Контрагент,
    0,
    0,
    0,
    0,
    0,
    ВТ_Бонусы_ГР.СуммаПлатежаБонусами6000,
    ВТ_Бонусы_ГР.СуммаПлатежаБонусамиПрочие,
    0,
    0,
    ВТ_Бонусы_ГР.Ответственный,
    0,
    0,
    0
ИЗ
    ВТ_Бонусы_ГР КАК ВТ_Бонусы_ГР
4 dust09
 
15.11.16
05:14
(3) .

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

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

ВЫБРАТЬ
    НепринятыеКонтрактыОбороты.Регистратор,
    НепринятыеКонтрактыОбороты.Контрагент,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    НепринятыеКонтрактыОбороты.Регистратор.Ответственный,
    НепринятыеКонтрактыОбороты.КоличествоПриход,
    НепринятыеКонтрактыОбороты.КоличествоРасход
ИЗ
    РегистрНакопления.НепринятыеКонтракты.Обороты(НАЧАЛОПЕРИОДА(&НачПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ), Авто, {(Контрагент В (&Контрагенты)) КАК Поле2}) КАК НепринятыеКонтрактыОбороты

ИНДЕКСИРОВАТЬ ПО
    Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТ_ПТКК.Регистратор,
    ВЫБОР
        КОГДА ПТК_РБ.СуммаЧека = 6000
            ТОГДА ПТК_РБ.СуммаЗачета
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаПлатежаБонусами6000,
    ВЫБОР
        КОГДА ПТК_РБ.СуммаЧека <> 6000
            ТОГДА ПТК_РБ.СуммаЗачета
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаПлатежаБонусамиПрочие,
    ВТ_ПТКК.Ответственный,
    ВТ_ПТКК.Контрагент,
    ПТК_РБ.НомерЧека
ПОМЕСТИТЬ ВТ_Бонусы
ИЗ
    ВТ_ПТКК КАК ВТ_ПТКК
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходЗаТоварЧерезКассу.РасшифровкаБонусов КАК ПТК_РБ
        ПО ВТ_ПТКК.Регистратор = ПТК_РБ.Ссылка
ГДЕ
    ВТ_ПТКК.Регистратор ССЫЛКА Документ.ПриходЗаТоварЧерезКассу
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Бонусы.Регистратор,
    СУММА(ВТ_Бонусы.СуммаПлатежаБонусами6000) КАК СуммаПлатежаБонусами6000,
    СУММА(ВТ_Бонусы.СуммаПлатежаБонусамиПрочие) КАК СуммаПлатежаБонусамиПрочие,
    ВТ_Бонусы.Ответственный,
    ВТ_Бонусы.Контрагент,
    ВТ_Бонусы.НомерЧека
ПОМЕСТИТЬ ВТ_Бонусы_ГР
ИЗ
    ВТ_Бонусы КАК ВТ_Бонусы
ГДЕ
    (ВТ_Бонусы.СуммаПлатежаБонусами6000 <> 0
            ИЛИ ВТ_Бонусы.СуммаПлатежаБонусамиПрочие <> 0)

СГРУППИРОВАТЬ ПО
    ВТ_Бонусы.Регистратор,
    ВТ_Бонусы.Ответственный,
    ВТ_Бонусы.Контрагент,
    ВТ_Бонусы.НомерЧека
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТ_Бонусы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    1 КАК ПериодДанных,
    ВТ_ПТКК.Регистратор,
    ВТ_ПТКК.Контрагент,
    ВТ_ПТКК.СуммаБанк,
    ВТ_ПТКК.СуммаВзаиморасчетов,
    ВТ_ПТКК.СуммаДокументы,
    ВТ_ПТКК.СуммаПлатежа,
    ВТ_ПТКК.СуммаПТК,
    0 КАК СуммаПлатежаБонусами6000,
    0 КАК СуммаПлатежаБонусамиПрочие,
    ВТ_ПТКК.СуммаПлатежаБонусамиВсего,
    ВТ_ПТКК.СуммаПлатежаКартой,
    ВТ_ПТКК.Ответственный,
    ВТ_ПТКК.КонтрактовОплачено,
    ВТ_ПТКК.КонтрактовПринято,
    ВТ_ПТКК.СуммаСтроки КАК СуммаВсего
ИЗ
    ВТ_ПТКК КАК ВТ_ПТКК

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

ВЫБРАТЬ
    1,
    ВТ_Бонусы_ГР.Регистратор,
    ВТ_Бонусы_ГР.Контрагент,
    0,
    0,
    0,
    0,
    0,
    ВТ_Бонусы_ГР.СуммаПлатежаБонусами6000,
    ВТ_Бонусы_ГР.СуммаПлатежаБонусамиПрочие,
    0,
    0,
    ВТ_Бонусы_ГР.Ответственный,
    0,
    0,
    0
ИЗ
    ВТ_Бонусы_ГР КАК ВТ_Бонусы_ГР
5 torgm
 
15.11.16
05:15
(0) от нас то что трэба, причем конфа забавная?
6 dust09
 
15.11.16
05:16
конфа КА
7 dust09
 
15.11.16
05:17
Запрос надо допилить
8 dust09
 
15.11.16
05:17
Там  есть ещё документ "Принятие конт рактов"
9 dust09
 
15.11.16
05:19
И регистр сведений "Принятые контракты"
10 dust09
 
15.11.16
05:26
Я сделал пока что:


ВЫБРАТЬ
            ПринятыеКонтракты.КонтрагентВКонтракте КАК ФИО,
            ПринятыеКонтракты.КонтрактныйНомер КАК КонтрактныйНомер,
            ПринятыеКонтракты.ДатаПринятия КАК ДатаКонтракта,
            ПринятыеКонтракты.Регистратор КАК ПринятиеКонтрактов,
            ПринятыеКонтракты.ПриходЗаТоварЧерезКассу КАК ПриходЗаТоварЧерезКассу
ИЗ
            РегистрСведений.ПринятыеКонтракты КАК ПринятыеКонтракты
ГДЕ
            ПринятыеКонтракты.ДатаПринятия МЕЖДУ НАЧАЛОПЕРИОДА(&НачПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ)
11 Wit77
 
15.11.16
07:19
Если тех. задание дали Вам, деньги скорее всего будете получать Вы, то что вам позволяет думать, что это тех задание бесплатно будут делать за вас посетители форума?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс