Как получить остатки по цветам номенклатуры
Здравствуйте. Нужен отчет скд, в отчет вывести номенклатуру и цвет (значение характеристик), а именно если за период, были продажи определённой номенклатуры с определенным цветом, то проверяем их остатки и если на конец периода остаток 0 или меньше, тогда выводим в отчет. Сделал такой запрос в скд, но не могу допилить и довести до ума.
ВЫБРАТЬ
СУММА(ТоварыНаСкладахОбороты.ВНаличииРасход) КАК ВНаличииРасход,
ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК Цвет
ПОМЕСТИТЬ ВТ_Обороты
ИЗ
РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ТоварыНаСкладахОбороты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ПО (ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка.Владелец = ТоварыНаСкладахОбороты.Номенклатура)
И ТоварыНаСкладахОбороты.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка
ГДЕ
ТоварыНаСкладахОбороты.ВНаличииРасход > 0
И ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = &Свойство
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОбороты.Номенклатура,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК Цвет,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ПОМЕСТИТЬ ВТ_Остатки
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки({(&КонецПериода)}, ) КАК ТоварыНаСкладахОстатки
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ПО (ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка.Владелец = ТоварыНаСкладахОстатки.Номенклатура)
И ТоварыНаСкладахОстатки.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка
ГДЕ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = &Свойство
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_Обороты.Номенклатура КАК Номенклатура,
ВТ_Обороты.Цвет КАК Цвет
ИЗ
ВТ_Обороты КАК ВТ_Обороты
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
ПО ВТ_Обороты.Номенклатура = ВТ_Остатки.Номенклатура
И ВТ_Обороты.Цвет = ВТ_Остатки.Цвет
ГДЕ
ВТ_Остатки.ВНаличииОстаток <= 0
СГРУППИРОВАТЬ ПО
ВТ_Обороты.Номенклатура,
ВТ_Обороты.Цвет
ПоказатьПо теме из базы знаний
- Всякие полезности
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Как быстро развернуть автоматическую линию проверки своего решения на 1С, затратив 8 часов и получив выигрыш в 1 человеко/месяц
- Сверка остатков товаров БУХ3 - УТ11
- Применение 1С:Аналитики и Дата акселератора, или Как получить в 1С прозрачность и скорость обработки данных для прямого доступа и контроля руководителя
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
у Вас товары на складах без учета характеристик??
зачем соединять характеристику.владелец и номенклатуру %))
в последнем подзапросе чему будет равняться ВТ_Остатки.ВНаличииОстаток, если ее не будет в ВТ_Остатки ??
зачем в последнем подзапросе группировать, если даже теоретические не может получиться более 1-й записи, так как виртуальные таблицы могут иметь только 1 запись номенклатура + цвет
если не используете характеристику в своем запросе, то хоть немного для второй вт сделайте оптимизацию (засунув отбор по номенклатуре в виртуальную таблицу остатков)
возможно для продаж не тот регистр берете... возможно есть регистр продажи, но если уверены, что ВНаличииРасход делает только продажа, а не какое-то списание, то можете использовать и этот регистр ;))
зачем соединять характеристику.владелец и номенклатуру %))
в последнем подзапросе чему будет равняться ВТ_Остатки.ВНаличииОстаток, если ее не будет в ВТ_Остатки ??
зачем в последнем подзапросе группировать, если даже теоретические не может получиться более 1-й записи, так как виртуальные таблицы могут иметь только 1 запись номенклатура + цвет
если не используете характеристику в своем запросе, то хоть немного для второй вт сделайте оптимизацию (засунув отбор по номенклатуре в виртуальную таблицу остатков)
возможно для продаж не тот регистр берете... возможно есть регистр продажи, но если уверены, что ВНаличииРасход делает только продажа, а не какое-то списание, то можете использовать и этот регистр ;))
(3) писал наглядно)) заменил некоторые нюансы, которые считаю некорректными
ВЫБРАТЬ
СУММА(ТоварыНаСкладахОбороты.ВНаличииРасход) КАК ВНаличииРасход,
ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК Цвет
ПОМЕСТИТЬ ВТ_Обороты
ИЗ
РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ТоварыНаСкладахОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ПО (ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка = ТоварыНаСкладахОбороты.Характеристика)
И ТоварыНаСкладахОбороты.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка
И ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = &Свойство
ГДЕ
ТоварыНаСкладахОбороты.ВНаличииРасход > 0
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОбороты.Номенклатура,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК Цвет,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
СУММА(ТоварыНаСкладахОстатки.ВНаличииОстаток) КАК ВНаличииОстаток
ПОМЕСТИТЬ ВТ_Остатки
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки({(&КонецПериода)}, Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура ИЗ ВТ_Обороты)) КАК ТоварыНаСкладахОстатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ПО (ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка = ТоварыНаСкладахОстатки.Характеристика)
И ТоварыНаСкладахОстатки.Характеристика = ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка
И ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = &Свойство
СГРУППИРОВАТЬ ПО
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение,
ТоварыНаСкладахОстатки.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_Обороты.Номенклатура КАК Номенклатура,
ВТ_Обороты.Цвет КАК Цвет
ИЗ
ВТ_Обороты КАК ВТ_Обороты
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
ПО ВТ_Обороты.Номенклатура = ВТ_Остатки.Номенклатура
И ВТ_Обороты.Цвет = ВТ_Остатки.Цвет
ГДЕ
ЕСТЬNULL(ВТ_Остатки.ВНаличииОстаток, 0) <= 0
СГРУППИРОВАТЬ ПО
ВТ_Обороты.Номенклатура,
ВТ_Обороты.Цвет
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот