Разработка учета электронного документооборота деканата на основе бизнес-процессов

 

Введение


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

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

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

Всего несколько лет назад было возможно вернуться в компанию и продолжить работу с того места, где она была остановлена месяц или даже два назад. Сегодня все не так. Гарольд Вильсон (Harold Wilson), британский премьер-министр в 1960-е годы, как-то сказал:

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

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

МБП - это инструмент, специально разработанный, чтобы помочь в обстоятельствах, требующих масштабных изменений, обеспечить которые используемые схемы улучшения процессов не в состоянии. Это не означает, что МБП заменяет собой непрерывные улучшения, ничего подобного. Если вы провели реинжиниринг некоторого процесса, то далее потребуются методы непрерывного улучшения (continuous improvement), носящие технологический характер, которые нужно применять, дабы не проиграть в будущем.

Итак, целью работы стала автоматизация документооборота при помощи МБП и используя самые современные программные наработки, Такие как «1С: предпирятие 8», BPEL (Business-Process Execution Language) и др.


Глава 1. Предметная область и постановка задачи


.1 Принципы автоматизации учета документооборота


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

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

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


.2 Типы архитектур систем электронного документооборота


.2.1 ERP - системысистема (англ. Enterprise Resource Planning System - Система планирования ресурсов предприятия) - корпоративная информационная система (КИС), предназначенная для автоматизации учёта и управления. Как правило, ERP-системы строятся по модульному принципу, и в той или иной степени охватывают все ключевые процессы деятельности компании.

Исторически концепция ERP стала развитием более простых концепций MRP (Material Requirement Planning - Планирование материальных потребностей) и MRP II (Manufacturing Resource Planning - Планирование производственных ресурсов). Используемый в ERP-системах программный инструментарий позволяет проводить производственное планирование, моделировать поток заказов и оценивать возможность их реализации в службах и подразделениях предприятия, увязывая его со сбытом.

В основе ERP систем лежит принцип создания единого хранилища данных, содержащего всю корпоративную бизнес-информацию и обеспечивающего одновременный доступ к ней любого необходимого количества сотрудников предприятия, наделенных соответствующими полномочиями. Изменение данных производится через функции (функциональные возможности) системы. Основные функции ERP систем: ведение конструкторских и технологических спецификаций, определяющих состав производимых изделий, а также материальные ресурсы и операции, необходимые для их изготовления; формирование планов продаж и производства; планирование потребностей в материалах и комплектующих, сроков и объемов поставок для выполнения плана производства продукции; управление запасами и закупками: ведение договоров, реализация централизованных закупок, обеспечение учета и оптимизации складских и цеховых запасов; планирование производственных мощностей от укрупненного планирования до использования отдельных станков и оборудования; оперативное управление финансами, включая составление финансового плана и осуществление контроля его исполнения, финансовый и управленческий учет; управления проектами, включая планирование этапов и ресурсов, необходимых для их реализации.

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

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

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

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

Ограничения и заблуждения:

небольшие компании не могут позволить себе инвестировать достаточно денег в ERP и адекватно обучить всех сотрудников;

внедрение может оказаться очень дорогим;

иногда ERP сложно или невозможно адаптировать под документооборот и специфические бизнес-процессы компании;

система может страдать от проблемы «слабого звена» - эффективность всей системы может быть нарушена одним департаментом или партнёром;

сопротивление департаментов в предоставлении конфиденциальной информации уменьшает эффективность системы;

проблема совместимости с прежними системами.


.2.2 CRM - системы

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

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

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

Средства автоматизации (программные приложения) CRM-стратегии позволяют повысить эффективность управления взаимоотношениями, а также предоставляют всю необходимую для этого инфраструктуру.

К ним относят:

системы управления взаимодействием с клиентами (CRM-системы);

программно-аппаратные решения для Call-центров;

системы технической поддержки внешних и внутренних заказчиков (системы класса Service Desk).


.3 Реализации систем электронного документооборота


СЭД «Ефрат-Документооборот». «ЕВФРАТ-Документооборот» - комплексное решение по организации электронного документооборота на предприятии.

«ЕВФРАТ-Документооборот» позволяет автоматизировать работу с документами как в соответствии с требованиями традиционного делопроизводства, так и с современными тенденциями управления (технология workflow). Система предназначена для автоматизации документооборота в органах государственной власти, организациях малого и среднего бизнеса, промышленных предприятиях, научных и образовательных учреждениях.

Внедрение системы автоматизации документооборота и делопроизводства «ЕВФРАТ-Документооборот» обеспечивает:

систематизацию учета и хранения документов;

оперативный доступ к документам и отчетной информации;

эффективное управление процессами движения и обработки документов;

сокращение времени процедур согласования документов и принятия решений;

повышение исполнительской дисциплины;

сокращение непроизводственных затрат рабочего времени сотрудников;

минимизацию финансовых затрат на документооборот.

Система электронного документооборота и автоматизации делопроизводства «ЕВФРАТ-Документооборот» позволяет повысить эффективность деятельности организации, отдела, департамента, улучшить исполнительскую дисциплину, сэкономить время на всех этапах деятельности сотрудников, создать единое информационное и управленческое пространство на предприятии.

СЭД «Летограф». «Летограф» предлагает уникальные возможности по созданию информационной системы путем связывания и конфигурирования заранее разработанных ЛЕТОГРАФ функциональных модулей без каких-либо доработок программного кода. Внедрение «Летограф», как и внедрение любой системы, требует работы команды подготовленных специалистов. Но полученное в результате решение не только не делает заказчика заложником конкретных исполнителей работ по проекту, но и позволяет по мере необходимости наращивать функциональность системы для решения новых задач.

«Летограф» - комплексное решение, содержащее в одном продукте все необходимые возможности для решения задач:

управления документами - ECM (Enterprise Content Management)

автоматизации бизнес-процессов - BPM (Business Process Management)

интеграции корпоративных приложений - EAI (Enterprise Application Integration) организациям, стремящимся развиваться и укреплять свои позиции на рынке, система «Летограф» позволит ускорить работу с документами, увеличить контроль исполнительской дисциплины, повысить прозрачность, управляемость, а, следовательно, и стоимость бизнеса компании.

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

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

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

Поддержка различных платформ. Системы совместимы с большинством современных платформ: Windows, SuSE Linux, Red Hat Linux, IBM AIX, HP-UX, HP OpenVMS, HP Tru64 UNIX, Sun Solaris, SCO UNIX, Mac OS и другими.

Широкие возможности интеграции. Системы могут интегрироваться и обмениваться данными с установленными в компании информационными системами и приложениями (включая SAP, 1С, Oracle, IBM DB2, AutoCAD, Microsoft Office и другие). Входящая в СЭД интеграционные платформы содержат более 250 адаптеров к наиболее распространенным системам.

Недостатки подобных СЭД.

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

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


.4 «1С: Предприятие 8» как среда разработки СЭД


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

Одним из самых распространенных инструментариев для разработки электронного документооборота является система «1С: Предприятие» (финальная версия на данный момент 8.1.15).

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


Рис. 1.1 «Структура платформы 1С: Предприятие 8»


.4.1 Области применения

Гибкость платформы позволяет применять 1С:Предприятие 8 в самых разнообразных областях:

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

поддержка оперативного управления предприятием;

автоматизация организационной и хозяйственной деятельности;

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

широкие возможности для управленческого учета и построения аналитической отчетности, поддержка многовалютного учета;

решение задач планирования, бюджетирования и финансового анализа;

расчет зарплаты и управление персоналом;

другие области применения.


.4.2 Бизнес-процессы в среде «1С: Предприятие 8»

Остановимся и рассмотрим подробнее технологию, позволяющую реализовать механизм бизнес-процессов.

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

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

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

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

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

Механизм бизнес-процессов в 1С:Предприятии 8 обеспечивается следующими объектами прикладного решения:

Бизнес-процесс;

Задача.

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

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

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

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

Карта маршрута. Логика бизнес-процесса (взаимосвязь и последовательность обхода точек маршрута, условные переходы и пр.) наглядно описывается в виде карты маршрута, которая позволяет визуально описывать маршрут бизнес-процесса в виде связного графа и позволяет легко описывать алгоритмы условных переходов, и реакцию бизнес-процесса на различные события:

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

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


Рис. 1.2 «Возможности оформления бизнес-процесса»


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

Точка действия содержит информацию кто и что должен сделать на данном этапе, например:

декан - утвердить прием/перевод;

оператор - сформировать ведомость;

системный администратор - зарегистрировать нового сотрудника в сети и электронной почте.

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

Групповая и коллективная маршрутизация:

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

коллективная - только один из членов группы должен выполнить данное действие. Формируется одна задача. Пример коллективной задачи: кладовщики - выдать товар по данной накладной со склада.

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

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

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

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

Условная маршрутизация. Механизм бизнес-процессов в 1С:Предприятии 8 позволяет автоматизировать не только последовательные цепочки работ, но и осуществлять условную маршрутизацию, управляя выбором заранее предусмотренных маршрутов, на основе описанной разработчиком карты маршрута.

Условная маршрутизация обеспечивается точками маршрута двух видов:

условный переход;

выбор варианта.

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

Точка выбора варианта предоставляет возможность выбора дальнейшего маршрута из неограниченного количества вариантов:

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

Глава 2. Разработка информационной базы


Предложенная информационная база (ИБ) «Деканат» выполнена как надстройка над стандартной типовой конфигурацией «Зарплата и Кадры». Была выбрана именно эта конфигурация т.к. она удовлетворяла особенностям процесса документооборота реального деканата. Все избыточные метаданные были исключены из конфигурации на последней стадии разработки.


.1 Структура информационной базы


Структура метаданных ИБ имеет следующий вид:

Справочники.

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

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

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

Физические лица

Справочник «Физические лица» предназначен для хранения информации обо всех физических лицах, являющихся работниками университета и/или составляющих его организаций, кандидатами на работу, студентами и т.п.

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

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

Редактирование и ввод новой информации о физическом лице производится в отдельном диалоговом окне.

Студенты

Данный справочник является подчиненным для справочника «Физические Лица». Он предназначен для хранения информации о студентах факультета. Его структура:


НаименованиеТипКомментарийКодЧисло (5, 0)Код студентаФизЛицоСправочник.ФизическиеЛицаСсылка на физ. лицоИногороднийБулевоИногороднийОбщежитиеБулевоПредоставление общежитияИностранныйЯзыкПеречислениеа.ИностранныйЯзыкИзучаемый ин. яз.ОбразованиеПеречисление.ОбразованиеОбразованиеУчебноеЗаведениеСправочник.УчебныеЗаведенияНаименование учебного заведенияДатаОкончанияУчЗаведенияДатаДата окончания учебного заведенияОригиналДокументаПеречисление.ОригиналКопияОригинал документаПреподаватели

Данный справочник является подчиненным для справочника «Физические Лица». Он предназначен для хранения информации о преподавателях факультета. Его структура:


НаименованиеТипКомментарийКодЧисло (5, 0)Код студентаФизЛицоСправочник.ФизическиеЛицаСсылка на физ. лицо

Пользователи

Справочник, предназначенный для хранения информации о пользователях ИБ.

Контрагенты

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

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

Специальности

Справочник используется при вводе данных об образовании.

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


НаименованиеТипКомментарийКодЧисло (10, 0)Код студентаНаименованиеСтрока (50)Наименование специальности

Факультеты

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


НаименованиеТипКомментарийКодЧисло (10, 0)Код студентаНаименованиеСтрока (50)Наименование факультетаШифрСтрока (10)Шифр факультета

