Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БУХГАЛТЕРИЯ.doc
Скачиваний:
21
Добавлен:
19.03.2016
Размер:
646.14 Кб
Скачать

Глава 17. Получение итогов по аналитике

Предположим, нам необходимо соз­дать отчет, который бы выдавал нашу задолженность поставщикам на текущую дату. Любому бухгалтеру известно, что это кредитовый остаток 60 счета по конкретной организации.

Для получения этой информации бухгалтер может построить отчет «Оборотно-сальдовая ведомость по счету», разворачивая итоги по 60 счету по контрагентам, без учета основания возникновения этой за­долженности. Чтобы построить такой отчет, запустите «1С:Бухгалтерию 7.7» (или перейдите в нее, если программа уже запущена), в меню «От­четы» выберите пункт «Оборотно-сальдовая ведомость по счету». В отчете, построенном с такими параметрами, мы сразу увидим, ка­ким организациям мы должны, и сколько.

Но, опять же, для руководства предприятия такая форма может оказаться не совсем удобочитаемой; кроме этого, в отчет попадают все контрагенты, по которым были хоть какие-то операции в текущем пе­риоде.

Поэтому мы создадим специальный отчет, он будет выдавать спи­сок поставщиков, которым мы что-нибудь должны на дату формирования отчета. Если вы уже выполнили все задания, изложенные в этой книге, то создание такого отчета не составит для вас большого труда.

Запустите Конфигуратор и создайте новый отчет. В Конфигураторе откройте окно «Конфигура­ция» и перейдите к закладке «Метаданные». Если у вас Конфигуратор уже был запущен, для удобства работы закройте все окна, кроме окна «Конфигурация».

Нам опять предстоит создать новый отчет, поэтому перейдите к ветви «Отчеты» дерева метаданных и выберите пункт «Новый эле­мент» из меню «Действия» главного меню Конфигуратора.

В диалогах Конструктора Отчетов укажите идентификатор «За-долженностьПоставщикам», а в качестве синонима введите строку «Задолженность поставщикам». Как и ранее, воспользуемся Конструк­тором, чтобы вставить вызов нового отчета в меню.

Если же вы отключили использование Конструктора, то при созда­нии нового элемента вам надо будет записать идентификатор и сино­ним в палитру свойств нового отчета и нажать кнопку «ОК», чтобы закрыть палитру свойств и отразить сделанные нами изменения в де­реве метаданных.

В результате выполнения описанных выше действий в дереве метаданных появится новый отчет. Если для создания нового отчета вы вос­пользовались Конструктором, то форма уже открыта. Если вы не пользовались Конструктором, то, чтобы открыть форму отчета, дважды щелкните мышью идентификатор отчета в дереве ме­таданных. В диалог отчета Конфигуратор автоматически добавил 2 кнопки:

«Сформировать» и «Закрыть».

Изменим заголовок окна диа­лога. Для этого дважды щелкните мышью в пустое пространство диа­лога, в появившейся палитре свойств в закладке «Общие» введите в поле «Заголовок» текст «Задолженность поставщикам» и нажмите кнопку «ОК».

Также можно ввести в диалоге крупную надпись с названием отче­та. Функциональности отчету такая надпись, конечно, не прибавит, но зато несколько украсит вид отчета.

Итак, выполните следующее:

•в меню «Вставить» выберите пункт «Текст»;

•обведите мышью желаемую область размещения текста — обычно такие надписи размещают в верхней части диалога, под заголовком окна;

•теперь дважды щелкните мышью созданный элемент диалога, чтобы открыть его палитру свойств.

В палитре свойств:

•в закладке «Общие» введите в поле «Заголовок» текст «Задолженность поставщикам»;

•в закладке «Дополнительные» в списке «Положение» выберите «Центр по горизонтали» и щелкните мышью флажок «Центр по вертикали»;

•в закладке «Шрифт» щелкните мышью флажок «Шрифт по умолчанию», чтобы отключить его, затем выберите размер шрифта 10 и атрибут «Жирн.»;

•нажмите кнопку «ОК», чтобы внести изменения в диалог.

Отредактируйте печатную форму отчета. Печатная форма будет представ­лять собой таблицу, состоящую из двух коло­нок: наименования поставщика и суммы задол­женности. Печатную форму в виде таблицы мы уже создавали, когда разрабатывали печатную форму документа «СписаниеМатериалов».

Любая таблица состоит из трех частей: шапки, табличной части и «подвала». Каждой из этих частей соответствует своя секция в шабло­не печатной формы.

Сначала создадим секцию шапки отчета. Щелкнем мышью край­нюю левую ячейку во второй строке сверху и введем текст «Задол­женность поставщикам». Так как мы условились, что бухгалтерский учет у нас ведется «день в день», можно в заголовке выдавать и дату составления справки. Для этого допишем в конец введенного текста строку «на [ТекущаяДата() #Д ДДММММГГГГ]».

Сразу отредактируем свойства заголовка отчета. Щелчком кнопки мыши по ячейке вызовите контекстное меню и выберите «Свойства». В открывшейся палитре свойств:

•в закладке «Общие» выберите тип ячейки «Шаблон»,

•в закладке «Положение» выберите пункт «Центр» в группе «По горизонтали»,

•в закладке «Шрифт» выберите размер шрифта 12 и включите атрибут шрифта «Жирн.»

•нажмите кнопку «ОК», чтобы внести изменения в таблицу.

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

Отступите 1 строку вниз от заголовка и в крайней левой ячейке этой строки введите текст «Поставщик», а в ячейке справа - текст «Сумма задолженности».

Теперь вызовите палитру свойств и закрепите ее на экране. Для ускорения будем выполнять форматирование сразу двух ячеек. Выделите ячейки с только что введенным текстом. Для этого щелкните мышью ячейку с текстом «Поставщик», не отпуская кнопку мыпи перетащите указатель мыши к ячейке с текстом «Сумма задолженности», затем отпустите кнопку мыши.

Теперь в палитре свойств:

• в закладке «Положение» выберите пункт «Центр» в группе «По горизонтали»;

• в закладке «Шрифт» выберите размер шрифта 10 и включите атрибут «Жирн.»;

• в закладке «Рамка» в группе «Стиль» выберите тонкую сплошную линию, а в группе «Рамка» щелкните мышью пункт «Обвести»;

•нажмите кнопку «Обновить».

Также можно отрегулировать ширину колонок табличной части нашего будущего отчета. Установите ширину колонок такой, чтобы текст в заголовках граф был виден полностью. Для этого перетаски­вайте мышью границы между колонками в строке заголовков (это се­рая строка с цифрами в верхней части таблицы).

Табличная часть нашего отчета будет состоять из повторяющихся строк. Возможности встроенного языка системы «1С:Предприятие» зволяют выводить одну секцию любое количество раз, поэтому мы нарисуем только одну строку таблицы, оформим ее в виде секции и при построении отчета будем выводить ее столько раз, сколько потребуется.

Сначала создадим ячейку для вывода наименования организации. Отступите 2 сроки вниз от ячейки с текстом «Поставщик» и щели ните мышью по крайней левой ячейке. В палитре свойств перейдите к закладке «Текст» и введите текст «Наименование». Укажите тип этой ячейки «Выражение».

Текст «Наименование» в данном случае — имя переменной, которой в модуле мы будем присваивать название организации-поставщика. Для редактируемой ячейки также выберите шрифт 10 и обведите рамкой, как мы это делали для заголовков граф.

Теперь создадим ячейку для вывода суммы задолженности. Щелкнем мышью ячейку справа и введем в поле закладки «Tекст» строку «Сумма Задолженности». Для этой ячейки также выберем «Выражение».

В данном случае СуммаЗадолженности — имя переменной, в которую мы при формировании отчета будем записывать кредитов остаток по объекту аналитики. Когда мы разрабатывали печатную форму документа «Списание Материалов», мы советовали выравнивать числа по правой границе ячейки. Поэтому давайте для редактируемой ячейки в закладке «Положение» палитры свойств выберем пункт «Право» в группе «По горизонтали».

Для восприятия удобнее, когда одинаковые разряды чисел в колонке таблицы располагаются друг под другом: копейки — под копейками десятки копеек — под десятками копеек, рубли — под рублями, и так далее, при этом десятичные точки всех сумм также располагаются одна под другой. Это надо учитывать при выводе денежных сумм в ко­лонку таблицы.

Если специально не указывать при создании шаблона документа, то в табличном документе «1С:Предприятия» числа будут выводиться только со значащими разрядами. Например, сумма 123 рубля 45 копе­ек будет выдана как 123.45, а 123 рубля 40 копеек — как 123.4. соот­ветственно, сумма без копеек будет выдана в виде только «рублевой» части.

Если вы обратили внимание, то именно так выдаются числа в на­шем предыдущем отчете «Справка руководству».

При выводе чисел также существует возможность указать формат­ную строку. Давайте для ячейки с текстом «СуммаЗадолженности» укажем форматную строку. Для этого в конец текста после пробела запишем «#Ч15.2». Эта форматная строка означает, что информация, выдаваемая в ячейке, всегда будет выводиться в виде числа общей длиной 15 разрядов, из этих разрядов 2 отводится для вывода деся­тичной части и еще один разряд — для вывода десятичной точки (то есть, для вывода целой части остается 15-2-1=12 разрядов).

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

Форматная строка также позволяет указать разделитель целой и дробной части. Так как мы будем выводить денежные суммы, давайте укажем в качестве такого разделителя символ «-»: для этого его следу­ет поставить в форматной строке после «2».

Итак, в редактируемой ячейке у вас должна находиться строка «СуммаЗадолженности #415.2-».

Теперь для этой ячейки осталось установить в закладке «Шрифт» размер шрифта 10 и обвести ячейку рамкой: в закладке «Рамка» в группе «Стиль» выбрать тонкую сплошную линию, а в группе «Рам­ка» — пункт «Обвести».

Нажмите кнопку «Обновить», чтобы «перенести» изменения ячейку. В «подвале» отчета никакой значащей информации у нас пока не предвидится, поэтому предусмотрим там место для подписи главбуха.

Отступите 3 строки вниз от ячейки с выражением «Наименование» и введите в крайнюю левую ячейку текст «Главный бухгалтер». Для этой ячейки также измените вид текста: в закладке «Шрифт» выберите размер шрифта 10.

Теперь можно нажать кнопку «OK» — палитра свойств нам пока не понадобится.

Последнее, что мы можем сделать, с точки зрения оформления чета, — выровнять заголовок отчета по центру таблицы. Для этого объединим 2 ячейки: одну, в которой находится текст заголовка, и соседнюю с ней.

В строке с заголовком отчета щелкните мышью крайнюю левую ячейку, не отпуская кнопки мыши, перетащите указатель мыши к соседней ячейке справа, и отпустите указатель мыши. Теперь выбери пункт «Объединить» в меню «Таблица» главного меню Конфигуратора.

Для управления выводом отчета нам также по­требуются секции в шаблоне печатной формы. Как мы определили, наш отчет должен состоять из 3-х секций

Для вывода шапки отчета включим в секцию «Шапка» строки в верхней части, которые должны выводиться один раз: это сам заголовок отчета и заголовки граф табличной части отче­та.

Поместите указатель мыши на заголовок с номером строки, в кото­ром расположен заголовок отчета (это строка с номером 2). Теперь нажмите левую кнопку мыши и, не отпуская ее, перетащите указатель мыши к строке с заголовками колонок табличной части отчета (это строка с номером 4). В результате в табличном документе будут выде­лены три строки. Теперь выберите из меню «Таблица» пункт «Включить в секцию».

Появится диалог, в котором нужно указать имя секции. Изменим предложенное имя «Секция_1», на имя «Шапка» и нажмем кнопку "ОК".

В левой части окна мы увидим обозначение выделенной нами сек­ции. Теперь мы аналогичным образом выделим как отдельную секцию одну строку — ту, в которой мы вводили выражения для вывода на­именования поставщика и суммы задолженности. При выделении од­ной строки достаточно щелкнуть мышью в номер этой строки. Этой секции мы присвоим имя «Строка».

В качестве «подвальной» секции мы выделим 2 последние строки: ту, в которой расположен текст «Главный бухгалтер», и находящуюся над ней. Это секции присвоим имя «Подвал». Теперь шаблон печатной формы готов полностью.

Итак, мы создали заготовку отчета. Теперь перей­дем к закладке «Модуль» и начнем создавать ал­горитм. Как и при создании предыдущего отчета, Кон­фигуратор автоматически добавил в модуль «заго­товку» процедуры формирования отчета — строки «Процедура...» и «КонецПроцедуры». Весь осталь­ной алгоритм мы будет создавать между этими строками.

В любом случае, для работы с бухгалтерскими итогами сначала не­обходимо создать объект «Бухгалтерские итоги». Введите между стро­ками «Процедура...» и «КонецПроцедуры» следующую строку:

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

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

Как мы уже решили, в нашем отчете мы будем выдавать кредито­вые остатки 60 счета по аналитике. Мы покажем, как для обращения к таким остаткам использовать объект типа «БухгалтерскиеИтоги» в режиме запроса, чтобы отобрать нужные бухгалтерские итоги.

Создав объект «Бухгалтерские итоги», мы, фактически, указали системе, что будем работать со всеми бухгалтерскими итогами. Но аб­солютно все бухгалтерские итоги нам не нужны, поэтому теперь мы будем последовательно сужать наш выбор. Сначала укажем, что мы будем отбирать итоги только по контрагентам. Для этого используется метод объекта «Бухгалтерские итоги» ИспользоватьСубконто().

Для ввода строк в модуль отчета можно использовать Син-такс-Помощник. Чтобы вызвать его, выберите пункт «Синтакс-Помощник» из меню «Сервис» главного меню Конфигуратора.

Практически все необходимые нам команды сосредоточены на вет­ви «Встроенный язык — Бухгалтерские итоги — Итоги — Период ито­гов — Режим запроса». Перейдите к ветви «Режим запроса», щелкая мышью знаки «+» у перечисленных фраз.

Введите новую строку:

ПроцедураСформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ.ИспользоватьСубконто("Контрагенты");

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

Таким образом, мы ограничили извлекаемые бухгалтерские итоги конкретным видом субконто «Контрагенты».

Укажем системе, за какой период мы хотим получить итоги, и по какому счету. Для этого служит метод ВыполнитьЗапрос(). При вызове этого метода в скобках можно указать множество различных параметров, задающих, какие итоги следует извлечь. Мы ограничимся заданием периода и бухгалтерского счета,

После сроки с методом ИспользоватьСубконто() введите строку

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ.ИспользоватьСубконто("Контрагенты");

БИ.ВыполнитьЗапрос(,Текущая Дата (), "60");

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

Дата начала периода получения итогов нас не интересует, поэтому самый первый параметр мы не указали. Датой конца периода мы поставили текущую дату, которую будем определять при помощи системной функции ТекущаяДата().

Так как нас интересуют итоги по счету 60, третьим параметром метода мы указали код счета в виде строки символов. Обратите внимание, что сейчас мы не использовали функцию СчетПоКоду(), так метод ВыполнитьЗапрос() допускает такой синтаксис — указа кода счета в виде символьной строки.

Остальные параметры метода позволяют в большей степени конкретизировать извлекаемые итоги, но сейчас, для получения результата, нам достаточно тех параметров, которые мы уже указали. По выполнения этой строки мы уже будем иметь выборку интересующих нас итогов. Нам остается только правильно к ним обратиться.

Сейчас мы можем ввести в алгоритм команды для работы с объектом «Таблица». Эти команды нам уже знакомы. Однако, в отличие от алгоритма построения предыдущего отчета, здесь команды работы с таблицей будут «разбросаны» по всему алгоритму. Поэтому сейчас мы воспользуемся Синтакс-Помощником вставки «заготовки», а затем вручную будем добавлять необходимые команды, по мере того, как в них появится надобность.

Шаблон «Таблица» расположен на ветви «Шаблоны — Прочие» Синтакс-Помощника. Перед тем как вызвать шаблон, нужно поместить текстовый курсор в модуле в то место, куда мы будем вставлять фраг­мент алгоритма. В данном случае следует поставить курсор перед сло­вом Конец Процедуры.

Теперь следует щелкнуть правой кнопкой мыши на имени шаблона «Таблица» в Синтакс-Помощнике и в появившемся контекстном меню указать пункт «Выбрать». После этого текст модуля должен выглядеть так:

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ.ИспользоватьСубконто("Контрагенты");

БИ.ВыполнитьЗапрос(,ТекущаяДата (), "60");

Таб=СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("");

Таб.ВывестиСекцию("Отчет");

Таб.Только Просмотр(1);

Таб.Опции(0,0,0,0);

Таб.Показать("");

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

Во вставленные строки придется внести некоторые изменения. Наш отчет состоит из 3-х секций: «Шапка», «Строка» и «Подвал». Эти секции должны выводиться в готовый отчет в таком же порядке, в каком мы их перечислили, а секция «Строка», к тому же, столько раз, скольким поставщикам мы должны. Естественно, что шаблон «Табли­ца» ничего не знает про секции нашего отчета, поэтому записывает только одну команду для вывода секции с условным именем «Отчет».

В свою очередь, нам необходимо использовать метод ВывестиСекцию() для вывода «наших» секций, созданных при разра­ботке шаблона печатной формы диалога.

Первой должна выводиться шапка отчета. Она не содержит ника­ких данных, которые требуют вычислений в алгоритме построения отчета. Поэтому мы вполне можем вывести секцию «Шапка» в любом месте алгоритма (естественно, после команды создания объекта «Таблица» и до вывода секции «Строка»). Давайте в строке с текстом» «Таб.ВывестиСекцию(«Отчет»);» заменим слово «Отчет» на слово «Шапка».

Для вывода строк с суммами задолженностей нам необходимо обратиться к бухгалтерским итогам, которые мы извлекли команда ВыполнитьЗапрос(). Результаты обращения мы и будем выводить отчет, используя секцию «Строка». Очевидно, что вывод строк додж быть после вывода шапки отчета. Лучше всего для этого подойдет пустая строка между выводом секции «Шапка» и установкой режима «Только Просмотр».

Так как количество строк в отчете заранее не известно, поэтому мы будем последовательно выбирать все отобранные субконто и выводить в отчет только те, у которых кредитовое сальдо больше нуля.

Для начала обработки субконто нам нужно внести в модуль метод объекта «БухгалтерскиеИтоги», начинающий обработку отобранв субконто. Он так и называется ВыбратьСубконто. Введем в пустую строку следующий текст:

БИ.ВыбратьСубконто();

Теперь нужно организовать обход всех субконто. Для этого используется команда встроенного языка Пока…Цикл. После строки с текстом «БИ.Вы6ратьСубконто();» введите в модуль новые строки.

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ.ИспользоватьСубконто("Контрагенты");

БИ.ВыполнитьЗапрос(,ТекущаяДата(),"60");

Таб=СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("");

Таб.ВывестиСекцию("Шапка");

БИ.ВыбратьСубконто();

Пока БИ.ПолучитьСубконто() =1 Цикл

СуммаЗадолженности=БИ.СКК();

Если СуммаЗадолженности> 0 Тогда

Наименование=БИ.Субконто();

Таб.ВывестиСекцию("Строка");

КонецЕсли;

КонецЦикла;

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

Таб.Только Просмотр (1);

Таб.Опции (0,0,0,0);

Таб.Показать ("");

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

Теперь дадим пояснения к введенным строкам.

Пока БИ.ПолучитьСубконто()=1 Цикл

Для последовательного выбора субконто нужно написать условие ПолучитьСубконто()=1. Это вызов специального метода ПолучитьСубконто(), который выбирает очередное субконто и воз­вращает 1, если следующее субконто есть, и 0, если больше субконто нет. Условие «=1» проверяет, что метод ПолучитьСубконто() вер­нул 1.

СуммаЗадалженности =БИ.СКК();

В этой строке сальдо конечное кредитовое присваивается перемен­ной СуммаЗадолженности. Поскольку метод СКК() используется в режиме запроса, параметры в скобках мы не указываем. Какое именно кредитовое сальдо извлекается, определено теми условиями, которые были наложены на бухгалтерские итоги: по счету 60, на текущую дату, по субконто вида «Контрагенты».

Далее, если сумма задолженности по данному поставщику положительна, мы будем формировать строку отчета, в противном случае перейдем к анализу следующего субконто из полученной ранее выборки.

Если СуммаЗадолжености > 0Тогда

Наименование=БИ.Субконто ( );

Таб.Вывести Секцию ("Строка");

КонецЕсли;

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

Наименование=БИ.Субконто();

Эта строка алгоритма формирует в отчете наименование поставщика, то есть запоминает в переменной Наименование текущее субконто, выбранное методом ПолучитьСубконто().

Здесь необходимо напомнить, что мы работаем с видом субконто «Контрагенты». Этот вид субконто, в свою очередь, имеет тип «Справочник-Контрагенты». То есть, кредитовый остаток по счету 60 по данному субконто «привязан» к какому-либо конкретному элементу справочника «Контрагенты».

Для справочника можно указать, в каком виде представлять элемент справочника: в виде кода или в виде наименования. Для справочника «Контрагенты» указано представление в виде наименования. Поэтому при обращении к элементу справочника «вообще» будет возвращено наименование элемента справочника.

Далее выполняется вывод секции отчета, содержащей строку с информацией о задолженности, если эта задолженность больше 0.

Теперь осталось записать строку для вывода «подвала» отчета и отредактировать вызов метода Показать(). В качестве параметра при вызове этого метода можно указать строку, которая будет использована как заголовок окна с готовым табличным документом. В строке с текстом «Таб.Показать("");» внутри кавычек введите строку «Печать справки о задолженности поставщикам».

Результатом всех наших действий должен быть следующий алго­ритм:

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ.ИспользоватьСубконто("Контрагенты");

БИ.ВыполнитьЗапрос(,ТекущаяДата(),"60");

Таб=СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("");

Таб.ВывестиСекцию("Шапка");

БИ.ВыбратьСубконто();

Пока БИ.ПолучитьСубконто() =1 Цикл

СуммаЗадолженности=БИ.СКК();

Если СуммаЗадолженности> 0 Тогда

Наименование=БИ.Субконто();

Таб.ВывестиСекцию("Строка");

КонецЕсли;

КонецЦикла;

Таб.ВывестиСекцию("Подвал");

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

Таб.Только Просмотр (1);

Таб.Опции (0,0,0,0);

Таб.Показать ("Печать справки о задолженностях поставщикам");

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

Теперь можно проверить работу отчета. Запустите «1С:Предприятие», выберите из меню «Отчеты» пункт «Задолженность поставщикам», и в выданном на экран диалоге отчета нажмите кнопку «Сформировать» для построения отчета.

Если все было сделано правильно, отчет должен сформироваться, в нем должны присутствовать строки с информацией о поставщике сумме задолженности. Для сравнения можно построить оборотно-сальдовую ведомость счету, как мы рекомендовали это сделать в начале главы.

В завершение, мы хотим продемонстрировать некоторые приемы, которые позволят сделать ваши отчеты выразительнее и добавить им функциональности. Поэтому закройте «1С:Предприятие» и опять перей­дите в Конфигуратор.

Например, изменим отчет таким образом, чтобы строки отчета, в которых задолженность больше какой-либо указанной нами суммы, выделялись цветом.

Нам опять придется отредактировать все 3 составные части отчета: диалог, шаблон печатной формы и модуль. Перейдите к закладке «Диалог» формы отчета. Чтобы можно было задавать размер задол­женности, в диалоге отчета создадим реквизит для ввода размера задолженности.

Создание реквизита диалога отчета несколь­ко отличается от создания реквизита диалога документа. В диалоге документа мы создавали реквизиты, связанные с соответствующими реквизитами самого документа (как, например, ре­квизит «Затраты» или «Склад»). При создании такого реквизита нам не надо было указывать его свойства, например, идентификатор, тип значения или другие - все эти свойства «брались» у реквизита доку­мента. В диалоге отчета мы создаем реквизит с «нуля» и сами должны оп­ределить его свойства.

Итак, для вставки реквизита необходимо выбрать пункт «Реквизит диалога» из меню «Вставить» главного меню Конфигуратора.

Затем следует обвести в диалоге желаемое место размещения этого реквизита. Давайте поместим его под надписью «Задолженность по­ставщикам», ближе к правой границе диалога.

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

На закладке «Общие», в первую очередь, следует за­дать идентификатор реквизи­та. Введем в качестве идентификатора строку «МаксимальнаяСумма».

Теперь перейдем к закладке «Тип». Так как нам необходимо указывать сумму, очевидно, что в качестве типа реквизита следует выбрать «Число». Для выбора типа необходи­мо щелкнуть мышью в поле «Тип» (в котором пока написано «Стро­ка») и выбрать нужный тип из выпадающего списка. Строка «Число» в этом списке расположено над строкой «Строка», поэтому надо воспользоваться вертикальной линейкой прокрутки, чтобы нужный тип появился на экране.

Длина и точность реквизита определяются, в основном, размерно­стью тех сумм, которые мы планируем здесь указывать. Например, можно определить эти свойства, исходя из того, что мы уже делали в отчете. Если помните, в ячейке для вывода сумм в печатной форме мы использовали форматную строку «#Ч15.2-». Очевидно, что и для рек­визита можно использовать такую же размерность, поэтому укажем в поле «Длина» значение 15, а в поле «Точность» — значение 2.

Можно также включить свойства «Разделять триады» и «Неотрицательный». Это сервисные свойства, и служат только для удобства работы. Если установлено свойства «Неотрицательный», в рек­визит нельзя будет ввести отрицательное число, а свойства «Разделять триады» автоматически вставляет разделители между тройками цифр целой части.

На этом можно закон­чить редактирование свойств. Но на закладке «Дополнительно» есть еще одно свойство, которое можно задействовать. По­этому перейдите к закладке «Дополнительно» и вклю­чите флажок «Имеет кнопку выбора».

Это свойство доступно только для реквизитов типа «Число» и «Да­та». Если флажок «Имеет кнопку выбора» включен, в правой части реквизита появится кнопка, нажав на которую можно будет вызвать калькулятор (или календарь), например, для выполне­ния каких-либо вычислений в процессе ввода.

Теперь можно нажать кнопку «Обновить», чтобы внесенные нами изменения нашли отражение в диалоге.

Давайте также разместим в диалоге подпись к созданному реквизи­ту. Кроме надписей в самом диалоге, можно также воспользоваться средствами создания пользовательских подсказок, которые предоставляет Конфигура­тор.

Например, на закладке «Описание» палитры свойств реквизита диалога есть поле «Подсказка», в котором можно ввести краткое описание диалога. Это описание будет появляться всякий раз, когда пользователь поместит указатель мыши над этим реквизитом и подержит его 1...2 секунды.

На этой же закладке есть большое поле для ввода текста, в которое можно ввести подробное описание реквизита. Это описание также можно получить только при использовании отчета в режиме запуска «1С:Предприятие». Для этого нужно нажать кнопку в панели инстру­ментов окна отчета, и указать реквизит диалога, по которому нужно полу­чить описание.

Наконец, можно составить описание к отчету в целом. Для редактиро­вания этого описания необходимо выделить отчет в дереве метаданных и выбрать пункт «Редактировать описание» в меню «Действия» главного меню Конфигуратора. Это описание выдается при нажатии кнопки панели инструментов окна отчета.

Итак, давайте вставим реквизит типа «Текст» в диалог. Выберите в меню «Вставить» главного меню Конфигуратора пункт «Текст» и обведите желаемое место размещения надписи, лучше всего слева от поля ввода «МаксимальнаяСумма».

Теперь отредактируйте свойства этого реквизита. Для этого в па­литре свойств закладке «Общие» в поле «Заголовок» замените слово «Текст» фразой «Выделять, если задолженность больше», в закладке «Дополнительные» установите «Положение — Прижать вправо» и включите флажок «Центр по вертикали».

Теперь можно нажать кнопу «ОК», чтобы внести изменения в диа­лог.

Редактирование печатной формы и алгорит­ма обычно выполняется параллельно. Итак, нам нужно добиться, чтобы строки, в которых задолженность больше суммы, указанной при построении отчета, как-либо выделялись, например, цветом или жирно­стью шрифта.

В алгоритме этот сделать просто: достаточно добавить еще один ус­ловный оператор, который проверял бы размер задолженности, и, в зависимости от этого, выполнял какие-либо действия.

Для вывода в отчет строки другим цветом мы создадим еще одну секцию «Строка» (естественно, с другим именем) в шаблоне печатной формы — с нужным оформлением — и будем выводить ее вместо «обычной» секции «Строка», когда задолженность поставщику больше, чем указанный нами предельный размер. Перейдите к закладке «Таблица».

Новую секцию мы можем создать в любом месте, например, под секцией «Подвал». Так как выдачей секций мы управляем из встроен­ного языка в процессе формирования отчета, в обще случае, не важно, как эти секции расположены в шаблоне печатной формы.

Однако, все-таки лучше располагать секции примерно так, как они будут выводиться: во-первых, чтобы примерно представлять себе внешний вид будущего отчета; во-вторых, просто для удобства редак­тирования. Давайте создадим новую секцию под секцией «Строка».

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

Сначала нам необходимо вставить нужное количество пустых строк между секциями. Очевидно, что потребуется 2 дополнительных стро­ки: одна — для секции, и еще одна — разделительная.

Для вставки строк необходимо выделить пустую строку (щелкнув мышью ее заголовок с номером строка) под секцией «Строка» и вы­брать пункт «Раздвинуть» из меню «Действия» главного меню Конфи­гуратора. В результате пустая строка будет вставлена над выделенной нами строкой. Для добавления еще одной строки необходимо еще раз выбрать пункт «Раздвинуть».

Теперь у нас между секциями «Строка» и «Подвал» расположено 3 пустых строки. Среднюю из них мы и используем для новой секции.

Выделите эту строку, щелкнув мышью ее заголовок, и выберите пункт «Включить в секцию». Присвойте новой секции имя, например, «СтрокаЦветная».

Теперь повторите все то, что вы уже делали для секции «Строка», и измените оформление ячеек секции: например, в закладке «Шрифт» включите флажок «Жирн» и измените цвет шрифта, например, на зе­леный. Нажмите кнопку «ОК», чтобы внести изменения в табличный документ.

Теперь отредактируем алгоритм. Нам необходимо для каждого контрагента проверять сумму задолженностии, если она превышает указанную величину, выводить цветную секцию отчета. Для редактирования алгоритма опять перейдем к закладке «Модуль». Замените строку

Таб.ВывестиСекцию.("Строка");

на строки:

Если СуммаЗадолженности > МаксимальнаяСумма Тогда

Таб.ВывестиСекцию.("СтрокаЦветная");

Иначе

Таб.ВывестиСекцию.("Строка");

КонецЕсли;

Смысл этих строк прост: оператор Если проверяет, что сумма за­долженности, записанная в переменную СуммаЗадолженности, боль­ше, чем указанная в реквизите диалога МаксимальнаяСумма, и, если это так, выдает в отчет секцию «СтрокаЦветная». В противном случае (когда сумма задолженности не превышает установленного максиму­ма), в отчет выдается секция «Строка».

Отчет готов, теперь можно посмотреть, как он ра­ботает. Запустите «1С:Предприятие», выбрав пункт «1С:Предприятие» из меню «Сервис» главного меню Конфигуратора, и ответив «Да» на вопрос о сохранении изменений. Вызовите отчет, воспользовавшись меню «Отчеты» главного меню программы. Теперь в диалоге можно задать максимальную сумму, при превы­шении которой строки в отчете будут выделены цветом.