PDA

Просмотр полной версии : Отчет по заказам на скд



a.nikulnikova
29.09.2015, 16:24
Всем здравствуйте, создаю Отчет на СКД, УПП 8.3. Помимо всех регистров, использую регистр накопления ТоварыНаСкладах (он находится в выборке). По нему проходят документы ПоступлениеТМЗ, ПеремещениеТМЗ, ВозвратТМЗПоставщику (данный регистр я хотела использовать для отображения количества и ссылки по перемещению ТМЗ) у меня удваиваются строки, так как туда попадают данные и по Возврату и по другим регистраторам.
Вопрос, как избавиться от удваивания и вывести данные по ВозвратуТМЗ в отдельную колонку?


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

////////////////////////////////////////////////////////////*////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВТ.ВнутреннийЗаказ,
ВТ.Номенклатура,
ВТ.КоличествоВЗ,
ВТ.КоличествоЗП,
ВТ.Цена,
ВТ.ЗаказПокупателя,
ВТ.ЗаказПоставщику,
ВТ.ЗаказПокупателя.Ссылка,
ЗакупкиОбороты.Количество� �борот КАК КоличествоПТ,
ЗакупкиОбороты.Регистрато� �,
ВТ.ЗаказПоставщикуДатаПос� �упления
ПОМЕСТИТЬ ВТсПост
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки. Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК ЗакупкиОбороты
ПО ВТ.Номенклатура = ЗакупкиОбороты.Номенклату� �а
И ВТ.ЗаказПоставщику = ЗакупкиОбороты.Регистрато� �.ДокументОснование
;

////////////////////////////////////////////////////////////*////////////////////
ВЫБРАТЬ
ВТсПост.ВнутреннийЗаказ,
ВТсПост.Номенклатура,
ВТсПост.КоличествоВЗ,
ВТсПост.КоличествоПТ,
ТоварыНаСкладахОбороты.Ко� �ичествоОборот КАК КоличествоПеремТМЗ,
ВТсПост.Цена,
ВТсПост.ЗаказПоставщику,
ВТсПост.ЗаказПоставщикуДа� �аПоступления КАК ТребСрокПост,
ВТсПост.Регистратор КАК ФактСрокПост,
ТоварыНаСкладахОбороты.Ре� �истратор КАК ПеремТМЗ,
ТоварыНаСкладахОбороты.Ск� �ад
ИЗ
ВТсПост КАК ВТсПост
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыН� �Складах.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК ТоварыНаСкладахОбороты
ПО (ВТсПост.Регистратор = ТоварыНаСкладахОбороты.Ре� �истратор.ДокументОсновани е
ИЛИ ВТсПост.ВнутреннийЗаказ = ТоварыНаСкладахОбороты.Ре� �истратор.ДокументОсновани е)
И ВТсПост.Номенклатура = ТоварыНаСкладахОбороты.Но� �енклатура

avm3110
29.09.2015, 17:19
Всем здравствуйте, создаю Отчет на СКД, УПП 8.3
Ох, барышня... СКД имеет внутрение оптимизаторы, поэтому совет - вначале олаживайте запросы в "простой" консоле запросов.

Ну а для "отделения мух от котлет" (приходов от расходов оборотных регистров - используёте либо виртуальную таблицы "Обороты", либо в физической таблице используйте в директиве где "ВидДвижения" либо "приход", либо "расход")

a.nikulnikova
30.09.2015, 09:13
Ох, барышня... СКД имеет внутрение оптимизаторы, поэтому совет - вначале олаживайте запросы в "простой" консоле запросов.

Спасибо за дельный совет. =) Создавала данный запрос в обычной консоли.
В запросе я и так использую виртуальные таблицы "Обороты". Если высмотрели код, который я выложила, то в нем будет видно, что в выборке в связях есть так скажем "составная" связь, т.е. или то или то... Данная связь используется для определения количества по перемещению. Т.е. если документ создан на основании внутреннего заказа, то одна связь, если документ создан на основании поступлении тмз, то соответственно другая связь. В принципе данный принцип (извините за тавтологию) подходит и для возврата, но как можно вытащить данные по возврату из этого же регистра, в отдельную колонку?

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

---------- Post added at 10:06 ---------- Previous post was at 10:06 ----------


Ох, барышня... СКД имеет внутрение оптимизаторы, поэтому совет - вначале олаживайте запросы в "простой" консоле запросов.

Спасибо за дельный совет. =) Создавала данный запрос в обычной консоли.
В запросе я и так использую виртуальные таблицы "Обороты". Если высмотрели код, который я выложила, то в нем будет видно, что в выборке в связях есть так скажем "составная" связь, т.е. или то или то... Данная связь используется для определения количества по перемещению. Т.е. если документ создан на основании внутреннего заказа, то одна связь, если документ создан на основании поступлении тмз, то соответственно другая связь. В принципе данный принцип (извините за тавтологию) подходит и для возврата, но как можно вытащить данные по возврату из этого же регистра, в отдельную колонку?

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

---------- Post added at 10:13 ---------- Previous post was at 10:06 ----------

Извините за дублирование сообщения, глюк какой-то