Образовательные программы

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


НаименованиеТипКомментарийКодЧисло (10, 0)Код образовательной программыНаименованиеСтрока (50)Наименование образовательной программы

Образовательные учреждения

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


НаименованиеТипКомментарийКодЧисло (10, 0)Код образовательного учрежденияНаименованиеСтрока (50)Наименование образовательного учреждения

Предметы

Классификатор предметов.


НаименованиеТипКомментарийКодЧисло (10, 0)Код предметаНаименованиеСтрока (50)Наименование предмета

Валюты

В справочнике валют с самого начала имеется две валюты: российский рубль и доллар США. По умолчанию в качестве валюты регламентированного учета (базовой валюты) в конфигурации установлен российский рубль. В качестве валюты управленческого учета установлен доллар.

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

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

Динамику изменения курса можно посмотреть открыв форму списка курсов.

С помощью стандартных клавиш сортировки и отбора можно отсортировать список курсов валют или установить период отображения истории курсов валют.

Реквизиты "Курс" и "Кратность" взаимосвязаны, смысл их использования следующий. Если кратность задана равной единице, то в поле "Курс" вводится количество рублей, соответствующее единице данной валюты (то есть, курс валюты - в привычном понимании). Если курс данной валюты по отношению к рублю очень низкий (точность составляет меньше 4 знаков дробной части), в поле "Кратность" следует указать количество единиц валюты, принятое к котированию (котировочная единица валюты), а в поле "Курс" - сумму в рублях, соответствующую этому количеству единиц валюты.

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

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

Параметры прописи валюты задаются в форме элемента валюты. Для валюты задаются параметры прописи целой и дробной части валюты.

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


НаименованиеТипКомментарийКодЧисло (10, 0)Код валютыНаименованиеСтрока (50)Наименование валютыНаименованиеПолноеСтрока (50)Полное наименование предметаПараметрыПрописиНаРусскомСтрока (Переменная)Параметры склонения валютыэлектронный документооборот деканат

Регистры сведений

Регистры сведений позволяют хранить в прикладном решении произвольные данные в разрезе нескольких измерений.

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

Измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию.

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

Ректор

Хранит сведения (ФИО) о ректорах университета в соответствии с периодами, в течение которых они занимали данную должность.

Юрисконсульт

Хранит сведения (ФИО) о юрисконсультах университета в соответствии с периодами, в течение которых они занимали данную должность.

Проректор по учебной работе

Хранит сведения (ФИО) о проректорах университета в соответствии с периодами, в течение которых они занимали данную должность.

Начальник отдела договоров

Хранит сведения (ФИО) о начальниках отдела договоров университета в соответствии с периодами, в течение которых они занимали данную должность.

Полное название

Хранит историю полных названий университета включая актуальное.

Сокращенное название

Хранит историю сокращенных названий университета включая актуальное.

Министерство

Хранит историю наименований министерства транспорта включая актуальное.

Документы

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

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

Система автоматически поддерживает режим, при котором уникальность номеров и автоматическая нумерация могут выполняться в пределах определенного периода (день, месяц, квартал, год). Например, если периодичность установлена год, то с нового года система опять начнет нумерацию указанных документов с 1.

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

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

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

Академический отпуск

Документом «Академический отпуск» регистрируется выход студента в академический отпуск. По документу можно получить печатную форму.

Выход из академотпуска

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

Зачисление

Документом «Зачисление» в ИБ «Деканат» в соответствующих справочниках регистрируется новое физическое лицо и студент. Также данный документ может инициализировать старт бизнес-процесса «Обучение». По документу можно получить печатную форму (приказ о зачислении).

Восстановление

Формирование документа «Восстановление» в ИБ «Деканат» возможно только для зарегистрированных в соответствующих справочниках физических лиц и студентов. Данный документ может инициализировать старт бизнес-процесса «Обучение». Также документ формируется в автоматическом режиме при выходе студента из академического отпуска. По документу можно получить печатную форму (приказ о восстановлении).

Перевод на курс

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

Отчисление

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

Защита диплома

Документом «Защита диплома» регистрируется факт успешной защиты студентом его дипломной работы. Также регистрация документа является одним из возможных условий интерактивного завершения бизнес-процесса «Обучение».

Экзамен

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

Зачет

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

Оперативный план

Документом «Оперативный план» формируется оперативный план.

Государственный экзамен

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

Практика

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

Курсовая работа

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

Отчеты

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

Учебный план

Выводит учебный план на указанный в форме период.

Сдача сессии

Формирует отчет, отображающий процесс сдачи сессии студентами. Формируется за указанный период.

Академическая справка

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

Приложение к диплому

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

Справка для ГАК

В соответствии с макетом формирует справку для государственной аттестационной комиссии для указанного студента, по форме, соответствующей принятым стандартам.

Диплом

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

ИБ «Деканат» также содержит соответствующие константы, обработки, задачи, бизнес-процессы и журналы документов (Рис. 2.2).


Рис. 2.1 «Дерево метаданных ИБ»


.2 Печатные формы


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


.3 Объекты и методы механизма бизнес-процессов


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


.3.1 Адресация

Необходимо выделить роли - диспетчер БД, зав. кафедры, декан. Роли записываются в справочник в виде предопределенных данных.

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


.3.2 Формирование задачи

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


.3.3 Проектирование бизнес-процесса

Создать первый бизнес-процесс и соединить его с только что созданной задачей. Затем приступить к рисованию карты маршрута (рис. 2.3):


Рис. 2.3 «Общая карта БП «Обучение» ИБ «Деканат»»


Оформляем карту.


.3.4 Формы

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


.3.5 Скрипты и сценарии

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

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


.4 Реализация механизма бизнес-процессов


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


.4.1 Старт бизнес-процесса, зачисление, восстановление

Перед стартом бизнес процесса предлагается в соответствующей форме однозначно определить его объект (студент или группа студентов), заполнив соответствующее поле формы. Также, при необходимости, следует определить ведущую задачу и перечень существующих на момент старта бизнес-процесса документов (в том случае если для данного объекта ранее уже был создан БП). Запись бизнес-процесса инициализирует процедуру формирования в памяти новых документов (ели таковые не были определены заранее) и переходит на следующую точку БП (после старта). Точка «ВыборВариантаСтарта» отвечает за условный переход. Переход осуществляется оператором БД ответом на заданный вопрос («Зачислить нового студента?»). В случае положительного ответа («Да») бизнес-процесс совершает переход по соответствующей ветке до точки БП «ДокументЗачисление». В данной точке формируется документ «Зачисление» для объекта бизнес-процесса. Форма открывается в автоматическом режиме, однако ввод данных осуществляется оператором вручную. В случае ответа «Нет» на вопрос о восстановлении, БП переходит к точке «ДокументВосстановление» тем самым аналогично создавая документ «Восстановление».

Какой бы вариант не был выбран ранее, БП переходит в следующей точке маршрута - «Сессия».


.4.2 Сдача сессии, вложенный бизнес-процесс

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

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


Рис. 2.4 «Вложенный бизнес-процесс «Сессия»»

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

При инициализации ВБП положение флага «СессияСдана» устанавливается как «Ложь» и в случае успешно введения всего перечня необходимых документов (т.е. сдачи сессии) изменяется на «Истина».


.4.3 Перевод на следующий курс

Перевод на следующий курс осуществляется соответствующим документом («ДокументПереводНаКурс») при условии успешного завершения ВБП «Сессия» (положение флага «СессияСдана» равно «Истина») и сведений о том, что текущий курс не последний в образовательной программе объекта бизнес-процесса. После формирования приказа о переводе карта маршрута уходит в цикл возвращаясь к точке ВБП «Сессия».


.4.4 Процедура отчисления

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

.4.5 Процедура выдачи диплома

Переход к точке маршрута «Диплом» осуществляется при тех же условиях что и для перевода на курс с той лишь разницей, что по сведениям БП текущий курс обучения - последний. При переходе к данной точке проверяется необходимость сдачи студентом государственного междисциплинарного экзамена (т.е. в данном случае формируется ведомость ГЭК). Если ГЭК есть в программе, и он успешно сдан, то формируется печатный бланк диплома (отчет «Диплом»). Тем же отчетом в случае необходимости можно сформировать академическую справку.


.4.6 Завершение, прерывание процесса

Бизнес процесс интерактивно завершается в двух случаях:

Студент успешно выполнил образовательную программу, получен диплом;

Студен приказом декана отчислен по определенной причине (указанной в приказе), в случае необходимости получена академическая справка;

Также запущенный бизнес-процесс можно принудительно прервать формированием документа «АкадемическаяОтпуск». В этом случае бизнес-процесс завершается вне зависимости от каких-либо внутренних факторов, а студент считается находящимся в академическом отпуске. По возвращении из отпуска будем сформирован документ «Восстановление» с особыми параметрами (с указанием о том, что студент не был отчислен, а прибывал в академическом отпуске) и стартован новый бизнес-процесс.

Глава 3. Оценка масштабируемости


.1 Оценка масштабируемости платформы


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

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

Метод группового учета аргументов (МГУА) - семейство индуктивных алгоритмов для математического моделирования мультипараметрических данных. Метод основан на рекурсивном селективном отборе моделей, на основе которых строятся более сложные модели. Точность моделирования на каждом следующем шаге рекурсии увеличивается за счет усложнения модели. За параметрический данные возьмем тип операционной системы сервера VPN (OS), количество узлов сети VPN (С), длину используемого ключа шифрования (KEY, b), максимальный размер блока передаваемых данных (MTU, b). Результатом же определим собранные статистические данные по пропускной способности сети (S, mbps) и нагрузке на процессор сервера VPN (L, %). Сокращенный вариант выборки, представляющий собой совокупность кортежей (S, L, OS, KEY, C, MTU) приведен в таблице 1.


Таблица 3.1

SLOSKEYCMTU44,3818112810150051,8923112820150057,6938112830150043,5319151210150021,1325151220150052,6139151230150012,8114212810150023,0819212820150068,0640212830150012,6114251210150023,1122251220150063,78432512301500

В таблице 1: S - в kbps (кбит/с) - общая нагрузка на канал сети (сумма общего входящего и исходящего трафика сервера VPN), рассчитанная как среднее из N=30 испытаний, проведенных при фиксации набора P=12 прочих независимых параметров сети:


- в % - общая нагрузка на центральный процессор сервера VPN,

- условное обозначение типа операционной системы сервера VPN (1- MS Windows Server, 2 - Linux)- в bit (бит) - длина ключа, установленного для используемого протокола шифрования. В работе использована группа протоколов AES-xxx-CBC (где ххх - длина ключа) с длиной ключа 128, 256 и 512 бит. Обозначения: 1 - AES-128-CBC, 2 - AES-512-CBC;- количество узлов, одновременно осуществляющих обмен данными с сервером VPN;- в байтах - максимальный размера блока, который может быть передан на канальном уровне коммуникационного протокола. Опытным путем был выявлен оптимальный размер блока, его изменения приводят к общему ухудшению показателей работы сети вне зависимости от иных параметров.

Сбор статистических данных проводился приложениями Perfomance Monitor v5.0 и кроссплатформенным пакетом iPerf v2.0 (среда Sun JVM 6u10). Данные собраны на основе запросов к сформированной базе данных под управлением СУБД MS SQL 2005 SP2, объем выборки составил 90-100 Мб. Анализ полученных данных проведен пакетами NeuroShell 2 и Statistica 6.0. Для построения графиков использован OOp Calc 3.0.

