Имя: Пароль:
1C
1С v8
Пакетный запрос данных для отчета ГрафикПлатежей
0 LivingStar
 
17.10.13
10:45
Извиняюсь за многократный повторы, но снова создаю тему в надежде услышать от кого либо, то что подтолкнёт меня на мотивацию к действию. Я все же стараюсь не сидеть просто так а думать над этой выборкой, как она должна быть правильная. Напомню что, к сумме запроса №1 в таблицу тзОплаты должны прибавиться 2 документа РасходныйКассовыйОрдер, АвансовыйОтчет. А из суммы тзПокупки, которая выполняется по документу ПоступлениеТоваровУслуг должна вычитаться сумма документа ВозвратТоваровПоставщику.

ЗАПРОС №1

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

СГРУППИРОВАТЬ ПО
    ПлатежноеПоручениеИсходящее.ДоговорКонтрагента,
    ПлатежноеПоручениеИсходящее.Контрагент
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    тзПокупки.Ссылка,
    тзПокупки.ДатаДокумента,
    тзПокупки.НомерДокумента,
    тзПокупки.НомерВходящегоДокумента,
    тзПокупки.Контрагент,
    тзПокупки.Договор,
    тзПокупки.ДопустимоеЧислоДнейЗадолженности,
    тзПокупки.СуммаКОплате,
    тзПокупки.ПоследняяДатаОплаты,
    СУММА(тзПокупки1.СуммаКОплате) КАК СуммаКОплатеДО
ПОМЕСТИТЬ тзРаспределениеДолга
ИЗ
    тзПокупки КАК тзПокупки
        ЛЕВОЕ СОЕДИНЕНИЕ тзПокупки КАК тзПокупки1
        ПО тзПокупки.Контрагент = тзПокупки1.Контрагент
            И тзПокупки.Договор = тзПокупки1.Договор
            И тзПокупки.ДатаДокумента > тзПокупки1.ДатаДокумента

СГРУППИРОВАТЬ ПО
    тзПокупки.Ссылка,
    тзПокупки.ДатаДокумента,
    тзПокупки.НомерДокумента,
    тзПокупки.НомерВходящегоДокумента,
    тзПокупки.Контрагент,
    тзПокупки.Договор,
    тзПокупки.ДопустимоеЧислоДнейЗадолженности,
    тзПокупки.СуммаКОплате,
    тзПокупки.ПоследняяДатаОплаты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    тзРаспределениеДолга.Ссылка КАК Ссылка,
    тзРаспределениеДолга.Договор КАК Договор,
    тзРаспределениеДолга.НомерДокумента КАК НомерДокумента,
    тзРаспределениеДолга.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
    тзРаспределениеДолга.ДатаДокумента КАК ДатаДокумента,
    тзРаспределениеДолга.Контрагент КАК Контрагент,
    тзОплаты.СуммаПлатежа КАК СуммаПлатежа,
    тзРаспределениеДолга.СуммаКОплате КАК СуммаКОплате,
    тзРаспределениеДолга.СуммаКОплатеДО КАК СуммаКОплатеДО,
    тзРаспределениеДолга.СуммаКОплате + тзРаспределениеДолга.СуммаКОплатеДО КАК СуммаКОплатеВсего,
    тзРаспределениеДолга.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
    тзОплаты.СуммаПлатежа - тзРаспределениеДолга.СуммаКОплате - тзРаспределениеДолга.СуммаКОплатеДО КАК Долг,
    тзРаспределениеДолга.ПоследняяДатаОплаты КАК ПоследняяДатаоплаты
ИЗ
    тзРаспределениеДолга КАК тзРаспределениеДолга
        ЛЕВОЕ СОЕДИНЕНИЕ тзОплаты КАК тзОплаты
        ПО тзРаспределениеДолга.Контрагент = тзОплаты.Контрагент
            И тзРаспределениеДолга.Договор = тзОплаты.ДоговорКонтрагента

УПОРЯДОЧИТЬ ПО
    Контрагент,
    Договор,
    ДатаДокумента
1 LivingStar
 
17.10.13
10:47
Попытался сделать что описанно в (0), но эта выборка сбрасывается с сервера с ошибкой времени выполнения

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

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

