Научная статья на тему 'К вопросу о повышении производительности и технологичности инфор систем на платформе «1С: Предприятие 8. 2»'

К вопросу о повышении производительности и технологичности инфор систем на платформе «1С: Предприятие 8. 2» Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
298
56
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РЕЛЯЦИОННАЯ АЛГЕБРА / РЕЛЯЦИОННО-ИЕРАРХИЧЕСКИЙ ПОДХОД / ИНТЕГРАЦИЯ ПРИЛОЖЕНИЙ / СИСТЕМА «1С: ПРЕДПРИЯТИЕ 8.2» / БУХГАЛТЕРИЯ ГОСУДАРСТВЕННОГО УЧРЕЖДЕНИЯ / ЗАРПЛАТА И КАДРЫ БЮДЖЕТНОГО УЧРЕЖДЕНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Семенов Сергей Максимович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Семенов Сергей Максимович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

About productiveness and technology Of information systems using platform “

Theoretical basis, Algorithmic methods of improving of productiveness and technology (improving of speed, Simplifying of using and supporting) of information systems using samples of developing of some programs that were embedded into the Far Eastern Federal University are considered.

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

I. ТЕХНИКА И ТЕХНОЛОГИИ

УДК 025.4.03; 002.53:004.65

С. М. Семенов1

К ВОПРОСУ О ПОВЫШЕНИИ ПРОИЗВОДИТЕЛЬНОСТИ И ТЕХНОЛОГИЧНОСТИ ИНФОРМАЦИОННЫХ СИСТЕМ НА

ПЛАТФОРМЕ «1С: ПРЕДПРИЯТИЕ 8.2»

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

Ключевые слова: реляционная алгебра, реляционно-иерархический подход, интеграция приложений, система «1С: Предприятие 8.2», бухгалтерия государственного учреждения, зарплата и кадры бюджетного учреждения.

Введение

Для автоматизации учета в бюджетных учреждениях внедряются конфигурации «1С: Бухгалтерия государственного учреждения 8» (БГУ) и «1С: Зарплата и кадры бюджетного учреждения 8» (ЗиК). Внедрение сопровождается созданием дополнительных программных средств, усовершенствованием существующих, а также разработкой технологий взаимо-

1 © Сергей Максимович Семенов, канд. техн. наук, доцент кафедры информационных систем и прикладной информатики Владивостокского университета экономики и сервиса, ул. Гоголя, 41, г Владивосток, Приморский край, 690014, Россия, E-mail: Sergey. Semenov@vvsu.ru.

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

Автоматическое заполнение договоров

Аналогом данной программы является автозаполнение шаблонов файлов в конфигурации «1С: Документооборот 8, редакция КОРП» [1], где используются следующие механизмы. Шаблоны хранятся в файлах Word. Поля, которые нужно заполнять, создаются с помощью текстовых полей. Правила автозаполнения шаблонов файлов содержат табличную часть с реквизитами «Какое поле заменить» и «На что заменить». Дополнительно к правилам нужно заполнить справочники «Виды документов» и «Шаблоны документов». Разработанная автором программа реализована в виде внешней обработки, подключенной к справочнику «Студенты» через механизм дополнительных внешних печатных форм. Другими словами, вызов обработки производится с помощью дополнительной кнопки «Печать». В конфигурацию БГУ добавлен справочник «Виды договоров для автозаполнения», который имеет структуру, показанную на рис. 1.

Виды договоров для автозап...: Абитуриент ДВ4*Ы 2011 2-х сторон. _ П X

Действия т Щ, I (^] ) Загрузить шаблон Выгрузить шаблон

Код: ||1ИШ1ИШ№И I

Наименование: Абитуриент ДВФУ 2011 2-х сторон.

Имя шаблона: Абитуриент ДВФУ 2011 2-х сторон..doc

N Т ерм для замены Источник Значение замены *

ш НомерДоговора Договоры НомерДоговора