Всего было проведено А=N*P=360 опытов и на их основе построен сводный график (Рис. 3.1), наглядно представляющий общую зависимость пропускной способности и загрузки CPU сервера от параметров сети.


Рис. 3.1 «Производительность системы в различных ОС»


Из собранных данных и представленного графика можно сделать несколько предварительных общих выводов:

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

Для ОС семейства MS WinServer характерны достаточно большие нагрузки на аппаратные ресурсы сервера, но зависимость нагрузки от количества узлов сети достаточно мала;

Для современных ЭВМ длина ключа шифрования крайне незначительно сказывается на общей производительности системы.


.1.1 МГУА

Для формирования математической и функции отклика используем МГУА.

С целью автоматизации выбора оптимальных параметров в защищённом канале корпоративной сети, необходимо построить функцию отклика, которая будет идентифицировать пропускную способность канала в зависимости от воздействующих факторов: операционной системы, длины ключа, количества узлов корпоративной сети. Математическим аппаратом, который позволяет решить данную задачу, является Метод Группового Учёта Аргументов (Group Method of Data Handling). Он применяется в самых различных областях для анализа данных и отыскания знаний, прогнозирования и моделирования систем, оптимизации и распознавания образов. Индуктивные алгоритмы МГУА дают уникальную возможность автоматически находить взаимозависимости в данных, выбрать оптимальную структуру модели или сети и увеличить точность существующих алгоритмов.

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

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

Другим достоинством МГУА является то, что он гарантирует помехоустойчивость получаемых моделей. Чем больше степень неточности данных, характеризуемая отношением мощности помехи к мощности точных данных, тем проще модель оптимальной сложности, поэтому МГУА при увеличении помех выбирает все более узкие границы области моделирования и все более простые структуры моделей. Таким образом, при самоорганизации модели на ЭВМ выбирается структура, ближайшая к оптимальной для каждого уровня отношения помеха-сигнал.

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

Для подготовки элементов выборки к использованию в МГУА необходимо произвести ее цензурирование, т.е. приведение к отрезку [0,1].

Для нормальной случайной величины 99,7% значений находятся внутри интервала


,


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

После цензурирования выборки все ее значения приводятся к отрезку [0,1] по формуле


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

Для восстановления зависимости используется полиномиальный итерационный алгоритм МГУА, в результате работы которого должна быть получена зависимость



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

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

Одна из основных трудностей при применении методов перекрестного обоснования, частным случаем которых является МГУА, связана с разбиением выборки на два подмножества - рабочую и экзаменационную части. Поскольку модель в значительной степени определяется рабочей частью выборки, необходимо, чтобы объем рабочей части был больше, и чтобы и в рабочую, и в экзаменационную часть попадали наблюдения со всего интервала множества значений, поэтому перед запуском алгоритма МГУА полезно упорядочить наблюдения в выборке по возрастанию отклика, а, затем, выбирать данные для экзаменационной части через некоторое одинаковое число наблюдений.

Рассмотрим подробнее процедуру МГУА.

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


,


где - число элементов в экзаменационной части выборки.

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


.


Число F передаваемых от шага к шагу наилучших моделей называется свободой выбора метода.

При формировании базиса r-го шага учитывается тот факт, что на r-м шаге сложность модели не должна превышать r. Параллельно с процессом построения базиса идет построение набора коэффициентов для этого базиса итерационным МНК по рабочей части выборки и вычисление критерия регулярности по экзаменационной части. В памяти ЭВМ в каждый момент времени сохраняются только F лучших моделей. При исчерпании множества базисов r-го шага осуществляется переход к следующему (r+1)-му шагу.

Процесс останавливается при выполнении следующего неравенства:



и за результат принимается лучшая модель (r-1) шага.

Теперь рассмотрим подробнее процедуру подбора коэффициентов модели по заданной структуре модели итерационным МНК.

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



с точностью до заданного e, чтобы минимизировать взвешенную сумму квадратов отклонений:



где Np - число наблюдений в рабочей части выборки.

Первоначально весовые коэффициенты наблюдений предполагаются одинаковыми и равными 1, с этими весами строится система коэффициентов ak, k=1,2,...,m модели в виде решения системы линейных уравнений:


Затем выбираются веса таким образом, чтобы вес i-го наблюдения зависел от отношения i-го остатка в предыдущей итерации к общей мере остатков в этой итерации:



и по этим весам строится новая система коэффициентов модели и т.д. Процесс останавливается, когда достигается заданная степень точности e, т.е. когда выполнится неравенство



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

Итак, проведем математический анализ данных, используя МГУА и NeuroShell. Исходную выборку разбиваем на две подвыборки As и Bs. Подвыборка As используется для определения коэффициентов модели, а подвыборка Bs - для определения качества (среднеквадратического отклонения). При этом соотношение количества данных в обеих выборках составляет 80%/20%.

Далее выбираем общий вид перебираемых моделей, так называемые опорные функции. Например, полином Колмогорова-Габора:




Сложность модели в таком случае определяется количеством коэффициентов.

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

=-0.42-0.14*X1-8.8E-002*X2+0.4*X3+0.36*X32+6.7E-002*X1*X2+0.26*X1*X3-2.6E-002*X2*X3, (*)


где Х1 = OS, Х2 = KEY, Х3 = C, Y = S.

Степень соответствия полученной модели можно наблюдать на графике (Рис. 3.2)


Рис. 3.2 «График модели и реальных статистических данных»

Среди всех моделей выбираем наилучшую, используя приложение NeuroShell. Качество моделей определяется среднеквадратическим отклонением ошибки и корреляцией Y и исходных данных (Рис. 3.3).


Рис. 3.3 «Отклонение модели от реальных данных»


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


.1.2 Многомерный регрессионный анализ

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

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

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

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

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

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

Выделяют два существенных подхода к решению проблемы сокращения количества исходных переменных:

отсеивание менее существенных факторов в процессе построения регрессионной модели;

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

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

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

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

Как было сказано выше, основой многошагового регрессионного анализа является построение уравнения регрессии. Рассмотрим более подробно его систему и основные понятия.

В общем виде многомерная линейная регрессионная модель зависимости y от объясняющих переменных , ,…, имеет вид:


.


Для оценки неизвестных параметров взята случайная выборка объема n из (k+1)-мерной случайной величины (y, ,,…,).

В матричной форме модель имеет вид:


,

, , , ?=


вектор-столбец фактических значений зависимой переменной размерности n;

матрица значений объясняющих переменных размерности n*(k+1);

вектор-столбец неизвестных параметров, подлежащих оценке, размерности (k+1);

вектор-столбец случайных ошибок размерности n с математическим ожиданием ME=0 и ковариационной матрицей соответственно, при этом -единичная матрица размерности (nxn).

Оценки неизвестных параметров находятся методом наименьших квадратов, минимизируя скалярную сумму квадратов по компонентам вектора ?.

Далее подставив выражение


в ,


получаем скалярную сумму квадратов



Условием обращения полученной суммы в минимум является система нормальных уравнений:


, (j=0,1,2,…,k).


В результате дифференцирования получается:

.


При замене вектора неизвестных параметров ? на оценки, полученные методом наименьших квадратов, получаем следующее выражение: .

Далее умножив обе части уравнения слева на матрицу , получим


Так как , тогда .


Полученные оценки вектора b являются не смещенными и эффективными.

Ковариационная матрица вектора b имеет вид:


,


где - остаточная дисперсия.

Элементы главной диагонали этой матрицы представляют собой дисперсии вектора оценок b. Остальные элементы являются значениями коэффициентов ковариации:


,


где , .

Таким образом, оценка - это линейная функция от зависимой переменной. Она имеет нормальное распределение с математическим ожиданием и дисперсией .

Несмещенная оценка остаточной дисперсии определяется по формуле


,


где n - объем выборочной совокупности; k - число объясняющих переменных.

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


,


где - сумма квадратов отклонений (от нуля), обусловленная регрессией;

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

Для проверки гипотезы используется величина


,


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

В случае значимости уравнения регрессии проверяется значимость отдельных коэффициентов регрессии. Для проверки нулевой гипотезы используется величина , которая имеет F-распределение Фишера-Снедекора с числом степеней свободы и ; - соответствующий элемент главной диагонали ковариационной матрицы.

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


.2 Оценка масштабируемости ИБ


Тестирование проводилось на ОС Windows Server 2003 и СУБД Ms SQLserver 2005, т.к. 1С: Предприятие 8 оптимизировано для работы с данными продуктами. Использовалось специализированное программное обеспечение для тестирования: 1С:Корпоративный инструментальный пакет и TPC-1C-GILV.


.2.1 Тест-пакет «1С: Корпоративный Инструментальный Пакет»

С: Корпоративный инструментальный пакет предназначен для повышения производительности, масштабируемости и надежности информационных систем на платформе 1С:Предприятие 8 за счет:

обнаружения и автоматического анализа возможных технических проблем на любых стадиях внедрения (в том числе на стадии проектирования);

получения объективной информации о производительности системы;

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

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


.2.2 Постановка задачи

Основные задачи, решаемые при помощи Корпоративного инструментального пакета:


проведение многопользовательских нагрузочных испытаний без участия реальных пользователей:

оценка применимости системы в заданных условиях;

оценка масштабируемости системы;

выбор оборудования;

получение объективных (числовых) показателей производительности системы во время ее нагрузочных испытаний или рабочей эксплуатации;

сбор и хранение информации о динамике производительности системы во времени;

поиск и анализ «узких мест» и оптимизация кода системы:

сбор полной информации обо всех проблемах производительности, имеющихся в многопользовательской системе:

ранжирование проблем по степени их влияния на производительность системы в целом;

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

Исследуемая информационная база - это прикладная система на платформе 1С:Предприятие 8, в которой необходимо провести анализ производительности, а так же поиск возможных проблем и узких мест с целью дальнейшей оптимизации.

Нагрузка в исследуемой базе может создаваться Тест-центром (при помощи сценариев тестирования) либо реальными пользователями системы.

Эксперт, при помощи Тест-центра и «Центра управления производительностью» осуществляет сбор показателей производительности системы. На основании полученных значений он оценивает текущую работоспособность системы и наличие в ней проблем производительности.

Если обнаружены проблемы производительности, то эксперт при помощи ЦУП собирает дополнительную (аналитическую) информацию об «узких местах» системы. На основании этой информации и рекомендаций, данных в руководстве по использованию "Корпоративного инструментального паркета", эксперт может произвести оптимизацию системы, изменив код конфигурации и/или структуру метаданных.


.2.3 Тест-центр

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


3.2.4 Центр управления производительностью

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

С помощью тест-центра проводилась нагрузка на сервер 1с:предприятия с 10 виртуальными пользователями, статистика собиралась с помощью Центр управления производительностью.

Результаты:Server 2003 + Ms SQLserver 2005, по оси абсцисс отмеряется относительная нагрузка на систему сервера 1С, а по оси ординат - количество одновременно установленных соединений (клиентов).


Рис. 3.5 «Производительность ИБ при различной нагрузке»


Исходя из полученных статистических данных (Приложение 1) и основанного на них графика (Рис. 3.5) видно, что время отклика ИБ напрямую зависит от количества одновременно взаимодействующих с ней клиентов. Тестовая выборка демонстрирует возможность благоприятной работы для 7-12 одновременно подключенных клиентов. При превышении условного лимита в 20 соединений шанс возникновения длительных простоев и отказов в работе ИБ превышает допустимые нормы.


Заключение


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