ВЫБРАТЬ
    РасходныйКассовыйОрдер.Ссылка,
    РасходныйКассовыйОрдер.Ссылка.Контрагент  КАК Контрагент,
    РасходныйКассовыйОрдер.ДоговорКонтрагента КАК ДоговорКонтрагента,
    РасходныйКассовыйОрдер.СуммаПлатежа       КАК СуммаПлатежа
ИЗ
    Документ.РасходныйКассовыйОрдер.РасшифровкаПлатежа КАК РасходныйКассовыйОрдер
ГДЕ
    РасходныйКассовыйОрдер.Ссылка.Проведен
    И РасходныйКассовыйОрдер.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРКО.ОплатаПоставщику)

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

ВЫБРАТЬ
    АвансовыйОтчетОплатаПоставщикам.Ссылка,
    АвансовыйОтчетОплатаПоставщикам.Контрагент         КАК Контрагент,
    АвансовыйОтчетОплатаПоставщикам.ДоговорКонтрагента КАК ДоговорКонтрагента,
    АвансовыйОтчетОплатаПоставщикам.Сумма              КАК СуммаПлатежа
ИЗ
    Документ.АвансовыйОтчет.ОплатаПоставщикам КАК АвансовыйОтчетОплатаПоставщикам
ГДЕ
    АвансовыйОтчетОплатаПоставщикам.Ссылка.Проведен
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Оплаты.Ссылка,
    ВТ_Оплаты.Контрагент КАК Контрагент,
    ВТ_Оплаты.ДоговорКонтрагента,
    СУММА(ВТ_Оплаты.СуммаПлатежа) КАК СуммаПлатежа,
    ВТ_Оплаты.Контрагент.Наименование КАК КонтрагентНаименование
ПОМЕСТИТЬ тзОплаты    
ИЗ
    ВТ_Оплаты КАК ВТ_Оплаты

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

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

ВЫБРАТЬ
    0,
    0,
    0,
    0,
    ВозвратТоваровОтПокупателя.ДоговорКонтрагента,
    0,
    ВозвратТоваровОтПокупателя.Контрагент,
    ЕСТЬNULL(ВозвратТоваровОтПокупателя.СуммаДокумента * -1, 0),
    0
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
ГДЕ
    ВозвратТоваровОтПокупателя.Проведен
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Покупки.Ссылка,
    ВТ_Покупки.НомерДокумента,
    ВТ_Покупки.НомерВходящегоДокумента,
    ВТ_Покупки.ДатаДокумента,
    ВТ_Покупки.Договор,
    ВТ_Покупки.Контрагент,
    ВТ_Покупки.ДопустимоеЧислоДнейЗадолженности,
    СУММА(ВТ_Покупки.СуммаКОплате) КАК СуммаКОплате,
    ВТ_Покупки.ПоследняяДатаОплаты
ПОМЕСТИТЬ тзПокупки
ИЗ
    ВТ_Покупки КАК ВТ_Покупки

СГРУППИРОВАТЬ ПО
    ВТ_Покупки.Контрагент,
    ВТ_Покупки.Договор,
    ВТ_Покупки.Ссылка,
    ВТ_Покупки.НомерДокумента,
    ВТ_Покупки.НомерВходящегоДокумента,
    ВТ_Покупки.ДатаДокумента,
    ВТ_Покупки.ДопустимоеЧислоДнейЗадолженности,
    ВТ_Покупки.ПоследняяДатаОплаты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    тзПокупки.Ссылка,
    тзПокупки.ДатаДокумента,
    тзПокупки.НомерДокумента,
    тзПокупки.НомерВходящегоДокумента,
    тзПокупки.Контрагент,
    тзПокупки.Договор,
    тзПокупки.ДопустимоеЧислоДнейЗадолженности,
    тзПокупки.СуммаКОплате,
    тзПокупки.ПоследняяДатаОплаты,
    СУММА(тзПокупки1.СуммаКОплате) КАК СуммаКОплатеДО
ПОМЕСТИТЬ тзРаспределениеДолга
ИЗ
    ВТ_Покупки КАК тзПокупки
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Покупки КАК тзПокупки1
        ПО тзПокупки.Контрагент = тзПокупки1.Контрагент
            И тзПокупки.Договор = тзПокупки1.Договор
            И тзПокупки.ДатаДокумента > тзПокупки1.ДатаДокумента