2 Т екущаяДата Формат(Т екущаяД ата()...

3 Заказчик Договоры Контрагент

4 НаименованиеШколы СведенияО Студентах Факультет

5 Специальность СведенияО Студентах Специальность

Б ФормаО бучения СведенияО Студентах ФормаО бучения

7 СрокО бучения СведенияО Студентах СрокОбучения т

□ К Записать Закрыть

Рис. 1. Структура справочника «Виды договоров для автозаполнения»

Реквизит таблицы «Терм для замены» соответствует текстовому полю в шаблоне договора. Реквизит «Источник» содержит имя справочника или регистра сведений, из которого выбирается значение замены. Если

- 8 -

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

Формат(ТекущаяДата(), «ДФ = 'dd.MM.yyyy ««г.»«'«) 19.07.2011 г.

Формат(ТекущаяДата(),»ДФ = 'dd MMMM yyyy ««г.»«'«) 19 июля 2011 г.

СрокОбучения ««+СрокОбучения+» лет»

Квалификация вид образования (специалист, бакалавр и т.д.)

Г одоваяСуммаПлатежа Г одоваяСуммаПлатежа / 2 ГодоваяСуммаПлатежа / 12 и т.д.

ПредставлениеАдреса У достоверениеЛичности ПредставлениеАдресаПлательщика УдостоверениеЛичностиПлательщика

Формат (СсылкаДоговор.ДатаДоговора,»ДФ='dd.MM.yyyy»«г.»«'«)

ДиректорШколыРП родительный падеж

КонтрагентРП родительный падеж

ПлательщикРП родительный падеж

ДиректорШколыФИО фамилия с инициалами

КонтрагентФИО фамилия с инициалами

ПлательщикФИО фамилия с инициалами

СтавкаОплаты сумма ежемесячного платежа

ПолупансионОбучение ПолупансионПитание

Для замены полей шаблона в программе посредством внешнего соединения используется объект VBA FormFields. Вычисление формул, заданных в реквизите «Значение замены», осуществляется с помощью встроенной функции 1С Вычислить(). Именно использование этой функции позволяет получить практически любое значение для заполнения реквизита «Терм для замены». На форме обработки имеются кнопки «Загрузить шаблон» и «Выгрузить шаблон». При загрузке шаблона формируется элемент справочника «Виды договоров для автозаполнения», и исходный файл шаблона помещается в реквизит, имеющий тип «Хранилище значения». При выгрузке файл из хранилища значения записывается в файл Word.

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

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

Новизна предложенных алгоритмов заключается в разработке структуры справочника «Виды договоров для автозаполнения» и в способе вычисления значения реквизита «Терм для замены».

Унифицированная форма Т3 - штатное расписание

При внедрении конфигурации ЗиК потребовалось изменить вид макета для печати штатного расписания: подразделение и должность разместить в одной колонке (было в двух), добавить поля «№приказа/ПКГ/КУ», «Источник финансирования», изменить порядок сортировки в соответствии с полем «Порядок» (подразделения нумеруются на каждом уровне иерархии от 1 до К, где N - количество подразделений на данном уровне иерархии). Кроме того, требовалось существенно сократить время выполнения отчета. После анализа существующего отчета было принято решение разработать новый отчет.

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

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

(&КатегорияДолжности = ЗНАЧЕНИЕ)

(Справочник.КатегорииДолжностей.ПустаяСсылка) ИЛИ Категория-

Должности = &КатегорияДолжности)

Как видно, выражение с использованием логического ИЛИ равно истине, если условие не заполнено, либо КатегорияДолжности равна значению параметра. Преимущество такого способа формулировки условия заключается в том, что программа становится компактнее, нагляднее и, что особенно важно, сохраняется возможность использования конструктора запросов. Важным элементом разработанного алгоритма является

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

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

Выдача зарплаты

Выдача зарплаты через кассу и перенос зарплаты на депонент выполняются в конфигурации БГУ с помощью расходного кассового ордера и бухгалтерской операции. Расчет зарплаты выполняется в конфигурации ЗиК, где для выдачи зарплаты и переноса на депонент используется документ «Ведомость в кассу». В соответствии с основным принципом баз данных «Один факт хранится в одном месте» документ «Ведомость в кассу» не должен дублироваться в БГУ, но при выдаче зарплаты или депонировании эти действия должны отражаться в ведомости в ЗиК. Следовательно, нужны средства для отображения в БГУ ведомости, созданной в ЗиК. На рисунке 2 представлен внешний вид обработки «Выдача зарплаты» (в конфигураторе), с помощью которой кассир в БГУ работает с документом «Ведомость в кассу» так, как если бы он работал в конфигурации ЗиК. По завершении выплаты зарплаты обработка «Выдача зарплаты» создает в БГУ расходный кассовый ордер и, если было депонирование, бухгалтерскую операцию. При этом в ЗиК документ «Ведомость в кассу» проводится и становится недоступным для редактирования. Взаимодействие конфигураций БГУ и ЗиК производится через СОМ-соединение. В процессе синхронизации действий в БГУ и ЗиК дополнительно синхронизируются справочники «Сотрудники». При этом синхронизация касается только тех сотрудников, которые перечислены в ведомости на зарплату. Полная синхронизация сотрудников в двух конфигурациях, на наш взгляд, не требуется, поскольку это усложняет технологию работы. Большинство сотрудников получают деньги на банковскую карточку, и необходимости определения таких сотрудников в БГУ нет. То же самое можно сказать и о контрагентах сотрудников.

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

только для обмена данными, но и для синхронизации выполняемых действий в реальном времени (а не с помощью планов обмена).

Основная Параметры РКО Действия ▼ (?) Перенос сотрудников Г.”)

Периоде: . . Ш по: . . Ш ...

Сотрудник: ...X ТабНомер: <<ТабНомер (ТабНомер)>>

Заполнить Сортировать по ведомости Сортировать по физ. лицу

Ведомость Проведен Физ лицо Т аб номер Сумма Выплаченность...

[аЬЛ <Поле ввода> НЕЕ <Поле ввода> 1&ы1 <Поле ввода> 1аьД <Поле ввода> 1аы1 <Поле ввода> <Поле выбо...

Выплачено: <<Надпись... Задепонировано: <<Надпись7 (...

(.7.) Депонировать пустые Выплатить пустые Выплатить все Завершить выплаты Записать

Рис. 2. Обработка «Выдача зарплаты»

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

Данная программа предназначена для составления реестра на перечисление денежных сумм в банк тем подотчетникам, у которых возник перерасход. Сложность решения данной задачи заключается в том, что для регистра бухгалтерии есть несколько виртуальных таблиц, с помощью которых можно решить эту задачу. Однако использовать непосредственно виртуальную таблицу «Остатки» не получается, так как в ней нет остатков в разрезе субконто «Авансы подотчетным лицам» по счету 208. Есть еще виртуальные таблицы «Движения с субконто» и «Остатки и обороты». В последней таблице также не содержатся остатки по указанному субконто. Остатки в разрезе всех субконто можно получить через обороты по дебету и по кредиту. Эксперименты показали, что с использованием этой таблицы время выполнения отчета в 10 раз больше, чем с использованием таблицы «Движения с субконто». Следующая задача, которую потребовалось решить, это корректное составление запроса. Разработка нескольких вариантов показала, что оптимальным с точки зрения простоты и наглядности является использование системы компоновки данных с последующим получением результатов в программу с помощью типа «Г енераторМакетаКомпоновкиДанныхДляКоллекцииЗначений».

Наглядность запроса достигнута за счет того, что в схеме компоновки данных использовано объединение запросов с группировками. Аналогом в составлении запроса без использования системы компоновки дан- 12 -

Обработка Выдача зарплаты

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

Еще одна задача, связанная с перечислением средств подотчетникам, заключается в синхронизации информации из Зик и БГУ. Только в отличие от задачи выдачи зарплаты требуется перенести из ЗиК информацию о лицевых счетах сотрудников. С этой целью получение информации из ЗиК осуществляется с помощью запроса, в который передается массив данных, содержащий имена сотрудников, у которых в БГУ нет информации о лицевых счетах. Запрос и массив определяются с помощью Открытие = v8.Connect(«Srvr = Server;Ref = MyBase;Usr=auto;Pwd=password»); 3anpoc.3uK=OmKpbmue.NewObject(« Запрос»); СотрБезБанка=Открытие.NewObject(«Массив»);

Использование запроса, а не объектной модели данных для получения информации из ЗиК обусловлено тем, что информацию нужно получить из различных источников: из справочников «Сотрудники» и «ФизЛица», а также из регистра сведений «Лицевые счета работников организации».

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

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

Рис. 3. Форма обработки «Реестр по подотчетникам»

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

Проведенные исследования позволили добиться высокого быстродействия программы (в 10 раз выше, чем при использовании традиционно используемой для решения таких задач таблицы «Остатки и обороты»).

Заключение

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

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

3. Разработан способ задания условия запроса для необязательных параметров.

4. Разработан технологический механизм интеграции приложений с использованием внешнего соединения для синхронизации выполняемых действий (документов) в реальном времени (без использования планов обмена).

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

Разработанные теоретические и алгоритмические механизмы позволили в 7 - 10 раз повысить быстродействие программ, а также упростить технологию разработки, использования и сопровождения информационных систем на платформе «1С: Предприятие 8.2». Рассмотренные в качестве примера программы используются для автоматизации учета и управления в Дальневосточном федеральном университете.

1. 1С: ПРЕДПРИЯТИЕ 8. Конфигурация «Документооборот КОРП». Редакция 1.1. Описание. Москва, Фирма «1С», 2010.

2. Семенов С.М. Реляционно-иерархическая модель в базах данных о природной среде // Обработка информации и математическое моделирование в океанических исследованиях: сб. науч. тр. - Владивосток, 1989. -С. 158 - 168.

3. Семенов С.М., Убарчук И.А. Двухуровневая иерархическая система управления данными (ДИСУД) // Вестник ДВО РАН Владивосток. - 1992. - № 5.

i Надоели баннеры? Вы всегда можете отключить рекламу.