8.х Отчёт через конструктор!

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

  1. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Написал отчёт через конструкор и добавил два условия Дата и Номер,подскажите пожалуйста как сделать так чтобы эти условия выполнялись только тогда когда они заполнены..а если нет,чтобы отчёт выводился без этих условий! На данный момент есил условия не заполнены он выводит пустой отчёт!
  2. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Смотри процедуру в основной форме отчета, где присваиваются параметры. Там можешь воткнуть условия на предмет заполнения значений.

    Либо второй вариант - использовать СКД. Удобнее.
  3. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Привет чувак:)
    А подробней, с примером,можешь показать?
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    При формировании отчета при помощи конструктора у тебя в модуле формы отчета создается автоматически такая процедура:
    Процедура ОтчетВывести()
    Код:
    	//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ВЫПОЛНИТЬ(Отчет)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    ЭлементыФормы.ПолеТабличногоДокумента.Очистить();
    
    ПостроительОтчетаОтчет.Параметры.Вставить("Наименование", Наименование);
    ПостроительОтчетаОтчет.Параметры.Вставить("Ссылка", Ссылка);
    
    ПостроительОтчетаОтчет.Выполнить();
    ПостроительОтчетаОтчет.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
    ПостроительОтчетаОтчет.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
    ПостроительОтчетаОтчет.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
    ПостроительОтчетаОтчет.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);
    ПостроительОтчетаОтчет.Вывести(ЭлементыФормы.ПолеТабличногоДокумента);
    
    //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ВЫПОЛНИТЬ
    КонецПроцедуры
    
    Ты можешь поставить условия на установку параметров, например:
    Код:
    Если Наименование <> Неопределено Тогда
    ПостроительОтчетаОтчет.Параметры.Вставить("Наименование", Наименование);
    Иначе
    //ничего
    КонецЕсли;
    
  5. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    А ещё у меня проблема в выводом макета!
    Мне нужно создать определённый вывод....то есть я обрабатываю регистр и хотел бы всё вывести в нужном макете...но пока только лишь выводится в стандртном!
  6. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    С макетом в конструкторе не работал.
  7. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Пробавал работать с макетом..о пока без успешно!

    Может у тебя есть какие-то примеры по их воплощению?
    Мне желательно с группировками..то есть пример: первая строка реализация под ней все заказы и дальше так же релаизция и тд....
  8. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Для отражения группировок в самолепном макете используй обход результата запроса по группировкам.
    Группировка первого уровня = цикл
    Группировка второго уровня = цикл2
    Группировка третьего уровня = цикл3
    Элементы = Цикл4
    КЦ4
    КЦ3
    КЦ2
    КЦ
  9. Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    вот как раз вчера с макетом мучалась, вот тебе выдержка из статьи, что мне помогла:
    Строим отчет стандартным конструктором, далее - открываем процедуру ОтчетВывести() , находим строчку
    ЭлементыФормы.ПолеТабличногоДокумента.Очистить();
    И добавляем код:
    Код:
    ПостроительОтчетаОтчет.Макет.Область(2,2).Текст = Строка(глТекущийПользователь);
    ПостроительОтчетаОтчет.Макет.Область(2,2).Шрифт = новый Шрифт(,10);
    ПостроительОтчетаОтчет.Макет.Область(2,6).Текст = Строка(Формат(КонПериода, “ДФ=dd.MM.yyyy”));
    ПостроительОтчетаОтчет.Макет.Область(2,6).Шрифт = новый Шрифт(,10);
    
    теперь разберем, что же мы делаем, в первой строке мы указываем что в ячейку (Строка 2, столбец 2) надо вставить Автора а во второй строке мы изменяем размер шрифта этой ячейки (по умолчанию 14, немного великовато), Аналогично для времени.
    Мало того у нас есть возможность рисовать линии (сверху, слева, справа), например, обведем линией ячейку:
    Код:
    ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
    ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСнизу   = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
    ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСлева   = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
    ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
    
    С помощью данных инструментов можно создавать самые разнообразные формы отчетов.
    Правда как цвет ячейки свой задавать я так и не разобралась еще

    зы: у меня заработало, когда я вставила код после
    ПостроительОтчетаОтчетПоКассе.ОформитьМакет();
  10. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    А пример? :) ПЖ :unsure:
  11. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Я не знаю как сгрупровать с плюсиками по докуменам в макете!
    Как я уже писал:
    +НакладнаЯ: Номер Дата
    Заказ - -
    - - -
    +Накладная
    Заказ - -
    - - -
  12. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Если не решили проблему то вот решение...
    Просто наложи условие в текст запроса

    Запрос.Текст = "Выбрать....

    ..... ";
    Если не Дата = Неопределено тогда
    Запрос.Текст = Запрос.ТЕкст + " Где .... .Дата = &Дата... ";
    КонецЕсли;
    Запрос.Текст = Запрос.Текст + " дальше запрос

    ну и в конце....
    Запрос.УстановитьПараметры("Дата",ТекущаяДАта());
    Запрос.Выполнить.Выбрать() ну или выгрузить() Кому как))))
  13. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Сегодня до обеда скину.
  14. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    только не надо забывать про .Уровень иначе ничегоне будет разворачиваться а просто выведешь по группировкам

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