Помощь - Поиск - Пользователи - Календарь
Полная версия: Отчёт через конструктор!
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Конфигурирование на платформе "1С:Предприятие 8.x"
Ромик
Написал отчёт через конструкор и добавил два условия Дата и Номер,подскажите пожалуйста как сделать так чтобы эти условия выполнялись только тогда когда они заполнены..а если нет,чтобы отчёт выводился без этих условий! На данный момент есил условия не заполнены он выводит пустой отчёт!
LxS
Смотри процедуру в основной форме отчета, где присваиваются параметры. Там можешь воткнуть условия на предмет заполнения значений.

Либо второй вариант - использовать СКД. Удобнее.
Ромик
Цитата(LxS @ 14.11.2008, 19:52) *

Смотри процедуру в основной форме отчета, где присваиваются параметры. Там можешь воткнуть условия на предмет заполнения значений.

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


Привет чувак:)
А подробней, с примером,можешь показать?
LxS
При формировании отчета при помощи конструктора у тебя в модуле формы отчета создается автоматически такая процедура:
Процедура ОтчетВывести()
Код
	//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ВЫПОЛНИТЬ(Отчет)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

ЭлементыФормы.ПолеТабличногоДокумента.Очистить();

ПостроительОтчетаОтчет.Параметры.Вставить("Наименование", Наименование);
ПостроительОтчетаОтчет.Параметры.Вставить("Ссылка", Ссылка);

ПостроительОтчетаОтчет.Выполнить();
ПостроительОтчетаОтчет.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
ПостроительОтчетаОтчет.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
ПостроительОтчетаОтчет.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
ПостроительОтчетаОтчет.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);
ПостроительОтчетаОтчет.Вывести(ЭлементыФормы.ПолеТабличногоДокумента);

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ВЫПОЛНИТЬ
КонецПроцедуры


Ты можешь поставить условия на установку параметров, например:
Код
Если Наименование <> Неопределено Тогда
ПостроительОтчетаОтчет.Параметры.Вставить("Наименование", Наименование);
Иначе
//ничего
КонецЕсли;

Ромик
А ещё у меня проблема в выводом макета!
Мне нужно создать определённый вывод....то есть я обрабатываю регистр и хотел бы всё вывести в нужном макете...но пока только лишь выводится в стандртном!
LxS
С макетом в конструкторе не работал.
Ромик
Цитата(LxS @ 17.11.2008, 16:29) *

С макетом в конструкторе не работал.


Пробавал работать с макетом..о пока без успешно!

Цитата(Ромик @ 18.11.2008, 9:43) *

Пробавал работать с макетом..о пока без успешно!


Может у тебя есть какие-то примеры по их воплощению?
Мне желательно с группировками..то есть пример: первая строка реализация под ней все заказы и дальше так же релаизция и тд....
LxS
Для отражения группировок в самолепном макете используй обход результата запроса по группировкам.
Группировка первого уровня = цикл
Группировка второго уровня = цикл2
Группировка третьего уровня = цикл3
Элементы = Цикл4
КЦ4
КЦ3
КЦ2
КЦ
Muggsy
вот как раз вчера с макетом мучалась, вот тебе выдержка из статьи, что мне помогла:
Строим отчет стандартным конструктором, далее - открываем процедуру ОтчетВывести() , находим строчку
ЭлементыФормы.ПолеТабличногоДокумента.Очистить();
И добавляем код:
Код

ПостроительОтчетаОтчет.Макет.Область(2,2).Текст = Строка(глТекущийПользователь);
ПостроительОтчетаОтчет.Макет.Область(2,2).Шрифт = новый Шрифт(,10);
ПостроительОтчетаОтчет.Макет.Область(2,6).Текст = Строка(Формат(КонПериода, “ДФ=dd.MM.yyyy”));
ПостроительОтчетаОтчет.Макет.Область(2,6).Шрифт = новый Шрифт(,10);

теперь разберем, что же мы делаем, в первой строке мы указываем что в ячейку (Строка 2, столбец 2) надо вставить Автора а во второй строке мы изменяем размер шрифта этой ячейки (по умолчанию 14, немного великовато), Аналогично для времени.
Мало того у нас есть возможность рисовать линии (сверху, слева, справа), например, обведем линией ячейку:
Код
ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
ПостроительОтчетаОтчет.Макет.Область(Строка,Столбец).ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);

С помощью данных инструментов можно создавать самые разнообразные формы отчетов.
Правда как цвет ячейки свой задавать я так и не разобралась еще

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

Ромик
Цитата(LxS @ 18.11.2008, 12:45) *

Для отражения группировок в самолепном макете используй обход результата запроса по группировкам.
Группировка первого уровня = цикл
Группировка второго уровня = цикл2
Группировка третьего уровня = цикл3
Элементы = Цикл4
КЦ4
КЦ3
КЦ2
КЦ


А пример? :) ПЖ cool.gif
Ромик
Цитата(Ромик @ 19.11.2008, 8:39) *

А пример? :) ПЖ cool.gif


Я не знаю как сгрупровать с плюсиками по докуменам в макете!
Как я уже писал:
+НакладнаЯ: Номер Дата
Заказ - -
- - -
+Накладная
Заказ - -
- - -
tirk
Цитата(Ромик @ 14.11.2008, 22:14) *

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


Если не решили проблему то вот решение...
Просто наложи условие в текст запроса

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

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

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


LxS
Цитата(Ромик @ 19.11.2008, 6:39) *

А пример? :) ПЖ cool.gif

Сегодня до обеда скину.
tirk
Цитата(Ромик @ 19.11.2008, 13:39) *

А пример? :) ПЖ cool.gif

только не надо забывать про .Уровень иначе ничегоне будет разворачиваться а просто выведешь по группировкам
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.