25.01.2010

Доработка интерфейса отчетов

Статья

Доработка интерфейса отчетов

 

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

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

Эдвард МЕХЕДОВ, программист, главный бухгалтер ООО «Эйдос», г. Днепропетровск, e-mail: mexedov@mail.ru, тел. 8 (050) 583-81-64

 

Что мы имеем?

Сформировали мы оборотно-сальдовую ведомость. Проанализировали. Нашли ошибку, предположим, кредитовый остаток на начало периода по активному счету. Что в этом случае необходимо сделать? Правильно! Перейти на один период назад. Какие действия для этого необходимо выполнить?! Навести указатель мыши на кнопку «

Настройка» и дважды щелкнуть на ней левой кнопкой мыши. В открывшемся окне настройки необходимо указать нужный, а именно предыдущий период. Сделать это можно, указав интервал дат вручную. Можно щелкнуть на кнопке «Выбор периода» и продолжить терзать себя и компьютерную мышь, расставляя галочки и маркеры в открывшемся диалоге. Вся эта процедура (рис. 1) заканчивается нажатиями кнопки «ОК». В общем, пока выполнишь все указанные действия, вполне можно забыть, для чего все это делалось.

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

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

 

Что мы получим?

На рис. 1 показана обычная оборотно-сальдовая ведомость. Обратите внимание на серую полосу в верхней части отчета. Она содержит только кнопки «

Обновить» и «Настройка». На рис. 2 приведен модернизированный отчет. Теперь для перехода между периодами можно просто сделать двойной щелчок мышью на соответствующей кнопке. Например, кнопка со значком «<» будет переносить нас на месяц назад, кнопка со значком «>» — на месяц вперед.

Условные обозначения и назначение кнопок приведены в табл. 1.

Таблица 1

Условные обозначения и назначения кнопок

Условные обозначения

Действие кнопки

<

Переход на месяц назад

>

Переход на месяц вперед

<<<

Переход на квартал назад

>>>

Переход на квартал вперед

1кв.

Позиционироваться на 1-й квартал текущего года

2кв.

Позиционироваться на 2-й квартал текущего года

І п.г.

Позиционироваться на период 1-е полугодие

3кв.

Позиционироваться на 3-й квартал текущего года

9мес.

Позиционироваться на период 9 месяцев

4кв.

Позиционироваться на 4-й квартал текущего года

Год

Позиционироваться на интервал за текущий год

 

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

 

Доработка

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

 

О

боротно-сальдовая ведомость

Рассмотрим проведение доработки на примере отчета «

Оборотно-сальдовая ведомость». Откроем Конфигуратор и отыщем этот отчет в ветви «Отчеты» конфигурации. Для достижения необходимого результата нам нужно дополнить процедуру «ПриОткрытии» модуля отчета. Перейдем на закладку «Модуль» и отыщем в нем строку 618 с текстом «Если Обновить <> 2 Тогда» этой процедуры. Перед этой строкой (на строчку выше) добавим строки согласно листингу 1. Как всегда, добавляемые строки помечены в листинге полужирным шрифтом, существующие строки — обычным шрифтом.

 

Листинг 1

ПланСчетов = ВыбранныйПланСчетов();

Если глИспользуетсяРазделительУчета =1 Тогда

РазделительУчета = глВосстановитьЗначение(,″БазФирма″);

ПоВсемРУ = 0;

КонецЕсли;

КонецЕсли; // строка 616

 

// ==== Начало вставки Мехедов, Б&К №1-2(73-74), 2010 ====

// КВАРТАЛ НАЗАД

Если Обновить = 3 Тогда

Дата1=ДобавитьМесяц(Дата1,-3);

Дата2=КонКвартала(Дата1);

КонецЕсли;

 

// КВАРТАЛ ВПЕРЕД

Если Обновить = 4 Тогда

Дата1=ДобавитьМесяц(Дата1,3);

Дата2=КонКвартала(Дата1);

КонецЕсли;

 

// МЕСЯЦ НАЗАД

Если Обновить = 5 Тогда

Дата1=ДобавитьМесяц(Дата1,-1);

Дата2=КонМесяца(Дата1);