СГРУППИРОВАТЬ ПО
    тзПокупки.Ссылка,
    тзПокупки.ДатаДокумента,
    тзПокупки.НомерДокумента,
    тзПокупки.НомерВходящегоДокумента,
    тзПокупки.Контрагент,
    тзПокупки.Договор,
    тзПокупки.ДопустимоеЧислоДнейЗадолженности,
    тзПокупки.СуммаКОплате,
    тзПокупки.ПоследняяДатаОплаты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    тзРаспределениеДолга.Ссылка КАК Ссылка,
    тзРаспределениеДолга.Контрагент КАК Контрагент,
    тзРаспределениеДолга.Договор КАК Договор,
    тзРаспределениеДолга.НомерДокумента КАК НомерДокумента,
    тзРаспределениеДолга.НомерВходящегоДокумента КАК НомерВходящегоДокумента,
    тзРаспределениеДолга.ДатаДокумента КАК ДатаДокумента,
    тзОплаты.СуммаПлатежа КАК СуммаПлатежа,
    тзРаспределениеДолга.СуммаКОплате КАК СуммаДокумента,
    тзРаспределениеДолга.СуммаКОплатеДО КАК СуммаДокументаДО,
    тзОплаты.СуммаПлатежа - тзРаспределениеДолга.СуммаКОплате - тзРаспределениеДолга.СуммаКОплатеДО КАК Долг,
    тзРаспределениеДолга.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
    тзРаспределениеДолга.ПоследняяДатаОплаты КАК ПоследняяДатаоплаты,
    тзРаспределениеДолга.СуммаКОплате + тзРаспределениеДолга.СуммаКОплатеДО КАК СуммаКОплатеВсего
ИЗ
    тзРаспределениеДолга КАК тзРаспределениеДолга
        ЛЕВОЕ СОЕДИНЕНИЕ тзОплаты КАК тзОплаты
        ПО тзРаспределениеДолга.Контрагент = тзОплаты.Контрагент
            И тзРаспределениеДолга.Договор = тзОплаты.ДоговорКонтрагента

УПОРЯДОЧИТЬ ПО
    Контрагент,
    Договор,
    ДатаДокумента
2 LivingStar
 
17.10.13
10:51
Пытаюсь сделать что то подобное по регистрам, но не совсем понятно можно ли так же вывести данные, что бы видеть все оплаты и необходимый набор столбцов.

1).  НомерПоПорядку
2).  Договор
3).  НомерДокумента
4).  НомерВходящегоДокумента
5).  ДатаДокумента
6).  СуммаПлатежа
7).  СуммаКОплате
8).  СуммаДокумента
9).  СуммаДокументаДО
10). Долг
11). ДопустимоеЧислоДнейЗадолженности
12). ПоследняяДатаОплаты


Все это есть в выборке в (0) и нормально выводится в типовой конфигурации 10.3, за исключением тех документов которые стоит добавить.

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Номер,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаВходящегоДокумента,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.СуммаДокумента,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ВидРасчетовСКонтрагентом.Ссылка,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ВидРасчетовСКонтрагентом.Порядок,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Ссылка
ПОМЕСТИТЬ ВТ_Документы
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Взаиморасчеты.Контрагент,
    ВТ_Взаиморасчеты.ДоговорКонтрагента,
    ВТ_Взаиморасчеты.СуммаВзаиморасчетовОстаток,
    ВТ_Взаиморасчеты.ДатаВыборки,
    ВТ_Взаиморасчеты.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности,
    ВТ_Документы.ДокументРасчетовСКонтрагентомСсылка
ИЗ
    ВТ_Взаиморасчеты КАК ВТ_Взаиморасчеты
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Документы КАК ВТ_Документы
        ПО ВТ_Взаиморасчеты.ДокументРасчетовСКонтрагентомСсылка = ВТ_Документы.ДокументРасчетовСКонтрагентомСсылка
3 LivingStar
 
17.10.13
10:56
может кому интересно, все выборки приведены, что нужно отобрать написано, хоть и в 10й раз...