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

Создать макет через внешний отчет с 3 типами наценок

Автор Ageo, 03 сен 2025, 08:58

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

Ageo

Всем здравствуйте, дали ТЗ следующего характера сделать внешний отчет через макет, с тремя типами наценок и последними актуальными ценами.
цены брать из регистра: СофУТ_ЦеныНоменклатурыГр  Регистр сведений отсюда брать последние цены  (VIP 0 (0-250гр)
VIP -250 (250-500гр)
VIP 500 (>500гр)) только эти типы наценок брать.
 
До этого дали тоже ТЗ, я сделал через скд и когда осталось только вывести последние цены сказали переделать, просто сделать макет

Честно скажу я новичок в этом еще учусь, прохожу курсы, книги и тд. Тут дали тз (Я на стажировки) тупо выживание) нужно его сделать сейчас и дальше я могу приступать снова к обучению, если кто то может помочь буду очень благодарен
Ниже прикрепляю фото что я уже сделал
1 фото это пример как нужно сделать
2 фото сделал макет
3 фото общее понимание где я делал макет
4 фото код который я пытался написать в модуле Объекта внешний отчет 

Надеюсь тапками не закидайте, СПАСИБО,

Ageo

&НаСервере
Функция СформироватьДанные(ДатаОтчета) Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
        Цены.ЦеноваяГруппа КАК Категория,
        ВЫБОР
            КОГДА Цены.ТипСкидкиНаценки = ЗНАЧЕНИЕ(Справочник.ТипыСкидокНаценок.00020)
                ТОГДА Цены.Цена
            ИНАЧЕ 0
        КОНЕЦ КАК VIP0_250,

        ВЫБОР
            КОГДА Цены.ТипСкидкиНаценки = ЗНАЧЕНИЕ(Справочник.ТипыСкидокНаценок.00019)
                ТОГДА Цены.Цена
            ИНАЧЕ 0
        КОНЕЦ КАК VIP250_500,

        ВЫБОР
            КОГДА Цены.ТипСкидкиНаценки = ЗНАЧЕНИЕ(Справочник.ТипыСкидокНаценок.00021)
                ТОГДА Цены.Цена
            ИНАЧЕ 0
        КОНЕЦ КАК VIP500plus

    ИЗ
        РегистрСведений.СофУТ_ЦеныНоменклатурыГр.СрезПоследних(&Дата, ) КАК Цены";

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

    Возврат Запрос.Выполнить().Выгрузить();
КонецФункции


&НаСервере
Процедура СформироватьОтчет(ДатаОтчета) Экспорт

    Данные = СформироватьДанные(ДатаОтчета);

    ТабДок = Новый ТабличныйДокумент;
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");

    // Заголовок отчёта
    Область = Макет.ПолучитьОбласть("Заголовок");
    Область.Параметры.Заголовок = "Отчет по ценам VIP";
    ТабДок.Вывести(Область);

    // Заголовок таблицы
    ТабДок.Вывести(Макет.ПолучитьОбласть("ЗаголовокТаблицы"));

    // Строки отчёта
    Для Каждого Строка Из Данные Цикл
        Область = Макет.ПолучитьОбласть("Строка");
        Область.Параметры.Категория   = Строка.Категория;
        Область.Параметры.VIP0_250    = Строка.VIP0_250;
        Область.Параметры.VIP250_500  = Строка.VIP250_500;
        Область.Параметры.VIP500plus  = Строка.VIP500plus;
        ТабДок.Вывести(Область);
    КонецЦикла;

    // Выводим в форму
    ЭтотОбъект.ПолучитьФорму("ФормаОтчета").ПолеТабличногоДокумента.Значение = ТабДок;

КонецПроцедуры

вот код который сейчас


sali


Ageo

sali, Процедура или функция с указанным именем не определена = Данные = СформироватьДанные(ДатаОтчета); это не определяет

{ВнешнийОтчет.ОтчетВИПВнешний.МодульОбъекта(7,28)}: Неопознанный оператор = Цены.ЦеноваяГруппа КАК Категория,
 

Ageo

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

Максим75

Цитата: Ageo от 03 сен 2025, 09:14sali, не могу разобраться в коде, данные макета должны получать из регистра сведений

так у Вас и берутся из регистра сведений

ИЗ
        РегистрСведений.СофУТ_ЦеныНоменклатурыГр.СрезПоследних(&Дата, ) КАК Цены

Ageo

Максим75, Измерения регистра: Ценовая Группа, Тип Скидки Наценки. Ресурсы: Цена. Это то что мне нужно взять
 

Ageo

как я делал макет
я создал внешний отчет и после создал макет (Собрал макет) перешел на внешний отчет (Действия) модуль Объекта и там составил код

Максим75

Цитата: Ageo от 03 сен 2025, 09:21как я делал макет
я создал внешний отчет и после создал макет (Собрал макет) перешел на внешний отчет (Действия) модуль Объекта и там составил код
супер. по коду вроде на первый взгляд все верно, должно работать. Не работает?

Ageo

Максим75, Нет, ошибки выше описал которые в сообщениях выводятся теперь вот думаю что где то накосячил

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

Рейтинг@Mail.ru

Поиск