8.х Использование значений ресурсов в вычисляемых полях

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем mhl, 29 авг 2012.

  1. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Создал следующий отчёт в СКД. Набор данных запрос. Вот текст запроса:

    Код:
    ВЫБРАТЬ
    Модели.Изготовитель КАК Фирма,
    Модели.ТипОдежды.Слой КАК Слой,
    СУММА(1) КАК Колво,
    СУММА(1) КАК ИтогГруппировки
    ИЗ
    Справочник.Модели КАК Модели
    СГРУППИРОВАТЬ ПО
    Модели.ТипОдежды.Слой,
    Модели.Изготовитель
    Значение Колво вывел в ресурсы. В вычисляемом поле хочу написать выражение:
    ИтогГруппировки / Колво * 100
    Но система не воспринимает Колво как ресурс, т.е. данные значения не суммируются. Пробовал написать в выражении Сумма(Колво), но данные опять не суммируются.
    Прошу вашей помощи.
  2. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    ерунда какая-то, у тебя в запросе Колво = ИтогГруппировки
    соответсвенно формула ИтогГруппировки / Колво * 100 всегда будет = 100
    а вообще если что-то планируешь делать с значениями агрегатных функций то так и надо писать эти функции в новой формуле как они есть в запросе
    в твоем варианте
    Сумма(1) / Сумма(1) * 100 (бред какой-то)
  3. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    написал
    Колво / Сумма(Колво) * 100
    по любому результат равен 100
  4. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Попробуйте реорганизовать запрос
    Код:
    ВЫБРАТЬ
    Модели.Изготовитель				  КАК Фирма,
    Модели.ТипОдежды.Слой			    КАК Слой,
    КОЛИЧЕСТВО(Модели.ТипОдежды.Слой)  КАК Колво
    ИЗ
    Справочник.Модели КАК Модели
    СГРУППИРОВАТЬ ПО
    Модели.ТипОдежды.Слой,
    Модели.Изготовитель
    ИТОГИ ПО
    ОБЩИЕ
    
  5. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Пока что решил эту задачу обычным запросом (не СКД). Интересовавшую меня формулу вынес за пределы запроса. Но хотелось бы решить это в СКД.
    Код:
    Запрос.Текст =
    "ВЫБРАТЬ
    | Модели.Изготовитель КАК Фирма,
    | Модели.КатегорияОдежды,
    | СУММА(1) КАК КолвоКатегорий
    |ИЗ
    | Справочник.Модели КАК Модели
    |ГДЕ
    | Модели.ПометкаУдаления = ЛОЖЬ
    |
    |СГРУППИРОВАТЬ ПО
    | Модели.КатегорияОдежды,
    | Модели.Изготовитель
    |
    |УПОРЯДОЧИТЬ ПО
    | Фирма
    |ИТОГИ
    | СУММА(КолвоКатегорий)
    |ПО
    | Фирма";
    Код:
    ПроцентноеСоотношение = 0; СуммаГруппировок = 0;
    Пока ВыборкаФирма.Следующий() Цикл
    ОбластьФирма.Параметры.Фирма = ВыборкаФирма.Фирма;
    ОбластьФирма.Параметры.КолвоКатегорий = ВыборкаФирма.КолвоКатегорий;
    
    СуммаГруппировок = ВыборкаФирма.КолвоКатегорий;
    
    ТабДок.Вывести(ОбластьФирма, ВыборкаФирма.Уровень());
    ВыборкаДетали = ВыборкаФирма.Выбрать();
    Пока ВыборкаДетали.Следующий() Цикл
    Если ВыборкаДетали.КатегорияОдежды = Справочники.КатегорииОдежды.ПустаяСсылка() Тогда
    ОбластьДетальныхЗаписей.Параметры.КатегорияОдежды = "Нет категории";
    Иначе
    ОбластьДетальныхЗаписей.Параметры.КатегорияОдежды = ВыборкаДетали.КатегорияОдежды;
    КонецЕсли;
    
    ОбластьДетальныхЗаписей.Параметры.КолвоКатегорий = ВыборкаДетали.КолвоКатегорий;
    
    ПроцентноеСоотношение = ВыборкаДетали.КолвоКатегорий / СуммаГруппировок * 100; //Вот эта строка
    ОбластьДетальныхЗаписей.Параметры.ПроцентСоотношение = Окр(ПроцентноеСоотношение, 2);
    
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
    КонецЦикла;
    КонецЦикла;
    

Поделиться этой страницей