КонецЕсли;

 

// МЕСЯЦ ВПЕРЕД

Если Обновить = 6 Тогда

Дата1=ДобавитьМесяц(Дата1,1);

Дата2=КонМесяца(Дата1);

КонецЕсли;

 

// 1 КВАРТАЛ

Если Обновить = 11 Тогда

Дата1=НачГода(Дата1);

Дата2=КонМесяца(Дата1+89);

КонецЕсли;

 

// 2 КВАРТАЛ

Если Обновить = 12 Тогда

Дата1=НачМесяца(НачГода(Дата1)+95);

Дата2=КонМесяца(ДобавитьМесяц(Дата1,2));

КонецЕсли;

 

// 3 КВАРТАЛ

Если Обновить = 13 Тогда

Дата1=НачМесяца(НачГода(Дата1)+187);

Дата2=КонМесяца(ДобавитьМесяц(Дата1,2));

КонецЕсли;

 

// 4 КВАРТАЛ

Если Обновить = 14 Тогда

Дата1=НачМесяца(НачГода(Дата1)+278);

Дата2=КонМесяца(ДобавитьМесяц(Дата1,2));

КонецЕсли;

 

// ВЕСЬ ГОД

Если Обновить = 15 Тогда

Дата1=НачГода(Дата1);

Дата2=КонГода(Дата1);

КонецЕсли;

 

// 1 ПОЛУГОДИЕ

Если Обновить = 16 Тогда

Дата1=НачГода(Дата1);

Дата2=ДобавитьМесяц(Дата1,6)-1;

КонецЕсли;

 

// 9 МЕСЯЦЕВ

Если Обновить = 19 Тогда

Дата1=НачГода(Дата1);

Дата2=ДобавитьМесяц(Дата1,9)-1;

КонецЕсли;

//==== Конец вставки Мехедов, Б&К №1-2(73-74), 2010 ====

 

Если Обновить <> 2 Тогда // бывшая строка 618

Сформировать();

СтатусВозврата(0);

Возврат;

КонецЕсли;

 

Однако это еще не все. Теперь самое сложное. Будьте предельно внимательны! Перейдите на вкладку «

Таблица» или «Таблица_Укр», в зависимости от значения константы «Формы на украинском». Здесь необходимо разместить так называемые кнопки для перехода между периодами. На самом деле это не кнопки в обычном нашем понимании, а рисунки-объекты. Два таких объекта уже присутствуют в печатной форме отчета. Это «Обновить» и «Настройка». Давайте один из них скопируем для проведения дальнейших экспериментов над ним. В принципе можно просто создать новый объект, ничего не копируя. Для этого необходимо выбрать в меню «Таблица → Вставить рисунок → Прямоугольник» и растянуть этот объект на печатной форме. Правда, после этого новому объекту придется задать цвет фона, ширину, высоту, ровненько вписать в верхнюю строку на манер уже имеющихся кнопок «Настройка» и «Обновить». Поэтому просто скопируем кнопку «Настройка» и используем ее как образец.

Наведем указатель мыши на кнопку «

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

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

1) в поле ввода надписи вместо названия кнопки «Настройка» введем символ «>» (без кавычек);

2) в реквизите «Расшифровка» вместо кода «РасшифровкаОбновить(2)» введем код «РасшифровкаОбновить(5)».

Все остальные реквизиты на закладке «Текст

» и на всех остальных закладках окна свойств рисунка (см. рис. 4) оставляем без изменения. Новая кнопка будет выглядеть примерно так же, как исходная. Она будет отличаться надписью и выполняемым действием: при двойном щелчке мышью на ней не будет вызываться окно настройки отчета. Будет произведено то действие, которое мы описали в добавленном фрагменте кода, а именно установка периода отчета на предыдущий месяц.

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

 

Таблица 2

Реквизиты добавленных кнопок

№ п/п

Надпись

Реквизит «

Расшифровка»

1

<

РасшифровкаОбновить(5)

2

>

РасшифровкаОбновить(6)

3

<<<

РасшифровкаОбновить(3)

4

>>>

РасшифровкаОбновить(4)

5

1кв.

РасшифровкаОбновить(11)

6

2кв.

РасшифровкаОбновить(12)

7

І п. г.

РасшифровкаОбновить(16)

8

3кв.

РасшифровкаОбновить(13)

9

9мес.

РасшифровкаОбновить(19)

10

4кв.

РасшифровкаОбновить(14)

11

Год

РасшифровкаОбновить(15)

 

Важно!

Обратите внимание на содержимое поля «Расшифровка» в свойствах объектов. Именно оно и определяет поведение формы при двойном щелчке мышью на соответствующей кнопке.

Отчет «

Оборотно-сальдовая ведомость» имеет две печатные формы — на русском и на украинском языке. Изменения желательно внести в обе формы. Это сделать несложно: нужно просто скопировать вновь введенные кнопки в соседнюю таблицу.

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

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

 

остальные отчеты

Приведенные доработки не перенесутся сами в остальные отчетные формы конфигурации. Нам придется перенести их вручную. Это совсем несложно, так как основная часть работы уже сделана. Ведь все доработки — однотипны, поэтому их можно выполнить копированием.

Следует помнить, что дополнения вносятся как в печатную форму отчета, так и в его модуль. Процедура модуля, в которую внедряются дополнения, во всех отчетах носит название «

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

 

Таблица 3

Номер строки модуля отчета, перед которой необходимо вставить текст листинга 1

№ п/п

Наименование отчета

Номер строки

1

Оборотно-сальдовая ведомость

618

2

Шахматка

254

3

Оборотно-сальдовая ведомость по счету

499

4

Анализ счета

167

5

Анализ счета по датам

160

6

Анализ счета по субконто

489

7

Главная книга

259

8

Анализ субконто

377

9

Карточка субконто

344

10

Карточка счета

480

11

Обороты между субконто

672

12

Отчет по проводкам

266

13

Сводные проводки

181

14

Журнал-ордер по субконто

919

15

Расширенный анализ субконто

702

 

Важно!

Номера строк в табл. 3 даны для релиза 7.70.277. Если вы работаете с более ранним релизом конфигурации, то вам придется самостоятельно отыскать необходимое место в модуле. Не забывайте, что вставку надо делать в процедуре «ПриОткрытии» перед строкой «Если Обновить <> 2 Тогда».

Не забудьте скопировать и кнопки, точно так же, как это проделывалось выше при доработке отчета «

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

 

Тонкости обновления конфигурации

Хочу отдельно отметить, что внесенные изменения придется учитывать при следующих обновлениях конфигурации.

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

Итак, первым делом внимательно читаем прилагающийся к обновлению текстовый файл («

update») с описанием внесенных в новый релиз изменений. Убеждаемся в том, что отчеты в новом релизе не изменяются. Если некоторые отчеты претерпели изменения, записываем их названия на листок бумаги.

Сделав архивную копию рабочей базы данных, начинаем ее обновление. Открываем базу в Конфигураторе, в меню «

Конфигурация» выбираем пункт «Объединение конфигураций». В окне «Открыть файл конфигурации» выбираем файл метаданных «1Cv7.MD» нового релиза конфигурации. Программа произведет анализ изменений в структуре документов, справочников, отчетов и обработок и выведет на экран показанное на рис. 5 окно.

Важно!

Если отчеты в новом релизе не изменялись, снимите пометку с пункта «Отчеты» (см. рис. 5).

Сняв пометку с какого-либо объекта или группы объектов, вы тем самым укажете программе, что неотмеченный объект обновлять не нужно.

Убедитесь, что переключатели в окне объединения конфигураций стоят на реквизитах «

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

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

 

Выбрав программу для ведения учета, вы выбираете средство автоматизации, а не готовое решение непосредственно для вашей организации. Исключение составляют лишь программы, написанные по заказу именно для вашего предприятия или предприятия с аналогичной спецификой деятельности. Иначе говоря, покупая типовую конфигурацию, будьте уверены, что пусть и минимальные, но коррективы внести в нее придется. Это относится к любой бухгалтерской программе, как-то «1С: Бухгалтерия для Украины» или любая другая программа с типовой конфигурацией.

Не бойтесь усовершенствовать программу — ваши усилия окупятся сторицей!