Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
02 июл 2025, 00:31

Товар который залежался на складе

Автор xdto, 01 окт 2015, 15:07

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

vitasw

Имеется ввиду тупо запрос по справочнику без групп. Но это не совсем хорошо. В справочнике может быть много всякого мусора. Поэтому стратегию нужно менять. Первую часть запрос к таблице продаж за период нужно оставить. А вторая часть = запрос к регистру остатков товаров на дату окончания. Из получившейся таблицы остатков нужно убрать те позиции номенклатуры, которые есть в таблице продаж.

xdto

Вот щас стало более менее понятно Спасибо Вам Огромное :zebzdr::zebzdr:
Как я понимаю запрос должен выглядит так это как у меня получилось


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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыВРозницеОстатки.Номенклатура
ИЗ
   РегистрНакопления.ТоварыВРознице.Остатки(&ДатаОкончание, ) КАК ТоварыВРозницеОстатки

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

vitasw

Нееее, это вы только в начале пути, в начале правильного пути. Теперь дорабатывайте запрос, чтобы он выдавал только то что нужно, а не 2 разных таблицы.

xdto

Что Вы скажете насчет такого Запроса есть ошибки и оптимальный ли запрос ?

ВЫБРАТЬ
   ТоварыВРозницеОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыВРозницеОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   ТоварыВРозницеОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыВРозницеОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыВРозницеОстаткиИОбороты.КоличествоПриход,
   ТоварыВРозницеОстаткиИОбороты.КоличествоРасход,
   ПродажиОбороты.КоличествоОборот,
   ПродажиОбороты.СтоимостьОборот
ИЗ
   РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&ДатаН, &ДатаК, , , Склад = &Склад) КАК ТоварыВРозницеОстаткиИОбороты
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаН, &ДатаК, , ДокументПродажи.Склад = &Склад) КАК ПродажиОбороты
      ПО ТоварыВРозницеОстаткиИОбороты.Номенклатура <> ПродажиОбороты.Номенклатура
         И ТоварыВРозницеОстаткиИОбороты.ХарактеристикаНоменклатуры <> ПродажиОбороты.ХарактеристикаНоменклатуры

СГРУППИРОВАТЬ ПО
   ТоварыВРозницеОстаткиИОбороты.Номенклатура,
   ТоварыВРозницеОстаткиИОбороты.ХарактеристикаНоменклатуры,
   ТоварыВРозницеОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыВРозницеОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыВРозницеОстаткиИОбороты.КоличествоПриход,
   ТоварыВРозницеОстаткиИОбороты.КоличествоРасход,
   ПродажиОбороты.КоличествоОборот,
   ПродажиОбороты.СтоимостьОборот
Добавлено: 02 окт 2015, 17:30


Но блин он выдает пустой результат (((((((((((

vitasw

есесвенно. Внутреннее соединение оно такое, чуть что не так - сразу пустой запрос.
Склад в параметрах конечно портит всю стройную картину.
Очередной раз меняем схему захвата вражеских позиций.
Допиливайте:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыВРознице.Номенклатура
|ПОМЕСТИТЬ втПродажи
|ИЗ
| РегистрНакопления.ТоварыВРознице КАК ТоварыВРознице
|ГДЕ
| ТоварыВРознице.Склад = &Склад
| И (ТоварыВРознице.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
| ИЛИ ТоварыВРознице.Регистратор ССЫЛКА Документ.ЧекККМ
| ИЛИ ТоварыВРознице.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг)
| И ТоварыВРознице.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|
|СГРУППИРОВАТЬ ПО
| ТоварыВРознице.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТоварыВРозницеОстатки.Номенклатура,
| ТоварыВРозницеОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыВРознице.Остатки(
| &ДатаОкончания,
| Склад = &Склад
| И НЕ Номенклатура В
| (ВЫБРАТЬ
| втПродажи.Номенклатура
| ИЗ
| втПродажи КАК втПродажи)) КАК ТоварыВРозницеОстатки";

Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Запрос.УстановитьПараметр("Склад", Склад);

Теги:

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

Рейтинг@Mail.ru

Поиск