Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
26 Май 2018, 10:46
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: 8.2 СКД запрос с выводом итогов только по определенным группировкам  (Прочитано 1610 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CARtMEN

  • *
  • Сообщений: 16
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-03
  • Сайт: 
  • Профессия: Программист 8.1
    Здравствуйте! В общем дело в том, что необходимо было сделать отчет по остаткам и движениям товаров. В отчете также необходимо было видеть документы, которыми были сделаны движения.
   
    Запрос в СКД был составлен следующий:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыНаСкладах.Регистратор,
ТоварыНаСкладах.ВидДвижения,
ТоварыНаСкладах.Склад,
ТоварыНаСкладах.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладах.Количество) КАК Количество,
ТоварыНаСкладах.Период
ПОМЕСТИТЬ ВтОбороты
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
ТоварыНаСкладах.Период МЕЖДУ &ДатаОт И &ДатаПо

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыНаСкладахОстатки.Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ЕСТЬNULL(ВтОбороты.Регистратор, "") КАК Документ,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ЦенаЗакупки,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних1.Цена, 0) КАК ЦенаПродажи,
СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК СальдоНаНачалоКоличество,
СУММА(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) * ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) КАК СальдоНаНачалоСумма,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА ВтОбороты.Количество
ИНАЧЕ 0
КОНЕЦ) КАК ПриходКоличество,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
ТОГДА ВтОбороты.Количество
ИНАЧЕ 0
КОНЕЦ) КАК РасходКоличество,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
И (ВтОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
ИЛИ ВтОбороты.Регистратор ССЫЛКА Документ.ЧекККМ
ИЛИ ВтОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваров)
ТОГДА ВтОбороты.Количество
ИНАЧЕ 0
КОНЕЦ) КАК РеализацияКоличество,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА ВтОбороты.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
ИНАЧЕ 0
КОНЕЦ) КАК ПриходСумма,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
ТОГДА ВтОбороты.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
ИНАЧЕ 0
КОНЕЦ) КАК РасходСумма,
СУММА(ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
И (ВтОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
ИЛИ ВтОбороты.Регистратор ССЫЛКА Документ.ЧекККМ
ИЛИ ВтОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваров)
ТОГДА ВтОбороты.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
ИНАЧЕ 0
КОНЕЦ) КАК РеализацияСумма,
СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток + ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА ВтОбороты.Количество
ИНАЧЕ -ВтОбороты.Количество
КОНЕЦ) КАК СальдоНаКонецКоличество,
ТоварыНаСкладахОстатки.КоличествоОстаток * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) + ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА ВтОбороты.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
ИНАЧЕ -(ВтОбороты.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0))
КОНЕЦ КАК СальдоНаКонецСумма,
ЕСТЬNULL(ВтОбороты.Период, "") КАК Период
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОт, ) КАК ТоварыНаСкладахОстатки
ЛЕВОЕ СОЕДИНЕНИЕ ВтОбороты КАК ВтОбороты
ПО ТоварыНаСкладахОстатки.Склад = ВтОбороты.Склад
И ТоварыНаСкладахОстатки.Номенклатура = ВтОбороты.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаПо, ) КАК ЦеныНоменклатурыСрезПоследних
ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И ТоварыНаСкладахОстатки.Склад.Магазин.ВидЦеныПрихода = ЦеныНоменклатурыСрезПоследних.ВидЦены
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаПо, ) КАК ЦеныНоменклатурыСрезПоследних1
ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
И ТоварыНаСкладахОстатки.Склад.Магазин.ВидЦеныПродажи = ЦеныНоменклатурыСрезПоследних1.ВидЦены

СГРУППИРОВАТЬ ПО
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних1.Цена, 0),
ТоварыНаСкладахОстатки.Склад,
ТоварыНаСкладахОстатки.Номенклатура,
ЕСТЬNULL(ВтОбороты.Регистратор, ""),
ЕСТЬNULL(ВтОбороты.Период, ""),
ТоварыНаСкладахОстатки.КоличествоОстаток * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) + ВЫБОР
КОГДА ЕСТЬNULL(ВтОбороты.Количество, 0) <> 0
И ВтОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА ВтОбороты.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
ИНАЧЕ -(ВтОбороты.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0))
КОНЕЦ
    Но тут проблема появилась в том, что итоги по остатка запрос показывает неправильные. Т.к. строки с выводимыми документами дублируют показатели остатков.
   
    Буду рад советам и критике.


Теги: скд 
 

Как можно подставлять цену из регистра сведений "Цены поставщиков" в документ"ПоступлениеТоваров" на актуальную дату? Необходимо использовать запрос в решении.

Автор Елена6666666666Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 10987
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
Запрос Параметры для "ИЗ"

Автор БерезинРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3365
Последний ответ 15 Май 2013, 23:27
от Березин
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1227
Последний ответ 11 Июл 2016, 09:00
от vitasw
Запрос по обработке "Согласование заявок"

Автор DenielAkreedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 929
Последний ответ 29 Сен 2016, 02:39
от DenielAkreed
После "Выборка = Запрос.Выполнить().Выбрать()" строка в выборке автоматически переключается сама

Автор RuslerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 215
Последний ответ 30 Мар 2018, 05:05
от Luzer1C

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
164 Сообщений
alex0402
72 Сообщений
oleg-x
63 Сообщений
AIFrame AIFrame
54 Сообщений
buketov.av buketov.av
47 Сообщений
wise wise
41 Сообщений
ilyay ilyay
39 Сообщений
Анюта17
33 Сообщений
Alter
32 Сообщений
KOI8-R
31 Сообщений

* Кто онлайн

  • Точка Гостей: 212
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal