|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Отчет (по заказчикам за определенный период)В окне Конфигурация (закладка Метаданные) создаем новый объект - Отчеты. Отчет должен содержать информацию, сгруппированную по заказчикам, с указанием наименований заказов, их стоимости. Идентификатор: Заказы. Отчет может быть в составе конфигурации и внешний. Разница только в способе хранение Внешний отчет - это внешний файл, который хранится отдельно от конфигурации (удобнее тем, что любые изменения не требуют изменения всей конфигурации, а только этого файла). Далее > Включаем отчет в интерфейс менеджера: Далее > Вызвать конструктор макета отчета - создается грубая таблица (из основных элементов отчета). Вызвать конструктор запросов - помогает написать запрос к данным (выборку из Базы Данных) Вызвать конструктор бухгалтерских запросов - запрос к бухгалтерским данным (!!! В нашем примере нет бухгалтерских проводок). Готово Данные для отчета будем брать из документа «Заказ». Отчет будет формировать при вызове процедуры «Сформировать»: Окно конструктора макета отчета зависит от выбранного типа отчета. Наш отчет будет содержать циклы по строкам. Диаграмма представляет интерес, если формируется отчет по месяцам. Далее > Количество циклов по строкам: 2 (заказчики, наименование изделия). Количество колонок: 4 (заказчик, тираж, сумма, дополнительные услуги (макет = редактирование + верстка)). Далее > Готово Макет Отчета создан. На закладке Модуль появился макет процедуры «Сформировать», создалась новая закладка Сформировать, содержащая макет отчета. В процедуре «Сформировать» формируется запрос и выводится таблица, содержащая отчет. Процедура Сформировать () Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы(),0); // Пишем запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//ЗАПРОС(Сформировать) |Период с ДатаНач по ДатаКон; // | - продолжение строки |Заказчик = Документ.ЗаказКниги.Заказчик; |Наименование = Документ.ЗаказКниги.Наименование; |Тираж = Документ.ЗаказКниги.Тираж; |Сумма = Документ.ЗаказКниги.Сумма; |Доп = Документ.ЗаказКниги.ДопРабота; |Функция Всего = Сумма(Сумма); |Группировка Заказчик; //без групп - не учитывать группировку в справочнике; |Группировка Наименование; |Группировка Доп; |ОбрабатыватьДокументы Все;";
// Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл Таб.ВывестиСекцию("Строка_1"); Пока Запрос.Группировка(2) = 1 Цикл Макет = 0; Пока Запрос.Группировка(3) = 1 Цикл Если (Найти(ВРЕГ(Запрос.Доп.Наименование), "ВЕРСТ")>0) или (Найти(ВРЕГ(Запрос.Доп.Наименование), "РЕДАК") > 0) Тогда Макет = Макет+1; КонецЕсли; КонецЦикла; Таб.ВывестиСекцию("Строка_2"); КонецЦикла; КонецЦикла; Таб.ВывестиСекцию("Подвал"); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры
Функция ВРЕГ(строка) переводит символы строки в заглавные, Найти(строка1,строка2) ищет подстроку строка2 в строке строка1. Если найдены фрагменты строк ВЕРСТ и РЕДАК, то заказ содержит обе дополнительные работы, т. е. полный макет. В отчетной таблице заказ, содержащий полный макет, отметим знаком «+».
Переходим к закладке Диалог, на которой создадим визуальное представление Формы-запроса отчета. 1. Добавим 3 элемента Текст ( ). (Шрифт - жирный, темно-синий, 12pt) с заголовками: Отчет о заказах за период, с, по (для изменения вида шрифта убрать «галочку» в Шрифт по умолчанию). 2. Добавим 2 реквизита диалога (): Идентификаторы: ДатаНач и ДатаКон, тип: «Дата», на закладке Дополнительно поставить «галочку» в Имеет кнопку выбора.
Переходим к закладке Сформировать для конструирования таблицы Отчета.
Строка 2: Сформировать заменяем на Отчет о заказчиках за [ПериодСтр(ДатаНач,ДатаКон)], тип «Шаблон». Если ДатаНач и ДатаКон совпадают с датами стандартных периодов (месяц, квартал, год), то автоматически подставляется наименование периода. Строка 4: Колонка 1 → Заказчик/Наименование Колонка 2 → Тираж Колонка 3 → Сумма Колонка 4 → Макет. Строка 6: Столбец 2: Запрос.Заказчик, Столбец 4: Запрос.Всего (Шрифт: жирный, 10pt). Тип данных ячеек подставляется автоматически, так как был задан макет отчета, в котором эти ячейки - выражение. Строка 8: Столбец 2: [Запрос.Наименование] (!!! До прямоугольных скобок стоит три пробела для формирования отступа в списке Наименование), Тип: «Шаблон». Столбец 3: Запрос.Тираж Столбец 4: Запрос.Всего Столбец 5:?(Макет=2,"+"," ") (Условный оператор - если переменная Макет=2 (т.е. есть и редактирование и верстка), то напечатать символ «+», иначе - пробел). Строка 10: Столбец 4: Запрос.Всего (Шрифт: Красный, жирный, 10 pt). В 1 С: Предприятие формируем Отчет за период: Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |