СКД - Практическое Задание

1. kitoaw 25.07.24 09:31 Сейчас в теме
Всем Доброго времени. Изучаю СКД, есть практическое задание, приложил в скрине. Уже 2ой день не могу понять, что конкретно делаю не так. Можете подсказать?

Не могу вывести сумму продаж по товару за определённый период
Прикрепленные файлы:
Практическое.erf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 25.07.24 09:38 Сейчас в теме
(1)
Уже 2ой день не могу понять, что конкретно делаю не так.
А что именно у тебя не получается-то?
Или это и есть то, что ты не можешь понять?
3. kitoaw 25.07.24 09:40 Сейчас в теме
(2) Не могу вывести сумму продаж по товару за определённый период
4. Pokemonus 25.07.24 11:20 Сейчас в теме
(3) в схеме:

1) абсолютно лишняя конструкция в запросах, вида:
...
ГДЕ
	ПродажиОбороты.Период МЕЖДУ &НачалоПрошедшее И &КонецПрошедшее

...
ГДЕ
	ПродажиОбороты.Период МЕЖДУ &НачалоТекущее И &КонецТекущее


2) нет заполнения значений параметров;
3) в параметрах виртуальных таблиц не "Месяц" нужен, а "Период":
РегистрНакопления.Продажи.Обороты(&НачалоПрошедшее, &КонецПрошедшее, Период, )
5. Pokemonus 25.07.24 11:22 Сейчас в теме
(4)
по п.2, пардон, - все есть - это у меня не показывалось
6. Pokemonus 25.07.24 11:29 Сейчас в теме
(5) мда... как же оно угадает-то, в параметрах, конечно капец...
(Билет №9, а при нем задача ...)

и умалчиваем, что при выполнении сыпятся ошибки

не

&ПериодТекущий.НачалоТекущее

а

&ПериодТекущий.ДатаНачала
7. kitoaw 25.07.24 11:36 Сейчас в теме
(6) Поискал инфу, сделал вот так
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ВЫБОР
КОГДА &Периодичность = "День"
ТОГДА ПродажиОбороты.ПериодДень
КОГДА &Периодичность = "Неделя"
ТОГДА ПродажиОбороты.ПериодНеделя
КОГДА &Периодичность = "Месяц"
ТОГДА ПродажиОбороты.ПериодМесяц
КОГДА &Периодичность = "Квартал"
ТОГДА ПродажиОбороты.ПериодКвартал
КОГДА &Периодичность = "Год"
ТОГДА ПродажиОбороты.ПериодГод
КОНЕЦ КАК ПериодТекущий,
ПродажиОбороты.СуммаОборот КАК СуммаТекущий,
ПродажиОбороты.ПериодМесяц
ИЗ
РегистрНакопления.Продажи.Обороты(, , Авто, ) КАК ПродажиОбороты

Теперь когда выбиираю период времени, выводит инфу корректно. Осталось додуматься как задать параметры по Текущему периоду и прошедшему
Прикрепленные файлы:
Отчет10.erf
8. Pokemonus 26.07.24 08:54 Сейчас в теме
(7) я не понимаю требуемую логику, нужна "периодичность" или "за период".
в условии все-таки "период" - текущий и предыдущий.

и совершенно не важно, с точки зрения построения запроса, каков это период - есть "дата начала" периода и есть "дата окончания" периода.

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

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

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

ВЫБРАТЬ
  Спр.Номенклатура,
  Пред.Оборот КАК ЗначениеПредыдущее,
  Тек.Оборот КАК ЗначениеТекущее
ИЗ
  ВТ_Номенклатура КАК Спр
  ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Пред КАК Пред
  ПО Спр.Номенклатура = Пред.Номенклатура
  ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Тек КАК Тек
  ПО Спр.Номенклатура = Тек.Номенклатура

Показать


Параметры:
- ПредДатаНач, ПредДатаКон - даты начала и окончания "предыдущего" периода;
- ТекДатаНач, ТекДатаКон - даты начала и окончания "текущего" периода;

в таблице ВТ_Номенклатура выбирается только та номенклатура, по которой есть движение, можно и весь справочник взять, но тогда будут пустые строки по номенклатуре, по которой не было движений.

во временной таблице ВТ_Тек формируется обороты "текущего" периода;
во временной таблице ВТ_Пред формируется обороты "предыдущего" периода;

ну и в итоговой выборке "сращиваем" нужную номеклатуру с данными периодов.

Я не знаю как работает с объединением СКД, но если объединение делать запросом, тогда, если по номеклатуре будут значения и "пред" и "тек", то запрос выдаст одну строку номенклатуры с заполненной колонкой "занчение предыдущее" и одну строку с заполненной колонкой "значение.текущее".
Может оно умеет сворачивать - не знаю, никогда так не делал в СКД.
А одним запросом - все просто

зы. Ну и вдогонку:
скорее всего Вы не видите на форме для формирования отчета куда указвать значения параметров - это объяснимо: у вас в "Настройках" для параметров не указано "Включать в пользовательские настройки"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот