Visual2000 · Статьи А.Колесова по "1С"

Цикл "1С:Предприятие" в PC Magazine/RE

Полезные советы по работе с "1С:Предприятием"

(от разработчиков "1С")

Авторский вариант. Статья была опубликована в журнале PC Magazine/RE № 02/06 (с.138-139).


Совет 3. Создавайте отчеты без программирования

Платформа "1С:Предприятие 8.0" включает в себя целый ряд механизмов формирования экономической и аналитической отчетности, позволяющих формировать интерактивные документы (а не просто печатные формы) в рамках тех или иных прикладных решений. Основа для создания отчетов — запросы — это один из способов получения данных, с помощью которого выполняется выборка информации из базы данных по определенным условиям, как правило в сочетании с простейшей обработкой получаемых данных: сгруппировать, отсортировать, вычислить значения и т. д.

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

Но формировать отчеты можно и без программирования — с помощью конструктора выходной формы в режиме "Конфигуратор" или с помощью консоли отчетов в режиме "1С:Предприятие". Этими средствами могут воспользоваться и администраторы системы, и опытные пользователи, не владеющие методами разработки.

Конструктор выходной формы (рис. 3-1) может быть вызван, например, из окна редактирования отчета. Он включает в себя все возможности еще одного механизма — конструктора запросов, который позволяет составить правильный текст запроса, используя только визуальные средства.

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

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

Рис. 3-1 Конструктор выходной формы

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

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

Рис. 3-2 Использование консоли отчетов

В начало статьи

Совет 4. Используйте различные возможности для управления сервером "1С:Предприятие"

Как известно, платформа "1С:Предприятие" поддерживает два основных варианта работы: файловый и клиент-серверный. В первом случае клиентское приложение взаимодействует непосредственно с базой данных. Во втором используется трехуровневая архитектура с использованием сервера приложений, через который выполняется общение клиентского ПО и СУБД.

Сервер "1С:Предприятия" реализован в архитектуре COM+ и не имеет собственного пользовательского интерфейса. Для управления им могут применяться различные средства.

Простейшие действия (запуск, остановка) можно выполнить штатными средствами Windows, например утилитой Component Services. Для управления же специфическими функциями сервера предназначена утилита администрирования информационных баз (ИБ) в варианте «клиент—сервер» — консоль сервера "1С:Предприятия", которую администратор может запустить на своей рабочей станции и подключить к любому серверу "1С:Предприятия", работающему в сети (рис. 4).

Эта консоль реализована в двух вариантах. Первый является подключаемым модулем (snap-in) штатного средства администрирования Windows — Microsoft Management Console. Его регистрация выполняется автоматически программой установки "1С:Предприятия" или вручную — например вот так:

      regsvr32 "C:/Program Files/1CV8/bin/RAdmin.dll"

Второй вариант консоли выполнен в виде внешнего программного модуля (внешней обработки) платформы "1С:Предприятия", что позволяет управлять сервером из среды прикладного решения.

С помощью консоли можно выполнять мониторинг серверов "1С:Предприятие", просмотр списка ИБ, создание и удаление ИБ, мониторинг соединений пользователей с ИБ, а также отключение пользователей от ИБ.

Рис. 4 Консоль сервера "1С:Предприятия"

Система также обеспечивает возможность программного доступа к серверу "1С:Предприятия", реализовать который можно как средствами встроенного языка "1С:Предприятия", так и из других программных систем, поддерживающих технологию COM (например, из программ на Visual Basic). Это позволяет разработчику выполнять следующие действия:

Наличие программного доступа позволяет автоматизировать работу по администрированию ИБ. Вот как, например, можно завершить работу пользователей программно на встроенном языке:

      Коннектор = Новый COMОбъект("V8.COMConnector");
      Сервер = Коннектор.ConnectServer("TestServer");
      // аутентифицироваться с административными правами в нужной базе
      Сервер.AddAuthentication("Администратор","");
      // создать объект нужной информационной базы
      ИнформационнаяБаза = Сервер.CreateInfoBaseInfo();
      ИнформационнаяБаза.Name = "Test_Base";
      // получить соединения базы
      СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза);
      // разорвать соединения клиентских приложений
      Для Каждого Соединение Из СоединенияБазы Цикл
      Сервер.Disconnect(Соединение);
      КонецЦикла;

В начало статьи