Оценка масштабируемости информационной базы показала довольно интересные результаты. С одной стороны это лучшие показатели производительности в среде MS WinServer, с другой - полная обратная зависимость производительности ИБ от количества одновременно установленных соединений.


Библиографический список


1.Бутов А.С., Гаскаров Д.В., Егоров А.Н., Крупенина Н.В. Транспортные системы: моделирование и управление. / Под общ. ред. проф. Бутова А.С. - СПб.: Судостроение, 2001. - 552 с.

.Юдицкий С.А., Магергут В.З. Логическое управление дискретными процессами: модели, анализ, синтез. - М.: Машиностроение, 1987. - 176 с.

.Хрусталева Е.Ю. Разработка сложных отчетов в 1С:Предприятии 8. Система компоновки данных;

.Габец А.П., Гончаров Д.И. 1С:Предприятие 8.1. Простые примеры разработки;

.Бояркин В.А., Филатов А.И. 1С:Предприятие 8. Конвертация данных: обмен данными между прикладными решениями;

.Максим Радченко. 1С:Предприятие 8.1. Практическое пособие разработчика. Примеры и типовые приемы;

.Андрей Габец, Дмитрий Гончаров, Дмитрий Козырев, Дмитрий Кухлевский, Максим Радченко. Профессиональная разработка в системе 1С:Предприятие 8;

.Грянина Е.А., Харитонов С.А. Секреты профессиональной работы с "1С:Зарплата и Управление Персоналом 8". Введение в конфигурацию.


Приложение 1


Листинг модуля ИБ

////////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ СОБЫТИЙ

// Обработчик события ПриОткрытии формы.

//

Процедура ПриОткрытии()

Макет = Справочники.КлассификаторСпециальностейПоОбразованию.ПолучитьМакет("КлассификаторСпециальностейПоОбразованию");

Макет.Параметры.Расшифровка = Истина; // чтобы работала расшифровка

ТабличныйДокумент = ЭлементыФормы.ПолеТабличногоДокумента;

ТабличныйДокумент.Очистить();

ТабличныйДокумент.Вывести(Макет);

ТабличныйДокумент.ФиксацияСверху = 3;

ТабличныйДокумент.ОтображатьЗаголовки = Ложь;

ТабличныйДокумент.ОтображатьСетку = Ложь;

ТабличныйДокумент.ТолькоПросмотр = Истина;

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

// Обработчик события ОбработкаРасшифровки элемента ПолеТабличногоДокумента.

//

Процедура ПолеТабличногоДокументаОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

// Получение значений полей выбранной строки.

ТабличныйДокумент = ЭлементыФормы.ПолеТабличногоДокумента;

ТекущаяОбласть = ТабличныйДокумент.ТекущаяОбласть;

ОбластьКод = ТабличныйДокумент.Области.Код;

ОбластьНаименование = ТабличныйДокумент.Области.Наименование;

Если ТекущаяОбласть.Низ = ТекущаяОбласть.Верх Тогда

Код = ТабличныйДокумент.Область(ТекущаяОбласть.Верх, ОбластьКод. Лево, ТекущаяОбласть.Низ, ОбластьКод. Право).Текст;

Наименование = ТабличныйДокумент.Область(ТекущаяОбласть.Верх, ОбластьНаименование.Лево, ТекущаяОбласть.Низ, ОбластьНаименование.Право).Текст;

// Проверка наличия выбранного элемента.

Ссылка = Справочники.КлассификаторСпециальностейПоОбразованию.НайтиПоНаименованию(Наименование);

Если НЕ Ссылка.Пустая() Тогда

