Версия для печати темы (https://pro1c.org.ua/index.php?s=08a9bb4cd737991a676e35db496be93b&showtopic=67692)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Сумма умножается на количество строк

Автор: Shiwchik 16.12.24, 11:28

1С: Предприятие 8.3 (8.3.19.1659)

Здравствуйте.
Делаю отчёт в СКД по документам.
Пользователь должен видеть приход-расход-остатки по номенклатуре,
а так же и остатки по характеристикам номенклатуры, раскрыв группировку.
Вот как должен выглядеть отчёт:


А вот как у меня получается:


Скрыть сумму характеристик с не нужных полей я уберу это не проблема,
я просто оставил для понятия что программа делает.





Получается в итого группы по номенклатуре выводит
вес характеристики * количество строк в группе.
"Залишки облікові" по всем полям выводит правильную информацию.
А вот из-за того что он считает вес строки * количество строк,
По группе номенклатура итого не правильное.

Мне кажется, что нужно в ресурсах выражение прописать другое, а не просто сумма.


Подскажите пожалуйста, где я ошибся?

Автор: AnryMc 16.12.24, 11:31

Shiwchik @ Сегодня, 11:28 * ,


Последний рисунок колонка - "Рассчитівать по..."

Автор: Shiwchik 16.12.24, 11:38

AnryMc @ Сегодня, 11:31 * ,
Что я только там не выбирал, ничего не сходится...

Автор: vladzoy 16.12.24, 11:45

А якщо взяти "Среднее" замість "Сумма"?

Автор: sava1 16.12.24, 12:02

приход-расход взять по характеристикам - не вариант?

Автор: Shiwchik 16.12.24, 12:36

vladzoy @ Сегодня, 11:45 * ,
Хах, как вариант, получилось, но вот с итого, теперь беда, он берет среднее между суммами номенклатур)



sava1 @ Сегодня, 12:02 * ,
На словах красиво) а вот как на деле в СКД пока не знаю как потом привяжу


Автор: sava1 16.12.24, 12:42

если обороты без Характеристик -
курим ВычислитьВыражениеСГруппировкойМассив
по детальным записям выводим Максимум()., по группировкам Сумма максимумов
на уровне детальных записей - оформлением убираем видимость оборотов

Автор: Shiwchik 16.12.24, 12:50

sava1 @ Сегодня, 12:42 * ,
У меня номенклатура выбрана по документам, а характеристика по регистрам остатки,
мне как бы движение характеристики не нужно, только остатки.
Может быть в этом вся беда?

Я кстати находил где-то на просторах интернета про группировку массив как вы написали,
но не получилось. Сейчас попробую ещё раз.

Автор: TohaMonster 16.12.24, 18:03

Ну, как по-мне, зря Вы используете в Запросе левое соединение.
Я бы соединил запросы через Объединение. Даже можно не в одном запросе, а воспользовавшись возможностями СКД (набор данных - Объединение)

Автор: Shiwchik 16.12.24, 18:44

TohaMonster @ Сегодня, 18:03 * ,
Я новичок в программировании, поэтому пока только такой способ знаю объединения.

Автор: sava1 16.12.24, 21:14

TohaMonster @ Сегодня, 18:03 * ,
и что это поменяет ?

Автор: mut 17.12.24, 10:16

а почему запросы не соединены по характеристикам?

Автор: Shiwchik 17.12.24, 11:56

mut @ Сегодня, 10:16 * ,
Мне не нужно их подсчитывать, нужны только остатки по характеристикам под родителем (номенклатурой), поэтому и не подвязывал.

Автор: TohaMonster 18.12.24, 10:35

sava1 @ 16.12.24, 22:14 * ,
Это поменяет то, что не нужно будет разбираться с Максимумами и ВычислитьВыражениеСГруппировкойМассив и думать, как будет выглядеть отчет при расшифровке . Используем сумму, да и всё. Впрочем, я не настаиваю, дело вкуса)

ВЫБРАТЬ
    ВложенныйЗапрос1.Регистратор,
    ВложенныйЗапрос1.Номенклатура,
    ВложенныйЗапрос1.Характеристика,
    ВложенныйЗапрос1.Собрано,
    0 КАК Отгружено
ИЗ
    (ВЫБРАТЬ
        "Регистратор1" КАК Регистратор,
        "Номенклатура1" КАК Номенклатура,
        "Характеристика1" КАК Характеристика,
        100 КАК Собрано
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "Регистратор2",
        "Номенклатура1",
        "Характеристика2",
        200) КАК ВложенныйЗапрос1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВложенныйЗапрос2.Регистратор,
    ВложенныйЗапрос2.Номенклатура,
    "ПустаяХарактеристика",
    0,
    ВложенныйЗапрос2.Отгружено
ИЗ
    (ВЫБРАТЬ
        "Номенклатура1" КАК Номенклатура,
        "Регистратор3" КАК Регистратор,
        25 КАК Отгружено
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        "Номенклатура2",
        "Регистратор4",
        50) КАК ВложенныйЗапрос2

Автор: sava1 18.12.24, 12:44

Цитата(TohaMonster @ 18.12.24, 10:35) *
Используем сумму, да и всё.


а в группировках ?

Автор: TohaMonster 18.12.24, 16:25

sava1 @ Сегодня, 13:44 * ,
Не совсем понял вопрос. В "Ресурсах" Сумма(Собрано), Сумма(Отгружено). В структуре отчета указываем группировки и ы выбранных полях ресурсы
Что Вас смущает?

Автор: Shiwchik 20.12.24, 17:29

Спасибо всем большое, кто попытался помочь.
Всем лайкосы icon_beer17.gif
В общем, вот как я сделал:



И всё заработало как надо)
Счастья не было предела biggrin.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua