Имя: Пароль:
1C
1С v8
Работа с запросами к регистрам оборотов
0 Dmitrii_VVV
 
28.06.23
16:54
Коллеги, помогите пож-та начинающему
Необходимо создать простой отчёт с заполнением столбца Номенклатура, Сумма и Кол-во

Есть регистр накопления Обороты номенклатуры (вид обороты), с измерением номенклатура и ресурсами кол-во и сумма
Не понимаю откуда данные в столбец Сумма должны подтягиваться


ВЫБРАТЬ
ОборотыНоменклатурыОбороты.Номенклатура КАК Номенклатура,
ОборотыНоменклатурыОбороты.КоличествоОборот КАК КоличествоОборот,
ОборотыНоменклатурыОбороты.СуммаОборот КАК СуммаОборот
ИЗ
РегистрНакопления.ОборотыНоменклатуры.Обороты КАК ОборотыНоменклатурыОбороты


https://wampi.ru/image/RymPIYs
1 КнОпка
 
28.06.23
16:58
(0) в регистре сумма = 0 ?
2 Волшебник
 
28.06.23
17:01
плохое название регистра
в виртуальную таблицу не передан период
3 azernot
 
28.06.23
17:03
(0) >Не понимаю откуда данные в столбец Сумма должны подтягиваться

Просто интересно, а какие у вас варианты? В регистре одно измерение и два ресурса. Один из ресурсов называется "Сумма"...
О эта проклятая неопределённость!
4 RomanYS
 
28.06.23
17:15
чтобы заполнились параметры макета ТД их имена должны совпадать именами полей выборки
...
ОборотыНоменклатурыОбороты.КоличествоОборот КАК Количество,
ОборотыНоменклатурыОбороты.СуммаОборот КАК Сумма
...
5 Dmitrii_VVV
 
28.06.23
17:16
(3) Тогда переформулирую, в какой момент идет заполнение данного столбца?
6 Мультук
 
28.06.23
17:18
(5)

1) Отчёт на СКД ?
2) В самом регистре в ресурсе "сумма" циферки есть или там везде 0 ?
3) Этот же запрос в консоли запросов сумму показывает?
7 azernot
 
28.06.23
17:24
(5) Заполнение данного столбца идёт в момент выполнения компоновки на основе данных полученных запросом. Этот ответ вам бесполезен.
Вас не смущает, что Количество у вас заполняется, а Сумма нет?  Очевидно же, что дело не в отчёте. У вас нулевые суммы в регистре. Откройте через "Все функции" список регистра и убедитесь сами. Либо в документах двигающих регистр эти суммы не заполнены, либо что-то не так в процедурах проведения.

Ради вашего спокойствия, сделайте такой запрос в отчёте

ВЫБРАТЬ
ОборотыНоменклатурыОбороты.Номенклатура КАК Номенклатура,
ОборотыНоменклатурыОбороты.КоличествоОборот КАК КоличествоОборот,
ОборотыНоменклатурыОбороты.КоличествоОборот * ОборотыНоменклатурыОбороты.КоличествоОборот КАК СуммаОборот
ИЗ
РегистрНакопления.ОборотыНоменклатуры.Обороты КАК ОборотыНоменклатурыОбороты

чисто чтобы убедить, что отчёт у вас корректно работает.
8 Dmitrii_VVV
 
29.06.23
09:37
(7) Спасибо, добрый человек!
Вопрос. Не понял, почему мы в данной строке количество на количество умножаем? Ведь сумма складывается из перемножения кол-ва и цены

ОборотыНоменклатурыОбороты.КоличествоОборот * ОборотыНоменклатурыОбороты.КоличествоОборот КАК СуммаОборот

И ещё, данное произведение дописывается вручную или задаётся в условиях конструктора?

Пока получилось вот так

https://wampi.ru/image/Ryv3M17
9 Dmitrii_VVV
 
29.06.23
09:38
(6)
1. Да СКД
2. Вероятно, везде 0
3. Не показывает
10 azernot
 
29.06.23
09:56
(8) >Не понял, почему мы в данной строке количество на количество умножаем?
Исключительно для того, чтобы вы убедились, что отчёт ваш работает нормально, и суммы выводятся.
Разумеется, такой запрос оставлять нельзя, нужно использовать ваш запрос из (0).

Попробуйте ещё раз прочитать (7). Если не поможет, прочитайте ещё раз. И ещё раз. И ещё. До тех пор, пока не дойдёт.
11 Dmitrii_VVV
 
29.06.23
17:48
(7) Уважаемый, читал, не дошло :)
В документе столбец сумма заполнен, через все функции - регистр накопления, при проведении почему то сумма не заполняется.
Процедура проведения:
Процедура ОбработкаПроведения(Отказ, Режим)

    Движения.ОборотыНоменклатуры.Записывать = Истина;
    Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл
        Движение = Движения.ОборотыНоменклатуры.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ТекСтрокаСписокНоменклатуры.Номенклатура;
        Движение.Количество = ТекСтрокаСписокНоменклатуры.Количество;
    КонецЦикла;

    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Соблаговолите объяснить, в чём ошибка?

https://wampi.ru/image/RywyHgs
12 azernot
 
29.06.23
17:58
(11) Ну вы же видите, что в вашей процедуре проведения вообще никак не упоминается Сумма? Ну так и чего вы ждёте?

Ну чисто логически, добавьте под строкой с количеством строку с Суммой!

Движение.Сумма = ТекСтрокаСписокНоменклатуры.Сумма;
13 Dmitrii_VVV
 
30.06.23
14:13
(12) Ох уж это отсутствие логики и опыта, ведь это очевидно)
Благодарю!
14 azernot
 
30.06.23
14:33
(13) Наверняка вам доводилось слышать от программистов фразу "Чудес не бывает!". Что же она означает? Она означает, что система не может каким-то волшебным образом что-то сделать, сама что-то откуда-то взять, сама что-то посчитать.

Вы сами пишите отчёт, вы указываете запрос в котором используется сумма из регистра накопления. Вы видите, что в отчёте сумма нулевая. А какая там должны быть сумма и откуда отчёт должен её взять? Если отбросить "чудеса", то очевидно, что сумма берётся из регистра. И первое, что нужно проверить - а не нулевая ли сумма в регистре? Далее, вы видите, что в регистре сумма нулевая, ваши действия? Записи в регистр делает документ-регистратор. Идём и смотрим, а не нулевая ли сумма в документе? Видим, ненулевая. Далее смотрим процедуру проведения, а точно ли сумма из документа записывается в регистр? Вуаля. Никаких чудес.
15 СвинТуз
 
30.06.23
17:12
Чудес не бывает,
но бывают чудотворцы?