Вопрос = "В справочнике ""Классификатор специальностей по образованию"" уже существует элемент с наименованием """ + Наименование + """! Открыть существующий?";

Ответ = Вопрос(Вопрос, РежимДиалогаВопрос.ДаНетОтмена,, КодВозвратаДиалога.Отмена,);

Если Ответ = КодВозвратаДиалога.Да Тогда

Ссылка.ПолучитьФорму(, ВладелецФормы,).Открыть();

Возврат;

ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда

Возврат;

КонецЕсли;

КонецЕсли;

// Создание нового элемента справочника.

ФормаНовогоЭлемента = Справочники.КлассификаторСпециальностейПоОбразованию.ПолучитьФормуНовогоЭлемента(, ВладелецФормы,);

ФормаНовогоЭлемента.Код = Код;

ФормаНовогоЭлемента.Наименование = Наименование;

ФормаНовогоЭлемента.Открыть();

Иначе

Форма = ПолучитьОбщуюФорму("ФормаПодбораИзКлассификатора", ЭтаФорма);

Если Форма.Открыта() Тогда

Форма.СписокВыбора.Очистить();

Иначе

СтруктураКолонок = Новый Структура();

СтруктураКолонок.Вставить("Код", Новый Структура("Заголовок, Ширина", "Код", 5));

СтруктураКолонок.Вставить("Наименование", Новый Структура("Заголовок, Ширина", "Наименование"));

СтруктураКолонок.Вставить("Видимость", Новый Структура("Заголовок, Ширина", ""));

Форма.ТипСправочника = "КлассификаторСпециальностейПоОбразованию";

Форма.НастроитьФорму(СтруктураКолонок);

КонецЕсли;

СписокВыбора = Форма.СписокВыбора;

Для ТекущаяСтрока = ТекущаяОбласть.Верх по ТекущаяОбласть.Низ Цикл

КодЧисловой = ТабличныйДокумент.Область(ТекущаяСтрока, ОбластьКод. Лево, ТекущаяСтрока, ОбластьКод. Право).Текст;

Наименование = ТабличныйДокумент.Область(ТекущаяСтрока, ОбластьНаименование.Лево, ТекущаяСтрока, ОбластьНаименование.Право).Текст;

ЕстьРасшифрока = (ТабличныйДокумент.Область(ТекущаяСтрока, ОбластьНаименование.Лево, ТекущаяСтрока, ОбластьНаименование.Право).Расшифровка <> Неопределено);

ЭтоЧисло = Истина;

Попытка

КодКакЧисло = Число(КодЧисловой);

Исключение

ЭтоЧисло = Ложь;

КонецПопытки;

ЕСли ЭтоЧисло И ЕстьРасшифрока Тогда

СтрокаПодбора = СписокВыбора.Добавить();

СтрокаПодбора.Код = КодЧисловой;

СтрокаПодбора.Наименование = СтрПолучитьСтроку(Наименование, 1);

СтрокаПодбора.Видимость = Справочники.КлассификаторСпециальностейПоОбразованию.НайтиПоКоду(КодЧисловой).Пустая();

СтрокаПодбора.Переносить = СтрокаПодбора.Видимость;

КонецЕсли;

КонецЦикла;

Форма.Открыть();

КонецЕсли;

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


Модуль печатной формы

// Функция возвращает ближайшую дату начала периода планирования

//

// Параметры

//Периодичность (Перечисления.Периодичность)- периодичность планирования по сценарию.

//ДатаВПериоде (Дата)- произвольная дата

//

// Возвращаемое значение:

//ДатаНачалаПериода- ближайшая дата начала периода планирования

//

Функция ДатаНачалаПериода(ДатаВПериоде,Периодичность) Экспорт

Если НЕ ТипЗнч(ДатаВПериоде)=Тип("Дата") Тогда

Возврат '00010101';

КонецЕсли;

Если Периодичность=Перечисления.Периодичность.День Тогда

Возврат НачалоДня(ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Неделя Тогда

Возврат НачалоНедели (ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Месяц Тогда

Возврат НачалоМесяца (ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Квартал Тогда

Возврат НачалоКвартала (ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Год Тогда

Возврат НачалоГода (ДатаВПериоде);

Иначе

Возврат НачалоДня(ДатаВПериоде);

КонецЕсли;

КонецФункции // ДатаНачалаПериода()

// Функция возвращает ближайшую дату окончания периода планирования

//

// Параметры

//Периодичность (Перечисления.Периодичность)- периодичность планирования по сценарию.

//ДатаВПериоде (Дата)- произвольная дата

//

// Возвращаемое значение:

//ДатаКонцаПериода- ближайшая дата окончания периода планирования

//

Функция ДатаКонцаПериода(ДатаВПериоде,Периодичность) Экспорт

Если Периодичность=Перечисления.Периодичность.День Тогда

Возврат КонецДня(ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Неделя Тогда

Возврат КонецНедели (ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Месяц Тогда

Возврат КонецМесяца (ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Квартал Тогда

Возврат КонецКвартала (ДатаВПериоде);

ИначеЕсли Периодичность=Перечисления.Периодичность.Год Тогда

Возврат КонецГода (ДатаВПериоде);

Иначе

Возврат КонецДня(ДатаВПериоде);

КонецЕсли;

КонецФункции // ДатаКонцаПериода()

// Функция добавляет интервал к дате

//

// Параметры:

//Периодичность (Перечисления.Периодичность)- пнриодичность планирования по сценарию.

//ДатаВПериоде (Дата)- произвольная дата

//Смещение (число)- определяет направление и количество периодов, в котором сдвигается дата

//

// Возвращаемое значение:

//Дата, отстоящая от исходной на заданное количество периодов

//

Функция ДобавитьИнтервал(ДатаПериода,Периодичность,Смещение) Экспорт

Если Периодичность = Перечисления.Периодичность.День Тогда

НоваяДатаПериода = ДатаПериода + Смещение*24*3600;

ИначеЕсли Периодичность = Перечисления.Периодичность.Неделя Тогда

НоваяДатаПериода = ДатаПериода + Смещение*7*24*3600;

ИначеЕсли Периодичность = Перечисления.Периодичность.Месяц Тогда

НоваяДатаПериода = ДобавитьМесяц(ДатаПериода, Смещение);

ИначеЕсли Периодичность = Перечисления.Периодичность.Квартал Тогда

НоваяДатаПериода = ДобавитьМесяц(ДатаПериода, Смещение*3);

ИначеЕсли Периодичность = Перечисления.Периодичность.Год Тогда

НоваяДатаПериода = ДобавитьМесяц(ДатаПериода, Смещение*12);

Иначе

НоваяДатаПериода=НачалоДня(ДатаПериода) + Смещение*24*3600;

КонецЕсли;

Возврат НоваяДатаПериода;

КонецФункции // ДобавитьИнтервал()

// Возвращает число дней в переданном периоде

//

// Параметры

//Периодичность- Перечисление.Периодичность элемент перечисления,

// для которого вычисляется количество дней

//

// Возвращаемое значение:

//ЧислоДнейВПериоде (число)- число дней в переданном периоде

//

Функция ЧислоДнейВПериоде(Периодичность) Экспорт

Если Периодичность=Перечисления.Периодичность.День Тогда

ЧислоДнейВПериоде=1;

ИначеЕсли Периодичность=Перечисления.Периодичность.Неделя Тогда

ЧислоДнейВПериоде=7;

ИначеЕсли Периодичность=Перечисления.Периодичность.Месяц Тогда

ЧислоДнейВПериоде=30;

ИначеЕсли Периодичность=Перечисления.Периодичность.Квартал Тогда

ЧислоДнейВПериоде=90;

ИначеЕсли Периодичность=Перечисления.Периодичность.Год Тогда

ЧислоДнейВПериоде=365;

Иначе

ЧислоДнейВПериоде=0;

КонецЕсли;

Возврат ЧислоДнейВПериоде;

КонецФункции // ЧислоДнейВПериоде()

// Возвращает текст фрагмента запроса с выборками по стандартным периодам

//

// Параметры

//Периодичность(строка)- периодичность выборки данных запроса

// Период(строка)- имя измерения, в котором хранится период данных

//

// Возвращаемое значение:

//ТекстЗапросаПоПериодам- текст фрагмента запроса

//

Функция СформироватьТекстЗапросаПоПериодам(Периодичность,Период) Экспорт

СписокПериодов=Новый СписокЗначений;

СписокПериодов.Добавить("День");

СписокПериодов.Добавить("Неделя");

СписокПериодов.Добавить("Месяц");

СписокПериодов.Добавить("Квартал");

СписокПериодов.Добавить("Год");

ТекстЗапросаПоПериодам="";

НачальныйИндекс=СписокПериодов.Индекс(СписокПериодов.НайтиПоЗначению(Периодичность));

Для Сч=НачальныйИндекс По СписокПериодов.Количество()-1 Цикл

ТекущаяПериодичность=СписокПериодов.Получить(Сч).Значение;

ТекстЗапросаПоПериодам=ТекстЗапросаПоПериодам+"

|НачалоПериода("+Период+", "+ТекущаяПериодичность+") КАК Период"+ТекущаяПериодичность+",";

КонецЦикла;

Возврат ТекстЗапросаПоПериодам;

КонецФункции // СформироватьТекстЗапросаПоПериодам()

// Возвращает строку, описывающую период, определяемый переданными

// датой и периодичностью.

//

// Параметры

//ДатаВПериоде:Дата- дата из периода

//Периодичность: Строка- строка, определяющая периодичность

//

// Возвращаемое значение:

//СтрокаПериод: строка- представление периода для вывода в отчетах

//

Функция ПолучитьПериодСтрокой(ДатаВПериоде, Периодичность) Экспорт

Если Периодичность = "Год" Тогда

ФорматДаты = "ДФ='гггг ""г.""'";

ИначеЕсли Периодичность = "Квартал" Тогда

ФорматДаты = "ДФ='к"" квартал"" гггг ""г.""'";

ИначеЕсли Периодичность = "Месяц" Тогда

ФорматДаты = "ДФ='ММММ гггг ""г.""'";

ИначеЕсли Периодичность = "Неделя" Тогда

ФорматДаты = "ДФ='""Неделя (""дд.ММ.гггг'";

ИначеЕсли Периодичность = "День" Тогда

ФорматДаты = "ДФ='дд.ММ.гггг ""г.""'";

Иначе

ФорматДаты = "";

КонецЕсли;

СтрокаПериод = "" + Формат(ДатаВПериоде, ФорматДаты);

Если Периодичность = "Неделя" И ТипЗнч(ДатаВПериоде) = Тип("Дата") Тогда

СтрокаПериод = "" + НеделяГода(ДатаВПериоде) + "-ая " + СтрокаПериод + Формат(КонецНедели(ДатаВПериоде), "ДФ='"" - ""дд.ММ.гггг)'");

КонецЕсли;

Возврат СтрокаПериод;

КонецФункции // ПолучитьПериодСтрокой()

// Предназначена для реализации "произвольного" ввода даты-месяца

// подбирает по переданному тексту строку-представление даты или список таких строк

// в переданный параметр ДатаПоТексту возвращает подобранную по тексту дату

Функция ПериодПодобратьПоТексту(Текст, Периодичность, ДатаПоТексту = Неопределено) ЭКспорт

СписокВозврата = Новый СписокЗначений;

ТекущаяДата= ОбщегоНазначения.ПолучитьРабочуюДату();

ТекущийГод= Год(ТекущаяДата);

ТекущийКвартал= Цел(Месяц(ТекущаяДата) / 4) + 1;

ТекущийМесяц= Месяц(ТекущаяДата);

ТекущаяНеделя= НеделяГода(ТекущаяДата);

ТекущийДень= День(ТекущаяДата);

НачалоГода= НачалоГода(ТекущаяДата);

НачалоМесяца= НачалоМесяца(ТекущаяДата);

КонецГода= КонецГода(ТекущаяДата);

Если ПустаяСтрока(Текст) Тогда

Возврат СписокВозврата;

КонецЕсли;

Если Найти(Текст, ".") <> 0 Тогда

Подстроки = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Текст, ".");

ИспользуемыйРазделитель = ".";

ИначеЕсли Найти(Текст, ",") <> 0 Тогда

Подстроки = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Текст, ",");

ИспользуемыйРазделитель = ",";

ИначеЕсли Найти(Текст, "-") <> 0 Тогда

Подстроки = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Текст, "-");

ИспользуемыйРазделитель = "-";

ИначеЕсли Найти(Текст, "/") <> 0 Тогда

Подстроки = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Текст, "/");

ИспользуемыйРазделитель = "/";

ИначеЕсли Найти(Текст, ") <> 0 Тогда

Подстроки = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Текст, ");

ИспользуемыйРазделитель = ";

Иначе

Подстроки = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Текст, " ");

ИспользуемыйРазделитель = " ";

КонецЕсли;

Если Периодичность = Перечисления.Периодичность.День Тогда

КонецПериода = День(КонецМесяца(ТекущаяДата));

ИначеЕсли Периодичность = Перечисления.Периодичность.Неделя Тогда

КонецПериода = НеделяГода(КонецГода);

ИначеЕсли Периодичность = Перечисления.Периодичность.Месяц Тогда

КонецПериода = 12;

ИначеЕсли Периодичность = Перечисления.Периодичность.Квартал Тогда

КонецПериода = 4;

КонецЕсли;

Если Подстроки.Количество() = 1 И Периодичность <> Перечисления.Периодичность.Год Тогда

// единственное слово - пытаемся получить период

Если ОбщегоНазначения.ТолькоЦифрыВСтроке(Текст) Тогда

ПериодЧислом = Число(Текст);

Если ПериодЧислом >= 1 И ПериодЧислом <= КонецПериода Тогда

Если Периодичность = Перечисления.Периодичность.День Тогда

ДатаПоТексту = ДобавитьИнтервал(НачалоМесяца, Периодичность, ПериодЧислом - 1);

Иначе

ДатаПоТексту = ДобавитьИнтервал(НачалоГода, Периодичность, ПериодЧислом - 1);

КонецЕсли;

Если Периодичность = Перечисления.Периодичность.День Тогда

Если СтрДлина(Текст) = 1 Тогда

ФорматированнаяДата= Формат(ДатаПоТексту, "ДФ=d/MM/yyyy");

Иначе

ФорматированнаяДата= Формат(ДатаПоТексту, "ДФ=dd/MM/yyyy");

КонецЕсли;

ИначеЕсли Периодичность = Перечисления.Периодичность.Неделя Тогда

ФорматированнаяДата = Текст + Формат(ДатаПоТексту, "ДФ=/yyyy");


ИначеЕсли Периодичность = Перечисления.Периодичность.Квартал Тогда

ФорматированнаяДата = Текст + Формат(ДатаПоТексту, "ДФ=/yyyy");

ИначеЕсли Периодичность = Перечисления.Периодичность.Месяц Тогда

Если СтрДлина(Текст) = 1 Тогда

ФорматированнаяДата= Формат(ДатаПоТексту, "ДФ=M/yyyy");

Иначе

ФорматированнаяДата= Формат(ДатаПоТексту, "ДФ=MM/yyyy");

КонецЕсли;

Иначе // Год

ФорматированнаяДата = Текст;

КонецЕсли;

СписокВозврата.Добавить(ФорматированнаяДата);

КонецЕсли;

Иначе

Если Периодичность = Перечисления.Периодичность.Месяц Тогда

СписокМесяцев = СписокМесяцевПоСтроке(Текст);

Для Каждого Месяц Из СписокМесяцев Цикл

ДатаПоТексту = Дата(ТекущийГод, Месяц, 1);

СписокВозврата.Добавить(Формат(ДатаПоТексту, "ДФ='ММММ гггг ""г""'"));

КонецЦикла;

КонецЕсли;

КонецЕсли;

Иначе

Если Периодичность = Перечисления.Периодичность.День Тогда

Если Подстроки.Количество() >= 2 И Не ПустаяСтрока(Подстроки[1]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[1]) Тогда

Месяц= Число(Подстроки[1]);

Если Месяц >= 1 И Месяц <= КонецПериода Тогда

ФорматДляМесяца= Прав("MM", СтрДлина(Подстроки[1]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Если ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[1]) Тогда

Месяц= ТекущийМесяц;

ФорматДляМесяца= "MM";

Иначе

СписокМесяцев = СписокМесяцевПоСтроке(Подстроки[1]);

Если СписокМесяцев.Количество() = 1 Тогда

Месяц= СписокМесяцев[0];

ФорматДляМесяца= "MMMM";

КонецЕсли;

КонецЕсли;

КонецЕсли;

Если Подстроки.Количество() >= 3 И Не ПустаяСтрока(Подстроки[2]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[2]) Тогда

Год= Число(Лев(Формат(ТекущийГод, "ЧГ="), 4-СтрДлина(Подстроки[2])) + Подстроки[2]);

Если Год >= 1900 И Год < 3000 Тогда

ФорматДляГода= Прав("yyyy", СтрДлина(Подстроки[2]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Год= ТекущийГод;

ФорматДляГода= "yyyy";

КонецЕсли;

Если Подстроки.Количество() >= 1 И Не ПустаяСтрока(Подстроки[0]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[0]) Тогда

День= Число(Подстроки[0]);

Если День >= 1 И Месяц <> Неопределено И День <= День(КонецМесяца(Дата(Год, Месяц, 1))) Тогда

ФорматДляДня= Прав("dd", СтрДлина(Подстроки[0]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Возврат СписокВозврата;

КонецЕсли;

ДатаПоТексту = Дата(Год, Месяц, День);

Если Подстроки.Количество() < 3 ИЛИ ПустаяСтрока(Подстроки[2]) Тогда

ФорматированнаяДата= Формат(ДатаПоТексту, "ДФ='" + ФорматДляДня + ИспользуемыйРазделитель + ФорматДляМесяца + ИспользуемыйРазделитель + ФорматДляГода + "'");

Иначе

ФорматированнаяДата= "";

КонецЕсли;

ИначеЕсли Периодичность = Перечисления.Периодичность.Неделя Тогда

Если Подстроки.Количество() >= 2 И Не ПустаяСтрока(Подстроки[1]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[1]) Тогда

Год= Число(Лев(Формат(ТекущийГод, "ЧГ="), 4-СтрДлина(Подстроки[1])) + Подстроки[1]);

Если Год >= 1900 И Год < 3000 Тогда

ФорматДляГода= Прав("yyyy", СтрДлина(Подстроки[1]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Год= ТекущийГод;

ФорматДляГода= "yyyy";

КонецЕсли;

Если Подстроки.Количество() >= 1 И Не ПустаяСтрока(Подстроки[0]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[0]) Тогда

Неделя= Число(Подстроки[0]) - 1;

Если Неделя < 1 ИЛИ Неделя > НеделяГода(Дата(Год, 12, 31)) Тогда

Возврат СписокВозврата;

КонецЕсли;

Иначе

Возврат СписокВозврата;

КонецЕсли;

ДатаПоТексту = ДобавитьИнтервал(Дата(Год, 1, 1), Периодичность, Неделя);

Если Подстроки.Количество() < 2 ИЛИ ПустаяСтрока(Подстроки[1]) Тогда

ФорматированнаяДата= Подстроки[0] + ИспользуемыйРазделитель + Формат(ДатаПоТексту, "ДФ='" + ФорматДляГода + "'");

Иначе

ФорматированнаяДата= "";

КонецЕсли;

ИначеЕсли Периодичность = Перечисления.Периодичность.Месяц Тогда

Если Подстроки.Количество() >= 1 И Не ПустаяСтрока(Подстроки[0]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[0]) Тогда

Месяц= Число(Подстроки[0]);

Если Месяц >= 1 И Месяц <= КонецПериода Тогда

ФорматДляМесяца= Прав("MM", СтрДлина(Подстроки[0]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Возврат СписокВозврата;

КонецЕсли;

Если Подстроки.Количество() >= 2 И Не ПустаяСтрока(Подстроки[1]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[1]) Тогда

Год= Число(Лев(Формат(ТекущийГод, "ЧГ="), 4-СтрДлина(Подстроки[1])) + Подстроки[1]);

Если Год >= 1900 И Год < 3000 Тогда

ФорматДляГода= Прав("yyyy", СтрДлина(Подстроки[1]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Год= ТекущийГод;

ФорматДляГода= "yyyy";

КонецЕсли;

ДатаПоТексту = Дата(Год, Месяц, 1);

Если Подстроки.Количество() < 2 ИЛИ ПустаяСтрока(Подстроки[1]) Тогда

ФорматированнаяДата= Формат(ДатаПоТексту, "ДФ='" + ФорматДляМесяца + ИспользуемыйРазделитель + ФорматДляГода + "'");

Иначе

ФорматированнаяДата= "";

КонецЕсли;

ИначеЕсли Периодичность = Перечисления.Периодичность.Квартал Тогда

Если Подстроки.Количество() >= 1 И Не ПустаяСтрока(Подстроки[0]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[0]) Тогда

Квартал= (Число(Подстроки[0]));

Если Квартал < 1 ИЛИ Квартал > КонецПериода Тогда

Возврат СписокВозврата;

КонецЕсли;

Иначе

Возврат СписокВозврата;

КонецЕсли;

Если Подстроки.Количество() >= 2 И Не ПустаяСтрока(Подстроки[1]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[1]) Тогда

Год= Число(Лев(Формат(ТекущийГод, "ЧГ="), 4-СтрДлина(Подстроки[1])) + Подстроки[1]);

Если Год >= 1900 И Год < 3000 Тогда

ФорматДляГода= Прав("yyyy", СтрДлина(Подстроки[1]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Год= ТекущийГод;

ФорматДляГода= "yyyy";

КонецЕсли;

ДатаПоТексту = Дата(Год, (Квартал - 1) * 3 + 1, 1);

Если Подстроки.Количество() < 2 ИЛИ ПустаяСтрока(Подстроки[1]) Тогда

ФорматированнаяДата= Подстроки[0] + ИспользуемыйРазделитель + Формат(ДатаПоТексту, "ДФ='" + ФорматДляГода + "'");

Иначе

ФорматированнаяДата= "";

КонецЕсли;

ИначеЕсли Периодичность = Перечисления.Периодичность.Год Тогда

Если Подстроки.Количество() >= 1 И Не ПустаяСтрока(Подстроки[0]) И ОбщегоНазначения.ТолькоЦифрыВСтроке(Подстроки[0]) Тогда

Год= Число(Лев(Формат(ТекущийГод, "ЧГ="), 4-СтрДлина(Подстроки[0])) + Подстроки[0]);

Если Год >= 1900 И Год < 3000 Тогда

ФорматДляГода= Прав("yyyy", СтрДлина(Подстроки[0]));

Иначе

Возврат СписокВозврата;

КонецЕсли;

Иначе

Возврат СписокВозврата;

КонецЕсли;

ДатаПоТексту = Дата(Год, 1, 1);

Если Подстроки.Количество() < 2 ИЛИ ПустаяСтрока(Подстроки[1]) Тогда

ФорматированнаяДата = Подстроки[0] + " год";

Иначе

ФорматированнаяДата= "";

КонецЕсли;

КонецЕсли;

СписокВозврата.Добавить(ФорматированнаяДата);

КонецЕсли;

Возврат СписокВозврата;

КонецФункции

// подбирает массив номеров месяцев, соответствующих переданной строке

// например, для строки "ма" это будут 3 и 5, для "а" - 4 и 8

// используется в ПодобратьДатуПоТексту

//

Функция СписокМесяцевПоСтроке(Текст)

СписокМесяцев = Новый СписокЗначений;

Месяцы = Новый Соответствие;

МесяцыВозврата = Новый Массив;

Для Счетчик = 1 По 12 Цикл

Представление = Формат(Дата(2000, Счетчик, 1), "ДФ='ММММ'");

СписокМесяцев.Добавить(Счетчик, Представление);

ПроцедурыУправленияПерсоналом.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Представление, 2, Представление);

СписокМесяцев.Добавить(Счетчик, Представление);

Представление = Формат(Дата(2000, Счетчик, 1), "ДФ='МММ'");

СписокМесяцев.Добавить(Счетчик, Представление);

КонецЦикла;

Для Каждого ЭлементСписка Из СписокМесяцев Цикл

Если ВРег(Текст) = ВРег(Лев(ЭлементСписка.Представление, СтрДлина(Текст))) Тогда

Месяцы[ЭлементСписка.Значение] = 0;

КонецЕсли;

КонецЦикла;

Для Каждого Элемент Из Месяцы Цикл

МесяцыВозврата.Добавить(Элемент.Ключ);

КонецЦикла;

Возврат МесяцыВозврата;

КонецФункции

Процедура ПериодАвтоПодборТекста(Текст, ТекстАвтоПодбора, Периодичность, СтандартнаяОбработка) Экспорт

СтандартнаяОбработка = Ложь;

Список = ПериодПодобратьПоТексту(Текст, Периодичность);

Если Список.Количество() = 1 Тогда

ТекстАвтоПодбора = Список[0].Значение;

КонецЕсли;

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

Процедура ПериодОкончаниеВводаТекста(Текст, Значение, Периодичность, СтандартнаяОбработка, ДатаПоТексту = Неопределено) Экспорт

СтандартнаяОбработка = Ложь;

Список = ПериодПодобратьПоТексту(Текст, Периодичность, ДатаПоТексту);

Если Список.Количество() = 1 Тогда

Значение = Список[0].Значение;

Иначе

Значение = Список;

КонецЕсли;

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

#Если Клиент Тогда

// Процедура обрабатывает событие начала выбора из списка в поле периода

// Процедура исполняется только на клиенте

//

Процедура ПериодНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка, Форма, ДатаВПериоде, Периодичность, НачальноеЗначение = Неопределено) Экспорт

СтандартнаяОбработка = Ложь;

Если НачальноеЗначение = Неопределено Тогда

НачальноеЗначение = ДатаВПериоде;

КонецЕсли;

СписокВыбора = Новый СписокЗначений;

НачалоТекущегоГода = НачалоГода(НачальноеЗначение);

НачалоПрошлогоГода = НачалоГода(НачалоТекущегоГода - 1);

СписокВыбора.Добавить(НачалоПрошлогоГода, (Формат(НачалоПрошлогоГода, "ДФ='yyyy'") + "..."));

НачалоМесяцаЗаполнения = НачалоТекущегоГода;

ЭлементПоУмолчанию = Неопределено;

Пока Год(НачальноеЗначение) = Год(НачалоМесяцаЗаполнения) Цикл

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

Если НачальноеЗначение = НачалоМесяцаЗаполнения Тогда

ЭлементПоУмолчанию = ДобавленныйЭлемент;

КонецЕсли;

НачалоМесяцаЗаполнения = ДобавитьИнтервал(НачалоМесяцаЗаполнения, Периодичность, 1);

КонецЦикла;

НачалоСледующегоГода = КонецГода(НачалоТекущегоГода) + 1;

СписокВыбора.Добавить(НачалоСледующегоГода, (Формат(НачалоСледующегоГода, "ДФ='yyyy'") + "..."));

ВыбранныйЭлемент = Форма.ВыбратьИзСписка(СписокВыбора, Элемент, ЭлементПоУмолчанию);

Если ВыбранныйЭлемент = Неопределено Тогда

Возврат;

ИначеЕсли Год(ВыбранныйЭлемент.Значение) <> Год(НачальноеЗначение) Тогда

ПериодНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка, Форма, ДатаВПериоде, Периодичность, ВыбранныйЭлемент.Значение);

Возврат;

КонецЕсли;

ДатаВПериоде = ВыбранныйЭлемент.Значение;

Элемент.Значение = ПолучитьПериодСтрокой(ДатаВПериоде, ОбщегоНазначения.ПолучитьИмяЭлементаПеречисленияПоЗначению(Периодичность));

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

#КонецЕсли


Глобальный модуль ИБ

Перем АдресРесурсовОбозревателя Экспорт; // В переменной содержится значение

// адреса ресурса данной конфигурации

Перем глОбщиеЗначения Экспорт;

//Функция глПредставлениеФИО(Значение) Экспорт;

Функция глПредставлениеФИО(Значение) Экспорт

проб = " ";

Сзнач = СокрЛП(Значение);

Дл = СтрДлина(Сзнач);

поз1 = Найти(Сзнач,проб);

Фам = Лев(Сзнач,поз1-1);

Сзнач = СокрЛП(Прав(Сзнач,Дл-поз1));

Имя = Лев(Сзнач,1)+". ";

Дл2 = СтрДлина(Сзнач);

поз2 = Найти(Сзнач,проб);

Сзнач = СокрЛП(Прав(Сзнач,Дл2-поз2));

Отч = Лев(Сзнач,1)+". ";

ФИО = Имя+Отч+Фам;

Возврат ФИО;

КонецФункции

Процедура ПередНачаломРаботыСистемы(Отказ)

УправлениеПользователями.ПроверитьВозможностьРаботыПользователя(Отказ);

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

Процедура ПриНачалеРаботыСистемы()

ВыполнитьОбновлениеИнформационнойБазы();

ЗавершениеРаботыПользователей.УстановитьКонтрольРежимаЗавершенияРаботыПользователей();

Если ПравоДоступа("Использование", Метаданные.Обработки.МенеджерКонтактов)

И УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "АвтооткрытиеЭлектроннойПочтыПриЗапускеПрограммы") = Истина Тогда

Обработки.МенеджерКонтактов.ПолучитьФорму().Открыть();

КонецЕсли;

Если ПравоДоступа("Использование", Метаданные.Обработки.НаборПерсонала)

И УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "АвтооткрытиеНабораПриЗапускеПрограммы") = Истина Тогда

Обработки.НаборПерсонала.ПолучитьФорму().Открыть();

КонецЕсли;

ПроверятьПриЗапуске = ВосстановитьЗначение("ПроверкаНаличияОбновленияПроверятьПриЗапуске");

ПроверятьПриЗапуске = ?(ТипЗнч(ПроверятьПриЗапуске) = Тип("Неопределено"), Ложь, ПроверятьПриЗапуске);

Если ПроверятьПриЗапуске Тогда

Обозреватель = Обработки.Обозреватель.Создать();

Форма = Обозреватель.ПолучитьФорму("ПроверкаНаличияОбновления");

Если Обозреватель.Проверить(Форма.ЭлементыФормы) Тогда

ПоказПриПоявленииНовойВерсии = ВосстановитьЗначение("ПроверкаНаличияОбновленияПоказПриПоявленииНовойВерсии");

ПоказПриПоявленииНовойВерсии = ?(ТипЗнч(ПоказПриПоявленииНовойВерсии)=Тип("Неопределено"),Ложь,ПоказПриПоявленииНовойВерсии);

ВерсияДистрибутива = ВосстановитьЗначение("ПроверкаНаличияОбновленияПоследняяВерсия");

Если ПоказПриПоявленииНовойВерсии Тогда

Если ВерсияДистрибутива <> Форма.ЭлементыФормы.ВерсияДистрибутива.Значение Тогда

Форма.Открыть();

КонецЕсли;

Иначе

Форма.Открыть();

КонецЕсли;

КонецЕсли;

КонецЕсли;

ПроверитьПодключениеОбработчикаОжидания();

ПолучитьВнешниеКомпонентыПриНеобходимости();

// Подключение компоненты для склонения ФИО

Попытка

// Загружаем внешнюю компоненту

ЗагрузитьВнешнююКомпоненту("NameDecl.dll");

глКомпонентаСклоненияФИО = Новый("AddIn.NameDeclension");

Исключение

// Не удалось выполнить операции с внешней компонентой

ОбщегоНазначения.СообщитьОбОшибке("Ошибка загрузки внешней компоненты для склонения ФИО! Функции склонения будут недоступны!");

КонецПопытки;

ОткрытьТекущиеЗадачиПользователя = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОткрыватьПриЗапускеСписокТекущихЗадачПользователя")

И ПравоДоступа("Использование", Метаданные.Обработки.ТекущиеЗадачи);

Если ОткрытьТекущиеЗадачиПользователя Тогда

Обработки.ТекущиеЗадачи.ПолучитьФорму().Открыть();

КонецЕсли;

// Календарь бухгалтера. Регламентированная отчетность.

ПроверитьНапоминанияКалендарьБухгалтераСобытия();

// Начнем проверку динамического обновления конфигурации

НачатьПроверкуДинамическогоОбновленияИБ();

ЭтоФайловаяИБ = ПроцедурыОбменаДанными.ОпределитьЭтаИнформационнаяБазаФайловая();

Если ЭтоФайловаяИБ Тогда


ПользовательДляВыполненияРеглЗаданий = Константы.ПользовательДляВыполненияРегламентныхЗаданийВФайловомВарианте.Получить();

Если глЗначениеПеременной("глТекущийПользователь") = ПользовательДляВыполненияРеглЗаданий Тогда

// с интервалом секунд вызываем процедуру работы с регламентными заданиями

ПоддержкаРегламентныхЗаданиеДляФайловойВерсии();

ИнтервалДляОпроса = Константы.ИнтервалДляОпросаРегламентныхЗаданийВФайловомВарианте.Получить();

Если ИнтервалДляОпроса = Неопределено

ИЛИ ИнтервалДляОпроса = 0 Тогда

ИнтервалДляОпроса = 30;

КонецЕсли;

ПодключитьОбработчикОжидания("ПоддержкаРегламентныхЗаданиеДляФайловойВерсии", ИнтервалДляОпроса);

КонецЕсли;

КонецЕсли;

// автообмен данными

Если глЗначениеПеременной("глОбработкаАвтоОбменДанными") <> Неопределено Тогда

// подключим обработчик обменов данными

ПодключитьОбработчикОжидания("ПроверкаОбменаДанными", глЗначениеПеременной("глКоличествоСекундОпросаОбмена"));

КонецЕсли;

// Открытие дополнительной информации

Форма = Обработки.ДополнительнаяИнформация.ПолучитьФорму("ФормаРабочийСтол");

Форма.Открыть();

КонецПроцедуры // ПриНачалеРаботыСистемы()

// Процедура осуществляет проверку на необходимость обмена данными с заданным интервалом

Процедура ПроверкаОбменаДанными() Экспорт

Если глЗначениеПеременной("глОбработкаАвтоОбменДанными") = Неопределено Тогда

Возврат;

КонецЕсли;

ОтключитьОбработчикОжидания("ПроверкаОбменаДанными");

// проводим обмен данными

глЗначениеПеременной("глОбработкаАвтоОбменДанными").ПровестиОбменДанными();

ПодключитьОбработчикОжидания("ПроверкаОбменаДанными", глЗначениеПеременной("глКоличествоСекундОпросаОбмена"));

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

// процедура служит для поддержки работы регламентных заданий в файловой версии

Процедура ПоддержкаРегламентныхЗаданиеДляФайловойВерсии() Экспорт

ВыполнитьОбработкуЗаданий();

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

// Процедура проверяет и при необходимости подключает обработчик ожидания

// на запуск процедуры ПроверитьНапоминания()

//

// Параметры:

// Нет.

//

Процедура ПроверитьПодключениеОбработчикаОжидания() Экспорт

ИнтервалПроверкиНапоминанийВСекундах = Константы.ИнтервалПроверкиНапоминанийВСекундах.Получить();

Если глЗначениеПеременной("глТекущийПользователь") <> Неопределено

И ТипЗнч(глЗначениеПеременной("глТекущийПользователь")) = Тип("СправочникСсылка.Пользователи")

И НЕ глЗначениеПеременной("глТекущийПользователь").Пустая()

И УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ИспользоватьНапоминания")

И ИнтервалПроверкиНапоминанийВСекундах > 0 Тогда

ПодключитьОбработчикОжидания("ПроверитьНапоминания", ИнтервалПроверкиНапоминанийВСекундах);

УправлениеКонтактами.ПроверитьНапоминанияПользователя(глЗначениеПеременной("глТекущийПользователь"));

Иначе

ОтключитьОбработчикОжидания("ПроверитьНапоминания");

КонецЕсли;

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

// ПроверитьНапоминанияПользователяКалендарьБухгалтераСобытия

//

Процедура ПроверитьНапоминанияКалендарьБухгалтераСобытия() Экспорт

РегламентированнаяОтчетность.ПроверитьНапоминанияПользователяКалендарьБухгалтераСобытия(глЗначениеПеременной("глТекущийПользователь"));

КонецПроцедуры // ПроверитьНапоминанияПользователяКалендарьБухгалтераСобытия

// Процедура проверяет, есть ли необходимость выполнять обновление информационной базы.

// Если необходимо - выполняется обновление.

// Если обновление не удалось выполнить - предлагается завершить работу системы.

//

// Параметры:

// Нет.

//

Процедура ВыполнитьОбновлениеИнформационнойБазы() Экспорт

// Проверка необходимости обновления информационной базы.

Если НЕ ПустаяСтрока(Метаданные.Версия)

И Константы.НомерВерсииКонфигурации.Получить() <> Метаданные.Версия Тогда

Предупреждение("Изменился номер версии конфигурации. Будет выполнено обновление информационной базы.");

Иначе

Возврат;

КонецЕсли;

// Проверка наличия прав для обновления информационной базы.

Если НЕ ПравоДоступа("МонопольныйРежим", Метаданные)

ИЛИ НЕ ПравоДоступа("Использование", Метаданные.Обработки.ОбновлениеИнформационнойБазы)

ИЛИ НЕ ПравоДоступа("Просмотр", Метаданные.Обработки.ОбновлениеИнформационнойБазы) Тогда

Предупреждение("Недостаточно прав для выполнения обновления. Работа системы будет завершена.");

ЗавершитьРаботуСистемы();

Возврат;

КонецЕсли;

// Установка монопольного режима для обновления информационной базы.

Попытка

УстановитьМонопольныйРежим(Истина);

Исключение

Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);

Предупреждение("Не удалось установить монопольный режим. Работа системы будет завершена.");

ЗавершитьРаботуСистемы();

Возврат;

КонецПопытки;

// Обновление информационной базы.

Обработки.ОбновлениеИнформационнойБазы.Создать().ВыполнитьОбновление();

// Откючение монопольного режима.

УстановитьМонопольныйРежим(Ложь);

// Проверка выполнения обновления информационной базы.

Если Константы.НомерВерсииКонфигурации.Получить() <> Метаданные.Версия Тогда

Текст = "Не выполнено обновление информационной базы! Завершить работу системы?";

Ответ = Вопрос(Текст, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да,);

Если Ответ = КодВозвратаДиалога.Да Тогда

ЗавершитьРаботуСистемы();

КонецЕсли;

КонецЕсли;

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

// Процедура подключает внешние компоненты, которые поставляются с конфигурацией.

//

Процедура ПолучитьВнешниеКомпонентыПриНеобходимости()

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

|ВнешниеКомпоненты.ИмяФайла,

|ВнешниеКомпоненты.ДатаИзмененияФайла

|ИЗ

|РегистрСведений.ВнешниеКомпоненты КАК ВнешниеКомпоненты";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Файл = Новый Файл(КаталогПрограммы()+ Выборка.ИмяФайла);

Если Не Файл.Существует() Или Не Файл.ПолучитьВремяИзменения() = Выборка.ДатаИзмененияФайла Тогда

НаборЗаписей = РегистрыСведений.ВнешниеКомпоненты.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.ИмяФайла.Установить(Выборка.ИмяФайла);

НаборЗаписей.Прочитать();

Попытка

НаборЗаписей[0].ХранилищеФайла.Получить().Записать(КаталогПрограммы()+ Выборка.ИмяФайла);

Файл = Новый Файл(КаталогПрограммы()+ Выборка.ИмяФайла);

Файл.УстановитьВремяИзменения(Выборка.ДатаИзмененияФайла);

Исключение

КонецПопытки;

КонецЕсли;

КонецЦикла;

КонецПроцедуры // ПолучитьВнешниеКомпонентыПриНеобходимости()

// Функция возвращает значение экспортных переменных модуля приложенийа

//

// Параметры

// Имя - строка, содержит имя переменной целиком

//

// Возвращаемое значение:

// значение соответствующей экспортной переменной

Функция глЗначениеПеременной(Имя) Экспорт

Возврат ОбщегоНазначения.ПолучитьЗначениеПеременной(Имя, глОбщиеЗначения);

КонецФункции

// Процедура установки значения экспортных переменных модуля приложения

//

// Параметры

// Имя - строка, содержит имя переменной целиком

// Значение - значение переменной

//

Процедура глЗначениеПеременнойУстановить(Имя, Значение, ОбновлятьВоВсехКэшах = Ложь) Экспорт

ОбщегоНазначения.УстановитьЗначениеПеременной(Имя, глОбщиеЗначения, Значение, ОбновлятьВоВсехКэшах);

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

// функция вызова формы редактирования настройки файла обновления конфигурации

Процедура ОткрытьФормуРедактированияНастройкиФайлаОбновления() Экспорт

Если НЕ ПравоДоступа("Чтение", Метаданные.Константы.НастройкаФайлаОбновленияКонфигурации) Тогда

Предупреждение("Нет прав на чтение данных константы ""Настройка файла обновления конфигурации""", 30, "Настройка файла обновления конфигурации");

Возврат;

КонецЕсли;

ФормаРедактирования = ПолучитьОбщуюФорму("НастройкаФайлаОбновленияКонфигурации");

ФормаРедактирования.СтруктураПараметров = ПроцедурыОбменаДанными.ПолучитьНастройкиДляФайлаОбновленияКонфигурации();

ФормаРедактирования.Открыть();

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

Процедура ПередЗавершениемРаботыСистемы(Отказ)

Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ЗапрашиватьПодтверждениеПриЗакрытии") Тогда

Ответ = Вопрос("Завершить работу с программой?", РежимДиалогаВопрос.ДаНет);

Отказ = (Ответ = КодВозвратаДиалога.Нет);

КонецЕсли;

Если НЕ Отказ Тогда

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

ПроцедурыОбменаДанными.ВыполнитьОбменПриЗавершенииРаботыПрограммы(глЗначениеПеременной("глОбработкаАвтоОбменДанными"));

КонецЕсли;

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

Процедура ПриЗавершенииРаботыСистемы()

// Показ финальной дополнительной информации

Форма = Обработки.ДополнительнаяИнформация.Создать();

Форма.ВыполнитьДействие();

//

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

АдресРесурсовОбозревателя = "HRM"; // Не допускается изменять значение данной переменной


Приложение 2


win/linKeyколS<->Cмодельотклонение1128145,949,6439-3,74391128145,549,6439-4,14391128143,6149,6439-6,03391128145,949,6439-3,74391128136,649,6439-13,04391128147,349,6439-2,34391128146,149,6439-3,5439112814949,6439-0,64391128139,949,6439-9,74391128139,849,6439-9,84391128146,349,6439-3,34391128146,349,6439-3,34391128128,6549,6439-20,99391128146,849,6439-2,84391128146,749,6439-2,94391128148,449,6439-1,24391128145,349,6439-4,34391128148,349,6439-1,34391128141,849,6439-7,84391128141,7849,6439-7,86391128145,649,6439-4,04391128147,249,6439-2,44391128138,449,6439-11,24391128145,649,6439-4,04391128145,749,6439-3,94391128135,149,6439-14,54391128144,749,6439-4,94391128142,9649,6439-6,68391128147,949,6439-1,74391128158,449,64398,7560961128252,9741,7632211,206781128258,1641,7632216,396781128243,5641,763221,7967771128264,7641,7632222,996781128246,741,763224,9367771128252,8241,7632211,05678112825141,763229,2367771128253,3841,7632211,616781128239,3141,76322-2,453221128268,3741,7632226,606781128260,2241,7632218,456781128241,3741,76322-0,393221128247,9941,763226,2267771128272,5541,7632230,786781128235,6441,76322-6,123221128264,541,7632222,736781128245,2741,763223,5067771128253,6241,7632211,856781128248,1141,763226,3467771128255,0141,7632213,246781128249,9141,763228,1467771128252,1641,7632210,396781128247,9641,763226,1967771128258,4541,7632216,686781128257,0441,7632215,276781128240,8641,76322-0,903221128266,441,7632224,636781128219,9541,76322-21,81321128258,7941,7632217,026781128250,4441,763228,6767771128247,9141,763226,1467771128255,341,7632213,536781128363,3563,06160,2883951128353,0263,0616-10,04161128366,263,06163,1383951128363,9463,06160,8783951128354,6463,0616-8,42161128358,363,0616-4,76161128352,4963,0616-10,57161128359,3463,0616-3,72161128356,6463,0616-6,42161128360,5663,0616-2,50161128361,8363,0616-1,23161128360,6463,0616-2,42161128357,3863,0616-5,68161128358,9363,0616-4,13161128358,6463,0616-4,42161128358,3463,0616-4,72161128357,8863,0616-5,18161128361,3563,0616-1,71161128354,5463,0616-8,52161128362,1163,0616-0,95161128351,2163,0616-11,85161128361,9163,0616-1,15161128358,0863,0616-4,98161128356,4463,0616-6,62161128356,7163,0616-6,35161128361,4363,0616-1,63161128350,6163,0616-12,45161128351,4963,0616-11,57161128347,1663,0616-15,90161128356,0163,0616-7,05161128357,563,0616-5,56161256144,139,201634,898371256145,639,201636,398371256142,7439,201633,538371256142,2539,201633,048371256140,2639,201631,058371256142,5939,201633,388371256141,3339,201632,128371256145,539,201636,298371256142,1539,201632,948371256157,839,2016318,598371256138,539,20163-0,701631256134,9539,20163-4,251631256152,739,2016313,498371256143,239,201633,99837125615739,2016317,798371256136,639,20163-2,601631256139,839,201630,598371256148,739,201639,498371256136,839,20163-2,401631256141,2839,201632,078371256151,439,2016312,198371256146,939,201637,698371256136,439,20163-2,801631256148,639,201639,398371256141,439,201632,198371256147,639,201638,39837125615139,2016311,798371256121,6739,20163-17,53161256221,9329,22133-7,291331256214,6929,22133-14,53131256215,2629,22133-13,96131256224,3229,22133-4,901331256223,4729,22133-5,751331256222,5729,22133-6,651331256218,329,22133-10,92131256223,5329,22133-5,691331256217,8929,22133-11,33131256223,7329,22133-5,491331256218,4829,22133-10,74131256223,5929,22133-5,631331256217,0429,22133-12,18131256223,0329,22133-6,191331256215,5129,22133-13,71131256223,0329,22133-6,191331256219,3229,22133-9,901331256220,4429,22133-8,781331256222,829,22133-6,421331256219,4729,22133-9,751331256220,1229,22133-9,101331256221,6329,22133-7,591331256222,8129,22133-6,411331256222,3929,22133-6,831331256222,5429,22133-6,68133125622929,22133-0,221331256223,7829,22133-5,441331256219,629,22133-9,621331256221,729,22133-7,521331256220,1729,22133-9,051331256222,9529,22133-6,271331256354,6548,42016,2299021256353,7748,42015,3499021256358,2748,42019,8499021256360,948,420112,47991256344,0848,4201-4,34011256361,948,420113,47991256354,9548,42016,5299021256355,0948,42016,6699021256357,2648,42018,8399021256363,9148,420115,48991256358,148,42019,6799021256360,148,420111,67991256348,348,4201-0,12011256363,1348,420114,70991256351,6448,42013,2199021256352,0148,42013,5899021256356,4748,42018,0499021256352,9748,42014,5499021256335,4948,4201-12,93011256349,8648,42011,4399021256334,9148,4201-13,51011256346,0848,4201-2,34011256323,6648,4201-24,76011256343,9448,4201-4,48011256356,3948,42017,9699021256353,4148,42014,9899021256354,2848,42015,8599021256364,3248,420115,89991256363,0948,420114,66991256345,3148,4201-3,11011256352,3848,42013,9599022128114,2811,888612,3913882128112,0711,888610,1813882128113,0311,888611,1413882128113,8611,888611,9713882128112,8811,888610,9913882128110,8911,88861-0,998612128112,7811,888610,8913882128110,5511,88861-1,338612128112,2911,888610,4013882128112,3611,888610,4713882128113,2811,888611,3913882128113,2111,888611,3213882128113,1811,888611,2913882128113,111,888611,2113882128113,0411,888611,1513882128113,2511,888611,3613882128113,0811,888611,1913882128113,311,888611,4113882128112,9111,888611,0213882128112,2611,888610,3713882128113,3111,888611,4213882128112,6711,888610,7813882128110,0611,88861-1,828612128113,4711,888611,5813882128113,3511,888611,4613882128113,4311,888611,5413882128113,211,888611,3113882128113,311,888611,4113882128112,5911,888610,7013882128113,0311,888611,1413882128224,4425,12019-0,680192128217,3425,12019-7,780192128221,825,12019-3,320192128222,5425,12019-2,580192128225,6425,120190,519812128222,1525,12019-2,970192128223,6325,12019-1,490192128223,825,12019-1,320192128223,6225,12019-1,500192128223,0525,12019-2,070192128223,1525,12019-1,970192128224,0925,12019-1,030192128224,0925,12019-1,030192128223,6125,12019-1,510192128224,1425,12019-0,980192128223,1825,12019-1,940192128223,7525,12019-1,37019212822425,12019-1,120192128222,2825,12019-2,840192128223,225,12019-1,920192128220,6925,12019-4,430192128223,2325,12019-1,890192128223,4925,12019-1,630192128224,6225,12019-0,500192128221,525,12019-3,620192128222,6925,12019-2,430192128222,6525,12019-2,470192128223,4225,12019-1,700192128224,9725,12019-0,150192128221,525,12019-3,620192128223,3425,12019-1,780192128387,4167,5308319,879172128351,9667,53083-15,57082128381,9467,5308314,409172128354,6767,53083-12,86082128367,2967,53083-0,240832128370,8867,530833,349172128366,8267,53083-0,710832128377,5167,530839,979172128354,4567,53083-13,08082128377,7567,5308310,219172128372,5767,530835,039172128360,8867,53083-6,650832128368,9667,530831,429172128371,1567,530833,619172128368,6367,530831,099172128372,1667,530834,629172128365,1367,53083-2,400832128372,8967,530835,359172128384,2167,5308316,679172128367,2867,53083-0,250832128356,7967,53083-10,74082128381,7467,5308314,209172128361,2267,53083-6,310832128374,1767,530836,639172128361,9367,53083-5,600832128366,7567,53083-0,780832128369,1267,530831,589172128365,4967,53083-2,040832128367,1567,53083-0,380832128364,8667,53083-2,670832128365,4767,53083-2,060832256111,4112,309-0,899225618,8412,309-3,469225616,5412,309-5,7692256111,512,309-0,8092256112,2912,309-0,0192256113,712,3091,3910042256111,7212,309-0,5892256114,112,3091,7910042256113,8912,3091,5810042256113,2612,3090,9510042256112,6812,3090,3710042256112,6612,3090,3510042256112,9612,3090,6510042256113,2512,3090,9410042256113,4512,3091,1410042256113,4612,3091,1510042256113,3512,3091,0410042256113,3112,3091,0010042256113,4512,3091,1410042256112,6112,3090,3010042256113,4312,3091,1210042256113,0112,3090,7010042256113,0112,3090,7010042256112,712,3090,3910042256113,3812,3091,0710042256111,812,309-0,5092256112,8312,3090,5210042256113,3712,3091,0610042256113,2412,3090,9310042256113,1112,3090,8010042256112,5612,3090,2510042256219,7223,44096-3,720962256221,2423,44096-2,200962256223,5723,440960,1290422256222,723,44096-0,740962256223,1923,44096-0,250962256222,4423,44096-1,000962256223,3923,44096-0,050962256221,8823,44096-1,560962256224,1223,440960,6790422256224,3323,440960,8890422256223,1723,44096-0,270962256224,2623,440960,8190422256223,7723,440960,3290422256224,3423,440960,8990422256223,923,440960,4590422256223,2323,44096-0,210962256223,6123,440960,1690422256222,7923,44096-0,650962256223,6823,440960,2390422256223,2223,44096-0,220962256222,8823,44096-0,560962256223,4923,440960,0490422256222,7923,44096-0,650962256223,1723,44096-0,270962256224,1723,440960,7290422256222,6823,44096-0,760962256223,223,44096-0,240962256221,8523,44096-1,590962256223,9323,440960,4890422256222,7923,44096-0,650962256223,0123,44096-0,430962256362,9963,75198-0,761982256360,8863,75198-2,871982256368,0363,751984,2780172256367,3263,751983,568017225636463,751980,2480172256364,1163,751980,3580172256364,3863,751980,6280172256365,8363,751982,0780172256364,363,751980,5480172256360,7663,75198-2,991982256361,6363,75198-2,121982256365,5863,751981,8280172256366,6363,751982,8780172256365,963,751982,1480172256366,763,751982,9480172256369,9263,751986,1680172256364,7963,751981,0380172256366,3863,751982,6280172256362,0963,75198-1,661982256363,6663,75198-0,091982256361,2963,75198-2,461982256363,1363,75198-0,621982256366,2663,751982,5080172256366,9263,751983,1680172256362,9763,75198-0,781982256359,4763,75198-4,281982256366,1963,751982,4380172256356,163,75198-7,651982256357,1263,75198-6,631982256358,5363,75198-5,221982256363,3263,75198-0,43198


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