0
ghostrid3r
17.03.14
✎
14:21
|
Добрый день уважаемые форумчане, по логике вещей мне будет достаточно для отбор по организации вытянуть поле из документа? Просто в регистре его почему то нету, говорят выпилили давно. :)
пример запроса:
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
СУММА(ВЫБОР
КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ВидВзаиморасчетов = &Ф1
ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
ИНАЧЕ 0
КОНЕЦ) КАК ДебетФ1,
СУММА(ВЫБОР
КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ВидВзаиморасчетов = &Ф2
ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток
ИНАЧЕ 0
КОНЕЦ) КАК ДебетФ2,
МАКСИМУМ(ВЫБОР
КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.АдресДоставки <> ЗНАЧЕНИЕ(Справочник.АдресаДоставкиПолучения.ПустаяСсылка)
ТОГДА ТерриторииПоАдресамСрезПоследних.Территория
ИНАЧЕ NULL
КОНЕЦ) КАК Территория,
СУММА(ВЫБОР
КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ВидВзаиморасчетов = &Ф1
И (ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовОборот <> 0
ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход <> 0
ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход <> 0)
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК ДвижениеФ1,
СУММА(ВЫБОР
КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ВидВзаиморасчетов = &Ф2
И (ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовОборот <> 0
ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход <> 0
ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход <> 0)
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК ДвижениеФ2
ПОМЕСТИТЬ регистр
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(
&Дата1,
КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ),
,
,
Подразделение = &Подразделение
И ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТерриторииПоАдресам.СрезПоследних(&Дата2, ) КАК ТерриторииПоАдресамСрезПоследних
ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.АдресДоставки = ТерриторииПоАдресамСрезПоследних.АдресДоставки
И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Подразделение = ТерриторииПоАдресамСрезПоследних.Подразделение
СГРУППИРОВАТЬ ПО
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.Владелец
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
регистр.Контрагент
ПОМЕСТИТЬ НужныеКонтрагенты
ИЗ
регистр КАК регистр
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТерриторииПоАдресамСрезПоследних.АдресДоставки.Владелец,
ТерриторииПоАдресамСрезПоследних.Территория,
ТерриторииПоАдресамСрезПоследних.Период
ПОМЕСТИТЬ ВсеК
ИЗ
НужныеКонтрагенты КАК НужныеКонтрагенты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТерриторииПоАдресам.СрезПоследних(, АдресДоставки ССЫЛКА Справочник.АдресаДоставкиПолучения) КАК ТерриторииПоАдресамСрезПоследних
ПО НужныеКонтрагенты.Контрагент = ТерриторииПоАдресамСрезПоследних.АдресДоставки.Владелец
И (ТерриторииПоАдресамСрезПоследних.Подразделение = &подразделение)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВсеК.АдресДоставкиВладелец,
МАКСИМУМ(ВсеК.Период) КАК Период
ПОМЕСТИТЬ Даты
ИЗ
ВсеК КАК ВсеК
СГРУППИРОВАТЬ ПО
ВсеК.АдресДоставкиВладелец
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВсеК.АдресДоставкиВладелец КАК Контрагент,
МАКСИМУМ(ВсеК.Территория) КАК Территория
ПОМЕСТИТЬ КонтрагентыИМенеджеры
ИЗ
ВсеК КАК ВсеК
ЛЕВОЕ СОЕДИНЕНИЕ Даты КАК Даты
ПО ВсеК.АдресДоставкиВладелец = Даты.АдресДоставкиВладелец
И ВсеК.Период = Даты.Период
ГДЕ
(НЕ Даты.Период ЕСТЬ NULL )
СГРУППИРОВАТЬ ПО
ВсеК.АдресДоставкиВладелец
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
АктСверкиВзаиморасчетов.Контрагент,
СУММА(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф1
ТОГДА АктСверкиВзаиморасчетов.ОстатокНаКонец
ИНАЧЕ 0
КОНЕЦ) КАК ДебетДокФ1,
СУММА(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф1
ТОГДА -АктСверкиВзаиморасчетов.ОстатокНаКонецКонтрагент
ИНАЧЕ 0
КОНЕЦ) КАК ДебетКонтрагентФ1,
СУММА(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф2
ТОГДА АктСверкиВзаиморасчетов.ОстатокНаКонец
ИНАЧЕ 0
КОНЕЦ) КАК ДебетДокФ2,
СУММА(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф2
ТОГДА -АктСверкиВзаиморасчетов.ОстатокНаКонецКонтрагент
ИНАЧЕ 0
КОНЕЦ) КАК ДебетКонтрагентФ2,
МАКСИМУМ(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф1
ТОГДА ВЫРАЗИТЬ(АктСверкиВзаиморасчетов.Комментарий КАК СТРОКА(200))
КОНЕЦ) КАК ПримечаниеФ1,
МАКСИМУМ(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф2
ТОГДА ВЫРАЗИТЬ(АктСверкиВзаиморасчетов.Комментарий КАК СТРОКА(200))
КОНЕЦ) КАК ПримечаниеФ2,
СУММА(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф1
ТОГДА АктСверкиВзаиморасчетов.ОстатокНаКонец + АктСверкиВзаиморасчетов.ОстатокНаКонецКонтрагент
ИНАЧЕ 0
КОНЕЦ) КАК ОтклонениеФ1,
СУММА(ВЫБОР
КОГДА АктСверкиВзаиморасчетов.ВидВзаиморасчета = &Ф2
ТОГДА АктСверкиВзаиморасчетов.ОстатокНаКонец + АктСверкиВзаиморасчетов.ОстатокНаКонецКонтрагент
ИНАЧЕ 0
КОНЕЦ) КАК ОтклонениеФ2
ПОМЕСТИТЬ документ
ИЗ
Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов
ГДЕ
АктСверкиВзаиморасчетов.ДатаНачала = &Дата1
И АктСверкиВзаиморасчетов.ДатаОкончания = &Дата2
СГРУППИРОВАТЬ ПО
АктСверкиВзаиморасчетов.Контрагент
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВложенныйЗапрос.Контрагент,
СУММА(ВложенныйЗапрос.ДебетДокФ1) КАК ДебетДокФ1,
СУММА(ВложенныйЗапрос.ДебетКонтрагентФ1) КАК ДебетКонтрагентФ1,
СУММА(ВложенныйЗапрос.ДебетДокФ2) КАК ДебетДокФ2,
СУММА(ВложенныйЗапрос.ДебетКонтрагентФ2) КАК ДебетКонтрагентФ2,
МАКСИМУМ(ВложенныйЗапрос.ПримечаниеФ1) КАК ПримечаниеФ1,
МАКСИМУМ(ВложенныйЗапрос.ПримечаниеФ2) КАК ПримечаниеФ2,
СУММА(ВложенныйЗапрос.ОтклонениеФ1) КАК ОтклонениеФ1,
СУММА(ВложенныйЗапрос.ОтклонениеФ2) КАК ОтклонениеФ2,
МАКСИМУМ(ВложенныйЗапрос.Территория) КАК Территория,
СУММА(ВложенныйЗапрос.ДебетФ1) КАК ДебетФ1,
СУММА(ВложенныйЗапрос.ДебетФ2) КАК ДебетФ2,
МИНИМУМ(ВЫБОР
КОГДА ВложенныйЗапрос.ДвижениеФ1 <> 0
ТОГДА "да"
ИНАЧЕ "нет"
КОНЕЦ) КАК ДвижениеФ1,
МИНИМУМ(ВЫБОР
КОГДА ВложенныйЗапрос.ДвижениеФ2 <> 0
ТОГДА "да"
ИНАЧЕ "нет"
КОНЕЦ) КАК ДвижениеФ2
ИЗ
(ВЫБРАТЬ
регистр.Контрагент КАК Контрагент,
ЕСТЬNULL(регистр.Территория, КонтрагентыИМенеджеры.Территория) КАК Территория,
регистр.ДебетФ1 КАК ДебетФ1,
регистр.ДебетФ2 КАК ДебетФ2,
NULL КАК ДебетДокФ1,
NULL КАК ДебетКонтрагентФ1,
NULL КАК ДебетДокФ2,
NULL КАК ДебетКонтрагентФ2,
NULL КАК ПримечаниеФ1,
NULL КАК ПримечаниеФ2,
NULL КАК ОтклонениеФ1,
NULL КАК ОтклонениеФ2,
регистр.ДвижениеФ1 КАК ДвижениеФ1,
регистр.ДвижениеФ2 КАК ДвижениеФ2
ИЗ
регистр КАК регистр
ЛЕВОЕ СОЕДИНЕНИЕ КонтрагентыИМенеджеры КАК КонтрагентыИМенеджеры
ПО регистр.Контрагент = КонтрагентыИМенеджеры.Контрагент
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
документ.Контрагент,
NULL,
NULL,
NULL,
документ.ДебетДокФ1,
документ.ДебетКонтрагентФ1,
документ.ДебетДокФ2,
документ.ДебетКонтрагентФ2,
документ.ПримечаниеФ1,
документ.ПримечаниеФ2,
документ.ОтклонениеФ1,
документ.ОтклонениеФ2,
NULL,
NULL
ИЗ
документ КАК документ) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Контрагент
|
|