Имя: Пароль:
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
Если тех. задание дали Вам, деньги скорее всего будете получать Вы, то что вам позволяет думать, что это тех задание бесплатно будут делать за вас посетители форума?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой