Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 23:03

Внешний отчёт СКД

Автор Nosferatu112, 13 фев 2023, 14:00

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

Nosferatu112

На базе: конфигураций : 1С:УТ

Назначение: Отчет выводит из форм различных документов данные по остаткам товаров (перечень товаров берется из самого документа) с детализацией по счету или складу.

Вариант исполнения: Внешний отчет

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

В отчете показано общее количество товара в наличии, количество зарезервированного товара и доступный остаток.

Отчет формируется из документов следующих типов:
•   заказ клиента,
•   заказ поставщику,
•   заказ на перемещение,
•   перемещение товаров,
•   поступление товаров и услуг,
•   реализация товаров и услуги.
ВЫБРАТЬ
СвободныеОстаткиОстатки.Склад КАК Склад,
СвободныеОстаткиОстатки.Номенклатура.Артикул КАК Артикул,
СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
СвободныеОстаткиОстатки.Характеристика КАК Характеристика,
СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) КАК ВНаличии,
СУММА(СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток + СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток) КАК ВРезерве,
СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток - (СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток + СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток)) КАК Доступно
ИЗ
РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки

СГРУППИРОВАТЬ ПО
СвободныеОстаткиОстатки.Номенклатура,
СвободныеОстаткиОстатки.Характеристика,
СвободныеОстаткиОстатки.Склад,
СвободныеОстаткиОстатки.Номенклатура.Артикул

Я собственно вытащил нужный регистр он выводит как раз всё что нужно но по всем докам, как сделать что бы отчёт выводился только по выбранному документу?

LexaK

Nosferatu112, так сначала сделайте выборку по нужному документу
а затем левым соединением присоедините остатки из вашего регистра 

выбрать
док.номенклатура,
...,
СвободныеОстаткиОстатки.Остатки
...
из
документ.реализациТоваровУслуг.Товары док
левое соединение РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
 по условие связи по Номенклатуре и Складу
где
Док.ссылка = &Ссылка //выбор по товарам нужного документа
если помогло нажмите: Спасибо!

LexaK

или так

выбрать
док.номенклатура,
...,
СвободныеОстаткиОстатки.Остатки
...
из
РегистрНакопления.СвободныеОстатки док
левое соединение РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
 по условие связи по Номенклатуре и Складу
где
Док.Регистратор = &Ссылка //отбор по Регистратору, просто установить нужную ссылку из доков выше
если помогло нажмите: Спасибо!

Nosferatu112

LexaK, А если видов документов 6 и мне нужно что бы отчет выводился по выбранному мне в наборах данных прописать подобный запрос для каждого вида доков а потом в связях наборов данных их связать?

LexaK

Nosferatu112, во втором варианте просто ссылку нужного типа документа передайте!
а запрос один и тот-же!
если помогло нажмите: Спасибо!

Nosferatu112

LexaK, Мы либо друг друга не поняли либо я не понимаю, вот запрос
ВЫБРАТЬ
СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличии,
СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток + СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток КАК Резерв,
СвободныеОстаткиОстатки.ВНаличииОстаток - (СвободныеОстаткиОстатки.ВРезервеСоСкладаОстаток + СвободныеОстаткиОстатки.ВРезервеПодЗаказОстаток) КАК Доступно,
СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
СвободныеОстаткиОстатки.Характеристика КАК Характеристика,
СвободныеОстаткиОстатки.Склад КАК Склад
ИЗ
РегистрНакопления.СвободныеОстатки.Остатки(
,
Номенклатура В
(ВЫБРАТЬ
ЗаказКлиентаТовары.Номенклатура КАК Номенклатура
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
ЗаказКлиентаТовары.Ссылка = &Ссылка)) КАК СвободныеОстаткиОстатки

Он отрабатывает выводит именно ту инфу по тому доку который я выбираю всё ок но как мне в этом же запросе указать ссылку на другой док при прописывании в условиях конструктора запросов не отрабатывает, а в параметрах таблицы 2 условия прописать не даёт

LexaK

Nosferatu112, попробуйте второй вариант, в запрос надо передать всего лишь один параметр Ссылку на документ
если помогло нажмите: Спасибо!

antoneus

Ну выгружайте товары из тч документа в массив и его передавайте

Запрос.УстановитьПараметр("Номенклатура", Ссылка.Товары.ВыгрузитьКолонку("Номенклатура"));

.....

ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(
            ,
            Номенклатура В (&Номенклатура))

И не надо городить этот ужас с подзапросом в параметрах виртуальной таблицы.

Nosferatu112

antoneus, как в СКД установить параметр и выгрузить в массив это же СКД я в нём всё запросом делаю без кода

antoneus

Перехватить событие ПриКомпоновкеРезультата в модуле объекта и там выгрузить.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск