Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 и 8.0 . Выпуск 94


Информационный Канал Subscribe.Ru

Волшебство программирования на 1С:Предприятие 7.7 и 8.0
Выпуск 94 / 05.10.2005

Настройки отчетов

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

Настройки отчета обычно включают:

  • Группировки строк и столбцов (для кросс-таблиц) с учетом их порядка и иерархии.
  • Показатели
  • Дополнительные поля
  • Отборы
  • Условия сортировки
  • Другие данные (флажки, поля ввода, таблицы, списки)

Возможность сохранять/восстанавливать настройки штатными средствами платформы доступна для форм отчетов и обработок, т.е. для таких форм, у которых основной реквизит имеет тип ОтчетОбъект, ОбработкаОбъект или для внешних обработок. В свойствах формы нужно устанавливить флажок "Сохранять значения" и заполнить список "Сохраняемые значения" (отметить галочками те элементы формы, значения которых надо сохранять). При сохранении и восстановлении настроек вызываются события ПередСохранениемЗначений и ПослеВосстановленияЗначений соответственно: в них можно запрограммировать свои действия.

Сохраненные настройки отчетов хранятся в профиле пользователя (в папке C:\Documents and Settings\<имя юзера >\Application Data\1C\1Cv8), поэтому к нему нужно относиться бережно, не удалять его. Настройки отчетов привязаны к базе, поэтому при пересоздании базы они пропадают.


Чтобы настройки не пропадали и/или были глобальными (т.е. общими для всех пользователей этой базы), их можно сохранить в самой базе. Это можно сделать так:

1. Создать справочник "НастройкиОтчетов" с реквизитами:

  • ИмяОтчета - индексирование с доп. упорядочиванием
  • Комментарий
  • СохраненныеНастройки - строка неогр. длины

В каждом отчете (или лучше сделать процедуры в общем модуле):

2. В форме отчета разместить поле ввода, типа "СправочникСсылка.НастройкиОтчетов"

У этого поля ввода есть события:

Процедура НастройкаОтчетаПриИзменении(Элемент)

Если НЕ НастройкаОтчета.Пустая() Тогда

Если ЗначениеЗаполнено(НастройкаОтчета.СохраненныеНастройки) Тогда
СохраненныеНастройки = ЗначениеИзСтрокиВнутр(НастройкаОтчета.СохраненныеНастройки);
ПослеВосстановленияЗначений();
ОбновитьОтчет();
КонецЕсли;

КонецЕсли;

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


Процедура НастройкаОтчетаНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;

ФормаВыбора = Справочники.НастройкиОтчетов.ПолучитьФормуВыбора();
ФормаВыбора.ВладелецФормы = ЭлементыФормы.НастройкаОтчета;
ФормаВыбора.ИмяОтчета = ЭтотОтчет.Метаданные().Имя;
ФормаВыбора.Открыть();

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


3. Далее нужно переписать обработчик события для формы:


Процедура ПередСохранениемЗначений(Отказ)

СохраненныеНастройки = ЭтотОтчет.СформироватьСтруктуруДляСохраненияНастроек(ПоказыватьЗаголовок);

Если РольДоступна("ПолныеПрава") Тогда
Если НЕ НастройкаОтчета.Пустая() И ЗначениеЗаполнено(НастройкаОтчета.СохраненныеНастройки) Тогда
Если Вопрос("Вы действительно хотите перезаписать отчет '" + НастройкаОтчета.Наименование + "'?",РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда
Об_НастройкаОтчета = НастройкаОтчета.ПолучитьОбъект();
Об_НастройкаОтчета.СохраненныеНастройки = ЗначениеВСтрокуВнутр(СохраненныеНастройки);
Об_НастройкаОтчета.Записать();
КонецЕсли;
КонецЕсли;
КонецЕсли;

КонецПроцедуры // ПередСохранениемЗначений()

4. У справочника "НастройкиОтчета" создать форму выбора, у которой переписать обработчик события

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

Если ЗначениеЗаполнено(ИмяОтчета) Тогда
СправочникСписок.Отбор.ИмяОтчета.Установить(ИмяОтчета);
КонецЕсли;

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


Другой вариант на эту же тему рассматривается здесь:

http://itland.ru/forum/index.php?showtopic=9347


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


Смелее задавайте вопросы по 8.0 и 7.7 на форуме www.forum.mista.ru
Заходите на Волшебный форум. С нами интересно!


См. также:
1С:Предприятие 7.7: учебник, курс лекций, статьи, ссылки

Официальный сайт рассылки - www.mista.ru
Волшебный форум -
www.forum.mista.ru
Архив выпусков этой рассылки - http://www.mista.ru/subscribe

База знаний www.kb.mista.ru

С уважением,
Станислав Митичкин (Волшебник)
stasmit@mail.ru


Уважаемые программисты 1С и все, кто хочет ими стать!

Самая крупная компания-франчайзи "Бухучет и торговля" производит набор сотрудников на вакансию "Программист 1С"

Почему надо работать именно у нас?

  • В нашей компании самая продвинутая, давно отработанная система обучения
  • Оплачиваемый отпуск
  • Компенсация расходов на сотовую связь
  • Оплачивается единый проездной билет (метро и наземный транспорт)
  • Мы находимся в 5 метрах от метро "Преображенская площадь"
  • Вы будете работать в новом офисе с новой мебелью и компьютерами
  • Есть возможность частичной занятости в случае, если Вы - студент
  • Программист занимается внедрением, никаких продаж, никаких замен картриджей
  • Для опытных специалистов предоставляется жилье
  • Хорошие перспективы для профессионального и карьерного роста

Все начинающие программисты 1С проходят 3-недельный поточный курс обучения. Обязательные требования к начинающим: возраст от 21 до 35 лет, знание современных языков программирования, знание основ бухучета, образование высшее или неполное высшее (экономическое или техническое), и главное - желание работать в компании и стать программистом 1С.

Звоните менеджеру по персоналу Васильевой Наталье: 223-67-07
Резюме присылайте по электронной почте: iotkalo@1cbit.ru

Мы сделаем из Вас настоящего профессионала!!!


<< Предыдущий выпуск | Список выпусков | Следующий выпуск >>
 


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.magic1c
Архив рассылки
Отписаться
Вспомнить пароль

В избранное