Справочник от Автор24
Поделись лекцией за скидку на Автор24

Производственные информационные системы

  • 👀 553 просмотра
  • 📌 518 загрузок
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Производственные информационные системы» pdf
Конспект лекций по дисциплине Производственные информационные системы Новокузнецк Содержание Введение ......................................................................................................................................... 3 1. Корпоративные информационные системы ....................................................................... 4 1.1. Предприятие как объект автоматизации .....................................................................4 1.2. Классификация и характеристики корпоративных информационных систем ........5 2. Технологии корпоративных информационных систем ................................................... 15 2.1. OLTP-системы (On-Line Transaction Processing) ......................................................15 2.2. Хранилища данных (Data Warehouse) .......................................................................16 2.3. Способы аналитической обработки данных .............................................................19 2.4. Интеллектуальный анализ данных (Data Mining) ....................................................25 3. Стандарты корпоративных ИС .......................................................................................... 28 3.1. Методология планирования материальных потребностей предприятия MRP......28 3.2. Планирование производственных ресурсов MRPII .................................................38 3.3. Планирование ресурсов предприятия ERP ...............................................................46 3.4. Планирование ресурсов, синхронизированное с покупателем CSRP ....................48 4. Электронный документооборот ......................................................................................... 58 4.1. Системы автоматизации документооборота .............................................................58 4.2. Системы электронного документооборота ...............................................................64 5. Технологии внедрения корпоративных информационных систем ................................ 66 5.1. Жизненный цикл программного обеспечения ..........................................................66 5.2. Подготовка к внедрению или разработке системы. Процесс внедрения. ..............67 5.3. Разработка стратегии автоматизации ........................................................................70 5.4. Стандарты описания, анализа и реорганизации бизнес процессов ........................72 5.5. Разработка и внедрение корпоративных информационных систем .......................76 6. Конфигурирование и администрирование в системе 1С:Предприятие ......................... 78 6.1. 6.2. 6.3. 6.4. Технологическая платформа «1С:Предприятие» .....................................................78 Быстрая разработка прикладных решений................................................................96 Использование основных объектов конфигурации ...............................................104 Основы администрирования.....................................................................................247 2 Введение В управлении предприятием, или говоря современным языком, управление бизнесом, руководитель принимает решения на основании той информации, которая ему доступна на момент принятия решения. Эффективность этой системы управления в целом зависит от следующих аспектов:  насколько быстро информация о состоянии дел и событиях попадает к руководителю;  насколько эта информация правильная и своевременная (адекватна и актуальна);  насколько быстро и достоверно принятое решение будет доведено до исполнителей;  насколько действенен контроль со стороны руководителя над исполнением им же принятых решений (кнут, пряник и все то, что перечислено в предыдущих трех пунктах). Для обеспечения этой самой эффективности в различные времена применялись самые разнообразные технические средства от тамтамов и почтовых голубей до суперкомпьютеров, компьютерных сетей интранет и интернет, ERP систем и других современных аналогов тамтамов. 3 1. Корпоративные информационные системы 1.1. Предприятие как объект автоматизации В общем виде процесс управления любого предприятия, можно изобразить упрощенной схемой, представленной на рисунке 1.1. Рисунок 1.1 – Упрощенная схема управления предприятия Xизм(t) – вектор измеряемых параметров (X1, X2 …Xn), характеризующих состояние управляемого объекта; Zизм(t) – вектор измеряемых параметров (Z1, Z2 …Zm), характеризующих состояние окружающей среды; U – управляющее воздействие; V – воздействие окружающей среды; W1,W2 – погрешности измерения. t – время. Управление предприятием рассматривается в рамках системы, включающей и предприятие, и внешнюю среду. Упрощенно управление предприятием можно представить в виде двух составляющих (рисунок 1.1): 1) программные управляющие воздействия, зависящие только от времени; 2) корректирующие управляющие воздействия, формируемые по принципу обратной связи, т.е. зависящие от рассогласований между текущими значениями контролируемых параметров и прогнозируемыми значениями этих параметров. Тогда упрощенно процесс управления предприятием можно представить в следующем виде (рисунок 1.2): Исходные Планирование xпл(t) данные xр(t) Регулирование xф(t) Управляемый процесс Контроль Анализ xф(t) Учет Рисунок 1.1 – Упрощенный процесс управления предприятием При рассмотрении приведенной схемы процесса управления предприятием следует договориться о понимании введенных терминов: 1) Планирование представляет собой процесс выработки желаемого (требуемого) поведения процесса x(t) на период планирования (t0, tпл). 2) Учет (т.е. измерение) в производственных системах заключается в определении в заданные моменты времени фактического состояния процесса x ф(t). 4 3) Контроль позволяет определить отклонение фактического состояния x ф(t) от планируемого xпл(t). 4) Регулирование заключается в определении скорректированного плана x р(t), т.е. по существу является решением задачи планирования при новых начальных условиях. 5) Анализ - это подведение итогов осуществления управляемого процесса за период управления, выявление факторов, повлиявших на степень достижения запланированных результатов. Приведенная выше упрощенная схема управления предприятием является универсальной и применима ко всем процессам производственных систем. Компонентами функции x(t) могут быть показатели, характеризующие ход производства, в частности состояние:  доходов;  расходов;  мощностей;  запасов;  и т.д. На каждом предприятии можно выделить несколько направлений деятельности: 1) производство; 2) сбыт; 3) снабжение; 4) финансы; 5) кадры; 6) и т.д. Все частные производственные процессы представляют собой управляемые процессы. Управление каждым процессом осуществляется путем реализации функций управления в отдельные дискретные моменты времени. В состав функций управления входят:  планирование;  учет;  контроль;  регулирование;  анализ;  а также не указанная на рисунке функция прогнозирования. Прогнозирование – это определение на будущее вероятностных характеристик управляемого процесса. В зависимости от целей функция прогнозирования рассматривается самостоятельно или объединяется с планированием. Задача планирования и эффективного управления предприятиями – одна из основных областей применения информационных технологий, являющихся базой автоматизированных систем управления (АСУ). Термин «автоматизированные системы управления» (АСУ), впервые появился в России в 1960-е гг. ХХ века в связи с применением компьютеров и информационных технологий в управлении экономическими объектами и процессами, что дало возможность повысить эффективность производства, лучше использовать ресурсы, избавить управленцев от выполнения обязательных рутинных операций. 1.2. Классификация и характеристики корпоративных информационных систем 1.2.1. Основные системы, используемые в организациях Поскольку в каждой организации существуют ряд отделов, в которых работают сотрудники различных специальностей, и разные организационные уровни, то для 5 управления ими требуются несколько различных типов информационных систем. Ни одна отдельная система не сможет аккумулировать в себе всю информацию, необходимую для функционирования организации в целом. Рисунок 1.2 – Типы информационных систем Рисунок 1.2 иллюстрирует один из способов отображения всех систем, использующихся в отдельной организации. Здесь показаны стратегический, управленческий, профессиональный и операционный уровни, которые, в свою очередь, подразделяются на функциональные области: маркетинг и продажи, производство, бухгалтерия и управление персоналом. Информационные системы строятся таким образом, чтобы охватывать все сферы деятельности организации. 1.2.2. Различные виды информационных систем Для работы на различных организационных уровнях предназначены четыре основных вида информационных систем: системы операционного уровня, системы для профессиональной работы с данными (знаниями), управленческие системы и стратегические системы (системы стратегического планирования). Системы операционного уровня помогают менеджерам-операционистам контролировать все элементарные действия и транзакции внутри организации, такие как продажи, денежные поступления, депозиты, платежные ведомости, кредитные истории и поступление сырья в производство. Основными целями использования систем этого уровня являются решение рутинных задач и мониторинг всех транзакций внутри компании. Сколько запасных частей имеется в наличии? Что случилось с чеком мистера Вильямса? Для быстрого получения ответов на подобные вопросы информация должна быть легкодоступной, свежей и точной. Примеры систем данного типа включают использование банковских автоматов и автоматических кассовых аппаратов для работы со вкладами и автоматических систем учета рабочего времени сотрудников. Системы для работы со знаниями поддерживают знания организаций и использование их сотрудниками. Назначением таких систем является интеграция новых данных и знаний и помощь сотрудникам в работе со всевозможной документацией. Подобные информационные системы, особенно установленные на рабочих станциях и офисных компьютерах, являются наиболее распространенными программами, используемыми в настоящее время во всех сферах бизнеса. Системы управленческого уровня служат для мониторинга, контроля, помощи в принятии решений, а также выполнения административных функций менеджерами среднего звена. Такие системы предназначены для ответа на простой вопрос: все ли работает как надо? Системы управленческого уровня могут предоставлять периодические отчеты о состоянии дел и информацию по отдельным операциям. Примером может служить система, обрабатывающая информацию о местах проживания сотрудников, 6 найме квартир и арендной плате, действующая в масштабе всей корпорации и следящая за бюджетом, выделяемым на эти нужды. Некоторые системы управленческого уровня помогают в принятии нестандартных решений. Они могут быть полезны при необходимости принятия «неструктурированного» решения, исходные предпосылки для которого не всегда ясны. Такие системы отвечают на вопросы типа «что, если...». Как повлияет на производственный план резкий рост продаж в декабре? Что произойдет с прибылью на инвестированный капитал, если пуск завода будет отложен на шесть месяцев? Ответы на эти и другие вопросы часто требуют новых данных, которые нельзя получить внутри самой организации, и данных, которые нелегко запросить во внутренних системах операционного уровня. Стратегические системы (системы стратегического планирования) помогают сотрудникам верхних эшелонов управления решать вопросы стратегии и заниматься долгосрочным планированием, учитывая при этом кроме данных о самой компании реалии внешнего мира. Основным их предназначением является согласование деятельности организации с внешней средой. Каким будет уровень занятости в ближайшие пять лет? Стоит ли вкладывать средства в долгосрочные инвестиции и в какой области фирма может рассчитывать на максимальную прибыль? Какие продукты мы будем производить в следующие пять лет? Информационные системы также служат для реализации основных бизнесфункций, таких как сбыт продукции и маркетинг, производство, финансы, бухгалтерия и контроль трудовых ресурсов. В типичной организации существуют системы различных уровней для каждой функциональной области. Например, торговый отдел обычно имеет собственную систему операционного уровня для записи данных по дневным продажам и обработки заказов. Системы управления знаниями помогают разрабатывать планы по продвижению товаров фирмы. Система управленческого уровня, в свою очередь, отслеживает месячные объемы продаж в различных регионах и сообщает об их изменениях. Прогнозирование продаж на пятилетний период является прерогативой системы стратегического планирования. Operational-level systems (системы операционного уровня) Информационные системы, которые управляют всеми элементарными действиями и транзакциями внутри организации. Knowledge-level systems (системы хранения и обработки знаний) Информационные системы, предназначенные для работников умственного труда — «белых воротничков». Management-level systems (системы управленческого уровня) Информационные системы, служащие для мониторинга, контроля, помощи в принятии решений и выполнении административных функций менеджерами среднего звена. Strategic-level systems (стратегические системы) Информационные системы, которые помогают сотрудникам верхних эшелонов управления решать вопросы стратегии и заниматься долгосрочным планированием. 1.2.3. Информационные системы на производстве В общем виде, производство продукции осуществляется в технологической схеме, состоящей из технологических объектов, на которых происходят определенные стации обработки. При этом АСУ может быть представлено в виде совокупности автоматизированных систем взаимодействующих уровней (рисунок 1.3), условно называемых «управление предприятием» (уровень ERP, MRP), «управление производством» (уровень MES), и «управление технологическими процессами и оборудованием» (уровень SCADA). 7 5 ERP. Управление предприятием Корпоративная информационная система 4 MES. Системы исполнения производства Основная задача: управление технологией (процесс + агрегат), направленной на преобразование исходного сырья в готовый продукт. Процесс делится на стадии, этапы, операции. Важной характеристикой являются удельные расходы материалов. 3 SCADA. Диспетчерские системы сбора информации и управления Выполняет задачи оперативного управления технологическим процессом. Системы функционируют, как правило, режиме автоматического , полуавтоматического и дистанционного управления. 2 Control Простое управление Простое управление, реализация контуров, регулирование процессами технологического объекта (поддержание параметров в заданном диапазоне) 1 Input/Output Технологичейский объект Нижний уровень, в котором осуществляются процессы взаимодействия с внешней средой или с материальными потоками. Для сбора информации используются датчики. Потоками веществ управляют исполнительные механизмы АСУП АСУТП Рисунок 1.3 – Взаимодействие уровней производственных информационных систем Уровень ERP реализуется автоматизированными системами управления предприятием (АСУП), уровень SCADA – автоматизированными системами управления технологическими процессами (АСУ ТП), а важнейшей функцией уровня MES является сопряжение между АСУП и АСУ ТП. В настоящее время вместо понятия АСУП используется более точное понятие – корпоративные информационные системы (КИС). Под ними понимают системы, в которых комплексно и в едином информационном пространстве функционально объединяются системы для решения задач автоматизации учета и управления производством, финансами, снабжением и сбытом, кадрами и информационными ресурсами. Техническую базу современных КИС, использующих преимущественно распределенную архитектуру клиент-сервер, составляют серверы и рабочие места пользователей, объединенные локальными сетями. 1.2.4. Классификация и характеристики КИС КИС могут относиться к различным уровням, которые определяются масштабом охвата бизнес-процессов корпорации. На российском рынке представлены три уровня корпоративных систем, которые отражены в таблице 1.1. Таблица 1.1 – Уровни корпоративных информационных систем Уровень системы Представители Concorde XAL, Малые интегрированные системы 1С v7.7 1С v8.x MS Axapta, MS Navision, MS Dynamics Средние интегрированные системы Галактика, Парус, JD Edwards (Robertson & Blums), SyteLine (Symix) SAP R/3 (SAP AG), Крупные интегрированные системы Oracle Applications (Oracle), Baan IV (Baan) 8 Корпоративные информационные системы можно разделить на два класса: финансово-управленческие и производственные. Финансово-управленческие системы включают подкласс малых интегрированных систем. Такие системы предназначены для ведения учета по одному или нескольким направлениям (бухгалтерия, сбыт, склад, кадры и т.д.). Системами этой группы может воспользоваться практически любое предприятие. Системы этого класса обычно универсальны, цикл их внедрения невелик, иногда можно воспользоваться «коробочным» вариантом, купив программу и самостоятельно установив ее на ПК. Финансово-управленческие системы (особенно системы российских разработчиков) значительно более гибкие в адаптации к нуждам конкретного предприятия. Часто предлагаются «конструкторы», с помощью которых можно практически полностью перестроить исходную систему, самостоятельно или с помощью поставщика установив связи между таблицами БД или отдельными модулями. Производственные системы (также называемые системами производственного управления) включают подклассы средних и крупных интегрированных систем. Они предназначены в первую очередь для управления и планирования производственного процесса. Учетные функции, хотя и глубоко проработаны, играют вспомогательную роль, и порой невозможно выделить модуль бухгалтерского учета, так как информация в бухгалтерию поступает автоматически из других модулей. Эти системы функционально различны: в одной может быть хорошо развит производственный модуль, в другой – финансовый. Сравнительный анализ систем такого уровня и их применимости к конкретному случаю может вылиться в значительную работу. А для внедрения системы нужна целая команда из финансовых, управленческих и технических экспертов. Производственные системы значительно более сложны в установке (цикл внедрения может занимать от 6 − 9 месяцев до полутора лет и более). Это обусловлено тем, что система покрывает потребности всего предприятия, и это требует значительных совместных усилий сотрудников предприятия и поставщиков программ. Производственные системы часто ориентированы на одну или несколько отраслей и/или типов производства: серийное сборочное (электроника, машиностроение), мелкосерийное и опытное (авиация, тяжелое машиностроение), дискретное (металлургия, химия, упаковка), непрерывное (нефтедобыча, газодобыча). Специализация отражается как в наборе функций системы, так и в существовании бизнес-моделей данного типа производства. Наличие встроенных моделей для определенного типа производства отличает производственные системы друг от друга. У каждой из них есть глубоко проработанные направления и функции, разработка которых только начинается или вообще не ведется. Производственные системы по многим параметрам значительно более жестки, чем финансово-управленческие. Основное внимание уделяется планированию и оптимальному управлению производством. Эффект от внедрения производственных систем проявляется на верхних эшелонах управления предприятием, когда становится видна вся картина его работы, включая планирование, закупки, производство, сбыт, запасы, финансовые потоки и другие аспекты. При увеличении сложности и широты охвата функций предприятия системой возрастают требования к технической инфраструктуре и программно-технической платформе. Все производственные системы разработаны с помощью промышленных баз данных. В большинстве случаев используются технология клиент-сервер или Internetтехнологии. Для автоматизации больших предприятий в мировой практике часто используется смешанное решение из классов крупных, средних и малых интегрированных систем. Наличие электронных интерфейсов упрощает взаимодействие между системами и позволяет избежать двойного ввода данных. 9 1.2.5. Требования к корпоративным информационным системам Исторически сложился ряд требований к корпоративным информационным системам. Требования эти таковы:  Системность;  Комплексность;  Модульность;  Открытость;  Адаптивность;  Надежность;  Безопасность;  Масштабируемость;  Мобильность;  Простота в изучении;  Поддержка внедрения и сопровождения со стороны разработчика. Рассмотрим эти требования подробнее. В современных условиях производство не может существовать и развиваться без высоко эффективной системы управления, базирующейся на самых современных информационных технологиях. Постоянно изменяющиеся требования рынка, огромные потоки информации научно-технического, технологического и маркетингового характера требуют от персонала предприятия, отвечающего за стратегию и тактику развития высокотехнологического предприятия быстроты и точности принимаемых решений, направленных на получение максимальной прибыли при минимальных издержках. Оптимизация затрат, повышение реактивности производства в соответствии со все возрастающими требованиями потребителей в условиях жесткой рыночной конкуренции не могут базироваться только на умозрительных заключениях и интуиции даже самых опытных сотрудников. Необходим всесторонний контроль над всеми центрами затрат на предприятии, сложные математические методы анализа, прогнозирования и планирования, основанные на учете огромного количества параметров и критериев и стройной системе сбора, накопления и обработки информации. Экстенсивные пути решения этой проблемы, связанные с непомерным разрастанием управленческого аппарата, даже при самой хорошей организации его работы не могут дать положительный результат. Переход на современные технологии, реорганизация производства не могут обойти и такой ключевой аспект как управление. И путь здесь может быть только один – создание КИС, отвечающей ряду жестких требований. КИС, прежде всего, должна отвечать требованиям комплексности и системности. Она должна охватывать все уровни управления от корпорации в целом с учетом филиалов, дочерних фирм, сервисных центров и представительств, до цеха, участка и конкретного рабочего места и работника. Весь процесс производства с точки зрения информатики представляет собой непрерывный процесс порождения, обработки, изменения, хранения и распространения информации. Каждое рабочее место - будь то рабочее место сборщика на конвейере, бухгалтера, менеджера, кладовщика, специалиста по маркетингу или технолога - это узел, потребляющий и порождающий определенную информацию. Все такие узлы связаны между собой потоками информации, овеществленными в виде документов, сообщений, приказов, действий и т.п. Таким образом, функционирующее предприятие можно представить в виде информационнологической модели, состоящей из узлов и связей между ними. Такая модель должна охватывать все аспекты деятельности предприятия, должна быть логически обоснована и направлена на выявление механизмов достижения основной цели в условиях рынка максимальной прибыли, что и подразумевает требование системности. Достаточно эффективное решение этой задачи возможно только на базе строгого учета максимально возможного обоснованного множества параметров и возможности многокритериальных 10 поливариантных анализа, оптимизации и прогнозирования - то есть комплексности системы. Информация в такой модели носит распределенный характер и может быть достаточно строго структурирована на каждом узле и в каждом потоке. Узлы и потоки могут быть условно сгруппированы в подсистемы, что выдвигает еще одно важное требование к КИС - модульность построения. Это требование также очень важно с точки зрения внедрения системы, поскольку позволяет распараллелить, облегчить и, соответственно, ускорить процесс инсталляции, подготовки персонала и запуска системы в промышленную эксплуатацию. Кроме того, если система не создается под конкретное производство, а приобретается на рынке готовых систем, модульность позволяет исключить из поставки компоненты, которые не вписываются в инфологическую модель конкретного предприятия или без которых на начальном этапе можно обойтись, что позволяет сэкономить средства. Поскольку ни одна реальная система, даже если она создается по специальному заказу, не может быть исчерпывающе полной (нельзя объять необъятное) и в процессе эксплуатации может возникнуть необходимость в дополнениях, а также в силу того, что на функционирующем предприятии могут быть уже работающие и доказавшие свою полезность компоненты КИС, следующим определяющим требованием является открытость. Это требование приобретает особую важность, если учесть, что автоматизация не исчерпываются только управлением, но охватывает и такие задачи, как конструкторское проектирование и сопровождение, технологические процессы, внутренний и внешний документооборот, связь с внешними информационными системами (например, Интернет), системы безопасности и т.п. Любое предприятие существует не в замкнутом пространстве, а в мире постоянно меняющегося спроса и предложения, требующем гибко реагировать на рыночную ситуацию, что может быть связано иногда с существенным изменением структуры предприятия и номенклатуры выпускаемых изделий или оказываемых услуг. Кроме того, в условиях переходной экономики законодательство имеет неустоявшийся, динамично меняющийся характер. У крупных корпораций, к тому же могут быть экстерриториальные подразделения, находящиеся в зоне юрисдикции других стран или свободных экономических зон. Это означает, что КИС должна обладать свойством адаптивности, то есть гибко настраиваться на разное законодательство, иметь разноязыковые интерфейсы, уметь работать с различными валютами одновременно. Не обладающая свойством адаптивности система обречена на очень непродолжительное существование, в течение которого вряд ли удастся окупить затраты на ее внедрение. Желательно, чтобы кроме средств настройки система обладала и средствами развития - инструментарием, при помощи которого программисты и наиболее квалифицированные пользователи предприятия могли бы самостоятельно создавать необходимые им компоненты, которые органично встраивались бы в систему. Когда КИС эксплуатируется в промышленном режиме, она становится незаменимым компонентом функционирующего предприятия, способным в случае аварийной остановки застопорить весь процесс производства и нанести громадные убытки. Поэтому одним из важнейших требований к такой системе является надежность ее функционирования, подразумевающая непрерывность функционирования системы в целом даже в условиях частичного выхода из строя отдельных ее элементов вследствие непредвиденных и непреодолимых причин. Чрезвычайно большое значение для любой крупномасштабной системы, содержащей большое количество информации, имеет безопасность. Требование безопасности включает в себя несколько аспектов:  Защита данных от потери. Это требование реализуется, в основном, на организационном, аппаратном и системном уровнях. Прикладная система, какой является, например АСУ, не обязательно должна содержать средства резервного 11 копирования и восстановления данных. Эти вопросы решаются на уровне операционной среды.  Сохранение целостности и непротиворечивости данных. Прикладная система должна отслеживать изменения во взаимозависимых документах и обеспечивать управление версиями и поколениями наборов данных.  Предотвращение несанкционированного доступа к данным внутри системы. Эти задачи решаются комплексно как организационными мероприятиями, так и на уровне операционных и прикладных систем. В частности, прикладные компоненты должны иметь развитые средства администрирования, позволяющие ограничивать доступ к данным и функциональным возможностям системы в зависимости от статуса пользователя, а также вести мониторинг действий пользователей в системе.  Предотвращение несанкционированного доступа к данным извне. Решение этой части проблемы ложится в основном на аппаратную и операционную среду функционирования КИС и требует ряда административно-организационных мероприятий. Предприятие, успешно функционирующее и получающее достаточную прибыль, имеет тенденцию к росту, образованию дочерних фирм и филиалов, что в процессе эксплуатации КИС может потребовать увеличения количества автоматизированных рабочих мест, увеличения объема хранимой и обрабатываемой информации. Кроме того, для компаний типа холдингов и крупных корпораций должна быть возможность использовать одну и ту же технологию управления как на уровне головного предприятия, так и на уровне любой, даже небольшой входящей в него фирмы. Такой подход выдвигает требование масштабируемости. На определенном этапе развития предприятия рост требований к производительности и ресурсам системы может потребовать перехода на более производительную программно-аппаратную платформу. Чтобы такой переход не повлек за собой кардинальной ломки управленческого процесса и неоправданных капиталовложений на приобретение более мощных прикладных компонентов, необходимо выполнение требования мобильности. Простота в изучении - это требование, включающее в себя не только наличие интуитивно понятного интерфейса программ, но и наличие подробной и хорошо структурированной документации, возможности обучения персонала на специализированных курсах и прохождения ответственными специалистами стажировки на предприятиях родственного профиля, где данная система уже эксплуатируется. Поддержка разработчика. Это понятие включает в себя целый ряд возможностей, таких, как получение новых версий программного обеспечения бесплатно или с существенной скидкой, получение дополнительной методической литературы, консультации по горячей линии, получение информации о других программных продуктах разработчика, возможность участия в семинарах, научно-практических конференциях пользователей и других мероприятиях, проводимых разработчиком или группами пользователей и т.д. Естественно, что обеспечить такую поддержку пользователю способна только серьезная фирма, устойчиво работающая на рынке программных продуктов и имеющая довольно ясную перспективу на будущее. Сопровождение. В процессе эксплуатации сложных программно-технических комплексов могут возникать ситуации, требующие оперативного вмешательства квалифицированного персонала фирмы-разработчика или ее представителя на месте. Сопровождение включает в себя выезд специалиста на объект заказчика для устранения последствий аварийных ситуаций, техническое обучение на объекте заказчика, методическую и практическую помощь при необходимости внести изменения в систему, не носящие характер радикальной реструктуризации или новой разработки. Подразумевается также установка новых релизов программного обеспечения, получаемого от разработчика бесплатно 12 силами уполномоченной разработчиком сопровождающей организации или силами самого разработчика. К основным принципам построения ИС относятся:  принцип интеграции, заключающийся в том, что обрабатываемые данные вводятся в систему только один раз и затем многократно используются для решения возможно большего числа задач; принцип однократного хранения информации;  принцип системности, заключающийся в обработке данных в различных разрезах, чтобы получить информацию, необходимую для принятия решений на всех уровнях и во всех функциональных подсистемах и подразделениях корпорации;  внимание не только к подсистемам, но и к связям между ними;  эволюционный аспект – все стадии эволюции продукта, в фундаменте КИС должна лежать способность к развитию;  принцип комплексности, подразумевающий автоматизацию процедур преобразования данных на всех стадиях продвижения продуктов корпорации.                  Основные характеристики КИС: обеспечение полного цикла управления в масштабах корпорации: нормирование, планирование, учет, анализ, регулирование на основе обратной связи в условиях информационной и функциональной интеграции; территориальная распределенность и значительные масштабы системы и объекта управления; неоднородность составляющих технического и программного обеспечения структурных компонентов системы управления; единое информационное пространство для выработки управленческих решений, объединяющее управление финансами, персоналом, снабжением, сбытом и процесс управления производством; функционирование в неоднородной вычислительной среде на разных вычислительных платформах; реализация управления в реальном масштабе времени; высокая надежность, безопасность, открытость и масштабируемость информационных компонентов. Наиболее значимыми характеристиками КИС являются: архитектура информационной системы – состав элементов и их взаимодействие; сетевые технологии, их масштабы и топология сети; функциональная структура управления, реализованная в информационной системе (состав подсистем, комплексов задач); организационная форма хранения информации (централизованная или распределенная база данных); пропускная способность системы – скорость обработки транзакций; объем информационного хранилища данных; системы документов и документооборот; количество пользователей КИС; пользовательский интерфейс и его возможности; типовые информационные технологии процессов сбора, передачи, обработки, хранения, извлечения, распространения информации. В свою очередь, прикладная система, каковой является АСУ, выдвигает ряд требований к среде, в которой она функционирует. Средой функционирования прикладной системы являются сетевая операционная система, операционные системы на рабочих станциях, система управления базами данных и ряд вспомогательных подсистем, обеспечивающих функции безопасности, архивации и т.п. Как правило, список этих 13 требований и указания по конкретному набору системного программного обеспечения содержатся в документации по конкретной прикладной системе. 1.2.6. Архитектура КИС Архитектура КИС состоит из нескольких уровней:  Информационно-логический уровень – Представляет собой совокупность потоков данных и центров (узлов) возникновения, потребления и модификации информации. Может быть представлен в виде модели, на основании которой разрабатываются структуры баз данных, системные соглашения и организационные правила для обеспечения взаимодействия компонентов прикладного программного обеспечения.  Прикладной уровень – Представляет собой совокупность прикладных программ и программных комплексов, которые реализуют функционирование информационнологической модели. Это могут быть системы документооборота, системы контроля над исполнением заданий, системы сетевого планирования, АСУ ТП, САПР, бухгалтерские системы, офисные пакеты, системы управления финансами, кадрами, логистикой, и т.д. и т.п.  Системный уровень – Операционные системы и сетевые средства.  Аппаратный – Средства вычислительной техники.  Транспортный – Активное и пассивное сетевое оборудование, сетевые протоколы и технологии. 14 2. Технологии корпоративных информационных систем Современный уровень развития аппаратных и программных средств с некоторых пор сделал возможным повсеместное ведение баз данных оперативной информации на разных уровнях управления. В процессе своей деятельности промышленные предприятия, корпорации, ведомственные структуры, органы государственной власти и управления накопили большие объемы данных. Они хранят в себе большие потенциальные возможности по извлечению полезной аналитической информации, на основе которой можно выявлять скрытые тенденции, строить стратегию развития, находить новые решения. К настоящему моменту времени сформировался ряд концепций хранения и анализа корпоративных данных: 1) хранилища данных (Data Warehouse); 2) оперативная аналитическая обработка (On-Line Analytical Processing, OLAP); 3) интеллектуальный анализ данных – ИАД (Data Mining). Технологии OLAP тесно связаны с технологиями построения хранилища данных (Data Warehouse) и методами интеллектуальной обработки – Data Mining. Поэтому наилучшим вариантом является комплексный подход к их внедрению. 2.1. OLTP-системы (On-Line Transaction Processing) Информационные системы класса OLTP (On-Line Transaction Processing) или OLTP-системы предназначены, прежде всего, для обслуживания повседневной деятельности предприятия. Основная функция подобных систем заключается в выполнении большого количества коротких транзакций. Транзакцией называют неделимую с точки зрения воздействия на базу данных последовательность операций манипулирования данными. Сами транзакции являются достаточно простыми, но проблемы состоят в том, что таких транзакций очень много, выполняются они одновременно и при возникновении ошибок транзакция должна откатиться и вернуть систему в состояние, в котором та была до начала транзакции. Практически все запросы к базе данных в OLTP-приложениях состоят из команд вставки, обновления и удаления. Типичными примерами OLTPприложений являются системы складского учета, заказов билетов, операционные банковские системы и др. Запросы на выборку в OLTP-системах, в основном, предназначены для предоставления пользователям выборки данных из различного рода справочников. Поскольку большая часть запросов известна заранее ещё на этапе проектирования системы, то критическим для OLTP-приложений является скорость и надежность выполнения коротких операций обновления данных. Таким образом, OLTP-системы имеют следующие особенности:  рассчитаны на быстрое обслуживание относительно простых запросов большого числа пользователей;  работают с данными, которые требуют защиты от несанкционированного доступа, нарушений целостности, аппаратных и программных сбоев. Для обеспечения целостности данных и изолированности пользователей транзакции в OLTP-системах должны обладать четырьмя основными свойствами: 1. Атомарность. Транзакция должна выполняться как единая операция доступа к базе данных (БД) и может быть выполнена полностью либо не выполнена совсем. 2. Согласованность. Свойство согласованности гарантирует взаимную целостность данных, т. е. выполнение ограничений целостности БД после окончания обработки транзакции. 3. Изолированность. Это свойство означает, что транзакции должны выполняться независимо друг от друга, и доступ к данным, изменяемым с помощью одной 15 транзакции, для других транзакций должен быть запрещен, пока изменения не будут завершены. 4. Долговечность. Свойство долговечности означает, что если транзакция выполнена успешно, то произведенные ею изменения в данных не должны быть потеряны ни при каких обстоятельствах. Стратегия разработки OLTP-систем Длительное время в качестве стратегии разработки OLTP-систем использовались следующие принципы:  построение отдельных автоматизированных рабочих мест (АРМ), предназначенных для обработки групп функционально связанных документов, и тиражирование готовых АРМ на места;  построение полнофункциональных параметризуемых систем с тиражированием и настройкой по местам. Однако получаемые таким способом системы имели невысокие адаптационные возможности, предъявляли высокие требования к эксплуатационному персоналу и требовали больших накладных расходов на сопровождение. Относительно недавно начала применяться новая, третья стратегия разработки информационных систем класса OLTP. Ее суть состоит в том, что тиражируются не готовые системы, а некоторые заготовки и технологический инструмент, позволяющие непосредственно на месте быстро построить/достроить систему с необходимой функциональностью и далее с помощью этого же инструмента ее модифицировать в соответствии с динамикой предметной области. 2.2. Хранилища данных (Data Warehouse) Хранилище данных (ХД) – предметно-ориентированный, интегрированный, неизменчивый, поддерживающий хронологию набор данных, организованный для целей поддержки управления. По аналогии с реальными хранилищами, в хранилищах данных имеются большие области для сбора/хранения/перемещения существующих данных. Понятие «хранение данных» возникло, в середине 1980-х гг., и, по сути, предназначалось для описания архитектурной модели потока данных от операционной системы к средствам поддержки принятия решений. Без такой архитектурной модели передаваемая управляющая информация обычно содержит большое количество избыточных данных. В больших корпорациях множественные проекты принятия решений обычно осуществляются независимо и при этом используется один и тот же набор данных. Таким образом, происходит накопление дублированных данных, что в конечном итоге приводит к снижению эффективности поддержки принятия решений. 2.2.1. Очистка данных в Хранилище данных Для повышения эффективности поддержки принятия решений и уменьшения дублированности данных применяют очистку данных (data cleaning, data cleansing или scrubbing). В ХД очистку данных также применяют для выявления и удаления ошибок, несоответствий в данных с целью улучшения их качества. Хранилища данных требуют и одновременно обеспечивают всестороннюю поддержку очистки данных. Они загружают и постоянно обновляют огромные объемы данных из различных источников, поэтому вероятность попадания в них «грязных данных» весьма высока. Более того, хранилища данных используются в процессе принятия решений, следовательно, чтобы некорректные данные не привели к некорректным выводам, необходимо проводить корректировки таких данных. Например, дублирующаяся или утраченная информация может стать причиной некорректной или неадекватной статистики («мусор на входе – мусор на выходе»). Ввиду большого спектра 16 возможных несоответствий в данных и большого объема данных их очистка считается одной из самых крупных проблем в технологии хранилищ данных. Приложения очистки данных обычно выполняют одну или несколько следующих функций: 1. Парсинг. Имя и адрес клиента часто хранится в текстовых полях свободного формата. Текст свободного формата иногда труден для разбиения на самостоятельные подстроки, соответствующие типу поля, к которому они относятся (индекс, область, город, улица и другие данные подобного характера). Программное обеспечение, осуществляющее парсинг, распознает такие подстроки и назначает им соответствующие поля. Например, приложение Firstlogic I.D. Centic содержит функции парсинга, включающие в себя возможность идентификации компонент имени, должности, компании и адреса даже в случае непоследовательно введенных данных. 2. Стандартизация. Данные имен и адресов могут вводиться в различных форматах, многие из которых вполне грамматически корректны. Например, «Улица», «ул.» и «ул» обозначают одно и то же очевидное понятие в составе адреса. Программы стандартизации трансформируют такие поля в согласованный набор обозначений, подходящих для Почтовой службы. 3. Проверка допустимости. К этой функции относятся средства распознавания допустимости вводимых данных. Например, приложение компании Firstlogic, объединенное с программой проверки допустимости и файлами почтовых адресов (postal address files, PAFs) позволяет проверить допустимость международных адресных данных. 4. Улучшение. В данной функции используются ряд дополнительных данных, фактов или записей, изначально не содержавшиеся в исходных данных. Так, например, программное обеспечение Firstlogic содержит возможность присвоения клиентам пола на основании анализа его имени и других данных. Кроме того, многие производители программ используют географическую информацию, обозначающую гео-код: долготу и широту указанной местности. Наиболее же ценным дополнением данных о клиентах являются данные третьих фирм, содержащие демографическую, психографическую и другие виды информации. Например, программа Trillium Software специализируется на внедрении психографической и демографической информации в профайл клиента. 5. Согласование и консолидация. Как только имя и адрес очищены, для устранения дублированных данных о клиентах в рамках каждого списка и соединения данных из различных источников применяется функция согласования. Большинство таких средств содержат алгоритмы расстановки приоритетов между полями (в процессе согласования) и контроля очередности сравнения полей. 2.2.2. Моделирование хранилищ данных Традиционные подходы моделирования хранилищ данных основываются, как правило, на использовании временных отметок создания записей и их модификации. На данный момент известны три основных способа моделирования времени в хранилищах данных: 1. Модель снимков данных Снимок данных – это представление данных в определенный момент времени. Данная модель характерна для оперативных систем (OLTP). Обновления данных носят деструктивный характер, т. е. предыдущие значения атрибутов замещаются новыми значениями (рисунок 2.1). 17 Рисунок 2.1 – Модель снимков данных Модель имеет достаточно ограниченный круг применения в хранилищах данных, поскольку не обеспечивает хранения истории изменений. 2. Событийная модель Событийная модель (рисунок 2.2) используется для моделирования событий (данных), возникающих в определенные моменты времени. Данная модель подходит для моделирования транзакций, таких как: продажи, финансовые транзакции, складские операции и т. д. Рисунок 2.2 – Событийная модель 3. Статусная модель Статусная модель используется для моделирования состояния объектов во времени. Она подходит для представления данных, имеющий нетранзакционный характер. Существует три способа моделирования изменяющихся во времени статусов: a) непрерывная модель – для хранения промежутков времени используется одно поле даты. Дата начала следующего периода совпадает с датой окончания предыдущего; b) начало и конец – для хранения промежутков времени используется два поля – дата начала и дата окончания периода действия статуса; c) начало и длительность – для хранения промежутков времени используется одно поле даты (дата начала) и поле длительности периода. Большее распространение при создании статусных моделей получил способ «начало и конец» (рисунок 2.3). Рисунок 2.3 – Статусная модель Статусная и событийная модели являются взаимно дополняющими. Путем преобразований из одной можно получить другую. Например, зная остаток на счете на определенный момент и историю транзакций в событийной модели, можно восстановить все статусы счета (остатки на счете) в периоды между транзакциями. И наоборот, имея статусную модель остатков на счете, можно вычислить события (т. е. транзакции), которые происходили со счетом в начале (конце) каждого периода. 18 2.3. Способы аналитической обработки данных Для того чтобы существующие хранилища данных способствовали принятию управленческих решений, информация должна быть представлена аналитику в нужной форме, т. е. он должен иметь развитые инструменты доступа к данным хранилища и их обработки. Очень часто информационно-аналитические системы, создаваемые в расчете на непосредственное использование лицами, принимающими решения, оказываются чрезвычайно просты в применении, но жестко ограничены в функциональности. Такие статические системы называются Информационными системами руководителя (ИСР), или Executive Information Systems (EIS). Они содержат в себе множества запросов и, будучи достаточными для повседневного обзора, неспособны ответить на все вопросы которые могут возникнуть при принятии решений. Результатом работы такой системы, как правило, являются многостраничные отчеты, после тщательного изучения, которых у аналитика появляется новая серия вопросов. Однако каждый новый запрос, непредусмотренный при проектировании такой системы, должен быть сначала формально описан, закодирован программистом и только затем выполнен. Время ожидания в таком случае может составлять часы и дни, что не всегда приемлемо. 2.3.1. Системы поддержки принятия решений Системы поддержки принятия решений (СППР) – это класс ИС, предназначенных для решения задач поддержки всех стадий принятия решений в слабо структурируемых и неструктурируемых предметных областях непосредственными пользователями в процессе аналитического моделирования. Специфика СППР заключается, прежде всего, в предоставлении пользователю возможности получения нерегламентированных отчетов, различных методов анализа данных, что позволяет эффективнее решать слабо структурируемые и неструктурируемые задачи, вырабатывать специфические, нетиповые решения. Для решения подробного рода задач пользователю, как правило, требуется дополнительная уникальная и, зачастую, разовая информация из корпоративного информационного хранилища. Поэтому, в отличие от традиционных отчетных ИС, осуществляющих предоставление пользователю регламентной информации, СППР, как правило, обладают мощными механизмами интерактивного поиска, обобщения и анализа информации на основе нерегламентированных запросов. 2.3.1.1. Алгоритмы СППР Полная структура информационно-аналитической системы, построенной на основе хранилища данных, показана на рисунке 2.4. 19 Рисунок 2.4 – Структура корпоративной информационно-аналитической системы Важнейшей целью СППР является, в первую очередь, обеспечение пользователя технологией формирования информации. Так как процесс формирования нетиповых решений является трудно формализуемым, то вместо модулей, отражающих регламентную информацию, в составе СППР используется набор средств, каждое из которых может быть использовано пользователем для получения и анализа информации. СППР ориентированы не на процесс, а на набор возможностей, предоставляемых пользователю. В статических СППР конечному пользователю предоставляется не поддержка однозначно описанного процесса обработки данных, а набор возможностей, не зависящих от процесса. Поэтому использование статических СППР невозможно без глубоких знаний пользователем предметной области. Динамические СППР, напротив, ориентированы на обработку нерегламентированных запросов аналитиков к данным. Работа аналитиков с этими системами заключается в интерактивной последовательности формирования запросов и изучения их результатов. Поддержка принятия управленческих решений на основе накопленных данных может выполняться с помощью трех алгоритмов (рисунок 2.4): 1. Генерация запросов, с использованием детализированных данных. Используется в большинстве систем, нацеленных на поиск информации. Как правило, реляционные СУБД отлично справляются с возникающими здесь задачами. Общепризнанным стандартом языка манипулирования реляционными данными является SQL. Информационно-поисковые системы, обеспечивающие интерфейс конечного пользователя в задачах поиска детализированной информации, могут использоваться в качестве надстроек как над отдельными базами данных транзакционных систем, так и над общим хранилищем данных. 2. Оперативная аналитическая обработка данных, с использованием агрегированных показателей. Позволяют реализовать комплексный взгляд на собранную в хранилище данных информацию, обобщение и агрегацию, гиперкубическое представление и многомерный анализ данных. Здесь могут использоваться либо специальные многомерные СУБД, либо реляционные технологии. Во втором случае заранее агрегированные данные могут 20 собираться в БД звездообразного вида, либо агрегация информации может производиться на лету в процессе сканирования детализированных таблиц реляционной БД. 3. Интеллектуальный анализ данных, с использованием закономерностей. Главными задачами интеллектуального анализа данных являются поиск функциональных и логических закономерностей в накопленной информации, построение моделей и правил, объясняющие найденные аномалии и/или прогнозирующие развитие некоторых процессов. 2.3.2. Оперативная аналитическая обработка (On-Line Analytical Processing, OLAP) Технология комплексного многомерного анализа данных получила название OLAP (On-Line Analytical Processing). OLAP – это ключевой компонент организации хранилищ данных. Концепция OLAP была описана в 1993 г. Эдгаром Коддом и имеет следующие требования к приложениям для многомерного анализа:  многомерное концептуальное представление данных, включая полную поддержку для иерархий и множественных иерархий (ключевое требование OLAP);  предоставление пользователю результатов анализа за приемлемое время (обычно не более 5 с), пусть даже ценой менее детального анализа;  возможность осуществления любого логического и статистического анализа, характерного для данного приложения, и его сохранения в доступном для конечного пользователя виде;  многопользовательский доступ к данным с поддержкой соответствующих механизмов блокировок и средств авторизованного доступа;  возможность обращаться к любой нужной информации независимо от ее объема и места хранения. OLAP-система состоит из множества компонент. На самом высоком уровне представления система включает в себя источник данных, многомерную базу данных (МБД), предоставляющая возможность реализации механизма составления отчетов на основе технологии OLAP, OLAP-сервер и клиента. Система построена по принципу клиент-сервер и обеспечивает удаленный и многопользовательский доступ к серверу МБД (рисунок 2.5). Рисунок 2.5 – Структурная схема системы аналитической обработки Рассмотрим составные части OLAP-системы. Источники. Источником в OLAP-системах является сервер, поставляющий данные для анализа. В зависимости от области использования OLAP-продукта источником может служить хранилище данных, наследуемая база данных, содержащая общие данные, набор таблиц, объединяющих финансовые данные или любая комбинация перечисленного. Хранилище данных. Исходные данные собираются и помещаются в хранилище, спроектированное в соответствии с принципами построения хранилищ данных. ХД представляет из себя реляционную базу данных (РБД). Основная таблица ХД (таблица 21 фактов) содержит числовые значения показателей, по которым собирается статистическая информация. Многомерная база данных. Хранилище данных служит поставщиком информации для многомерной базы данных, которая является набором объектов. Основными классами этих объектов являются измерения и показатели. К измерениям относятся множества значений (параметров), по которым происходит индексация данных, например, время, регионы, тип учреждения и пр. Каждое измерение заполняется значениями из соответствующих таблиц измерений хранилища данных. Совокупность измерений определяет пространство исследуемого процесса. Под показателями понимаются многомерные кубы данных (гиперкубы). В гиперкубе содержатся сами данные, а также агрегатные суммы по измерениям, входящим в состав показателя. Показатели составляют основное содержание МБД и заполняются в соответствии с таблицей фактов. Вдоль каждой оси гиперкуба данные могут быть организованы в виде иерархии, представляющей различные уровни их детализации. Это позволяет создавать иерархические измерения, по которым при последующем анализе данных будут осуществляться агрегирование или детализация представления данных. Типичным примером иерархического измерения служит список территориальных объектов сгруппированных по районам, областям, округам. Сервер. Прикладной частью OLAP-системы является OLAP-сервер. Эта составляющая выполняет всю работу (в зависимости от модели системы), и хранит в себе всю информацию, к которой обеспечивается активный доступ. Архитектурой сервера управляют различные концепции. В частности, основной функциональной характеристикой OLAP-продуктов является использование МБД либо РБД для хранения данных. Клиентское приложение. Данные, структурированные соответствующим образом и хранимые в МБД доступны для анализа с помощью клиентского приложения. Пользователь получает возможность удаленного доступа к данным, формулирования сложных запросов, генерации отчетов, получения произвольных подмножеств данных. Получение отчета сводится к выбору конкретных значений измерений и построению сечения гиперкуба. Сечение определяется выбранными значениями измерений. Данные по остальным измерениям суммируются. 2.3.2.1. Многомерная модель данных в OLAP Основными понятиями многомерной модели данных являются:  Гиперкуб данных (Data Hypercube)  Измерение (Dimension)  Метки (Memders)  Ячейка (Cell)  Мера (Measure) Гиперкуб данных содержит одно или более измерений и представляет собой упорядоченный набор ячеек (рисунок 2.6). Каждая ячейка определяется одним и только одним набором значений измерений – меток. Ячейка может содержать данные – меру или быть пустой. 22 Рисунок 2.6 – Гиперкуб данных Измерением называется множество меток, образующих одну из граней гиперкуба. Примером временного измерения является список дней, месяцев, кварталов. Примером географического измерения может быть перечень территориальных объектов: населенных пунктов, районов, регионов, стран и т. д. Для получения доступа к данным пользователю необходимо указать одну или несколько ячеек путем выбора значений измерений, которым соответствуют необходимые ячейки. Процесс выбора значений измерений называется фиксацией меток, а множества выбранных значений измерений – множеством фиксированных меток. Рассмотрим многомерную модель данных на конкретном примере: трехмерных куб, определяющий продажи товаров в разных странах. В качестве мер в трехмерном кубе, изображенном на рисунке 2.7, использованы суммы продаж, а в качестве измерений – время, товар и магазины. Измерения представлены на определенных уровнях группировки: товары группируются по категориям, магазины – по странам, а данные о времени совершения операций – по месяцам. Рисунок 2.7 – Трехмерный куб, определяющий продажи товаров в различных странах «Разрезание» куба Для визуализации данных, хранящихся в кубе, применяются, как правило, привычные двумерные, т. е. табличные, представления, имеющие сложные иерархические заголовки строк и столбцов. 23 Двумерное представление куба можно получить, «разрезав» его поперек одной или нескольких осей (измерений). Для этого фиксируется значения всех измерений, кроме двух и в результате получается обычная двумерная таблица. В горизонтальной оси таблицы (заголовки столбцов) представлено одно измерение, в вертикальной (заголовки строк) – другое, а в ячейках таблицы – значения мер. При этом набор мер фактически рассматривается как одно из измерений – необходимо либо выбирать для показа одну меру (и тогда можем разместить в заголовках строк и столбцов два измерения), либо показываем несколько мер (и тогда одну из осей таблицы займут названия мер, а другую – значения единственного «неразрезанного» измерения). На рисунке 2.8 изображен двумерный срез куба для одной меры – количество продаж и двух «неразрезанных» измерений – страна и месяц. Рисунок 2.8 – Двумерный срез куба для одной меры Двумерное представление куба возможно и тогда, когда «неразрезанными» остаются и более двух измерений. При этом на осях среза (строках и столбцах) будут размещены два или более измерений «разрезаемого» куба (рисунок 2.9). Рисунок 2.9 – Двумерный срез куба с несколькими измерениями на одной оси В данном случае метки могут быть использованы неоднозначно. Они могут быть использованы как для «разрезания» куба, так и для ограничения (фильтрации) выбираемых данных – когда в измерении, остающемся «неразрезанным», нас интересуют не все значения, а их подмножество, например, три города из нескольких десятков лет. Значения меток отображаются в двумерном представлении куба как заголовки строк и столбцов. Метки могут объединяться в иерархии, состоящие из одного или нескольких уровней (levels). Например, метки измерения «магазин» могут быть объединены в иерархию с уровнями:  мир  страна  регион  город  магазин В соответствии с уровнями иерархии вычисляются агрегатные значения. Например, объем продаж для России имеет уровень «страна», для Воронежской области – уровень 24 «регион» и т. д. В одном измерении можно реализовать более одной иерархии, например, для времени: (Год, Квартал, Месяц, День) или (Год, Неделя, День). 2.3.2.2. OLAP на клиенте и на сервере Многомерный анализ данных может быть проведен с помощью различных средств, которые условно можно разделить на клиентские и серверные OLAP-средства. Как правило, OLAP-функциональность реализована в средствах статистической обработки данных и в некоторых электронных таблицах. Многие средства разработки содержат библиотеки классов или компонентов, позволяющие создавать приложения, реализующие простейшую OLAP-функциональность (такие, например, как компоненты Decision Cube в Borland Delphi и Borland C++ Builder). Помимо этого многие компании предлагают элементы управления ActiveX и другие библиотеки, реализующие подобную функциональность. Клиентские OLAP-средства применяются, как правило, при малом числе измерений (обычно не более шести) и небольшом разнообразии значений этих параметров – поскольку полученные агрегатные данные должны умещаться в адресном пространстве подобного средства, а их количество растет экспоненциально при увеличении числа измерений. Преимущества применения серверных OLAP-средств по сравнению с клиентскими OLAP-средствами сходны с преимуществами применения серверных СУБД по сравнению с настольными: в случае применения серверных средств вычисление и хранение агрегатных данных происходят на сервере, а клиентское приложение получает лишь результаты запросов к ним, что позволяет в общем случае снизить сетевой трафик, время выполнения запросов и требования к ресурсам, потребляемым клиентским приложением. 2.4. Интеллектуальный анализ данных (Data Mining) Термин Data Mining обозначает процесс поиска корреляций, тенденций и взаимосвязей посредством различных математических и статистических алгоритмов: кластеризации, регрессионного и корреляционного анализа и т. д. для систем поддержки принятия решений. При этом накопленные сведения автоматически обобщаются до информации, которая может быть охарактеризована как знания. Современные технологии Data Mining (discovery-driven data mining) перелопачивают информацию с целью автоматического поиска шаблонов (паттернов), характерных для каких-либо фрагментов неоднородных многомерных данных. В отличие от оперативной аналитической обработки данных (online analytical processing, OLAP) в Data Mining бремя формулировки гипотез и выявления необычных (unexpected) шаблонов переложено с человека на компьютер. В таблице 2.1 приведены отличия в формулировке задачач при использовании методов OLAP и Data Mining. Таблица 2.1 – Примеры формулировок задач при использовании методов OLAP и Data Mining. Data Mining OLAP Каковы средние показатели травматизма Какие факторы лучше всего предсказывают для курящих и некурящих? несчастные случаи? Каковы средние размеры телефонных счетов существующих клиентов в Какие характеристики отличают клиентов, сравнении со счетами бывших клиентов которые, по всей вероятности, собираются (отказавшихся от услуг телефонной отказаться от услуг телефонной компании? компании)? Какова средняя величина ежедневных Какие схемы покупок характерны для покупок по украденной и неукраденной мошенничества с кредитными карточками? кредитной карточке? 25 Выделяют пять стандартных типов закономерностей, которые позволяют выявлять методы Data Mining:  ассоциация;  последовательность;  классификация;  кластеризация;  прогнозирование; Ассоциация имеет место в том случае, если несколько событий связаны друг с другом. Типичным примером применения анализа данных является анализ структуры покупок. Например, исследование, проведенное в супермаркете, может показать, что 65% купивших кукурузные чипсы берут также и "кока-колу", а при наличии скидки за такой комплект "колу" приобретают в 85% случаев. Например, исследование, проведенное в компьютерном супермаркете, может показать, что 55% купивших компьютер берут также и принтер или сканер, а при наличии скидки за такой комплект принтер приобретают в 80% случаев. Располагая сведениями о подобной ассоциации, менеджерам легко оценить, насколько действенна предоставляемая скидка. Если существует цепочка связанных во времени событий, то говорят о последовательности. Так, например, после покупки дома в 45% случаев в течение месяца приобретается и новая кухонная плита, а в пределах двух недель 60% новоселов обзаводятся холодильником. С помощью классификации выявляются признаки, характеризующие группу, к которой принадлежит тот или иной объект. Это делается посредством анализа уже классифицированных объектов и формулирования некоторого набора правил. Кластеризация отличается от классификации тем, что сами группы заранее не заданы. С помощью кластеризации средства Data Mining самостоятельно выделяют различные однородные группы данных. Основой для всевозможных систем прогнозирования служит историческая информация, хранящаяся в БД в виде временных рядов. Если удается построить математическую модель и найти шаблоны, адекватно отражающие эту динамику, есть вероятность, что с их помощью можно предсказать и поведение системы в будущем. Допустим, имеется база данных кадрового агентства с данными о профессии, стаже, возрасте и желаемом уровне вознаграждения. В случае самостоятельного задания запросов аналитик может получить приблизительно такие результаты: средний желаемый уровень вознаграждения специалистов в возрасте от 25 до 35 лет равен 1200 условных единиц. В случае свободного поиска система сама ищет закономерности, необходимо лишь задать целевую переменную. В результате поиска закономерностей система сформирует набор логических правил "если ..., то ...". Могут быть найдены, например, такие закономерности «Если возраст < 20 лет и желаемый уровень вознаграждения > 700 условных единиц, то в 75% случаев соискатель ищет работу программиста» или «Если возраст >35 лет и желаемый уровень вознаграждения > 1200 условных единиц, то в 90% случаев соискатель ищет руководящую работу». Целевой переменной в описанных правилах выступает профессия. При задании другой целевой переменной, например, возраста, получаем такие правила: «Если соискатель ищет руководящую работу и его стаж > 15 лет, то возраст соискателя > 35 лет в 65 % случаев». Описанные действия, в рамках стадии свободного поиска, выполняются при помощи: 26  индукции правил условной логики (задачи классификации и кластеризации, описание в компактной форме близких или схожих групп объектов);  индукции правил ассоциативной логики (задачи ассоциации и последовательности и извлекаемая при их помощи информация);  определения трендов и колебаний (исходный этап задачи прогнозирования). На стадии свободного поиска также должна осуществляться валидация закономерностей, т.е. проверка их достоверности на части данных, которые не принимали участие в формировании закономерностей. Такой прием разделения данных на обучающее и проверочное множество часто используется в методах нейронных сетей и деревьев решений и будет описан в соответствующих лекциях. 27 3. Стандарты корпоративных ИС В середине прошлого века быстрый рост производства с существующим способом его планирования привел к заметному снижению темпов производства. Так как объемы производства были огромны, то возникали различные проблемы, связанные с циклом, временем производства, отгрузкой готового товара, а также доставкой товара до конечного потребителя. Стало понятно, что необходимо поднять планирование производства на новый качественный уровень. Повсеместное внедрение электронновычислительной техники с начала 60-х гг. ХХ в. обусловило тенденцию развития планирования. Таким образом, стали формироваться концепции, которые впоследствии перешли в разряд стандартов не только для производства, но и всего бизнеса в целом. Так появились стандарты MRP, MRPII и ERP. Затем такие концепции были развиты и использованы в стратегическом планировании бизнеса и интеграции конечного потребителя в процесс производства. В результате появились стандарты MPC, CSRP. слож ност ь C S R P E R P E R P У прав л ени е - м атериа льны м и и ф инанс овы м и + ресурсам и - закупкам и и сб ы том , П роц ессы - заказам и п отр еб ите лей и поставкам и, в н еш н его и - кадрам и в н утр ен н его - основны м и ф онд ам и сотруд ни честв а - складам и пред п ри яти я M R P II Б и з н е с -п л а н и р о в а н и е О перац и онны е и П л ани ров ани е M R P П л ани ров ани е м атериа льны х - продаж и про изво дств а - м атериа л ьны х потреб н остей проц есс ы - потреб ностей в м ощ ностях ресурсов - распреде л ения и нструм ентал ьны х Б ухгал тер и я средств потреб ностей предприятия ф и нансов ы е У чет Р асчеты М од е л и ров ани е ход а пр ои зв од ств а с п окупател ям и и постав щ и кам и (C u s to m e r ( M a te r ia l R e q u ir e m e n ts P la n n in g ) M R P II (M a n u fa c tu rin g ( E n te r p r is e R e s o u rc e s R e s o u rc e s P la n n in g ) P la n n in g ) S y n c h r o n iz e d R e s o u rc e P la n n in g ) 6 0 -е г .г . 8 0 -е г .г . 9 0 -е г .г . 2000 г Х Х I Х Х век Х Х век Х Х век век - ны не врем я Рисунок 3.1 – История развития корпоративных информационных систем 3.1. Методология планирования материальных потребностей предприятия MRP 3.1.1. История систем MRP Любая производственная компания борется за конкурентоспособность своих товаров на рынке, преследуя при этом следующие основные цели:  снижение реальной себестоимости продукции;  повышение производительности производства за счет эффективного планирования производственных мощностей и ресурсов. С начала 60-х г.г., когда появилась возможность хранения и анализа больших объемов данных (время первых операционных систем и вычислительных комплексов для предприятий), стала развиваться отрасль разработки программного обеспечения для предприятий. Задача планирования потребностей в материалах (Materials Requirements Planning, MRP) оказалась той первой задачей, которая привела к созданию целой индустрии программного обеспечения для управления предприятием. Почему первые системы были ориентированы именно на работу с материалами? Управление материальными ресурсами - одна из важных областей планирования. 28 Успешное функционирование промышленного предприятия напрямую зависит от того, насколько хорошо и ритмично оно снабжается сырьем или комплектующими, насколько рационально используются складские площади, и, наконец, насколько тесно объемы выпуска связаны с заказами клиентов или потребностью рынка. Изменение оптимального соотношения любой из этих составляющих приводит к тем или иным проблемам: перебои с поставками сырья ведут к простоям оборудования и снижению выпуска продукции; поступление большего, чем необходимо, количества материалов может повлечь необоснованные потери в виде избыточных запасов на складах (обычно такие запасы называют "омертвленными затратами"). Решение задачи планирования потребностей в материалах реализуется с помощью алгоритма, который также носит название MRP-алгоритма. MRP-алгоритм – это алгоритм оптимального управления заказами на готовую продукцию, производством и запасами сырья и материалов. MRP-методология – это реализация MRP-алгоритма с помощью компьютерной системы. Реализация системы, работающей по этой методологии представляет собой компьютерную программу, позволяющую оптимально регулировать поставки комплектующих в производственный процесс, контролируя запасы на складе и саму технологию производства. Методология MRP служит для реализации следующих целей:  минимизировать запасы на складах сырья и готовой продукции;  оптимизировать поступление материалов и комплектующих в производство и исключить простои оборудования из-за не прибывших вовремя материалов и комплектующих. В соответствии с этим, закупки материалов и комплектующих всего отрезка планирования автоматически распределяются по плановым периодам (например, дням), причем объем и время закупок рассчитываются так, чтобы в каждый плановый период на предприятие поступало именно столько материалов и комплектующих, сколько требуется производству в этом плановом периоде. Главной задачей MRP является обеспечение гарантии наличия необходимого количества требуемых материалов и комплектующих в любой момент времени в рамках срока планирования, наряду с возможным уменьшением постоянных запасов, а следовательно разгрузкой склада. Проблема наличия необходимых материалов и комплектующих в нужное время, в нужном месте и в нужном количестве особенно актуальна для массовых сборочных производств, где простои конвейера недопустимы. Изначально MRP системы разрабатывались для использования на 1 производственных предприятиях с дискретным типом производства, например:  Сборка на заказ (Assembly-To-Order, ATO)  Изготовление на заказ (Make-To-Order, MTO)  Изготовление на склад (Make-To-Stock, MTS)  Серийное (RPT) Если предприятие имеет процессное производство (Process Industry, ContinuousBatch Processing), то применение MRP-методологии оправдано в случае длительного производственного цикла. 1 Дискретный тип производства предполагает, что для каждого изделия есть ведомость материалов и состав изделия. 29 MRP системы базируются на планировании материалов для оптимальной организации производства и включают непосредственно функциональность MRP, функциональность по описанию и планированию загрузки производственных мощностей CRP (Capacity Resources Planning) и имеют своей целью создание оптимальных условий для реализации производственного плана выпуска продукции. 3.1.2. Структура MRP системы 3.1.2.1. Терминология Материалы – все сырье и отдельные комплектующие, составляющие конечный продукт. В дальнейшем мы не будем делать различий между понятиями «материал» и «комплектующий»". Статус материала является основным указателем на текущее состояние материала. Каждый отдельный материал, в каждый момент времени, имеет статус в рамках MRPсистемы, например:  материал есть в наличии на складе,  материал есть на складе, но зарезервирован для других целей  материал присутствует в текущих заказах  заказ на материал планируется Как видно, статус материала отражает степень готовности этого материала быть пущенным в производственный процесс. 3.1.2.2. MRP–система как черный ящик Основные элементы MRP системы можно разделить на элементы, предоставляющие информацию, программную реализация алгоритмической основы MRP и элементы, представляющие результат функционирования программной реализации MRP. На рисунке 3.2 показаны входные и выходные параметры для MRP-системы. Рисунок 3.2 – Входные и выходные параметры для MRP-системы  Для работы MRP-модуля требуются следующие входные данные: Программа производства (Основной Производственный План-график (ОПП), Master Production Schedule (MPS)). MPS (Master Planning Scheduling) или обьемно-календарное планирование являлся первым стандартом управления бизнесом. (рисунок 3.3). Идея была проста – формируется план продаж («объем», с разбивкой по календарным периодам, отсюда – обьемно-календарное), по нему формируется план пополнения запасов (за счет производства или закупки) и оцениваются финансовые результаты по 30 периодам (в качестве которых используются периоды планирования или финансовые периоды). Основной производственный план, как правило, формируется для пополнения запаса готовой продукции или удовлетворения заказов потребителей. Рисунок 3.3 – MPS-система   На практике разработка ОПП представляется петлей планирования. Первоначально формируется черновой вариант для оценки возможности обеспечения реализации по материальным ресурсам и мощностям. Система MRP осуществляет детализацию ОПП в разрезе материальных составляющих. Если необходимая номенклатура и ее количественный состав не присутствует в свободном или заказанном ранее запасе или в случае неудовлетворительных по времени планируемых поставок материалов и комплектующих, ОПП должен быть соответствующим образом скорректирован. После проведения необходимых итераций ОПП утверждается как действующий и на его основе осуществляется запуск производственных заказов. Перечень составляющих конечного продукта (Ведомость материалов и состав изделия (ВМ), Bill Of Materials (BOM)) Спецификация состава изделия (Bill of Materials File - BOM) - документ, содержащий: o перечень сырья, материалов и комплектующих, необходимых для производства конечного изделия, с указанием нормативов по их использованию; o иерархическое описание структуры конечного изделия. Описание состояния материалов (Состояние запасов, Stock/Requirement List) Текущее состояние запасов отражается в соответствующих таблицах базы данных с указанием всех необходимых характеристик учетных единиц. Каждая учетная единица, вне зависимости от вариантов ее использования в одном изделии или многих готовых изделиях должна иметь только одну идентифицирующую запись с уникальным кодом. Как правило, идентификационная запись учетной единицы содержит большое количество параметров и характеристик, используемых MRP системой, которые можно классифицировать следующим образом: o общее описание - идентифицирующий код, характеристику, размер, вес и пр.; o данные о запасах: единица запаса, расположение, размер запаса, статус (например, находится на руках, на складе, в текущих заказах), оптимальный запас, страховой запас и пр.; o данные по закупкам и продажам для сырья, материалов и комплектующих: единица закупки/продажи, основные поставщики/покупатели, цена, время доставки, реквизиты поставщиков/покупателей, дополнительная информация (например, возможные задержки поставок); o данные по производству для полуфабрикатов и конечных изделий: размер партии, длительность производственного цикла. 31 Записи учетных единиц обновляются всякий раз при выполнении операций с запасами, например, запланированные к закупке, заказанные к поставке, оприходованные, брак и т.д. Основными результатами MRP-системы являются:  План Заказов (Planned Order Schedule – запланированный график заказов) определяет, какое количество каждого материала должно быть заказано в каждый рассматриваемый период времени в течение срока планирования. План заказов является руководством для дальнейшей работы с поставщиками и, в частности, определяет производственную программу для внутреннего производства комплектующих, при наличии такового.  Изменения к плану заказов (Changes In Planned Orders – изменения к запланированным заказам) являются модификациями к ранее спланированным заказам. Ряд заказов могут быть отменены, изменены или задержаны, а также перенесены на другой период. Также, MRP-система формирует некоторые второстепенные результаты, в виде отчетов, целью которых является обратить внимание на “узкие места” в течение планируемого периода, то есть те промежутки времени, когда требуется дополнительный контроль за текущими заказами, а также, для того чтобы вовремя известить о возможных системных ошибках возникших при работе программы. Итак, MRP-система формирует следующие дополнительные результаты-отчеты:  Отчет об «узких местах» планирования (Exception Report – отчет при отклонениях) предназначен для того, чтобы заблаговременно проинформировать пользователя о промежутках времени в течение срока планирования, которые требуют особого внимания, и в которые может возникнуть необходимость внешнего управленческого вмешательства. Типичными примерами ситуаций, которые должны быть отражены в этом отчете, могут быть непредвиденно запоздавшие заказы на комплектующие, избытки комплектующих на складах и т.п.  Исполнительный отчет (Performance Report) является основным индикатором правильности работы MRP-системы и имеет целью оповещать пользователя о возникших критических ситуациях в процессе планирования, таких как, например, полное израсходование страховых запасов по отдельным комплектующим, а также о всех возникающих системных ошибках в процессе работы MRP-программы.  Отчет о прогнозах (Planning Report) представляет собой информацию, используемую для составления прогнозов о возможном будущем изменении объемов и характеристик выпускаемой продукции, полученную в результате анализа текущего хода производственного процесса и отчетах о продажах. Также отчет о прогнозах может использоваться для долгосрочного планирования потребностей в материалах. 3.1.2.3. Логика работы MRP-системы: схема цикла На рисунке 3.4 приведен пример, иллюстрирующий логическую схему MRP-цикла. 32 Рисунок 3.4 – Пример MRP-цикла Собственно MRP-цикл состоит из следующих шагов: 1. Составляется таблица общих потребностей в материалах и комплектующих. Последовательность ее создания такова:  Древовидная структура состава изделия разворачивается в линейный список материалов и комплектующих (1а): o узловые элементы различных уровней сборки кодируются - корневому элементу присваивается код 0, элементам самого верхнего уровня сборки - код 1 и т.д. по уровням; o если некоторый элемент встречается на различных уровнях, ему присваивается код самого нижнего из этих уровней (и, таким образом, в линейном списке этот элемент встретится только один раз); o разузлование состава изделия происходит последовательно по уровням сначала обрабатывается уровень 0, затем уровень 1, и т.д. В приведенном ниже примере изделию A будет присвоен код 0, узлу C - код 1, узлам D и B - код 2. Узел B встречается на более высоком уровне сборки, но учитывается на нижнем уровне.  Из книги учета запасов переносятся данные о материалах и комплектующих, необходимых для производства конечного изделия, и, в 33 частности, данные о времени выполнения заказа на их поставку/производство (1б).  Переносятся плановые показатели выпуска конечного изделия из основного план-графика производства (1в).  По каждому материалу и узлу для каждого планового периода рассчитывается общая производственная потребность в этом материале/узле; при этом используются данные состава изделия (количество каждого материала/узла, необходимое для производства конечного изделия или промежуточного узла) и информация о времени поставки/производства материалов и комплектующих. В приведенном примере общая потребность в элементе В во втором плановом периоде (она равна 400) получается так: потребность производства А в элементе В в третьем плановом периоде - 200 элементов (100·2), потребность производства С в элементе В в третьем плановом периоде - тоже 200 элементов. С учетом того, что время поставки/производства элемента В - один плановый период, заказ элемента В записывается во второй плановый период в количестве 400 единиц (200+200). Аналогично рассчитываются остальные ячейки таблицы. 2. По каждому материалу на каждый плановый период считается чистая потребность в этом материале. Различают понятия полной потребности в материале, которая отображает то количество, которое требуется пустить в производство, и чистой потребности, при вычислении которой учитывается наличие всех страховых и зарезервированных запасов данного материала. Заказ в системе автоматически создается по возникновению отличной от нуля чистой потребности. При этом используются данные о состоянии запасов. Чистая потребность считается по формуле: Чистая потребность = полная потребность – инвентаризовано на руках – страховой запас – зарезервировано для других заказов О страховом запасе. В идеале MRP-система не должна создавать страховых запасов. Однако в реальности случаются непредвиденные и неустранимые срывы поставок материалов. Для поддержания процесса производства в подобных ситуациях создают страховой запас. Его размер определяется заранее компетентными лицами и зависит от конкретных условий производственного процесса. 3. По ненулевым чистым потребностям формируется график заказов на закупку/производство материалов и комплектующих. При его создании учитывается время выполнения каждого заказа. 4. Просматриваются заказы, сгенерированные ранее текущего периода планирования. В случае необходимости система пересчитывает сроки и размер заказа и вносит корректировки в сформированный ранее план-график закупок. Эти изменения автоматически регистрируются в базе данных о состоянии запасов (поскольку создание, отмена или модификация заказа влияет на статус соответствующего ему материала). Представленная схема работы MRP-цикла очень упрощена. В реальности необходимо учитывать огромный спектр особенностей конкретного производственного процесса (например, широкий ассортимент производимых товаров, конструктивную сложность конечных изделий, территориальную разбросанность складов, регулярные сбои поставок комплектующих). Поэтому MRP-системам приходится просчитывать огромное количество информации, и длительность MRP-цикла может измеряться часами даже на современном уровне развития вычислительной техники. 34 3.1.3. Недостатки методологии MRP и ее дальнейшее развитие Даже такой поверхностный обзор методологии MRP обнаруживает ее "узкие" места. 1. Отсутствие контроля выполнения плана закупок и механизма корректировки этого плана в случае возникновения ситуаций, мешающих его нормальному исполнению. Даже самый совершенный график закупок материалов не может гарантировать, что, например, служащие чего-нибудь в нем не напутают, или что в нужный момент на счету у предприятия будут деньги для оплаты поставок. Поэтому сгенерированные MRP-модулем заказы могут оказаться нереализованными, что потребует корректировки сформированного им плана закупок. Но ни фиксация сбоев в выполнении плана поставок, ни соответствующая корректировка плановых заданий в MRP-модуль не заложены. Запускать MRP-цикл заново каждый раз при обнаружении нарушений неэффективно, так как это занимает много времени и требует больших ресурсов. 2. Ограниченный учет производственных факторов. Одно лишь детальное планирование материальных потребностей не может обеспечить эффективное выполнение производственного плана. Необходимо еще оценить, хватит ли для этого производственных мощностей, трудовых и финансовых ресурсов. Помимо этого, для управления себестоимостью продукции (одна из целей разработки MRPметодологии) одного материального учета мало: нужно проанализировать и другие факторы производственного процесса. Недостатки медологии MRP определили направления ее дальнейшего развития. Были созданы новые концепции планирования, так или иначе использующие идеи, заложенные в MRP: Closed Loop MRP (планирование потребностей в материалах в замкнутом цикле), CRP (Capacity Requirements Planning, планирование потребности в мощностях). 3.1.4. Closed Loop MRP: планирование потребностей в материалах в замкнутом цикле Удешевление компьютеров, доступность вычислительных систем реального времени и опыт работы с MRP позволили в конце 70-х годов создать расширенную модификацию MRP-методологии - методологию планирования материальных потребностей в замкнутом цикле. Термин «в замкнутом цикле» отражает основную особенность новой методологии осуществление обратной связи по состоянию выполнения сформированных планов. Помимо базовой функции планирования потребности в материалах, Closed Loop MRP-модули содержат дополнительную функцию - контроль фактического состояния производства и выполнения заказов на закупку материалов и комплектующих. Если анализирующая подсистема модуля выявила значительные нарушения плановых показателей, она инициирует внесение корректив в ранее принятые планы. Модификация старых планов выполняется в режиме «MRP-цикл с учетом чистых изменений». Его отличие от обычного MRP-цикла заключается в том, что обрабатываются только те изменения, которые появились со времени последнего прогона MRP. Это позволяет быстро привести график закупок в соответствие с реальной ситуацией. 3.1.5. CRP – система планирования производственных мощностей Методология CRP возникла в результате распространения принципов MRP на более широкий, чем управление материалами, круг задач. Основная задача методологии CRP - проверить выполнимость основного планграфика с точки зрения имеющегося оборудования и, если он выполним, оптимизировать загрузку производственных мощностей. Для работы CRP-модуля требуется следующая входная информация: 35 1. Составленный MRP-модулем график заказов на закупку/производство материалов и комплектующих (Planned Order Schedule). Стоит отметить, что запуск CRP возможен только после того, как отработало MRP, потому что исходными данными для CRP являются также результаты работы MRP в виде плановых заказов по номенклатурным позициям зависимого спроса, а не только по номенклатурным позициям независимого спроса. 2. Данные об имеющихся мощностях - документ, максимально полно раскрывающий информацию о каждом рабочем центре, в том числе: o общую информацию - идентифицирующий код, название, описание структуры рабочего центра, его мощность и пр.; o состав производственного оборудования - список машин и механизмов данного рабочего центра с указанием идентифицирующих кодов, обслуживающего персонала, производственных операций, выполняемых в привязке к этим машинам и механизмам, и нормативной трудоемкости этих операций. Рабочий центр – это определенная производственная мощность, состоящая из одной или нескольких машин (людей и/или оборудования), которая в целях планирования потребности в мощностях (CRP) и подробного календарного планирования может рассматриваться как одна производственная единица. Можно сказать, что рабочий центр – это группа взаимозаменяемого оборудования, расположенная на локальном производственном участке. Для работы CRP необходимо предварительное формирование рабочего календаря рабочих центров с целью вычисления доступной производственной мощности. 3. Технологическая схема изготовления конечного изделия (Routing Plan) - документ, описывающий все операции, необходимые для изготовления конечного изделия, с указанием для каждой производственной операции: o содержания операции; o рабочего центра, в котором она должна выполняться; o оборудования этого рабочего центра, используемого для выполнения операции; o времени операции в человеко-часах, включая вспомогательное время (например, на переналадку оборудования). Здесь указываются все сведения о порядке осуществления технологических операций и их характеристиках (технологические времена, персонал, другая информация). Этот массив данных вместе с первым массивом (MPS) формирует загрузку рабочих центров. Механизм работы CRP-модуля принципиально похож на механизм MRP. Вместо основного план-графика производства в нем используется график заказов на закупку/производство материалов и комплектующих, поступающий из MRP-модуля. Роль спецификации состава изделия играет технологическая схема изготовления конечного изделия, каждый уровень сборки конечного изделия характеризуется набором операций, необходимых для изготовления определенного узла. На основе анализа исходной информации CRP-модуль считает необходимые для выполнения производственного планграфика мощности, сравнивает их с имеющимися на предприятии и, в зависимости от результата, формирует на выходе следующие данные: 1. Величину превышения/недостатка производственных мощностей. В этом случае плановикам следует изменить производственную программу и повторить процесс сначала. 2. Если мощностей хватает, автоматически составляются следующие документы. o План загрузки производственных мощностей - документ, который показывает для каждой единицы производственных мощностей степень ее загрузки в каждый плановый период. 36 o План загрузки рабочего персонала - документ, аналогичный предыдущему. Определяет величину занятости каждого производственного рабочего в каждый плановый период. o План-график производственных работ - документ, определяющий последовательность и характеристику операций, совершаемых на каждой производственной единице в каждый плановый период. По этому документу впоследствии строится вся работа предприятия по производству конечного изделия. Ниже приведена типовая структура представляемой в нем информации для каждой производственной единицы. Список операций для производственной единицы № (название), обслуживаемой рабочими (перечень) на (плановый период) номер содержание номер кол-во кол-во кол-во производственного операции материала материала единиц часов заказа выпуска обработки CRP информирует обо всех расхождениях между планируемой загрузкой и имеющимися мощностями, позволяя предпринять необходимые регулирующие воздействия. При этом каждому изготавливаемому изделию назначается соответствующий технологический маршрут с описанием ресурсов, требуемых на каждой его операции, на каждом рабочем центре. Если все доступные возможности увеличения производительности не достаточны, чтобы удовлетворить требования MRP, то может возникнуть потребность заново перепланировать MPS. В простейших бизнес-моделях MRP-систем производительность рабочих центров обычно считается неограниченной и такие проблемы не возникают, однако, поскольку реальная производительность всегда ограничена, то современные MRPсистемы предоставляют возможность производить планирование в условиях ограниченных ресурсов. На рисунке 3.5 приведен пример «адаптации» загрузочного профиля к реальным производственным мощностям. Так как очевидна перегрузка во 2 – 4 периодах, то необходимо принять меры к ее ликвидации. Стандартно применяются следующие варианты: o распределение нагрузки на другие периоды, когда загрузка не достигает нормального уровня; o увеличить доступную мощность – например, объявить сверхурочные работы; o передать работы на субконтракт. Рисунок 3.5 – Начальный профиль загрузки 37 Рисунок. 3.6 Адаптированный загрузочный профиль На рисунке 3.6 представлены стандартные рецепты, позволяющие добиться равномерной загрузки производственных мощностей в пределах норм загрузки. Следует отметить, что, несмотря на близость плановых механизмов, техническая реализация CRP гораздо сложнее, чем реализация MRP. В CRP требуется учесть большее количество параметров: в MRP каждому уровню сборки конечного изделия сопоставляются однородные характеристики - материалы и комплектующие, тогда как в CRP каждому уровню изготовления конечного изделия сопоставляются неоднородные характеристики - операции (которые различаются, помимо содержания, рабочими центрами, машинами, трудовыми ресурсами, привлекаемыми для их совершения). При этом окончательный результат работы CRP содержит, помимо оценки необходимых мощностей, распределение работ по времени. Это очень ресурсоемкая вычислительная задача. Объединение принципов MRP, Closed Loop MRP, CRP в рамках единой концепции привело к созданию новой методологии планирования - MRPII 3.2. Планирование производственных ресурсов MRPII 3.2.1. История систем MRPII В 80-х годах базовые принципы методологий MRP (Material Requirements Planning, планирование потребности в материалах), CRP (Capacity Requirements Planning, планирование потребности в мощностях), Closed Loop MRP (планирование потребностей в материалах в замкнутом цикле) были суммированы в единую методологию планирования - MRP II (Manufactory Resource Planning, планирование производственных ресурсов). Римская цифра «II» в названии новой методологии MRP II возникла ввиду сходности аббревиатур Manufactory Resource Planning и Material Requirements Planning, и указывает на более высокий уровень планирования по сравнению с Material Requirements Planning. Иногда ее опускают, если из контекста понятно, о какой системе идет речь. Методология MRP II описывает сквозное планирование и управление цепочкой «сбыт - производство - склад – снабжение». В отличие от предшествующих методологий планирования, она фокусируется на оперативном планировании и управлении всем производственным процессом, а не отдельными его фрагментами. Реализация методологии MRP II в конкретной информационной системе предполагает наличие обратной связи, информирующей о качестве выполнения сформированных планов и позволяющей, при необходимости, внести коррективы в эти планы. Первоначально методология MRP II разрабатывалась для сборочных (дискретных) производств. Классическим примером дискретного производства является машиностроение. Не вдаваясь в детали, дискретное производство можно определить так: это производство по сборке конечного изделия, основанное на иерархическом описании 38 состава изделия. Впоследствии аналогичные принципы и методы планирования были разработаны и для других типов производств. 3.2.2. Структура MRPII системы MRPII-система должна состоять из следующих функциональных модулей (рисунок 3.7): 1. Планирование развития бизнеса (Составление и корректировка бизнес-плана) 2. Планирование деятельности предприятия 3. Планирование продаж 4. Планирование потребностей в сырье и материалах 5. Планирование производственных мощностей 6. Планирование закупок 7. Выполнение плана производственных мощностей 8. Выполнение плана потребности в материалах 9. Осуществление обратной связи Модуль планирования развития бизнеса определяет миссию компании: её нишу на рынке, оценку и определение прибылей, финансовые ресурсы. Фактически, он утверждает, в условных финансовых единицах, что компания собирается произвести и продать, и оценивает, какое количество средств необходимо инвестировать в разработку и развитие продукта, чтобы выйти на планируемый уровень прибыли. Таким образом, выходным элементом этого модуля является бизнес-план. Модуль планирования продаж оценивает (обычно в единицах готового изделия), какими должны быть объем и динамика продаж, чтобы был выполнен установленный бизнес-план. Изменения плана продаж, несомненно, влекут за собой изменения в результатах других модулей. Модуль планирования производства утверждает план производства всех видов готовых изделий и их характеристики. Для каждого вида изделия в рамках выпускаемой линии продукции существует своя собственная программа производства. Таким образом, совокупность производственных программ для всех видов выпускаемых изделий, представляет собой производственный план предприятия в целом. Модуль планирования потребности в материалах (или видах услуг) на основе производственной программы для каждого вида готового изделия определяет требуемое расписание закупки и/или внутреннего производства всех материалов комплектующих этого изделия, и, соответственно, их сборку. Модуль планирования производственных мощностей преобразует план производства в конечные единицы загрузки рабочих мощностей (станков, рабочих, лабораторий и т.д.) Модуль обратной связи позволяет обсуждать и решать возникающие проблемы с поставщиками комплектующих материалов, дилерами и партнерами. Тем самым, этот модуль собственно и реализует знаменитый "принцип замкнутой петли" (closed loop principle) в системе. Обратная связь особенно необходима при изменении отдельных планов, оказавшихся невыполнимыми и подлежащих пересмотру. 39 Рисунок 3.7 – Взаимодействие модулей в MRPII-системе 3.2.2.1. MRPII–система как черный ящик На рисунке 3.9 показаны входные и выходные параметры для MRPII-системы. Легко видеть, что эти параметры практически совпадают с параметрами для MRPсистемы, но к обычной линейной последовательности операций добавляются две петли обратной связи: петля обратной связи по доступным материалам для производства, и петля обратной связи по доступным производственным мощностям. 40 Рисунок 3.9 – Входы и выходы MRPII-системы 3.2.3. Логика работы MRP II-системы, ориентированной на сборочное (дискретное) производство В работе MRP II-системы четко выделяются три этапа (рисунок 3.10). Первые два предполагают реализацию методологии MRP II и заканчиваются утверждением планов. Последний же, протекающий параллельно с реальным производственным процессом, включает контроль выполнения сформированных планов и оперативное, по мере необходимости, внесение поправок в ход производства: 41 Рисунок 3.10 – Этапы работы MRPII-системы 1. На основе заказов независимого спроса формируется основной производственный план-график. o По данным производственного плана, исследований рынка, прогноза спроса, портфеля заказов на продукцию составляется предварительный план-график выпуска конечных изделий. o Запускается процедура RCCP (Rough Cut Capacity Planning, предварительное планирование мощностей) - быстрой проверки выполнимости составленного плана с точки зрения имеющихся мощностей и существующей технологии производства. Эта процедура предполагает создание потока заказов зависимого спроса между подразделениями предприятия, задействованными в производственном процессе, и проверку выполнимости этих заказов на заранее выделенных критических участках производства (т. е. в рабочих центрах, которые лимитируют или же определяют сменный выпуск изделий). o Если предварительный план-график выпуска конечных изделий признается реально осуществимым, то он становится основным планом выпуска. В противном случае в предварительный план-график вносятся изменения, и он подвергается повторному тестированию с помощью процедуры RCCP. 2. На основе принятого производственного план-графика планируются потребности в материалах, мощностях и финансовых ресурсах. o Запускается стандартный MRP-цикл, основным результатом которого является план-график заказов на закупку/производство материалов и комплектующих. o Запускается CRP-цикл, который дает план-график производственных работ, описывающий всю дальнейшую производственную деятельность. o По этим двум документам оценивается потребность в финансах (Financial Requirements Planning - FRP) для осуществления производственной 42 деятельности. То есть рассчитываются операционные расходы на закупку материалов, производственные нужды, зарплату производственному персоналу и т. д., и эти расходы распределяются по всему горизонту планирования. 3. В соответствии со сформированными план-графиками начинается реальная производственная деятельность. При этом MRP II-система осуществляет оперативное управление производственным процессом: контролирует выполнение плановых заданий и при необходимости вносит коррективы в действующие планы. o Выполнение плановых заданий оперативно регистрируется в MRP II-системе. Система, на основе сравнения фактических и нормативных показателей, анализирует протекание хозяйственного процесса. Например, для контроля выполнения CRP-планов MRP II-система в течение всего планового периода отслеживает величину производительности каждой производственной единицы. Фактическая производительность сравнивается с нормативным показателем производительности и, если отклонение превышает заранее заданную допустимую величину, система дает сигнал управленческому персоналу о необходимости срочного вмешательства в работу данной производственной единицы и принятия мер к повышению ее производительности. Такими мерами может служить, например, привлечение дополнительных рабочих или увеличение нормативного времени работы отстающей производственной единицы. o Аналогично система отслеживает потребление производственными единицами материалов и комплектующих и регистрирует отклонение фактических и нормативных показателей потребления по каждой производственной единице. Это позволяет быстро диагностировать ситуацию, когда производственная единица не развивает плановой производительности из-за недостаточного снабжения материалами. o Анализируя ход производственного процесса, MRP II-система ежедневно формирует сменные задания для рабочих центров (Operation lists), которые отсылаются руководителям рабочих центров. Сменные задания отражают последовательность проведения рабочих операций над сырьем и комплектующими на каждой единице производственных мощностей и длительность этих операций. В отличие от план-графика производственных работ, формируемого CRP-модулем, в этих цеховых заданиях автоматически учитывается уменьшение/увеличение скорости работы производственной единицы: сменные задания могут содержать как запоздавшие по каким-либо причинам производственные заказы (уменьшение скорости обработки), так и производственные заказы, запланированные на последующие плановые периоды (увеличение скорости обработки). o Точно так же, формируя скорректированные ежедневные задания на закупку/поставку сырья и комплектующих, MRP II-система регулирует работу снабженческих, сбытовых и складских структур предприятия. 3.2.4. Обратная связь (feedback) и её роль в MRPII-системе Чрезвычайно важно обратить внимание на функции обратной связи (feedback) в MRPII-системе. Например, если поставщики не способны поставить материалы/комплектующие в оговоренные сроки, они должны послать отчет о задержках, сразу, как только они узнают о существовании этой проблемы. Обычно, стандартная компания имеет большое количество просроченных заказов с поставщиками. Но, как правило, даты этих заказов не отражают в достаточной степени дат реальной потребности в этих материалах. На предприятиях же, управляемых системами класса MRPII, даты поставки являются максимально близкими к времени реальной потребности в поставляемых материалах. Поэтому крайне важно заранее поставить систему в 43 известность о возможных проблемах с заказами. В этом случае система должна сгенерировать новый план работы производственных мощностей, в соответствии с новым планом заказов. В ряде случаев, когда задержка заказов далеко не является исключением, в MRPII-системе задаётся объем минимального поддержания запасов "ненадежных" материалов на складе (safety stock). В настоящее время, системы MRPII класса прочно входят в жизнь крупных и средних производственных организаций. Основной и эффективной чертой этих систем является возможность планировать потребности предприятия на короткие промежутки времени (недели и даже дни) и осуществлять обратную связь (например, автоматически изменять ранее построенные планы производства при сбоях поставок или поломке оборудования) внося в систему данные о проблемах в реальном времени. Алгоритм работы MRPII-системы нацелен на внутреннее моделирование всей области деятельности предприятия. Его основная цель - учитывать и с помощью компьютера анализировать все внутрикоммерческие и внутрипроизводственные события: все те, что происходят в данный момент и все те, что запланированы на будущее. Как только в производстве допущен брак, как только изменена программа производства, как только в производстве утверждены новые технологические требования, MRPII-система мгновенно реагирует на произошедшее, указывает на проблемы, которые могут быть результатом этого и определяет, какие изменения надо внести в производственный план, чтобы избежать этих проблем или свести их к минимуму. Разумеется, далеко не всегда реально полностью устранить последствия того или иного сбоя в производственном процессе, однако MRPII-система информирует о них за максимально длительный промежуток времени, до момента их возникновения. Таким образом, предвидя возможные проблемы заранее, и создавая руководству предприятия условия для предварительного их анализа, MRPII-система является надежным средством прогнозирования и оценки последствий внесения тех или иных изменений в производственный цикл. Любая MRPII-система обладает определенным инструментарием для проведения планирования. Нижеперечисленные системные методологии являются фундаментальными рычагами управления любой MRPII-системы: 1. Методология расчёта и пересчета MRP и CRP планов. 2. Принцип хранения данных о внутрипроизводственных и внутрикоммерческих событиях, которые необходимы для планирования. 3. Методология описания рабочих и нерабочих дней для планирования ресурсов. 4. Установление горизонта планирования (planning horizon) - промежутка времени, на который составляется план на уровне отдельного предприятия. Горизонт планирования (planning horizon, time fence (временные рамки)) — период времени, в течение которого система планирования «видит» плановые показатели. Обычно горизонт планирования не выбирается меньше периода оборачиваемости средств или максимальной длительности производства продукции. Эти методологии и принципы не являются универсальными и определяются исходя из постановки конкретной задачи, применительно к конкретному коммерческому предприятию. 3.2.5. Развитие MRP II: распространение на «недискретные» типы производств Как было отмечено выше, изначально методология MRP II и MRP II-системы разрабатывались для сборочных производств. Однако свыше 40% промышленных 44 компаний мира представляют собой предприятия с другим типом производства процессным. По классификации, предложенной Gartner Group, все многообразие производств можно свести к трем основным типам: o проектное производство; o дискретное производство; o процессное производство. Проектное производство - это уникальное разовое производство (например, ракетостроение, судостроение), технология которого заранее не задана. Основным отличительным признаком дискретного производства является наличие счетных единиц выпускаемой продукции, которая, в свою очередь, собирается из отдельных компонент. Поэтому в дискретном производстве основой для изготовления (сборки) конечного продукта является иерархическое описание состава изделия (т. е. конструкторская или производственная спецификация конечного изделия). Классический пример дискретного производства - машиностроение. В дискретных производствах выделяют несколько существенно различных видов организации производства: o изготовление на склад (Make-To-Stock - MTS): объем производства планируется, исходя из "оптимальной загрузки производственных мощностей"; при этом предполагается, что вся произведенная продукция найдет сбыт; o изготовление на заказ (Make-To-Order - MTO): объем выпуска планируется, исходя из поступивших заказов на продукцию, причем различают: o разработку на заказ (Engineering-To-Order - ETO), когда приходится начинать с проектирования заказанного изделия, разработки конструкторской и технологической документации; o сборку на заказ (Assembling-To-Order - ATO), при которой используется уже имеющаяся на предприятии конструкторская и технологическая документация на различные узлы, однако допускается небольшая вариабельность состава изделия, в зависимости от заказа клиента (при этом все исходные компоненты предполагаются имеющимися на складе). Процессное производство состоит из ряда технологических процессов (например, смешивание, растворение, нагрев), каждый из которых не может быть прерван в произвольный момент времени. Помимо конечного продукта в процессном производстве обычно выпускается множество побочных и сопутствующих продуктов. Технологический процесс, как правило, подразделяется на несколько этапов, описываемых своей рецептурой. На выходе одного и того же процесса могут получаться различные продукты, в зависимости, например, от концентрации исходных компонент, температурного режима, катализаторов. Некоторые процессы могут рекурсивно повторяться (рецикл). Для процессных производств характерны неразрывные внутренние связи между различными видами продукции, производимыми в ходе одного процесса. Например, при переработке нефти на одной установке одновременно получаются нефтепродукты от газойля и бензина до мазута и битума, причем состав выпускаемой продукции невозможно изменить. По свойству дискретности/непрерывности во времени выпуска конечного продукта, среди процессных производств выделяют, соответственно, повторяющиеся (например, фармация, пищевая промышленность, целлюлозно-бумажное производство, химическая промышленность) и непрерывные (например, энергетика, нефте- и газодобыча, нефтехимия, первичная металлургия). Для каждого из типов производств характерны своя специфика планирования и управления. Если в планировании дискретных производств исходят из объемных 45 показателей производственных планов и жестко заданного состава конечного изделия, то в проектных производствах опираются на список работ по проекту и их взаимосвязи (то есть составляют так называемые сетевые графики). В процессных производствах на первое место выходят показатели загрузки производственных мощностей и вариантность технологического процесса. Разработанная изначально для дискретного производства, методология MRP II не отвечала специфике других типов производств. Попытки "скорректировать" лежащую в ее основе математическую модель для применения, например, в процессном производстве, приводили к таким нереальным результатам, как отрицательные времена производства и отрицательные потребления ресурсов. Этот подход не стал эффективным в связи с принципиальными различиями дискретных и процессных производств. Поэтому для процессного и проектного производств были созданы оригинальные математические модели и алгоритмы решения задачи планирования ресурсов, что явилось основой создания MRP II-систем, ориентированных на "недискретные" типы производства. Характерной чертой классических MRP II-систем является специализация на конкретном (одном или нескольких) типе производства. Однако в последнее время производители MRP II-систем модифицируют свои продукты, расширяют функциональность, переносят на новые платформы. Это вызвано жесткой конкурентной борьбой на рынке информационных управленческих систем, и, как следствие, стремлением к максимальному удовлетворению потребностей заказчиков. В результате эволюции MRP II-систем появились системы нового класса (Enterprise Resource Planning, планирование корпоративных ресурсов). 3.3. Планирование ресурсов предприятия ERP В начале 1990-х гг. аналитическая компания Gartner Group ввела новое понятие. Системы класса MRPII в интеграции с модулем финансового планирования (Finance Requirements Planning - FRP) получили название систем планирования ресурсов предприятий (Enterprise Resource Planning - ERP). Иногда также встречается термин «планирование ресурсов в масштабах предприятия» (Enterprise-wide Resource Planning). ERP-система – информационная система для идентификации и планирования всех ресурсов предприятия, которые необходимы для осуществления продаж, производства, закупок и учета в процессе выполнения клиентских заказов. 3.3.1. Состав ERP-системы ERP-системы предназначены для управления всей финансовой и хозяйственной деятельностью предприятия. Они используются для оперативного предоставления руководству предприятия информации, необходимой для принятия управленческих решений, а также для создания инфраструктуры электронного обмена данными предприятия с поставщиками и потребителями. ERP-системы позволяют использовать одну интегрированную программу вместо нескольких разрозненных. Единая система может управлять обработкой, логистикой, дистрибуцией, запасами, доставкой, выставлением счетов-фактур и бухгалтерским учетом. Реализуемая в ERP система разграничения доступа к информации предназначена (в комплексе с другими мерами информационной безопасности предприятия) для противодействия как внешним угрозам (например, промышленному шпионажу), так и внутренним (например, хищениям данных). Внедряемые в связке с системами контроля качества и поддержки отношений с клиентами, ERP-системы нацелены на максимальное удовлетворение потребностей компаний в средствах управления бизнесом. В типизированных ERP-системах реализованы следующие основные функциональные блоки: o Планирование продаж и производства. Результатом действия блока является разработка плана производства основных видов продукции. 46 o Управление спросом. Блок предназначен для прогноза будущего спроса на продукцию, определения объема заказов, которые можно предложить клиенту в конкретный момент времени, определения спроса дистрибьюторов, спроса в рамках предприятия и др. o Укрупненное планирование мощностей. Используется для конкретизации планов производства и определения степени их выполнимости. o Основной план производства (план-график выпуска продукции). Определяется продукция в конечных единицах (изделиях) со сроками изготовления и количеством. o Планирование потребностей в материалах. Определяются виды материальных ресурсов (сборных узлов, готовых агрегатов, покупных изделий, исходного сырья, полуфабрикатов и др.) и конкретные сроки их поставки для выполнения плана. o Спецификация изделий. Определяет состав конечного изделия, материальные ресурсы, необходимые для его изготовления, и др. Фактически спецификация является связующим звеном между основным планом производства и планом потребностей в материалах. o Планирование потребностей в мощностях. На данном этапе планирования более детально, чем на предыдущих уровнях, определяются производственные мощности. o Маршрутизация / рабочие центры. С помощью этого блока конкретизируются как производственные мощности различного уровня, так и маршруты, в соответствии с которыми выпускаются изделия. o Проверка и корректировка цеховых планов по мощностям. o Управление закупками, запасами, продажами. o Управление финансами (ведение Главной книги, расчеты с дебиторами и кредиторами, учет основных средств, управление наличными средствами, планирование финансовой деятельности и др.). o Управление затратами (учет всех затрат предприятия и калькуляция себестоимости готовой продукции или услуг). o Управление проектами/программами. o Управление персоналом. Кроме того, для ERP-систем практически обязательным является наличие возможности электронного обмена данными с другими приложениями, а также моделирования ряда ситуаций, связанных в первую очередь с планированием и прогнозированием. В соответствии с современными требованиями ERP-система должна помимо ядра, реализующего стандарт MRPII (или его аналога для непрерывного производства), включать следующие модули: o управления логистическими цепочками (Distribution Resource Planning - DRP); o усовершенствованного планирования и составления производственных графиков (Advanced Planning and Scheduling - APS); o управления взаимоотношениями с клиентами (Customer Relation Management CRM, ранее назывался модулем автоматизации продаж - Sales Force Automation); o электронной коммерции (Electronic Commerce - ЕС); o управления данными об изделии (Product Data Management - PDM); o надстройки Business Intelligence, включающий решения на основе технологий OLAP (On-Line Analytical Processing) и DSS (Decision Support Systems); o автономный модуль, отвечающий за конфигурирование системы (Standalone Configuration Engine - SCE); o окончательного (детализированного) планирования ресурсов FRP (Finite Resource Planning). 47 3.3.2. Основные различия систем MRP и ERP Выше было отмечено, что основой ERP-системы является ядро, реализованное на базе стандарта MRPII. Тем не менее ERP-система не является простым расширением системы MRP. MRP была построена и развивалась как замкнутая система, обслуживающая сугубо внутренние потребности предприятия. ERP имеет выходы во внешнюю среду и предназначена для решения задач комплексного управления предприятием. Основные отличия систем заключаются в следующем. o ERP поддерживает различные типы производств (сборочного, обрабатывающего и др.) и видов деятельности предприятий и организаций (например, системы могут быть установлены не только на промышленных предприятиях, но и в организациях сферы услуг - банках, страховых и торговых компаниях и др.). o ERP поддерживает планирование ресурсов по различным направлениям деятельности предприятия (а не только производства продукции). o ERP-системы ориентированы на управление распределенным предприятием (отражающим взаимодействие производства, поставщиков, партнеров и потребителей) в рамках ИИС. Такое предприятие может представлять собой автономно работающие компании, входящие в состав корпорации или концерна, географически распределенное, временное объединение предприятий, работающих над совместными проектами и др. o В ERP-системах больше внимания уделено финансовым подсистемам. o В ERP добавлены механизмы управления транснациональными корпорациями, включая поддержку нескольких часовых поясов, языков, валют, систем бухгалтерского учета и отчетности. o ERP имеет повышенные требования к инфраструктуре (Internet/Intranet), масштабируемости (до нескольких тысяч пользователей), гибкости, надежности и производительности программных средств и различных платформ. o Повышены требования к интегрируемости ERP-систем с приложениями, уже используемыми предприятием (CAD/CAM/CAE/PDM-системами, АСУТП, системами управления документооборотом, биллинговыми системами и др.), а также с новыми приложениями (например, электронного бизнеса). При этом именно на базе ERP-системы осуществляется интеграция всех приложений, используемых на предприятии. o В ERP больше внимания уделено программным средствам поддержки принятия решений и средствам интеграции с хранилищами данных (иногда включаемых в систему в виде нового модуля). В ряде ERP-систем разработаны развитые средства настройки (конфигурирования), интеграции с другими приложениями и адаптации (в том числе применяемые динамически в процессе эксплуатации систем). 3.4. Планирование ресурсов, синхронизированное с покупателем CSRP Более современной концепцией управления ресурсами предприятия является CSRP (customer synchronized resource planning, планирование ресурсов, синхронизированное с клиентом), захватывающая почти весь жизненный цикл товара. Такой подход позволяет на порядок точнее управлять стомостью товара, учитывая производство, продвижение и обслуживание товара данного типа, и учитывать все элементы его функционального жизненного цикла, а не только производства, как во всех стандартных системах предыдущих поколений. Рассмотрим пример. Покупатель использует браузер Интернет для доступа к Webсерверу производителя чтобы ввести заказ - стандартный или видоизмененный - в любое 48 время дня или ночи. Покупатель может изменить предыдущие заказы, проверить состояние еще не выполненных заказов или запросить новые возможности. Потому что такое взаимодействие интегрировано в основные бизнес-системы предприятия, деятельность по планированию, производству и/или обслуживанию покупателей может автоматически изменяться действиями покупателя. И деятельность предприятия синхронизируется с покупателем. CSRP - это первая бизнес методология, которая интегрирует деятельность предприятия, ориентированную на покупателе, в центр системы управления бизнесом. Потому то ее и можно назвать революционной. CSRP устанавливает методологию ведения бизнеса, основанную на текущей информации о покупателе. CSRP сдвигает фокус предприятия с планирования от потребностей производства к планированию от заказов покупателей. Информация о покупателях и услуги вплавляются в основу организации. Деятельность по производственному планированию не просто расширяется, а удаляется и заменяется запросами покупателей, переданными из подразделений организации, ориентированных на работу с покупателями. CSRP переопределяет практику бизнеса, фокусируя ее на рыночной активности, а не на производственной деятельности. Бизнес-процессы синхронизируются с деятельностью покупателей. 3.4.1. Управление отношениями с клиентами CRM ERP (Enterprise Resources Planning) системы применяются для оптимизации и автоматизации внутренней деятельности фирмы. Они направлены на усовершенствование таких процессов, как планирование, изготовление, учет и контроль. При разработке и внедрении ERP-систем в компании клиент рассматривается как "элемент внешнего мира" и определяющего влияния не оказывает. Другими словами, ERP-системы направлены на достижение конкурентных преимуществ за счет оптимизации внутренних бизнеспроцессов. Однако, принцип фокусирования бизнеса на оптимизации только внутренней деятельности самого предприятия в настоящее время безнадежно устарел. Многие подразделения предприятия, работая с внешним миром, разобщены между собой, хотя при этом зачастую имеют дело с одними и теми же контрагентами. Отсутствие единого подхода к работе с клиентом сразу же отзывается на эффективности работы на рынке — компания теряет массу возможностей увеличения продаж и повышению уровня лояльности клиентов. Между тем современные маркетинговые исследования говорят о том, что наличие солидной базы лояльных клиентов является сегодня основным и едва ли не единственным фактором устойчивости и процветания бизнеса. В настоящее время конкуренция в большинстве отраслей высока как никогда, и важнейшей становится проблема удержания имеющихся клиентов, а не приобретения новых. Согласно статистике IDC Research Group, уменьшение числа клиентов, уходящих к конкурентам, на 5% в год приводит к росту прибыли на 25–55% в зависимости от отрасли. Управление отношениями с клиентами (Customer Relations Management, CRM) - это стратегия, основанная на применении таких управленческих и информационных технологий, с помощью которых компании аккумулируют знания о клиентах для выстраивания взаимовыгодных отношений с ними. Подобные отношения способствуют увеличению прибыли, т. к. привлекают новых клиентов и помогают удержать старых. CRM - это клиент-ориентированная стратегия, с одной стороны, формирования наценки «выше рыночной» за счет обеспечения индивидуального обслуживания каждого 49 клиента, а с другой — ориентации на долгосрочные отношения, в том числе и в ущерб краткосрочным экономическим задачам. Целью CRM является не просто увеличение объема продаж, а прибыльное «увязывание» потребностей клиента с возможностями продавца, что и требует совместной коллективной работы на клиента различных функциональных подразделений организации. Таким образом, CRM «в большом» — это стратегия «отличительного» ведения бизнеса. CRM «в малом» — собственно информационные технологии, позволяющие формализовать и автоматизировать различные аспекты взаимодействия с клиентами подразделений маркетинга, продаж и сервисного сопровождения на основе автоматических/автоматизированных процессов (в том числе сбытовых) и единого «информационного пространства» организации. CRM-продукты можно классифицировать по семи основным категориям: o SFA (Sales Force Automation) — автоматизация деятельности торговых представителей; o МА (Marketing Automation) — автоматизация деятельности маркетинга; o CSA, CSS (Customer Service Automation, Customer Service Support) — автоматизация службы поддержки и обслуживания клиентов; o Call/Contact Center Management — центры обработки вызовов, контакт-центры; o Field Service Management — управление территориально удаленными подразделениями или пользователями; o PRM (Partner Relationship Management) — управление взаимоотношениями с партнерами (не поставщиками, а элементами товаропроводящей сети, разделяющими риски); Help Desk — техническая поддержка пользователей. 3.4.1.1. SFA (Sales Force Automation) — автоматизация деятельности торговых представителей Основой системы CRM являются приложения автоматизации продаж (Sales Force Automation, SFA). На них возлагаются следующие функции:  ведение календаря событий и планирование работы;  управление контактами (благодаря ему ни один важный звонок или личное обращение не будут пропущены);  работа с клиентами (каждый клиент будет обслужен на высочайшем уровне, благодаря зафиксированной истории взаимодействия с ним);  мониторинг потенциальных продаж (ни одна потенциальная возможность не будет упущена, каким бы плотным не было расписание сотрудника);  поточная организация продаж (эффективное управление циклом продаж);  повышение точности прогнозов продаж;  автоматическая подготовка коммерческих предложений (освобождает сотрудников от рутинной работы);  предоставление информации о ценах;  автоматическое обновление данных о размере бонуса в зависимости от выполнения поставленных задач;  предоставление актуальной информации о состоянии дел в региональных представительствах;  формирование отчетов (эффективный инструментарий автоматического создания отчетов по результатам деятельности);  организация продаж по телефону (создание и распределение списка потенциальных клиентов, автоматический набор номера, регистрация звонков, прием заказов). 50 SFA дополняется sales-конфигуратором, позволяющим конфигурировать те или иные продукты из компонентов. Правила конфигурирования заложены в самом приложении, что дает возможность клиентам производить покупки через Интернет. 3.4.1.2. МА (Marketing Automation) — автоматизация деятельности маркетинга В современных CRM-системах SFA-приложения дополняются средствами автоматизации маркетинга (Marketing Automation, MA). Эти приложения позволяют:  организовывать маркетинговые кампании (предусмотрены инструменты планирования, разработки, проведения и анализа результатов маркетинговых акций, как традиционных, так и через Интернет);  создавать маркетинговые материалы и управлять ими (в том числе заниматься автоматической рассылкой);  генерировать список целевой аудитории (создание списков потенциальных клиентов и их распределение между торговыми представителями);  отслеживать бюджетирование и прогнозирование результатов маркетинговых кампаний;  вести маркетинговую энциклопедию (репозиторий информации о продуктах, ценах и конкурентах). Приложения МА предоставляют менеджерам по маркетингу мощный инструмент для разработки, проведения и анализа маркетинговых кампаний, а также осуществления других маркетинговых функций. С помощью совместно используемых MA- и SFAприложений можно формировать рабочие планы продавцов и отслеживать их выполнение. Пример 1. Хорошо известные всем пользователям электронных почтовых ящиков списки рассылки. Часто компания для лучшего «узнавания» интересов и потребностей своих клиентов организует подписку на рассылку новостей определенной тематики. Параллельно с рассылкой новостей компания получает возможность организовывать анкетирование потенциальных клиентов, и вести пропаганду своих товаров. 3.4.1.3. CSA, CSS (Customer Service Automation, Customer Service Support) — автоматизация службы поддержки и обслуживания клиентов Приложения автоматизации обслуживания клиентов (Customer Service Automation & Support, CSA/CSS) в последнее время приобрели первостепенное значение, так как в условиях жесткой конкуренции удержать прибыльного клиента можно, прежде всего, благодаря высокому качеству обслуживания. Как правило, к этой категории приложений относятся средства обработки вызовов и самообслуживания через Интернет. Приложения CSS позволяют удовлетворять индивидуальные потребности заказчиков быстро, точно и эффективно, обеспечивая выполнение следующих функций:  мониторинг потребностей клиента (сотрудники отдела обслуживания всегда в курсе проблем и предпочтений того или иного покупателя услуг);  мониторинг прохождения заявок (процесс отслеживается автоматически);  мониторинг мобильных продаж (в любой момент времени можно получить информацию о качестве выполнения услуги, ее стоимости, удовлетворенности клиентов, сроках выполнения заявки и др.);  ведение базы знаний (эффективный инструмент снижения себестоимости услуг — большинство проблем могут быть решены во время первого звонка клиента);  контроль над исполнением сервисных соглашений (автоматическое отслеживание сроков и условий);  управление запросами клиентов с помощью присвоения приоритетов. 51 Приложения CSS превращают отделы обслуживания клиентов из затратных в прибыльные. Будучи интегрированными с приложениями SFA и МА, они способствуют тому, чтобы каждый контакт клиента с компанией был использован для продажи дополнительных услуг (cross-sell) и более дорогих продуктов (up-sell). Пример 2. Работа служб курьерской доставки, таких, как UPS (http://www.ups.com), FedEx, является «прозрачной» для потребителя. Web-сервера этих компаний позволяют каждому клиенту узнать статус отправленного пакета, в том числе, где этот пакет находится, как транспортируется, время получения пакета и т.п. Прочие функции:  составление отчетов для высшего руководства;  интеграция с ERP (с бэк-офисом, Интернетом, внешними данными); Рабочее пространство любого современного офиса обычно делится на две зоны. Одна зона — это лицо компании, по которому клиенты могут судить о ее солидности и надежности. Другая же — это типичная кухня компании, куда доступ посторонних нежелателен. На рынке офисной недвижимости уже давно первую зону называют front-офисом, а вторую — back-офисом.  синхронизация данных (включая данные, хранящиеся в многочисленных портативных устройствах, серверах приложений и в различных базах);  электронная торговля (управление закупками B2B и B2C через систему EDI, Webсервер и другие средства);  мобильные продажи (генерация заказов, передача информации торговым представителям вне офиса в режиме реального времени через мобильные устройства). 3.4.1.4. Call/Contact Center Management — центры обработки вызовов, контактцентры Call-центры позволяют персонализировать отношения компании со своими клиентами, предоставлять им широкий спектр услуг и, конечно, экономить дорогостоящее время как самого клиента, так и персонала компании. Сall-центр - это место, куда поступают или откуда совершаются большое количество телефонных звонков. Многие современные организации, выполняющие задачи Call-центров, уже не вписываются в это определение. Теперь Call-центр способен не только принимать и обрабатывать запросы, поступающие по телефону, но использовать для контактов с клиентами обычную почту, факсимильную и мобильную связь, Интернет, SMS и т.д. Крупный call-центр может быть распределенным и связывать call-центры в разных концах страны. Такие современные центры обслуживания вызовов, использующие одновременно различные виды коммуникаций, принято называть Контакт-центрами (Contact Center). Контакт-центр способен работать по запросу клиента 24 часа в сутки. Интенсивность может достигать нескольких сотен звонков в минуту. При этом система активно использует информационные ресурсы, хранящиеся в базах данных, обрабатывает и запоминает поступающую информацию, а также автоматически контролирует свою деятельность. Организация единого контакт-центра позволяет:  сократить время обслуживания клиентов и обеспечить единство работы по всем видам коммуникаций, избегая дублирования функций различных подразделений компании;  поднять обслуживание заказчиков на новый качественный высокотехнологический уровень, эффективно используя процедуры персонифицированного управления контактами с абонентами; 52   увеличить объем продаж за счет роста количества и качества контактов за единицу времени, при одновременном снижении на порядок финансовых затрат на поддержку ресурсов; усилить контроль за работой сотрудников и повысить уровень управляемости коллективом. 3.4.1.5. Field Service Management — управление территориально удаленными подразделениями или пользователями Field Service Management (FSM) - это системы управления сервисным обслуживанием проданной продукции. Предназначены для управления гарантийным и постгарантийным обслуживанием продукции, ведения и контроля сервисных заявок и договоров, планирования ресурсов предприятия. Использование FSM системы позволяет существенно снизить затраты, связанные с обслуживанием продукции, и повысить качество обслуживания заказчиков, благодаря оперативному наличию информации по каждой единице изделия (серийные номера), использованию базы знаний и точности календарного планирования сервисного персонала. 3.4.1.6. PRM (Partner Relationship Management) — управление взаимоотношениями с партнерами (не поставщиками, а элементами товаропроводящей сети, разделяющими риски) PRM (Partner Relationship Management, управление взаимоотношениями с партнерами) – это системы повышения эффективности процессов взаимодействия с партнерами в области продаж, маркетинга, поставок и обслуживания за счет интеграции различных аспектов партнерской деятельности в единую систему. Данные системы реализуются в различных приложениях для автоматизации и оптимизации указанных процессов. В современной ситуации эффективность деятельности компании во многом зависит от взаимодействия с партнерами на различных сегментах рынка. Однако организовать эффективное взаимодействие с партнерами не так просто: вокруг лучших каналов сбыта развернута острейшая борьба между поставщиками, которые часто переманивают партнеров друг у друга. PRM-системы – корпоративные приложения нового класса, цель которых – оптимизировать взаимоотношения компании с партнерами. Функции PRM-систем:  PRM-системы позволяют повысить эффективность каналов сбыта благодаря более оперативному ознакомлению партнеров с новыми инициативами и другой информацией, имеющей отношение к партнерской деятельности. Кроме того, производители смогут координировать продажи продуктов и оптимальным образом перераспределять их между различными каналами сбыта.  PRM-системы позволяют производителям точнее определять, кто из дилеровпартнеров приносит наибольшую прибыль, чтобы соответственно их поощрять, а также определять партнеров, генерирующих наибольшее количество заказов и предоставлять им наилучшие условия. 53   PRM-системы упрощают и стандартизируют процессы сотрудничества с партнерами (поиск новых партнеров, учет, оценка деятельности партнеров и определение их специализации). PRM-системы также дают возможность проводить тренинги для партнеров в режиме онлайн. Преимущества PRM-систем:  PRM-системы предоставляют компаниям эффективное средство коммуникации с партнерами и обеспечивают все сотрудничающие стороны необходимой информацией и навыками для обеспечения максимально высокой прибыли и высококачественного обслуживания их общих клиентов.  Объединенный потенциал компаний-партнеров, использующих PRM-систему, позволит обеспечить их взаимодействие и согласовать финансовые потоки за счет интеграции информации о заказах с маркетингом партнеров, продажами и производством.  PRM-системы обеспечивают владельцев брендов мощными возможностями управления и универсальными аналитическими инструментами, предоставляющими всестороннюю информацию по деятельности отдельных партнеров, сегментам их деятельности и всех партнеров вместе. Многие системы включают до нескольких сотен встроенных отчетов и аналитических инструментов, которые позволяют руководителям компаний быстро оценить эффективность совместных продаж, услуг и маркетинговой деятельности. 3.4.1.7. Help Desk — техническая поддержка пользователей Альтернативные названия этой категории CRM-продуктов – диспетчерская служба, диспетчирование инцидентов – отражают направленность на отслеживание проблем, возникающих у клиентов предприятия, на использование баз знаний для поиска вариантов решения проблемы. Классификация CRM по трем ключевым направлениям: 1. Оперативный CRM. Он включает в себя приложения, дающие оперативный доступ к информации по конкретному клиенту в процессе взаимодействия с ним в рамках обычных бизнес-процессов – продажи, обслуживания и т. п. Требует хорошей интеграции систем, четкой организационной координации процесса взаимодействия с клиентом по всем каналам. На данный момент подавляющая часть CRM-систем в основном ориентирована на оперативный CRM. 2. Аналитический CRM. Предполагает синхронизацию разрозненных массивов данных и поиск статистических закономерностей в этих массивах для выработки наиболее эффективной стратегии маркетинга, продаж, обслуживания клиентов и т. п. Требует хорошей интеграции систем, большого объема наработанных статистических данных, эффективного аналитического инструментария. Аналитический CRM менее популярный, чем оперативный CRM, но все-таки достаточно “проработанный” аспект CRM-стратегии. Тесно соприкасается с концепциями Data Warehousing (хранение данных), и Data Mining (анализ данных). Данные, генерируемые такими системами, могут быть затребованы отделом маркетинга, представлены клиенту без посредничества сотрудников компании. Такой тип CRM-систем чаще применяется в электронной коммерции, нежели в традиционном бизнесе. 3. Коллаборационный CRM. Предоставляет клиенту возможность гораздо большего влияния на процессы разработки дизайна, производства, доставки и обслуживания продукта. Требует технологий, которые позволяют с минимальными затратами 54 подключить клиента к сотрудничеству в рамках внутренних процессов компании. Примеры коллаборационного CRM:  Сбор предложений клиентов при разработке дизайна продукта;  Доступ клиентов к опытным образцам продукции и возможность обратной связи;  Обратное ценообразование – когда клиент описывает требования к продукту и определяет, сколько он готов за него заплатить, а производитель реагирует на эти предложения. Последний случай представляет собой наиболее «экзотический» аспект CRM, требующий для своей реализации радикальной перестройки внутренних организационных механизмов. Но те немногие компании, которые его реализуют, уже достигли невиданных показателей по отдаче инвестиций. Систем, поддерживающих коллаборационный CRM, практически нет на рынке, в том числе и потому, что коллаборационный процесс в большинстве случаев сугубо индивидуален и должен автоматизироваться за счет чрезвычайно гибкой CRMсистемы. К тому же эта система должна быть основана на самых дешевых и открытых технологиях (Internet-технологиях) для снижения затрат на построение интерфейса между компанией и ее клиентами. У скептиков может возникнуть закономерный вопрос: «А зачем, собственно, это все нужно? Настолько ли велика отдача от столь горячо продвигаемого ПО, чтобы тратить на него время, усилия и, самое главное, деньги?» Я постараюсь привести несколько доводов, встав на сторону тех, кто считает этот процесс целесообразным. Борьба за клиента велась всегда и будет продолжаться, пока существуют рыночные отношения. Однако с точки зрения экономической выгоды, гораздо дешевле поддержать взаимоотношения с постоянным покупателем, чем найти нового. Приведу несколько широко известных фактов. o Принцип Парето утверждает, что около восьмидесяти процентов дохода компании обеспечивается двадцатью процентами ее клиентов. o В продажах промышленных товаров торговому представителю в среднем требуется от десяти обращений к новым потенциальным покупателям, чтобы продать единицу товара, и лишь 2-3 обращения к уже существующим клиентам. o Заключить сделку с уже имеющимся клиентом легче (следовательно, дешевле) в 510 раз, чем добиться этой же сделки с новым покупателем. o Среднестатистический клиент, разочарованный в своем поставщике, рассказывает о своих злоключениях десяти знакомым. o Увеличение доли постоянных покупателей на 5 процентов выражается в общем увеличении объемов продаж более чем на 25%. Такие традиционные стимуляторы потребительского спроса, как реклама в средствах массовой информации или прямая почтовая рассылка каталогов и предложений фирмы, в настоящее время имеют тенденцию к снижению эффективности воздействия, по сравнению с минувшим десятилетним периодом. К тому же, воздействие подобных мероприятий носит неорганизованный характер: они охватывают как потенциальных заказчиков, так и тех респондентов, которые никогда не станут клиентами Вашей компании. К примеру, доля позитивных откликов на «дайрект-мэйлинг» обычно не превышает двух процентов. Только представьте себе - из каждых ста экземпляров ваших информационных материалов только два будут оставлены адресатами, а остальные отправятся в мусорные баки! Приведем несколько примеров из реальной жизни:  Посылая клиенту ежемесячный счет, телефонная компания предлагает подписку на новую услугу (новый тариф международных переговоров). Это предложение 55 делается определенному клиенту (ряду клиентов), причем конкретно показывает возможную экономию средств клиента на основе анализа объема и графика его телефонных переговоров за предыдущие три месяца.  Клиент звонит в банк. Банковский операционист приветствует его, называя по имени, и уточняет, что, наверное, звонок связан с тем заявлением о предоставлении кредита на покупку дома, которое клиент прислал по факсу и которое вместе с именем клиента уже присутствует на мониторе банковского операциониста, когда он ведет разговор. В конце разговора клиента спрашивают, не интересует ли его информация о новых видах кредитов на обучение детей. (Какое совпадение! Сыну как раз исполнилось 17 лет, и он собирается поступать в университет. Конечно же информация о его возрасте тоже хранится в системе.)  Клиент покупает цветы на Web-сайте и отправляет их в подарок на день рождения другу. После этого ему приходит по электронной почте сообщение с подтверждением заказа и уведомлением об отправке, включающим возможность отслеживания доставки заказа через Internet или автоматическую систему интерактивного речевого взаимодействия IVR (Interactive Voice Response). Через год, незадолго до означенной даты, клиент получает по почте красивый каталог, содержащий множество различных видов подарков, а заодно напоминающий о грядущем дне рождения друга. В общем и целом, как ни банально это звучит, но CRM – это стратегия повышения качества обслуживания клиента, благодаря которой удается увеличить долю на рынке и в конечном счете прибыльность компании. 3.4.2. Электронная коммерция Своим рождением первые системы и методы электронной коммерции обязаны появлению технологий автоматизации продаж и внедрению автоматизированных систем управления корпоративными ресурсами. В 1960 году американские компании American Airlines и IBM приступают к созданию системы автоматизации процедуры резервирования мест на авиарейсы. Таким образом, система SABRE (Semi-Automatic Business Research Environment) делает воздушные перелёты более доступными для рядовых пассажиров, помогая им ориентироваться в тарифах и рейсах, число которых постоянно растет. За счёт автоматизации процесса расчёта тарифов при резервировании мест снижается стоимость услуг. Это являет собой самый первый опыт создания системы электронной коммерции. Наиболее динамично рынок электронной коммерции развивается в течение последних 20 лет, что обусловлено стремительным ростом количества интернетпользователей, увеличением влияния социальных сетей и других интерактивных онлайнплатформ, динамичным развитием систем электронных платежей и переходом ведущих игроков рынка к новым технологическим платформам для электронной коммерции (от Web 1.0 к Web 2.0, далее к Web 3.0). Существует несколько общепризнанных категорий, на которые подразделяется электронная коммерция. Как правило, такое размежевание проводится по целевой группе потребителей. Схема B2B или бизнес-бизнес Принцип осуществления подобного взаимодействия очень прост: предприятие торгует с другим предприятием. Интернет-платформы дают возможность значительно упростить проведение операций на всех этапах, сделать торговлю более оперативной и прозрачной. Часто в таких случаях представитель стороны заказчика имеет возможность интерактивного контроля процесса выполнения заказа путем работы с базами данных продавца. Пример сделки B2B — продажа шаблонов для сайта компаниям для последующего использования в качестве основы дизайна собственного веб-ресурса 56 компании. Безусловно, сюда относятся любые взаимодействия, включающие в себя оптовые поставки товара или аналогичное выполнение заказов. Схема B2C или бизнес-потребитель В этом случае предприятие торгует уже напрямую с клиентом (не юридическим, а физическим лицом). Как правило, здесь речь идет о розничной реализации товаров. Клиенту такой способ совершения коммерческой операции дает возможность упростить и ускорить процедуру покупки. Ему не приходится идти в магазин, чтобы выбрать нужный товар: достаточно просмотреть характеристики на сайте поставщика, выбрать нужную конфигурацию и заказать продукт с доставкой. Коммерсанту же возможности Интернета позволяют оперативнее отслеживать спрос (помимо экономии на помещении и кадрах). Примеры этого вида торговли — традиционные интернет-магазины, направленные на целевую группу непосредственных потребителей товаров. C 2010 года начала развитие так называемая социальная коммерция, или сфера продаж товаров и услуг в социальных сетях. Схема С2С или потребитель-потребитель Такой способ осуществления электронной коммерции предполагает совершение сделок между двумя потребителями, ни один из которых не является предпринимателем в юридическом смысле слова. Интернет-площадки для подобной торговли являются чем-то средним между рынком-толкучкой и колонкой объявлений в газете. Как правило, коммерция по схеме С2С осуществляется на сайтах Интернет-аукционов, приобретающих все большую популярность в наше время. Для клиентов таких систем основное удобство заключается в более низкой цене товара, по сравнению с его стоимостью в магазинах. Схема С2B или потребитель-бизнес C2B - предоставляет потребителю возможность самостоятельно устанавливать стоимость для различных товаров и услуг, предлагаемых компаниями. Этот вид электронной коммерции является наименее развитым по сравнению с остальными. Таким образом, формируется спрос, который не означает, что совершиться продажа по запрошенной цене. Продавец, пользуясь данными текущего спроса, принимает окончательное решение. Сайт C2B выступает в роли посредника-брокера в попытке найти продавца за сформированную предложениями покупателей цену. Помимо описанных выше наиболее распространенных схем электронной коммерции, существует и несколько других. Они не столь популярны, но, все же, применяются в некоторых специфических случаях. Речь идет о взаимодействии как предпринимателей, так и потребителей с государственными структурами. В последнее время многие операции по взиманию налогов, заполнению анкет, форм для заказа поставок, работа с таможней стали проводиться при помощи Интернет-технологий. Это позволяет значительно облегчить работу государственных служащих с одной стороны и дать возможность плательщикам избавиться от некоторой доли бумажной волокиты — с другой. 57 4. Электронный документооборот 4.1. Системы автоматизации документооборота Документ – это некая обособленная часть информации представленная на определенном носителе. В настоящее время можно выделить три главных типа носителей информации (рисунок 4.1): Рисунок 4.1 – Типы носителей информации 1. Бумажные носители. К этому типу относятся все документы, которые созданы на бумаге. 2. Микрофиши – практически то же самое, что и бумага с точки зрения поиска необходимого документа, но занимают меньше места (до 72 страниц на одном микрофише). Микрофиши могут быть более тесно интегрированы с электронными средствами и доступны по компьютерной сети. (Микрофи́ша, микрофише́, микрока́рта (от микро- и фр. ficher- вбивать, втискивать) — документ в виде микроформы на прозрачной форматной плёнке (реже на непрозрачной основе) с последовательным расположением кадров в несколько рядов.) 3. Электронные носители информации, которые также внутри себя могут быть подразделены на ряд подтипов (жесткие диски, оптические диски, магнитооптические диски и т. д.). Кроме того, для электронных документов важен формат, в котором они сохранены на электронном носителе информации. Очевидно, что один и тот же документ может существовать в различных ипостасях, на различных носителях информации и переходить с одного носителя на другой. Применение того или иного носителя информации определяется следующими факторами: 1. Стоимость хранения информации прямо пропорциональна количеству документов и зависит от стоимости хранения одного документа. В настоящее время термин стоимость хранения информации все чаще применяется не для одной страницы документа (что используется для бумажных документов), а к одному мегабайту хранимой информации. 2. Стоимость (время) поиска необходимой информации – определяется системой индексации документов. В том случае если система индексации отсутствует, то скорость поиска также прямо пропорциональна количеству хранимых документов. 3. Стоимость коллективного использования информации определяет количество копий документа, необходимых для коллективного использования при одновременном доступе. 58 4. Стоимость (время) передачи документа от одного рабочего места к другому. На сегодняшний день применяется два подхода к организации хранения электронных документов. Первый состоит в хранении тела документов в файловой системе, второй – в хранении документов в реляционной или специализированной базе данных. Системы документооборота берут свое начало с конца XVIII в. с появлением фотоаппарата, когда стало возможно создавать уменьшенные копии документов. Создание микрофиши дала реальный, качественный прорыв в стоимости хранения и копирования документов, но с точки зрения скорости поиска и коллективного использования документов все осталось на уровне бумажных документов. В результате усложнения как структуры документов, так и процессов использования документов возникли дополнительные задачи управления данными: - Во-первых, с одним документом, возможно, должны работать несколько человек, причем, в реальном времени (и одновременно). Более того, одни фрагменты данных требуется регулярно обновлять, в то время как другая часть информации должна оставаться статичной. - Во-вторых, в документе могут использоваться внедренные объекты (например, данные, чертежи и изображения), когда необходимо модифицировать такие объекты в одних проектах и оставлять без изменений в других. Появление компьютерных систем с коллективным доступом позволило достигнуть прорыва и в этих областях. Произошла трансформация от микрографических документов к электронным образам бумажных документов, от микрографических систем к так называемым imaging-системам. Расширенная система поиска, возможность получать доступ к одному документу нескольким пользователям одновременно, возможность удаленной и распределенной работы при сохранении незначительной стоимости хранения и копирования информации предопределило тенденцию замены микрографических документов на электронные. В начале 90-х гг. прошлого века появился новый класс систем, названный системами управления документами, предназначенный для управления электронными документами, отличными от их образов. В основном это были файлы текстовых процессоров и запросы на такого рода решения. Кроме функций хранения и поиска, присущих imaging-системам, в системах управления документами появились функции контроля жизненного цикла документа. Решением всех перечисленных задач работы с документами является управление документооборотом. Управление документооборотом состоит в том, чтобы все обновления документов и их частей, которые выполняет пользователь, проходили процесс утверждения, и фиксировались. Внедрение компьютеризованной системы управления документооборотом (системы электронного документооборота) должно не просто обеспечить хранение всех версий всех внутренних и внешних документов предприятия, но также фиксировать все действия (создание, рецензирование, редактирование, утверждение, списание в архив) над документами. 4.1.1. Задачи, решаемые системами документооборота Спектр задач системы автоматизации определяется стадией жизненного цикла документа, которую необходимо поддерживать. 59 Рисунок 4.2 – Жизненный цикл документа Жизненный цикл документа состоит из двух основных стадий: 1. Стадия разработки документа, которая состоит из разработки содержания документа, оформления документа и утверждения документа. Если документ находится на стадии разработки, то он считается неопубликованным, и права на документ определяются правами доступа конкретного пользователя. 2. Стадия опубликованного документа, которая состоит из активного доступа, архивного документа, краткосрочного хранения, долгосрочного хранения и уничтожения документа. Когда документ переходит на вторую стадию, он считается опубликованным, тогда права на документ остаются только одни – доступ на чтение. В качестве примера опубликованного документа можно привести шаблон стандартного бланка предприятия. Кроме права доступа на чтение могут существовать права на перевод опубликованного документа в стадию разработки. В зависимости от конкретной стадии жизненного цикла документа, с которым имеет дело архивная система, архивы подразделяются на статические архивы и динамические архивы. 1. Статические архивы документов (либо просто архивы) – системы, которые имеют дело только с опубликованными документами. 2. Динамические архивы документов (либо системы управления документами) – системы, имеющие дело, как с опубликованными документами, так и с документами, которые находятся в разработке. 4.1.2. Задачи статических архивов Архив предприятия – это комплекс программного и аппаратного обеспечения, предназначенный для решения следующих задач: 1. Организация хранения электронных документов. Необходимо обеспечивать хранение произвольного количества электронных документов на разнообразных носителях. Носители электронных документов характеризуются двумя основными параметрами: стоимостью хранения одного мегабайта информации и скоростью доступа к информации. Причем эти два параметра обратно пропорциональны друг другу – в зависимости от решаемых задач, необходимо находить оптимальное соответствие и выбирать определенный носитель информации. Также на выбор носителя влияет срок хранения информации. Иногда для ряда задач необходимо создавать систему хранения, которая состоит из разнотипных носителей. Например, для оперативного доступа требуется применение высокоскоростных жестких дисков, а для архивного хранения достаточно роботизированных библиотек оптических дисков. 2. Организация учета бумажных и микрографических документов. Архивная система кроме работы с электронными документами должна обеспечивать работу с бумажными и микрографическими документами. В этом случае система должна хранить только электронную карточку на документ данного типа и поддерживать контроль стандартных архивных операций: выдача документа, возврат документа и пр. 3. Организация поиска документов. 60 Наряду с организацией хранения документов необходимо их быстро и эффективно искать. Существует два подхода к поиску документов. Первый подход состоит в том, что в процессе поиска ищется документ, который точно существует в системе, и задача состоит в том, чтобы процесс поиска свелся к нахождению требуемого документа или документов. Этот подход применятся в 90 % всех случаев поиска. Второй подход состоит в том, что ищутся все документы по интересующему вопросу. Для этого подхода присущи такие понятия, как полнота – соответствие между найденными документами по данному запросу и действительному списку документов и шум – соответствие документов, отвечающих запросу и документов, нерелевантных ему. Существует два основных типа поиска. Атрибутивный – каждому документу присваивается набор определенных атрибутов, присваиваемых документу во время его размещения в архиве. В дальнейшем документ ищется на совпадение значений этих атрибутов полям запроса. К атрибутам документа можно отнести имя документа, время создания, автор, машинистка, имя подразделения, тип документа (факс, письмо, контракт, спецификация и т. д.). Совокупность атрибутов документа называется карточкой документа. Эти поля могут заполняться произвольно или из предопределенных справочников. Второй тип поиска – полнотекстовый. В этом случае автоматически обрабатывается все содержание документа, и затем по любому слову, входящему в данный документ, можно найти сам документ. Соответственно существует зависимость между типами поиска и подходами к поиску. Для поиска известного документа, более применим атрибутивный поиск, для исследовательского поиска – полнотекстовый. Существует комбинация полнотекстового и атрибутивного поиска, когда атрибуты документа обрабатываются так же, как все содержание документа. Полнотекстовый поиск зависит от формата документа и языка, на котором он создан. Электронный документ любого формата необходимо предварительно преобразовывать в стандартный текст для обработки системой полнотекстового поиска. Зависимость от языка выражается в следующих факторах: поиск документа будет более полным, если в результате запроса будут найдены не только документы, которые точно соответствуют слову в запросе, но и те документы, в которых присутствуют различные словоформы слова в запросе. Данная технология носит название нормализации. Причем эффективность метода зависит от применяемого алгоритма нормализации. Для русского языка наиболее эффективен словарный метод – слово нормализуется на основе словарей, в которых содержатся словоформы. Кроме словарного метода может применяться эвристический метод нормализации, когда слово может быть приведено к нормальному виду путем выполнения определенных правил, описывающих алгоритмику нормализации. Если для английского языка свод правил нормализации составляет 300 страниц машинописного текста, то для русского языка этот свод на несколько порядков больше. Аналогично нормализации было бы логично выполнять поиск не только по конкретному слову, но и по его синонимам. 4. Поддержка защиты документов от несанкционированного доступа и аудита работы. Архивная система должна иметь защиту на уровне документа – каждый документ должен иметь ассоциированный с ним список пользователей, имеющих право совершать с ним определенные операции. Для статических архивов этот список операций может представлять следующий набор: просмотр и печать документа, право изменять карточку документа. 5. Поддержка просмотра документов без загрузки приложений, которые порождают документ. Архивная система должна поддерживать специальные программы просмотра, позволяющие получить доступ к документам разнообразных форматов без загрузки ресурсоемких приложений. 61 6. Поддержка аннотирования документа. Иногда для обеспечения коллективной работы с документом необходимо заносить комментарии на документ, не изменяя его основного содержания. Комментарии (знаки, текст, цветные пометки) хранятся в слоях, которые могут быть привязаны к имени автора, создавшего эти комментарии. В качестве характерного примера реализации статического архива можно привести системы типа WaterMark, PaperWise или ImageWise. 4.1.3. Задачи динамических архивов 1. Поддержка коллективной работы с документом. Такая коллективная работа выражается в поддержке целостности документов, для этого должны быть реализованы библиотечные функции выписки и возврата документов на/c редактирования, что предотвращает одновременное редактирование одного документа несколькими пользователями, устраняя тем самым возможные конфликты. Для того чтобы позволить в рамках одного документа работать одновременно нескольким пользователям, вводится понятие версии и подверсии документа – один документ может содержать несколько версий, а каждая версия – несколько подверсий. Кроме того, в рамках одного документа и одной версии (подверсии) документа может существовать несколько представлений документов (в разных форматах). 2. Поддержка составных документов. Каждый документ может представлять собой совокупность других документов. Такой документ носит название составного или контейнера, а в делопроизводстве такой документ носит название «дело». По своим характеристикам он аналогичен простому документу. Документы могут быть объединены в составной документ с помощью нескольких типов связей. Эти связи определяют, какие версии объединяются в контейнер, например, последняя по дате, последняя отредактированная, старшая версия и т. д. Эти связи определяют, как будет осуществляться сборка документа в составной документ. Для составных документов должно существовать приложение, которое будет осуществлять окончательную сборку такого документа. 3. Поддержка распространения опубликованных документов. После того как документ публикуется его иногда необходимо распространять. Это происходит двумя основными путями, либо через систему электронной почты, путем рассылки, либо через Internet, путем публикации на Web-сервере. 4. Поддержка расширенного спектра прав доступа к документу. Расширение прав доступа к документу состоит из прав на редактирование документа, прав на публикацию, прав на снятие публикации, прав на создания новой версии документа. 4.1.4. Задачи решаемые системой маршрутизации и контроля исполнения При организации систем документооборота одной из основных составляющих являются системы маршрутизации и контроля исполнения, которые оперируют документами, хранящимися в архиве. При построении систем маршрутизации могут применяться два основных подхода. Первый носит название документо-ориентированный. Документ является основным объектом системы, и маршрутизируется именно он, а все остальные параметры маршрутизации ассоциированы именно с документом. Второй подход носит название работо-ориентированный и его основным объектом является работа. К работе может быть прикреплен самый разнообразный список объектов, в том числе, и документы. Естественно, работа может существовать и без документов. Второй подход является более общим. Рассмотрим теперь типы систем маршрутизации (рисунок 4.3). 62 Рисунок 4.3. – Объекты системы маршрутизации Свободная маршрутизация. Выделяется два основных типов маршрутов документов. Последовательная маршрутизация - документ последовательно проходит одного исполнителя за другим. Передача документа от одного пользователя к другому может происходить по истечении контрольного времени, либо после завершения работы одним из них. Параллельная маршрутизация - документ одновременно поступает всем исполнителям, а завершение маршрута происходит, когда один либо все пользователи завершат работу с документом. Системы электронной почты. Минимальной достаточной системой, обеспечивающей маршрутизацию документов является система электронной почты, которая осуществляет параллельное распространение документов (маршрутизация отличается от распространения или рассылки тем, что маршрутизируемый документ возвращается в начало маршрута, например к инициатору, а рассылаемый документ уходит к исполнителю без контроля факта возврата). С помощью дополнительных приложений система электронной почты может обеспечивать последовательную маршрутизацию документов. Свободная маршрутизация документов с контролем исполнения. Под контролем исполнения понимается следующая функциональность. o Контроль доставки задания - инициатору выдается информация о том, что его задание достигло места назначения (исполнителя). o Контроль прочтения задания - инициатору выдается информация о том, что с его заданием ознакомились сотрудники для которых это задание было предназначено. o Контроль выполнения - инициатору выдается информация о том, что задание выполнено. o Мониторинг задания - инициатор всегда может посмотреть, кто и что сейчас делает с его заданием. o Извещение о нарушении сроков исполнения - система документооборота может известить инициатора о том, что посланное им задание просрочено конкретным сотрудником. o История выполнения заданий. o Контроль качества исполнения означает, что, если пользователь говорит о том, что задание исполнено, это еще не означает, что оно действительно исполнено, инициатор должен проверить качество исполнения, подтвердить или нет исполнение. o Информация может выдаваться в виде изменения статуса задания в окнах входящих и исходящих заданий или в виде нового задания сформированного системой инициатору либо с помощью сообщения по электронной почте. 63 Маршрутизация документов по заранее определенным маршрутам с контролем исполнения (жесткая маршрутизация). Маршруты могут быть более сложными, чем простые последовательные или параллельные: o комбинированные из последовательных и параллельных элементов; o условные, с переходами в зависимости от состояния тех или иных переменных маршрутов. Такие маршруты становятся сложными для их задания "на лету", поэтому в этом случае используется специализированный графический редактор, позволяющий создать маршрут. Инициатор вызывает созданный и именованный маршрут и прикрепляет к нему документы - инициирует его. Система маршрутизации должна быть интегрирована с архивной системой, и реальные приложения для работы с документами не могут быть основаны только на файловой системе. И вот почему. Любой процесс маршрутизации документов - это движение одного документа, а не множества его копий, как это происходит в системах электронной почты. Посылать один документ необходимо не только по соображениям экономии пространства, но и в основном для поддержания его целостности - в процессе маршрутизации многие пользователи пытаются вносить изменения в документ. Кроме этого, было бы желательно, чтобы система маршрутизации была интегрирована с архивной системой по следующим параметрам. По списку пользователей и системе безопасности. Это означает, что если вы собираетесь послать кому-то документ, то адресат должен обладать соответствующим набором прав для работы с этим документом. Если прав недостаточно, то система должна попросить инициатора работы или маршрута установить соответствующие права. Интеграция с операцией публикования документа. Задача состоит в том, что после окончания маршрута документ, ассоциированный с маршрутом, меняет свой статус на опубликованный. В качестве примеров таких маршрутов можно привести процесс утверждения документа. 4.2. Системы электронного документооборота Класс систем ЭД является подклассом документальных систем. В отличие от фактографических систем (к которым относят любой банк или базу данных) логической единицей хранения информации в документальной системе является документ. Система электронного документооборота (ЭД, СЭД) - это комплекс программ, созданных для контролируемого создания и управления документами на предприятии в соответствии с правилами обработки документов, обусловленными бизнес процессами предприятия. Отличительными свойствами СЭД являются: - Ведение электронного архива документов - Управление жизненным циклом информации - Управление процессом создания, сбора, обработки и распространения корпоративной информации - Наличие средств контроля исполнения поручений - Управление содержимым корпоративных Web-ресурсов - Интеграция с офисными приложениями и корпоративными информационными системами В некоторых исследованиях предлагают следующую типологию программ управления документами: - электронная почта 64 - программы для организации коллективной работы (Lotus Notes, например) - программы маршрутизации документов К этой типологии можно было бы добавить дальнейшее разделение на: - системы с предопределенным маршрутом - системы с открытым маршрутом - системы с поисковым блоком или полнотекстовый индексатор как самостоятельный элемент в своем собственном классе (например, Excalibur) В то время как многие системы, основанные на использовании полнотекстовых поисковых блоков или на реляционных базах данных, претендуют на звание систем управления документами, существует множество критериев, по которым можно судить о том, насколько это соответствует действительности. Имея в виду требования к системам управления документами, такая система должна выполнять следующие функции: - организовывать среду хранения, обеспечивая работу с бумажными и электронными документами и предоставляя возможность их просмотра, - осуществлять поиск (полнотекстовых и других) документов, - вести историю работы с документом, учитывая трудозатраты на его подготовку, - обеспечивать возможность работы с многокомпонентными, многоформатными документами, а также приложениями к документу и различными его версиями, - обеспечивать учет ассоциаций и ведение коллекций документов, - устанавливать права на работу с документом, - обеспечивать сканирование документа и восстановление его текста по изображению, - обеспечивать открытый интерфейс со специализированными, национальными и другими полнотекстовыми поисковыми модулями, - обеспечивать настройку на потребности пользователя, в первую очередь, регистрационных карточек документов. Полный набор таких ответственных функций позволяет реализовать промышленная система управления документами. Если продукт должен обеспечивать прохождение документов по предопределенным маршрутам, то для расширения функциональности может использоваться такой продукт как Staffware, что часто и делается в больших корпоративных системах управления документами. В том случае, когда речь идет исключительно о поддержке движения и контроля документов, выбор приложения, обеспечивающего их управление, представляется логичным. Однако иногда можно обойтись гораздо более дешевым продуктом или обычной электронной почтой. 65 5. Технологии внедрения корпоративных информационных систем 5.1. Жизненный цикл программного обеспечения В основе деятельности по созданию и использованию программного обеспечения любого типа (поэтому далее – просто ПО) лежит понятие его жизненного цикла (ЖЦ). Жизненный цикл является моделью создания и использования ПО, отражающей его различные состояния, начиная с момента возникновения необходимости в данном ПО и заканчивая моментов его полного выхода из употребления у всех пользователей. Традиционно выделяются следующие основные этапы ЖЦ ПО: - анализ требований - проектирование - кодирование (программирование) - тестирование и отладка - эксплуатация и сопровождение ЖЦ образуется в соответствии с принципом нисходящего проектирования и, как правило, носит итеративный характер: реализованные этапы, начиная с самых ранних, циклически повторяются в соответствии с изменениями требований и внешний условий, введением ограничений и т.п. На каждом этапе ЖЦ порождается определенный набор документов и технических решений, при этом для каждого этапа исходными являются документы и решения, полученные на предыдущем этапе. Каждый этап завершается верификацией порожденных документов и решений с целью проверки их соответствия исходным. Существующие модели ЖЦ определяют порядок исполнения этапов в ходе разработки, а также критерии перехода от этапа к этапу. Наибольшее распространение получили три модели ЖЦ: 1. Каскадная модель (70-80 г.г.) – предполагает переход на следующий этап после полного окончания работ по предыдущему этапу. 2. Поэтапная модель с промежуточным контролем (80-85 г.г.) – итерационная модель разработки ПО с циклами обратной связи между этапами. Преимущество такой модели заключается в том, что межэтапные корректировки обеспечивают меньшую трудоемкость по сравнению с каскадной моделью, однако, время жизни каждого из этапов растягивается на вес период разработки. 3. Спиральная модель (86-90 г.г.) – делает упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Каждый виток спирали соответствует поэтапно модели создания фрагмента или версии программного изделия, на нем уточняются цели и характеристики проекта, определяется его качество, планируются работы следующего витка спирали. Таким образом, углубляются и последовательно конкретизируются детали проекта, и в результате выбирается обоснованный вариант, который доводится до реализации. Спиральная модель обладает такими преимуществами:  Накопление и повторное использование программных средств, моделей и прототипов  Ориентация на развитие и модификацию ПО в процессе его проектирования  Анализ риска и издержек в процессе проектировании Главная особенность индустрии ПО состоит в концентрации сложности на начальных этапах ЖЦ (анализ, проектирование) при относительно невысокой сложности и трудоемкости последующих этапов. Более того, нерешенные вопросы и ошибки, 66 допущенные на этапах анализа и проектирования, порождают на более поздних этапах трудные, часто уже неразрешимые проблемы, и приводят к неуспеху всего проекта. Рассмотрим этапы ЖЦ более подробно: Анализ требований: требования заказчика уточняются, формализуются и документируются. На этом этапе дается ответ на вопрос: «Что должна делать система?». Список требований к разрабатываемой системе должен включать: - Совокупность условий, при которых предполагается эксплуатировать будущую систему (аппаратные и программные ресурсы, внешние условия функционирования, состав людей и работ, имеющих отношение к системе) - Описание функций системы - Ограничения в процессе разработки (директивные сроки завершения отдельных этапов, имеющиеся ресурсы, организационные процедуры и мероприятия, обеспечивающие защиту информации) Целью анализа является преобразование общих, неясных знаний о требованиях к будущей системе в точные (по возможности) определения. На этом этапе определяются: - Архитектура системы, ее функции, внешние условия, распределение функций между аппаратным и программным обеспечением - Интерфейсы и распределение функций между человеком и системой - Требования к программным и информационным компонентам ПО, необходимые аппаратные ресурсы, требования к БД, физические характеристики компонентов ПО, их интерфейсы. Этап проектирования: дает ответ на вопрос «Как (каким образом) система будет соответствовать предъявленным требованиям?». Задачей этого этапа является исследование структуры системы и логических взаимосвязей ее элементов, причем без внимания к вопросам реализации. Обычно этот этап разбивают на два подэтапа: - Проектирование архитектуры ПО – разработка структуры и интерфейсов компонентов, согласование функций и технических требований к компонентам, стандартам проектирования, производство отчетных документов - Детальное проектирование – разработка спецификаций каждого компонента, интерфейсов между компонентами, разработку требований к тестам и плана интеграции компонентов. В результате деятельности на этапах анализа и проектирвания должен быть получен проект системы, содержащий достаточно информации для реализации системы на его основе в рамках бюджета выделенных ресурсов и времени. 5.2. Подготовка к внедрению или разработке системы. Процесс внедрения. Процесс разработки и внедрения КИС исполняется по следующему сценарию: 1. Анализ существующих систем или разработка требований к создаваемой системе 2. Типовой процесс внедрения 2.1. Разработка стратегии автоматизации 2.2. Анализ деятельности предприятия. 2.3. Реорганизация деятельности. 2.4. Выбор системы. 2.5. Внедрение системы. 2.6. Эксплуатация К типичным проблемам при внедрении КИС относят: - Подготовка предприятия к автоматизации - Выбор системы 67 В таблице 5.1 приведены примерные функции системы и их характеристики. При разработке технического задания на разработку системы или при сравнительном анализе сопоставимых альтернативных систем желательно составить подобную таблицу и заполнить её для альтернативных систем. Таблица 5.1 – Функции системы и их плюсы использования. Функция системы Позволяет делать Качественный выигрыш Блок проектирования Item Part Number Control (Управление структурой изделия) Управляет структурой изделия с точностью до комплектующих (узлов и агрегатов) Bill of Materials Control (Управление спецификациями продуктов) Контролирует весь перечень материалов, требуемых для производства конечного изделия (как количественно, так и в финансовом эквиваленте) Повышение точности данных для планирования производственной деятельности, обеспечение стыка с системами проектирования Повышение точности данных для планирования производственной деятельности, обеспечение стыка с системами проектирования Блок контроля инженерной документации Routings (Маршрутизация) Estimating (Смета) Design Engineering (Разработка технологии) Vendor Performance (Исполненные поставки) Purchase Order Management (Управление заказами на закупку) Subcontract Purchase Orders (Заказы на закупку по субконтрактам) Управляет распределением потока заказов по цехам (рабочим местам) Оценка влияния изменений Подготавливает технологию выпуска продукции Блок управления закупками Учет исполнения запланированных поступлений Планирование и ввод заказов на закупку Планирование и ввод заказов на закупку, выполняемых субподрядчиками Оптимальная загрузка цехов (оборудования) Точный учет затрат, связанных с изменениями Оптимальная технология выпуска продукции Точный учет запасов, повышение достоверности планирования Сокращение материальных запасов за счет обеспечения поставок в требуемый срок Сокращение материальных запасов за счет обеспечения поставок в требуемый срок Блок управления материальными запасами Inventory Control (Управление запасами) Планирование и учет запасов Master Production Scheduling (План-график Среднесрочный объемнокалендарный план выпуска Сокращение материальных запасов за счет планирования поставок к требуемому сроку Выпуск продукции к требуемому сроку, 68 выпуска продукции) продукции Material Requirements Планирование Planning (Планирование необходимых материалов потребностей в материалах) по количеству и срокам Lot/Serial Tracking (Отслеживание партий/серий) Учет выпуска партий продукции Rough-Cut Capacity Planning Планирование (Укрупненное необходимых мощностей планирование мощностей) на основании требуемых для выпуска видов продукции ресурсов сокращение издержек на хранение продукции Сокращение времени простоя из-за нехватки материалов, сокращение материальных запасов Повышение точности планирования продаж, сокращение материальных запасов Оптимальная загрузка критических ресурсов под виды продукции Производственный блок Shop Floor Control (Управление на уровне производственного цеха) Capacity Requirements Planning (Планирование потребностей в мощностях) Project Control (Управление проектом) Составление оперативных (дни-месяц) план-графиков Детальное планирование потребных мощностей до уровня рабочих центров Управление проектами предприятия Оптимальная загрузка цеха, детальное планирование выпуска продукции Оптимальная загрузка всех рабочих мест Выполнение проектов с требуемым качеством в заданные сроки Блок управления издержками Job Costing (Трудовые издержки) Рассчитывает трудозатраты Выделение затрат, связанных с работой персонала Cash Flow Analysis (Анализ Анализ всех денежных Оптимальное наличных потоков) потоков предприятия регулирование денежных потоков Actual Costs Расчет реальной Выявление неэффективных (Действительные издержки) себестоимости участков и технологий Standard Costs Расчет плановой Поддержка процесса (Нормативная стоимость) себестоимости снижения издержек Work Breakdown Structure Расчет себестоимости работ Поддержка процесса (Стоимость этапов работ) по отдельным этапам снижения издержек Блок управления финансами Accounts Receivable (Выставленные счета) Accounts Payable (Оплаченные счета) General Ledger (Главная книга) Multi-Company Consolidation (Консолидация баланса от Выставление счетов к оплате Регистрация оплаты счетов Учет всех бухгалтерских операций Объединение баланса нескольких дочерних компаний Учет выставленных счетов Учет реальной оплаты выставленных счетов Реальная картина текущего баланса Реальная картина баланса нескольких компаний. 69 многих компаний) Foreign Currency Conversion (Конвертор валют) Sales Order Management (Управление заказами на продажу) Order Configurator (Конфигурация заказов) Billing/Invoicing (Выставление счетовфактур) Full Sales Analysis (Полный анализ продаж) Commission Calculation/Reporting (Расчет комиссионных/ отчетность) Sales Forecasting/Rollups (Прогнозирование продаж) Quoting (Квотирование) Работа с несколькими валютами Блок маркетинга/продаж Учет заказов на продукцию Возможность осуществления расчетов в нескольких валютах Оптимальная загрузка производства Планирование Оптимальная загрузка последовательности заказов складов, поддержка процесса оптимизации денежных потоков Ведение книги Соответствие продаж/покупок законодательству, сокращение затрат Анализ всех аспектов Повышение достоверности продаж прогнозирования/ планирования Расчет Гибкая работа с скидок/комиссионных поставщиками и потребителями Подготовка исходных данных для производственых планов верхнего уровня Квотирование продаж Повышение достоверности планирования Повышение прибыли за счет управления спросом 5.3. Разработка стратегии автоматизации Понятие стратегии автоматизации включает в себя базовые принципы, используемые при автоматизации предприятия. В ее состав входят следующие компоненты:  цели: области деятельности предприятия и последовательность, в которой они будут автоматизированы  способ автоматизации: по участкам, направлениям, комплексная автоматизация  долгосрочная техническая политика - комплекс внутренних стандартов, поддерживаемых на предприятии  ограничения: финансовые, временные и т.д.  процедура управления изменениями плана Стратегия автоматизации в первую очередь должна соответствовать приоритетам и стратегии (задачам) бизнеса. В понятие стратегии также должны входить пути достижения этого соответствия. Стратегический план автоматизации должен составляться с учетом следующих факторов: - средний период между сменой технологий основного производства - среднее время жизни выпускаемых предприятием продуктов и его модификаций - анонсированные долгосрочные планы поставщиков технических решений в плане их развития - срок амортизации используемых систем 70 - стратегический план развития предприятия, включая планы слияния и разделения, изменение численности и номенклатуры выпускаемой продукции планируемые изменения функций персонала. Автоматизация – лишь один из способов достижения стратегических бизнесцелей, а не процесс, развивающийся по своим внутренним законам. Во главе стратегии автоматизации должна лежать стратегия бизнеса предприятия: миссия предприятия, направления и модель бизнеса. Таким образом, Стратегия автоматизации представляет собой план, согласованный по срокам и целям со стратегией организации. Второй важной особенностью является степень соответствия приоритетов автоматизации и стратегии бизнеса, а именно, какие цели должны быть достигнуты: - снижение стоимости продукции - увеличение количества или ассортимента - сокращение цикла: разработка новых товаров и услуг - выход на рынок - переход от производства на склад к производству под конкретного заказчика с учетом индивидуальных требований и т.д. Стратегические цели бизнеса с учетом ограничений (финансовых, временных и технологических) конвертируются в стратегический план автоматизации предприятия. При этом следует помнить, что автоматизация предприятия является инвестиционной деятельностью, и к ней применимы все подходы, используемые при оценке эффективности инвестиций. К основным ограничениям, которые необходимо учитывать при выборе стратегии автоматизации, относятся следующие: - финансовые - временные - ограничения, связанные с влиянием человеческого фактора - технические Финансовые ограничения определяются величиной инвестиций, которые предприятие способно сделать в развитие автоматизации. Этот тип ограничений наиболее универсален, т.к. остальные три вида могут быть частично конвертированы в финансовые. Временные ограничения обычно связаны со следующими факторами: - сменой технологий основного производства - рыночной стратегией предприятия - государственным регулированием экономики К ограничениям, связанным с влиянием человеческого фактора, относятся следующие ограничения: - корпоративная культура - отношение персонала к автоматизации - особенности рынка труда трудовое законодательство. Типичные проблемы, которые возникают при разработке стратегии автоматизации, как правило, связаны со следующими факторами: - состояние рынка информационных технологий - определение эффективности инвестиций в информационные технологии необходимость реорганизации деятельности предприятия при внедрении информационных технологий 71 5.4. Стандарты описания, анализа и реорганизации бизнес процессов 5.4.1. Анализ деятельности предприятия Анализ деятельности предприятия - довольно общее понятие. В данном разделе под анализом деятельности предприятия понимается следующее: сбор и представление информации о деятельности предприятия в формализованном виде, пригодном для выбора и дальнейшего внедрения автоматизированной системы. В зависимости от выбранной стратегии автоматизации предприятия технологии сбора и представления информации могут быть различными. Итоговое представление информации на этапе анализа деятельности играет одну из ключевых ролей во всей дальнейшей работе. Желательно, чтобы анализ предприятия закончился построением набора моделей, соответствующим стандартам IDEF. 5.4.2. Реорганизация деятельности Реорганизация деятельности преследует, эффективности деятельности предприятия в целом. 5.4.2.1. Методика BSP В настоящее время популярной предприятия является методика BSP. как методикой правило, цель реорганизации повышения деятельности Методика BSP – подход, помогающий предприятию определить план создания информационных систем, удовлетворяющих его ближайшие и перспективные информационные потребности. Поскольку информация является одним из основных ресурсов и должна планироваться в масштабах всего предприятия, информационная система должна проектироваться независимо от текущего состояния и структуры предприятия. BSP основывается на нисходящем анализе информационных объектов и регламентирует 13 этапов выполнения работ. Особенностью подхода является выделение трех организационных этапов, обеспечивающих так называемый "запуск" проекта, а именно: Этап 1. Получение поддержки руководства предприятия Этап 2. Подготовка к анализу Этап 3. Проведение стартового совещания. На этапе 4 формируется перечень основных деятельностей предприятия и содержащихся в них бизнес-процессов и дается их краткое описание. На этапе 5 выявляются основные классы данных (логически связанные категории данных). Например, такими классами являются: Сотрудники, Ремонты, Технологический транспорт и т.д. В итоге выполнения этапов 4 и 5 формируется матрица связей. На этапе 6 осуществляется анализ существующих на предприятии деловых и системных взаимодействий. По аналогии с этапом 5 строятся четыре матрицы, демонстрирующие использование существующих и планируемых информационных подсистем: - матрица "руководители - процессы", демонстрирующая основные обязанности руководителей, степень их вовлеченности в основные бизнес-процессы предприятия 72 - матрица "информационные системы - руководители", показывающая какими системами (существующими или планируемыми) пользуются руководители - матрица "информационные системы - процессы", демонстрирующая как системы соотносятся с бизнес-процессами предприятия - матрица "информационные системы - файлы данных", показывающая, какие файлы данных и какими системами используются На этапе 7 решаются следующие задачи: - уточнение матриц - определение и оценка необходимой руководству информации - определение приоритетов потребностей - определение текущих задач - привлечение на свою сторону руководства Далее все проблемы разделяются на три вида: - проблемы, не относящиеся к автоматизации и не затрагивающие информационные системы - проблемы, связанные с существующими информационными системами - проблемы, связанные с будущими системами Проблемы первого вида передаются руководству предприятия для принятия соответствующих решений. Оставшиеся проблемы сортируются по бизнес-процессам. На этапе 9 традиционными методами осуществляется проектирование архитектуры информационной системы. Этап 10 определяет приоритеты в реализации и намечает последовательность ее этапов. Этап 11 определяет планирование модификаций информационной системы в связи с постоянным процессом появления новых требований к такой системе. Наконец, этапы 12 и 13 заключаются в выработке рекомендаций и планов и формировании отчетности по проведенным работам. Анализ и реорганизация деятельности предприятия производится на основе построенных матриц и выявленных проблем (естественно, эти матрицы детализируются до уровня бизнес-функций), основные изменения осуществляются с целью ориентации предприятия на спроектированную информационную систему. 5.4.2.2. Подход TQM/CPI Подход CPI (Continuous Process Improvement) и его японский аналог TQM (Total Quality Management) успешно применялись при реорганизации предприятий еще в середине века. Самый впечатляющий результат его применения - подъем японской послевоенной промышленности и доведение качества японских товаров до современного опережающего многие страны уровня. Этот подход продолжает активно использоваться и в настоящее время, о чем свидетельствует, например, возрастающий объем применения стандартов серии ISO 9000, фактически поддерживающих CPI. CPI (Continuous Process Improvement) – философия и набор процедур постоянного мониторинга и анализа составного процесса, с использованием техники SPC и других, для выявления слабых мест, возможностей для улучшения, и систематического применения этих улучшений. В основе подхода лежит очевидная концепция управления качеством выпускаемой продукции. Качество должно быть направлено на удовлетворение текущих и будущих потребностей потребителя как самого важного звена производственной линии. Достижение соответствующего уровня качества требует постоянного совершенствования производственных процессов. Для решения этой задачи Демингом [1-2] было предложено 73 14 принципов, в совокупности составляющих теорию управления качеством и применимых для предприятий произвольных типов и различных масштабов. Безусловно, этих принципов недостаточно для полного решения стоящих перед современными предприятиями проблем, тем не менее, они являются основой трансформации промышленности Японии и США. 5.4.2.3. Реинжинириг бизнес процессов (BPR) Хаммер и Чампи определяют реинжиниринг (BPR, business process reingineering) как фундаментальное переосмысление и радикальное перепланирование бизнес-процессов компаний, имеющее целью резкое улучшение показателей их деятельности, таких как затраты, качество, сервис и скорость. При этом используются следующие положения: 1. Несколько работ объединяются в одну 2. Исполнителям делегируются право по принятию решений. 3. Этапы процесса выполняются в естественном порядке. 4. Реализуются различные версии процесса. 5. Работа выполняется там, где ее целесообразно делать (выход работы за границы организационных структур). 6. Снижаются доли работ по проверке и контролю. 7. Минимизируется количество согласований. 8. Ответственный менеджер является единственной точкой контакта с клиентом процесса. 9. Используются и централизованные и децентрализованные операции. Моделирование предметной области является одним из наиболее важных этапов работ при проектировании программных систем масштаба предприятия. В настоящее время для целей моделирования предметной области на рынке программных продуктов представлен широкий спектр CASE-средств. Наиболее популярными в нашей стране CASE-средствами являются Rational Rose, BPwin, Silverrun, Process Analyst. Моделирование предметной области в этих средствах имеет скорее много общего, чем различий. Основными задачами при моделировании предметной области являются следующие описания:  – бизнес-процессов предприятия;  – действующих лиц бизнес-процессов и их функций, подлежащих автоматизации в привязке к структуре автоматизируемого предприятия;  – бизнес-сущностей;  – сценариев выполнения бизнес-функций, подлежащих автоматизации;  – состояний бизнес-сущностей;  – бизнес-правил. Описания бизнес-процессов используются для описания технологии выполнения производственной задачи, подлежащей автоматизации. На основе описанной технологии определяются виды деятельности, которые следует автоматизировать (бизнес-требования к будущей программной системе). При описании бизнес-процессов должны быть выявлены связи между различными подразделениями предприятия при решении конкретных производственных задач (горизонтальные связи). При описании предметной области не следует забывать о моделировании бизнесправил. Модели бизнес-правил предметной области будут являться основой для моделирования правил программной системы. При разработке программных систем, необходимо отметить следующее: 1. Описание предметной области должно включать не только описание бизнеспроцессов, но и описание структуры автоматизируемого предприятия, его 74 действующих лиц, их автоматизируемых функций, документов, связанных с автоматизированными функциями, прочих бизнес-сущностей, сценариев реализации бизнес-функций и состояний бизнес-сущностей. 2. Модель бизнес-процессов используется для определения бизнес-требований к разрабатываемой системе и выявления всех связей между подразделениями, принимающими участие в решение конкретной задачи. 3. Модель структуры предприятия используется для отражения действующих лиц предприятия, их автоматизируемых функций в привязке к подразделениям, в которых эти функции выполняются. На основе модели структуры предприятия разрабатывается модель функций системы. 4. Модели документов, бизнес-сущностей используются при проектировании пользовательского интерфейса, базы данных, формирования альбома выходных форм системы. 5. Модели сценариев реализации бизнес-функций используются при проектировании сценариев пользовательского интерфейса. 6. Модели состояний бизнес-сущностей используются при проектировании пользовательского интерфейса и базы данных системы. 7. Модели бизнес-правил используются при моделировании правил программной системы. Полное и детальное описание предметной области удобно производить с помощью разнообразных CASE-средств. Термин CASE – Computer Aided System/Software Engineering используется при автоматизации процесса разработки сложных информационных систем в целом. Появлению CASE-средств предшествовали исследования в области методологии проектирования. Методология определяет этапы и шаги реализации проекта, а также правила использования методов, которыми разрабатывается проект. Метод – это процедура или техника генерации описаний компонентов информационной системы (проектирование потоков и структур данных). Нотация – отображение структуры системы, элементов данных с помощью специальных графических символов. CASEсредства – это специальные программы, которые поддерживают одну или несколько методологий анализа и проектирования информационных систем. CASE-технология, в рамках методологии, включает в себя методы, с помощью которых на основе нотаций строятся диаграммы, поддерживаемые конкретным CASE-средством. CASE-технологии не могут считаться самостоятельными, они только обеспечивают высокую эффективность их применения. При применении CASE-средств используются методологии структурного и объектно-ориентированного проектирования. Структурное проектирование основано на алгоритмической декомпозиции, а объектно-ориентированное проектирование основано на объектно-ориентированной декомпозиции. Разделение по алгоритмам концентрирует внимание на порядке происходящих событий, а разделение по объектам придает особое внимание объектам или субъектам действия. CASE-средства, поддерживающие объектноориентированное проектирование используют методологию RUP (Rational Unified Process) и нотации языка UML. Представления информационной системы на языке UML: 1. Представление использования – основная часть модели описания системы. 2. Логическое представление – описание функциональных возможностей системы. 3. Компонентное представление – описание структуры и взаимосвязей модулей системы. 4. Представление взаимодействия процессов – описание согласованных действий модулей системы. 5. Представление распределения – описание физической архитектуры системы. 75 Каждое представление состоит из диаграмм, которые строятся из своих нотаций. Для структурного подхода используется методология SADT (Structured Analysis and Design Technique). Главным разработчиком методологии был Дуглас Росс. Он разработал язык структурного анализа, используемого для описания исследуемого объекта. Этот язык лег в основу стандартов семейства IDEF. Их использовали в США по предложению ВВС. В настоящее время семейство IDEF включают: IDEF0 – стандарт функционального моделирования IDEF1Х – стандарт моделирования потоков данных IDEF2 – стандарт динамического моделирования систем IDEF3 – стандарт документирования процессов IDEF4 – стандарт построения объектно-ориентированных систем IDEF5 – стандарт онтологического (принципиального, структурного) исследования систем. 5.5. Разработка и внедрение корпоративных информационных систем 5.5.1.1. Выбор системы Выбор системы – многокритериальная задача. Задание объективных критериев, по которым будет осуществляться выбор конкретной системы, напрямую связано с качеством и полнотой проработки всех предшествующих этапов цепочки выбора. Практически все объективные соображения, которыми руководствуются при выборе системы (функциональные возможности, стоимость системы и совокупная стоимость владения, перспективы развития, поддержки и интеграции, технические характеристики системы и т.п.), выводятся на предыдущих этапах. При тщательной проработке всех предшествующих этапов, выбор системы, перестает быть проблемой. 5.5.1.2. Внедрение системы Существуют следующие основные стратегии внедрения системы:  Параллельная стратегия - когда одновременно работают старая (ручная) и новая система, и их выходные документы сравниваются. Если они согласуются длительное время, осуществляется переход на новую систему.  «Скачок». Эта стратегия привлекательна, но не рекомендуется.  «Пилотный проект». Это наиболее часто используемая стратегия. «Пилотный проекта» - это тактика «скачка», но применяемая к ограниченному числу процессов. Область применения стратегии - небольшой участок деятельности. Такой подход снижает риск и наиболее надежен. Практически все предприятия применяют эту тактику сегодня.  «Узкое место»- это малая часть производственного процесса. При использовании похода "узкое место" план внедрения выполняется только для "узкого места" и для людей, работающих в нем. Точность данных повышается только для изделий в этом "узком месте"; переподготовка - только для людей, работающих в нем; анализ эффекта затрат делается только для него и т.д. 5.5.1.3. Эксплуатация Этап эксплуатации или сопровождения системы в динамично меняющемся предприятии представляет собой довольно сложную задачу. Модернизация программноаппаратной части, вызванная физическим и моральным старением компонентов АСУ; необходимость отслеживания изменений в законодательстве; необходимость доработки системы под новые требования ее пользователей; обеспечение безопасности информации в процессе эксплуатации - эти и многие другие вопросы постоянно встают перед персоналом, ответственным за процесс эксплуатации системы. 76 Затраты на эксплуатацию системы в рамках предприятия могут и должны быть снижены за счет качественной проработки предшествующих этапов, в основном, за счет разработки стратегии автоматизации и осуществления выбора системы. 5.5.1.4. Типичные проблемы при внедрении КИС Типичный вариант, при котором работы начинаются с выбора системы, после чего специалисты поставщика автоматизированной системы проводят анализ деятельности предприятия (чаще принято говорить "обследование" предприятия) на выявление некоторых проблем в области управления и формирования соответствующих рекомендаций. Поставщик программного решения может дать конкретные рекомендации по изменению деятельности предприятия, однако существует большая вероятность, что эти рекомендации будут отталкиваться от возможностей самого поставщика. И с еще большей вероятностью все они в конечном итоге будут направлены на изменение схемы ведения бизнеса предприятия таким образом, чтобы на нее лучше «легла» их система. Типична ситуация при выборе ERP – системы в СНГ: на предприятиях пищевой промышленности внедряется система оптимизированная для сборочного производства. Сама по себе стоимость этих двух систем может быть приблизительно одинакова, но затраты на внедрение и эксплуатацию в первом случае могут оказаться значительно выше. Другой пример, часто обсуждаемый в литературе. Что лучше: отечественная система, учитывающая всю специфику отечественного бизнеса, или западная система, построенная на, «западных» принципах учета? Сам по себе такой вопрос выглядит несколько некорректным. Логичнее спросить, что нужно предприятию в первую очередь: отечественный бухгалтерский учет или планирование и учет товарно-материальных потоков всего предприятия. 77 6. Конфигурирование и администрирование в системе 1С:Предприятие 6.1. Технологическая платформа «1С:Предприятие» Система 1С:Предприятие получила самое широкое распространение для решения задач автоматизации бизнес-процессов предприятий малого и среднего бизнеса. Она обладает прозрачной архитектурой и мощной технологией создания прикладных решений на основе метаданных, что позволяет эффективно использовать платформу для решения любого перечня задач при автоматизации самых разных участков экономической деятельности предприятия: учета товарных и материальных средств, взаиморасчетов с контрагентами и др. Систему 1С:Предприятие можно использовать для создания прикладных приложений различных типов. 6.1.1. Конфигурируемость Основной особенностью системы «1С:Предприятие» является ее конфигурируемость. Собственно система «1С:Предприятие» представляет собой совокупность механизмов, предназначенных для манипулирования различными типами объектов предметной области. Набор объектов, структуры информационных массивов, алгоритмы обработки информации, соответствующих поставленной задаче, определяет конкретная конфигурация. Вместе с конфигурацией система «1С:Предприятие» выступает в качестве уже готового к использованию программного продукта, ориентированного на определенные типы предприятий и классы решаемых задач. Конфигурация создается и сопровождается (поддерживается) штатными средствами системы. Конфигурация обычно поставляется в качестве типовой для конкретной области применения, но может быть изменена, дополнена пользователем системы, а также разработана заново. Система «1С:Предприятие» обеспечивает поддержку типовых конфигураций стандартными средствами. 6.1.2. Функционирование системы Функционирование системы делится на два процесса – разработка (описание модели предметной области средствами системы) и исполнение (обработка данных предметной области). На этапе разработки производится:  формирование структуры обрабатываемой информации;  создание форм для ввода исходных данных, просмотра различных списков данных;  организация хранения введенной и итоговой информации;  написание отчетов и обработок;  формирование командных интерфейсов для различных групп пользователей;  формирование списка пользователей;  назначение пользователям определенных прав. Результатом разработки является программный продукт (конфигурация), который представляет собой модель предметной области. В режиме Конфигуратор можно создавать новые конфигурации, редактировать имеющиеся, а также производить сравнение и объединение нескольких конфигураций. На этапе разработки система оперирует такими универсальными понятиями (объектами), как документ, журнал документов, справочник, реквизит, форма, регистр и другие. Совокупность этих понятий и определяет концепцию системы. В свою очередь, процесс конфигурирования распадается на несколько составляющих (деление носит условный характер), определяющих последовательность написания и назначение томов описания. Это «визуальное» конфигурирование (создание структуры конфигурации, форм 78 диалогов и выходных документов, механизм работы пользователей с данными (интерфейс) и права доступа различных групп пользователей к различной информации) и написание программ на встроенном языке «1С:Предприятия» для обработки входных и выходных данных. На уровне системы определены сами понятия объектов и стандартные операции по их обработке. Средства конфигурирования позволяют описать структуру информации, входящей в эти объекты, и алгоритмы, описывающие специфику их обработки, для отражения различных особенностей учета. Информационная структура проектируется на уровне предусмотренных в системе типов обрабатываемых объектов предметной области (константы, справочники, документы, регистры, перечисления и др.). В процессе исполнения система уже оперирует конкретными понятиями, описанными на этапе конфигурирования (справочниками товаров и организаций, счетами, накладными и т. д.). При работе пользователя в режиме 1С:Предприятие обработка информации выполняется как штатными средствами системы, так и с использованием алгоритмов, созданных на этапе конфигурирования. 6.1.2.1. Понятие «конфигурация» Основу концепции составляет понятие «конфигурация». Конфигурацией в системе «1С:Предприятие» называется совокупность взаимосвязанных составных частей:  подсистемы;  структуры учетных данных, их форм ввода, выбора, печати;  состава механизмов учета итоговых данных и движений учетных данных;  состава различных отчетов и обработок;  командного интерфейса;  набора ролей (прав доступа);  набора общих процедур и функций (модуль приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули), макетов табличных документов и др.;  вспомогательных объектов:  функциональных опций и их параметров;  хранилищ настроек;  средств работы с Web (Web-сервисы, WS-ссылки);  различной вспомогательной информации (картинки, шаблоны, стили и т. д.). Фактически структура конфигурации является моделью предметной области. Создание конфигурации выполняется при помощи конфигуратора. Созданная конфигурация используется системой «1С:Предприятие» для реализации программного окружения, пригодного для выполнения необходимых учетных задач. Роли в системе «1С:Предприятие» определяют полномочия пользователей на работу с информацией, которая обрабатывается в системе. Совокупность предоставляемых пользователю полномочий определяется, как правило, кругом его обязанностей. Операция назначения ролей пользователю решает две основные задачи:  с одной стороны, ограничивается круг пользователей конфиденциальной информации, которая, безусловно, всегда присутствует в любой системе учета;  с другой стороны, запрет выполнения определенных операций (в первую очередь операций удаления и корректировки данных) позволяет в какой-то степени предотвратить возможные потери информации. 79 Все составные части конфигурации тесно связаны между собой и требуют, как правило, согласованного внесения изменений (особенно это касается пользовательских прав). Так, назначение ролей может выполняться только для существующих объектов конфигурации (конкретных документов, журналов, справочников, отчетов). Добавление в структуру конфигурации нового объекта должно сопровождаться внесением соответствующих изменений в роли. Система учитывает назначение прав на объекты при построении командного интерфейса. Если, например, пользователю запрещен просмотр какого-либо справочника, то команда открытия формы списка этого справочника будет удалена из командного интерфейса автоматически. Формы также автоматически учитывают наличие прав при отображении форм. 6.1.3. Командный интерфейс Командный интерфейс – это основное средство навигации пользователя по функциональности конфигурации. Командный интерфейс строится на основе подсистем. Разработчик конфигурации включает прикладные объекты в соответствующие подсистемы. На основе этой информации (структуры подсистем и привязки объектов к подсистемам) система автоматически строит командный интерфейс для пользователя. Пользователю отображается структура прикладного решения (иерархия подсистем) и предоставляются стандартные команды доступа к функциональности прикладных объектов (вызов списков справочников, документов, открытие отчетов, обработок и т. д.). Однако разработчик, разумеется, может отредактировать предлагаемое системой построение командного интерфейса (изменить порядок, видимость команд). Для этого предназначен редактор командного интерфейса, который вызывается как для конкретной подсистемы, так и для всех подсистем. Сами команды, включаемые в командный интерфейс (открытие списков, ввод новых объектов, открытие отчетов и т. д.), предоставляются системой автоматически. Но разработчик может создать свои команды, которые будут включаться в командный интерфейс. Цель создания интерфейса – обеспечить структурированный доступ пользователей к той информации, которая необходима им в соответствии с их обязанностями. 6.1.4. Форма Совокупность экранного диалога, модуля, реквизитов и команд называется формой. Большинство объектов конфигурации в системе «1С:Предприятие» могут иметь визуальную форму. В самом общем случае форма как объект конфигурации состоит из следующих частей:  Экранный диалог, используемый для ввода и редактирования информации.  Модуль формы – программа на встроенном языке системы «1С:Предприятие». Как правило, модуль формы выполняет обработку вводимой в диалог информации для целей входного контроля, выполнения расчетов и т. д.  Список реквизитов.  Команды, используемые в форме. Любая из этих составных частей формы может отсутствовать, то есть не содержать информации. С помощью формы можно реализовать интерактивное взаимодействие прикладного объекта с пользователем. Характер такого взаимодействия разрабатывается специалистом, осуществляющим конфигурирование системы «1С:Предприятие». 80 Для разработки форм в конфигураторе применяется редактор форм, позволяющий редактировать все компоненты формы во взаимосвязи. 6.1.5. Модуль Модулем называется программа на встроенном языке системы «1С:Предприятие». Модули располагаются в заданных точках структуры конфигурации и вызываются для выполнения в заранее известные моменты работы системы «1С:Предприятие». Специалист, выполняющий конфигурирование системы, может использовать модули для описания сложных алгоритмов взаимодействия объектов конфигурации, для которых недостаточно имеющихся в конфигураторе визуальных средств. В конфигурации существует несколько видов модулей. Это модуль управляемого приложения, модуль обычного приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм и модули объектов конфигурации (менеджеров значения констант, справочников, документов, планов видов характеристик, планов счетов, планов видов расчета, планов обмена, бизнес-процессов, задач, отчетов, обработок, наборов записей регистров), модули менеджеров объектов конфигурации (справочников, документов, планов видов характеристик, планов счетов, планов видов расчета, планов обмена, бизнес-процессов, задач, отчетов, обработок, регистров сведений, регистров накопления, регистров бухгалтерии, регистров расчета, перечислений, журналов документов, хранилищ настроек), модули наборов записей (регистров сведений, регистров накопления, регистров бухгалтерии, регистров расчета), модули команд. Для доступа к модулю необходимо в контекстном меню объекта конфигурации выбрать пункт Открыть модуль... Для корневого объекта конфигурации выбирается модуль управляемого приложения, модуль сеанса, модуль внешнего соединения и модуль обычного приложения. Некоторые объекты (например, константы, журналы документов) не имеют модуля. Подробное описание назначений модулей см. в разделе «Что такое программный модуль?» справки по встроенному языку. В модулях объектов возможно объявление переменных, процедур и функций, которые будут доступны при работе с объектом извне во встроенном языке, дополняя контекст объекта. В этих модулях располагают процедуры обработки различных событий, например, ввода на основании. Также в них располагают различные процедуры, с помощью которых выполняются действия над объектом, инициированные вне данного объекта (например, выполнение печати). Модуль менеджера позволяет расширить функциональность менеджеров, предоставляемых системой, за счет написания процедур и функций на встроенном языке. Фактически это позволяет описать методы для объекта конфигурации (например, справочника), которые относятся не к конкретному экземпляру объекта базы данных, а к самому объекту конфигурации. Модуль менеджера не может иметь переменных и тела модуля. Если функции или процедуры модуля менеджера объявлены как экспортируемые, к ним можно будет получить доступ через менеджер объекта: // Модуль менеджера справочника Контрагент. Функция ПолучитьСписокДебиторов()... КонецФункции // Вызов из прикладного кода. Дебиторы = Справочники.Контрагент.ПолучитьСписокДебиторов(); 6.1.6. Макет Макетом в системе программ «1С:Предприятие» называется объект конфигурации, предназначенный для формирования печатных форм. 81 Общие макеты печатных форм располагаются в ветви Макеты ветви Общие дерева конфигурации: печатные формы объектов конфигурации (справочников, документов, журналов документов, планов счетов, планов видов характеристик, планов видов расчетов, регистров, отчетов и обработок и других объектов) располагаются в подчиненных объектах Макеты, а также во внешних файлах (в этом случае должно быть установлено свойство табличного документа Макет). Макеты могут быть следующего типа:  Табличный документ – предполагает использование стандартной технологии создания и использования макетов. Подготовка макета производится с помощью табличного редактора.  Двоичные данные – используются двоичные данные.  ActiveDocument – предполагает использование технологии OLE Active document.  HTML-документ – предполагает использование редактора HTML-документа.  Текстовый документ – предполагает использование текстового документа в качестве макета. Подготовка текстового макета производится с помощью редактора текстовых макетов.  Географическая схема – предполагает использование географической схемы, подготовленной в редакторе географических схем, в качестве макета.  Графическая схема – предполагает использование подготовленной в редакторе графической схемы.  Схема компоновки данных – предполагает использование схемы компоновки данных, подготовленной в конструкторе.  Макет оформления компоновки данных – предполагает использование макета оформления системы компоновки данных. 6.1.7. Варианты работы «1С:Предприятие» поддерживает два варианта работы:  файловый,  клиент-серверный. И в том и в другом варианте все прикладные решения работают полностью идентично. Файловый вариант работы в основном предназначен для персонального использования, в то время как клиент-серверный вариант – для использования в рабочих группах или в масштабе предприятия. 6.1.7.1. Файловый вариант Файловый вариант работы с информационной базой рассчитан на персональную работу одного пользователя или работу небольшого количества пользователей в локальной сети. В этом варианте все данные информационной базы (конфигурация, база данных, административная информация) располагаются в одном файле. Такой вариант работы обеспечивает легкость установки и эксплуатации автоматизированной системы. При этом для работы с информационной базой не требуются дополнительные программные средства, достаточно иметь операционную систему и «1С:Предприятие». Файловый вариант «1С:Предприятия» обеспечивает высокую целостность информационной базы и простое создание резервных копий. Исключена ситуация, когда пользователь может по ошибке (например, при копировании информационной базы) перепутать различные файлы информационной базы и привести таким образом систему в неработоспособное состояние. Кроме этого, резервное копирование может осуществляться на файловом уровне, путем простого копирования файла информационной базы. 82 Однако, несмотря на легкость и простоту использования, файловый вариант обладает некоторыми ограничениями. 6.1.7.2. Клиент-серверный вариант Клиент-серверный вариант предназначен для использования в рабочих группах или в масштабе предприятия. Он реализован на основе трехуровневой архитектуры «клиентсервер». Программа, работающая у пользователя (клиентское приложение), взаимодействует с кластером серверов «1С:Предприятия», а кластер, при необходимости, обращается к серверу баз данных (Microsoft SQL Server, PostgreSQL, IBM DB2 или Oracle Database). При этом физически кластер серверов «1С:Предприятия» и сервер баз данных могут располагаться как на одном компьютере, так и на разных. Это позволяет администратору при необходимости распределять нагрузку между серверами. Использование кластера серверов «1С:Предприятия» позволяет сосредоточить на нем выполнение наиболее объемных операций по обработке данных. Например, при выполнении даже весьма сложных запросов программа, работающая у пользователя, будет получать только необходимую ей выборку, а вся промежуточная обработка будет выполняться на сервере. Обычно увеличить мощность кластера серверов гораздо проще, чем обновить весь парк клиентских машин. Другим важным аспектом использования 3-уровневой архитектуры является удобство администрирования и упорядочивание доступа пользователей к информационной базе. В этом варианте пользователь не должен знать о физическом расположении конфигурации или базы данных. Весь доступ осуществляется через кластер серверов «1С:Предприятия». При обращении к той или иной информационной базе пользователь должен указать только имя кластера и имя информационной базы, а система запрашивает соответственно имя и пароль пользователя. Подробнее с администрированием системы можно ознакомиться в книге «1С:Предприятие 8.2. Руководство администратора». Несмотря на то, что система «1С:Предприятие» старается скрыть от пользователя особенности поведения различных серверов баз данных, это не всегда удается. Важной особенностью работы в клиент-серверном варианте является возможность работы сервера «1С:Предприятия» и серверов баз данных на различных операционных системах (семейство Windows и различные дистрибутивы Linux). 6.1.8. Технологические средства разработки Для описания специфических алгоритмов обработки информации и создания интерфейса, ориентированного на удобное представление описанных в конфигурации данных, в системе «1С:Предприятие» используются несколько технологических механизмов. Встроенный программный язык. Необходимость наличия встроенного языка определена концепцией настраиваемости системы. Синтаксис встроенного языка вполне отвечает стандартам высокоуровневых языков. Язык является предметно-ориентированным. Он поддерживает специализированные типы данных предметной области, определяемые конфигурацией системы. Работа с этими типами данных в языке организована с использованием объектной техники. Язык ориентирован на пользователей различной квалификации. В частности, его отличает мягкая типизация данных, обеспечивающая быстрое написание программных модулей, и жесткий контроль синтаксических конструкций, уменьшающий вероятность ошибок. Так как система сочетает в себе визуальные и языковые средства конфигурирования, использование встроенного языка в системе имеет событийнозависимую ориентацию, то есть языковые модули используются в конкретных местах для 83 отработки отдельных алгоритмов, настраиваемых в процессе конфигурации. Так, например, для документа можно описать алгоритм автоматического заполнения реквизитов при вводе нового документа. Данная процедура будет вызвана системой в нужный момент. Механизм запросов. Для получения произвольных отчетов сложной структуры в системе предусмотрен предметно-ориентированный механизм запросов. Данное средство опирается на существующую условно-переменную структуру информационной базы системы, что позволяет сравнительно просто описывать достаточно сложные запросы. Встроенный текстовый редактор используется для создания программных модулей на встроенном языке и для редактирования документов в текстовом виде. Одной из особенностей редактора является возможность контекстного выделения цветом синтаксических конструкций встроенного языка, а также группировка различных синтаксических конструкций. При наборе текстов на встроенном языке удобно пользоваться контекстной подсказкой и шаблонами. Благодаря тому, что встроенный язык системы имеет мощные средства манипулирования текстами, текстовый формат может быть успешно использован для обмена с другими системами самой различной информацией. Встроенный редактор форм. Работа с настраиваемыми структурами данных и работа в интерфейсе операционной системы Microsoft Windows вызывает необходимость произвольной настройки форм для ввода и редактирования информации. Для этого в системе «1С:Предприятие» существует встроенный редактор форм. Редактор позволяет оформить большинство окон, которые используются в системе для ввода и просмотра предметной информации (формы документов, справочников, настройки отчетов). Встроенный редактор табличных документов. Для всех выходных документов (первичных документов и отчетов) в системе предусмотрен единый формат – формат табличных документов. Редактор табличных документов – это мощное средство, сочетающее в себе оформительские возможности табличной структуры и векторной графики. Он может быть использован как для создания небольших документов с очень сложной структурой линий (типа платежного поручения), так и для объемных ведомостей, журналов и других подобных документов. Редактор табличных документов предоставляет пользователям богатый набор оформительских возможностей (шрифты, цвета, линии, узоры). Имеется возможность вывода информации в графическом виде (диаграммы). Одной из главных особенностей редактора табличных документов является ориентация на формирование отчетов при помощи встроенного языка системы «1С:Предприятие». Гибкое построение отчетов с его помощью становится возможным благодаря наличию механизма манипулирования именованными областями документа. Редактор табличных документов позволяет манипулировать не только горизонтальными, но и вертикальными областями, что делает возможным создание отчетов, масштабируемых не только в высоту, но и в ширину. Сочетание возможностей редактора с таким объектом, как система компоновки данных, позволяет создавать универсальные отчеты, которые дают возможность обрабатывать и представлять информацию в различных разрезах и различной детализации без дополнительного вмешательства разработчика. С другой стороны, табличный документ может выступать в качестве элемента управления формы и таким образом использоваться для ввода данных. Встроенный редактор картинок. Редактор позволяет создавать картинки произвольных размеров для использования их в качестве пиктограмм панели инструментов, картинок кнопок и других оформительских целей. 84 Встроенный редактор HTML-документов. Редактор позволяет создавать пользовательские описания и имеет большие оформительские возможности (механизм гиперссылок, использование стилей, размещение картинок и т. д.). Конструкторы – вспомогательные инструменты, облегчающие разработку стандартных элементов системы «1С:Предприятие». В системе имеются, например, конструкторы форм констант, справочников, документов, журналов документов, отчетов и других объектов, конструкторы печатных форм, конструкторы движений регистров и другие. С помощью конструкторов производится не только формирование визуальных составляющих этих объектов, но и в некоторых случаях (ввод на основании, печать, выходная форма и др.) формируются программные модули. Система настройки пользовательского интерфейса. Для того чтобы интерфейс конкретной конфигурации системы полностью отражал настроенные структуры данных и алгоритмы, в системе «1С:Предприятие», помимо редактора диалоговых форм и табличных документов, предусмотрена возможность настройки командного интерфейса системы. При этом командный интерфейс автоматически учитывает права доступа пользователя, который вошел в систему. При этом пользователю будут показаны только те объекты системы, доступ к которым пользователю разрешен. Подсистемы. Конфигуратор позволяет на этапе проектирования в рамках одной конфигурации выделить различные подсистемы (например, торговый учет и исследовательский комплекс). Для каждой подсистемы можно указать объекты конфигурации, которые в нее входят. Допускается указывать принадлежность одного объекта к нескольким подсистемам. Фактически подсистемы определяют основные разделы конфигурации, с которыми будет работать пользователь. В связи с тем, что структура подсистем определяет интерфейс конфигурации, следует уделять вопросам проектирования подсистем (и их иерархии) особое внимание. Система настройки прав доступа (роли). Данная система позволяет описывать наборы прав, соответствующие должностям пользователей или виду деятельности. Структура прав определяется конкретной конфигурацией системы. Например, могут быть введены такие наборы прав, как Главный бухгалтер, Кладовщик, Менеджер, Начальник отдела. Кроме того, для объектов, хранящихся в базе данных (справочник, документы, регистры и т. д.), могут быть определены права доступа к отдельным полям и записям. Сам список пользователей создается уже для конкретной организации. Каждому пользователю назначается одна или несколько ролей, основной интерфейс и язык, используемые при работе с программой. Отладчик. Для удобства разработки конфигурации в системе предусмотрен отладчик. Отладчик позволяет прослеживать исполнение программных модулей конфигурации, замерять сравнительное время исполнения, просматривать содержимое переменных. Хранилище конфигураций. Для групповой разработки конфигурации разработчики используют механизм хранилища конфигурации. Он позволяет распределять права доступа по модификации объекта конфигурации и производить необходимые изменения одновременно, а не последовательно. Поддержка конфигураций. Для удобства проведения обновлений конфигураций предусмотрен механизм формирования разработчиками типовых конфигураций файлов поставки и комплектов поставки (включают программу установки), а также механизм обновления типовых конфигураций, находящихся на поддержке. 85 6.1.9. Защита от несанкционированного использования Программные продукты «1С:Предприятие» версии 8 помимо системы программного лицензирования могут быть защищены от копирования аппаратными USB ключами типа HASP4 Net от фирмы Aladdin. В данном разделе приведена информации о типе, маркировке и назначении различных ключей HASP4 Net от «1С:Предприятие». Все ключи HASP4 Net условно можно разделить на 2 типа «Клиентские» и «Серверные»:  Клиентские служат для выдачи лицензий пользователям Windows при запуске «1С:Предприятие» 8. Данные ключи могут быть установлены на любой компьютер в локальной сети. Обслуживанием ключей в данном случае занимается программа HASP HL License Manager.  Серверный ключ необходим для того, чтобы запускалась служба сервера «1С:Предприятие». Он должен быть установлен непосредственно на тот же самый компьютер, где и запущена данная служба. Служба может иметь разрядность x86 или x64. Назначение конкретного ключа можно определить по его цвету и маркировке. На рисунке 6.1 рамкой выделена маркировка ключа. Остальные символы на ключе для пользователей программ особого значения не имеют. Рисунок 6.1 – Аппаратный ключ защиты Тип и назначение ключа по маркировке можно определить из таблицы 6.1. Таблица 6.1 – Типы, маркировка и назначение аппаратных ключей защиты Тип / цвет Маркировка / серия Назначение Однопользовательские версии основных поставок и клиентских ключей HASP HL Basic H4 M1 ORGL8 Клиентская лицензия на 1 рабочее место Сетевые версии основных поставок и многопользовательские ключи USB HASP HL Net H4 NET5 ORGL8 1С:Предприятие 8. Клиентская лицензия на 5 рабочих мест H4 NET10 ORGL8 1С:Предприятие 8. Клиентская лицензия на 10 рабочих мест H4 NET20 ORGL8 1С:Предприятие 8. Клиентская лицензия на 20 рабочих мест H4 NET50 ORGL8 1С:Предприятие 8. Клиентская лицензия на 50 рабочих мест H4 NET100 ORGL8 1С:Предприятие 8. Клиентская лицензия на 100 рабочих мест NET250+ ORG8A 1С:Предприятие 8. Клиентская лицензия 86 на 300 рабочих мест 1С:Предприятие 8. Клиентская лицензия на 500 рабочих мест Ключи на сервер 1С:Предприятие 8.* H4 M1 ENSR8 1С:Предприятие 8. Лицензия на сервер (х32). NET250+ ORG8B USB HASP HL Pro USB HASP HL Max Max EN8SA 1С:Предприятие 8. Лицензия на сервер (x86-64). Есть несколько особенностей, которые следует принять во внимание перед установкой ключей HASP, а именно: Общее число пользователей, которые могут работать с системой «1С:Предприятие» равно сумме лицензий, доступных в каждом из клиентских ключей. На одном физическом компьютере не могут работать 2 и более ключа одной Серии, т.к. эти ключи неразличимы и фактически будет задействован только один из них (выбранный произвольно). Серию ключа можно определить по последним 5 символов в маркировке (ORGL8, ORGL8A, ENSR8 и т.д.). Ключи разных серий без проблем могут быть установлены на один компьютер. Клиентские ключи могут быть установлены на любой компьютер в сети (если запущен сервер лицензирования HASP License Manager). При наличии нескольких ключей, лицензии выдаются в следующем порядке:  в ключе серии ORGL8;  в ключе серии ORGL8A;  в ключе серии ORGL8B. Действует также «запоминание ключа», т.е. при повторном обращении сначала будет выполнена попытка получении лицензии из ключа, чья лицензия была получена пользователем при последнем подключении. Серверный ключ должен быть установлен непосредственно на тот же самый компьютер, который используется в качестве сервера кластера «1С:Предприятия». По сети он работать не будет. Серверные 64-битные ключи также можно использовать и в 32-битных системах. Существуют определенные проблемы с пробросом серверного ключа из физической среды в виртуальную на некоторых гипервизорах. Например, штатными средствами пробросить серверный ключ в виртуальную машину в Hyper-V на Windows Server 2008 R2 нельзя. COM-соединение также требует лицензию. Для работы Web-сервисов не требуется клиентских лицензий. Клиент «1С:Предприятие» при запуске может использовать для получения лицензий:  Локальный ключ — ключ установленный на физический компьютер, с которого запускается «1С:Предприятие». Дает право запуска на компьютере c ключом из под одной сессии Windows произвольного количества экземпляров системы в режиме 1С:Предприятие или Конфигуратор. При работе в терминальном режиме позволяет работать только одному пользователю, который подключился к терминальной сессии с идентификатором 0.  Многопользовательский ключ, доступный по сети через HASP License Manager — Обеспечивает одновременную работу стольких компьютеров, на сколько 87 пользователей имеется ключ. Аналогично локальному ключу на одном компьютере в одной сессии Windows возможен запуск произвольного количества экземпляров системы в любом режиме в рамках одной лицензии. (рисунок 6.2). При работе в терминальном режиме также требуется установка HASP License Manager. Рисунок 6.2 – Схема выдачи лицензий HASP License Manager  Сервер «1С:Предприятие» или модуль расширения веб-сервера — Помимо программы HASP License Manager лицензии также могут выдаваться и сервером «1С:Предприятие» или модулем расширения веб-сервера (только в случае работы с файловой базой через Web-клиент). При этом подсчетом лицензий занимается непосредственно сервер «1С:Предприятие» или модуль расширения веб-сервера. В этом случае, в отличии от двух предыдущих вариантов, лицензии расходуются из расчета «один сеанс — одна лицензия». Таким образом, если на одном компьютере запущено два экземпляра «1С:Предприятие», то будет затрачено две лицензии (рисунок 6.3). Рисунок 6.3 – Схема выдачи лицензий сервером 1С:Предприятие 88 Кроме того, очень важно знать и учитывать следующую особенность: если в сети будет обнаружено несколько многопользовательских клиентских ключей серии ORGL8, то сервером будет выбран один произвольный ключ. После исчерпания лицензий этого ключа возможно использование одного многопользовательского ключа ORG8A, и затем возможно использование одного многопользовательского ключа ORG8B. Наряду с аппаратными USB-ключами типа HASP4 Net, программные продукты «1С:Предприятие» могут быть защищены от копирования при помощи системы программного лицензирования. Данная система обеспечивает совместную работу пользователей без каких-либо дополнительных физических устройств. Программная лицензия представляет собой специальный файл с расширением .lic, который после получения может располагаться в следующих каталогах (в ОС семейства Windows):  Каталог файлов конкретной версии платформы. По умолчанию — C:\Program Files\1Cv82\8.2.XX.YYY\bin\conf  Каталог %USERPROFILE%\Local Settings\Application Data\1C\1Cv82\Conf или в %LOCALAPPDATA%\1C\1Cv82\Conf для ОС Windows Vista и выше.  Каталог, который указан в файле conf.cfg расположенном в каталоге bin\conf конкретной версии платформы.  Каталог %ALLUSERSPROFILE%\Local Settings\Application Data\1C\1Cv82\Conf или в %ProgramData%\1C\1Cv82\Conf для ОС Windows Vista и выше. Каталоги перечислены в порядке поиска, после нахождения файлов лицензий дальнейший поиск прекращается. Файл лицензии не стоит копировать или перемещать. Если обнаруживается 2 или более файла лицензий, полученных для одного пинкода и серийного номера программы, то файл лицензии становится непригодным для использования и помещается в черный список. Все программные лицензии условно можно разделить на 2 типа «Клиентские» и «Серверные»  Клиентские лицензии необходимы для запуска клиента «1С:Предприятие» 8. Клиентские лицензии бывают: o Однопользовательские — позволяют запускать произвольное количество экземпляров приложения на одном компьютере в рамках одной сессии Windows. o Многопользовательские — позволяют запускать не более определенного количества экземпляров программы с произвольных компьютеров. Количество одновременно запущенных клиентских приложений определяется номиналом лицензии.  Серверные лицензии — необходимы для запуска кластера сервера «1С:Предприятие». Могут быть 32-разрядными или 64-разрядными. Причем лицензия на 64-разрядный сервер позволяет использовать и 32-разрядные рабочие процессы. Стоит также отметить, что клиентские лицензии могут быть комбинированными. В этом случае конечный тип лицензии зависит от варианта активации. Изначально доступны оба типа лицензий, но если первой активируется однопользовательская лицензия, то считается, что выбран набор однопользовательских лицензий и дальнейшая активация многопользовательской лицензии становится невозможной. И наоборот, если первой активирована многопользовательская лицензия, то в дальнейшем активировать однопользовательскую лицензию уже не получится. Для получения и активации лицензии требуется пинкод и серийный номер комплекта. Эти данные входят в комплект поставки «1С:Предприятие» и находятся в конверте с надписью «Пинкоды программной лицензии». Внутри конверта содержится все необходимая информация. 89 При получении программной лицензии выполняется активация пинкода. На один пинкод можно получить только одну лицензию. Количество пинкодов в комплекте поставки и количество одновременно активных пинкодов определяется вариантом лицензии. Пинкоды, дополнительно входящие в состав поставки, можно использовать в том случае, если изменены ключевые параметры системы. Дело в том, что при формировании программной лицензии происходит сбор информации о компьютере для которого получается лицензия а именно:  Наименование операционной системы;  Версия операционной системы;  Серийный номер операционной системы (только для ОС Windows);  Дата установки операционной системы (только для ОС Windows);  Сетевое имя компьютера;  Модель материнской платы;  Объем оперативной памяти;  Тип и версия BIOS;  Список процессоров и их параметры;  Список сетевых адаптеров и их MAC-адреса;  Список жестких дисков и их параметры. Если в процессе работы будет изменен хотя бы один из ключевых параметров, будет необходимо повторно получать программную лицензию (параметры компьютера опрашиваются не чаще одного раза в сутки). Вот в этот момент и потребуются дополнительные пинкоды, входящие в поставку лицензии. Если по каким то причинам были израсходованы все пинкоды из комплекта поставки, то следует обратиться в Центр лицензирования за получением дополнительных пинкодов. Варианты программных лицензий представлены в таблицах 6.2 и 6.3. Таблица 6.2 – Таблица вариантов пользовательских программных лицензий 1С:Предприятие 8 Тип Лицензий Пользователей Активных Поставляется пинкодов пинкодов Однопользовательская, 1 1 1 3 1 пользователь Комбинированная, 5 1 5 8 5 пользователей 5 1 3 Комбинированная, 10 1 10 14 10 пользователей 10 1 3 Комбинированная, 20 1 20 25 20 пользователей 20 1 5 Многопользовательская, 50 50 1 3 50 пользователей Многопользовательская, 100 100 1 3 100 пользователей Многопользовательская, 300 300 1 3 300 пользователей Многопользовательская, 500 500 1 3 500 пользователей 500 Тип Серверная, Таблица 6.3 – Таблица вариантов серверных программных лицензий 1С:Предприятие 8 Описание Активных Поставляется пинкодов пинкодов Возможность работы произвольного 1 3 90 32-разрядная Серверная, 64-разрядная количества 32-разрядных рабочих процессов на одном физическом компьютере Возможность работы произвольного количества 32-разрядных и 64-разрядных рабочих процессов на одном физическом компьютере 1 3 Возможны следующие варианты учета программных лицензий:  Однопользовательская лицензия — поиск лицензии происходит на локальном компьютере и, в случае успеха, обеспечивают запуск произвольного количества экземпляров программы в режиме 1С:Предприятие или Конфигуратор на данном компьютере. Рисунок 6.4 – Схема учета локальных программных лицензий В приведенном примере будет затрачено 2 локальных лицензии и подключение к серверу возможно только с того компьютера, где установлена и система «1С:Предприятие» и локальная лицензия «1С:Предприятие».  Многопользовательская лицензия — установка происходит «на сервер» и подсчетом лицензий занимается, соответственно, сервер «1С:Предприятия» или модуль расширения web-сервера (в случае работы с файловой базой через webклиент). Файлы программных лицензий располагаются на компьютере, где запущен сервер «1С:Предприятия» или установлен модуль расширения webсервера. В этом случае лицензии расходуются из расчета «один сеанс — одна лицензия». Таким образом, если на одном компьютере запущено два экземпляра «1С:Предприятие» (в любом режиме запуска), то на это будет израсходовано две лицензии. 91 Рисунок 6.5 – Схема учета многопользовательских программных лицензий В приведенном примере будет затрачено 4 лицензии и подключение к серверу возможно с любого компьютера, где установлена система «1С:Предприятие». Как видно из схем, нельзя сказать какой вариант установки лицензий лучше. В первом варианте тратится больше клиентских лицензий, однако добавление нового рабочего места не несет дополнительных трат на приобретение клиентской лицензии. В втором случае, лицензий затрачено меньше, но при добавлении нового рабочего места, потребуется и новая клиентская лицензия на программу «1С:Предприятие». Для каждой конкретной ситуации подходит тот или иной вариант лицензирования. Конечно же возможны и оба варианта одновременно, когда часть лицензий установлена на компьютеры пользователей, часть на сервер «1С:Предприятие».  Установка на терминальный сервер — на терминальный сервер возможна установка как однопользовательских, так и многопользовательских лицензий. В обоих случаях обеспечивается запуск произвольного количества экземпляров системы «1С:Предприятие» для такого количества одновременных подключений к терминальному серверу (терминальных сессий), на сколько пользователей в сумме активировано программных лицензий на данном сервере. Иными словами, если на сервере терминалов активировано 10 многопользовательских лицензий, то одновременно 10 пользователей в терминальном режиме смогут запустить любое количество экземпляров программы «1С:Предприятие», каждый в рамках своей сессии. Распределением лицензий между пользователями в этом случае будет заниматься сервер терминалов. Также следует проследить, чтобы файлы лицензий были доступны всем пользователям терминального сервера. Работа с информационными базами возможна как в файловом, так и в клиентсерверном варианте. 6.1.10. Режимы работы системы Система «1С:Предприятие» может работать в одном из следующих режимов: 92 Режим работы Описание Конфигуратор Режим конфигурирования системы. Позволяет редактировать структуры данных, выполнять обновление конфигурации, формировать список пользователей системы с назначением прав доступа на работу в системе, выполнять выгрузку и загрузку данных 1С:Предприятие Исполняемая часть системы. На основе структур данных, описанных в конфигураторе, выполняет собственно ввод и обработку информации (работу со справочниками, документами, отчетами и так далее). Исполняемая часть системы, в свою очередь, может использоваться в трех разных вариантах: ● тонкий клиент – исполняемый файл 1Cv8c.exe; ● веб-клиент – нет исполняемого файла (его роль играет веббраузер); ● толстый клиент – исполняемый файл 1Cv8.exe. Толстый клиент может выполнять как конфигурации, которые написаны для предыдущих версий системы «1С:Предприятия», так и конфигурации, написанные в режиме управляемого приложения. Тонкий и веб-клиенты могут исполнять только те конфигурации, которые написаны в режиме управляемого приложения Запустить «1С:Предприятие» в каком-либо режиме запуска можно несколькими способами:  С помощью программы запуска (1CEStart.exe) – рекомендованный способ.  С помощью интерактивной программы запуска (1Cv8s.exe).  С помощью исполняемого файла толстого (1Cv8.exe) или тонкого (1Cv8c.exe) клиента конкретной версии системы.  С помощью веб-браузера (только веб-клиент). Для запуска системы используются конфигурационные файлы:  Локальный конфигурационный файл – 1CEStart.cfg.  Локальный конфигурационный файл для всех пользователей – 1CEStart.cfg.  Общий конфигурационный файл – 1CSECmn.cfg. 6.1.11. Варианты подключения к информационной базе Существует несколько способов расположения информационной базы и способов подключения к ней (выбирается в диалоге добавления информационной базы):  Информационная база расположена на локальном компьютере или на компьютере в локальной сети. Используется тонким и толстым клиентами в файловом варианте. При работе тонкого клиента в файловом варианте работы на компьютере, где запущен сам тонкий клиент, организуется специализированная среда. В рамках этой специализированной среды выполняются: o загрузка необходимых для работы системы серверных компонентов; o загрузка прикладной конфигурации; o другие действия, необходимые для организации нормальной работы системы с информационной базой. При этом взаимодействие между тонким клиентом и этой специализированной средой выполняется по тем же протоколам, что и в случае работы в клиентсерверном варианте или через веб-сервер. Таким образом, с точки зрения тонкого клиента данная среда выступает в роли сервера. С точки зрения 93 операционной системы данная специализированная среда не выделена в отдельный процесс и выполняется в рамках процесса тонкого клиента.  Информационная база расположена на сервере «1С:Предприятия». Используется тонким и толстым клиентами в клиент-серверном варианте.  Информационная база расположена на веб-сервере. Используется тонким клиентом и веб-клиентом в файловом или клиентсерверном варианте. Для подключения через веб-сервер необходимо установить и настроить соответствующим образом веб-сервер. В качестве строки соединения с информационной базой при подключении через веб-сервер нужно указать URL, например, следующего видаhttp://MyServer/DemoBase. 6.1.12. Выбор информационной базы Следующий этап запуска системы «1С:Предприятие» – выбор информационной базы. Для этого служит выдаваемое на экран окно Запуск 1С:Предприятия. Рисунок 6.6 – Запуск «1С:Предприятия» В списке Информационные базы содержится список информационных баз. Каждая строка списка связана с каким-либо каталогом, в котором находятся файлы информационной базы системы «1С:Предприятие» (для файлового варианта), или сервером и информационной базой на сервере (для клиент-серверного варианта). В этом списке должна быть выбрана одна из информационных баз. Для выбора необходимо щелкнуть левой кнопкой мыши на названии нужной информационной базы. Кнопки Изменить, Добавить и Удалить служат для управления списком информационных баз системы «1С:Предприятие» (можно использовать горячие клавиши F2, Ins и Del). Размеры окна можно изменить. Положение окна на экране и его размер запоминаются до следующего сеанса. После того как установлены все необходимые параметры запуска системы «1С:Предприятие», необходимо нажать кнопку 1С:Предприятие для запуска в режиме 1С:Предприятие или Конфигуратор для запуска в режиме Конфигуратор. Нажатие кнопки Выход позволяет отказаться от запуска. 94 6.1.13. Аутентификация пользователей Если для выбранной информационной базы существует список пользователей, которым разрешена работа с ней (создание и редактирование такого списка выполняется в конфигураторе системы «1С:Предприятие»), на экран будет выдан диалог Аутентификация пользователя. Рисунок 6.7 – Аутентификация пользователя В этом диалоге необходимо указать имя пользователя, что можно осуществить несколькими способами:  Щелкнуть мышью в поле Пользователь и выбрать имя из списка.  Ввести имя пользователя в поле ввода Пользователь, если список очень большой или в настройках пользователя не установлено свойство Показывать в списке выбора. Если пользователю назначен пароль, его следует ввести в поле Пароль. После указания имени и пароля пользователя процесс запуска продолжится, если нажать кнопку OK. Нажатие кнопки Отмена позволяет отказаться от запуска. 6.1.14. Перезапуск системы В некоторых случаях открытие информационной базы невозможно. Система уведомляет об этом пользователя и предлагает повторить попытку соединения с информационной базой через 60 секунд. К таким случаям относятся:  Конфигурация уже открыта в режиме Конфигуратор (при попытке запуска в режиме Конфигуратор).  Для информационной базы установлен монопольный режим работы.  Различаются версии клиентского приложения и сервера «1С:Предприятия».  Не обнаружен сервер «1С:Предприятия».  Не обнаружен сервер баз данных.  Административно установлен запрет соединения с информационной базой. В таких случаях на экран выводится окно, в котором сообщается о причине (в приведенном на рисунке ниже примере это факт открытия данной информационной базы конфигуратором), и предлагается выбрать автоматический перезапуск системы через 1 минуту или отказаться от запуска. 95 Рисунок 6.8 – Ожидание перезапуска Перезапуск конфигуратора также предлагается после выполнения загрузки информационной базы и в случае динамического обновления информационной базы в клиент-серверном варианте работы. При работе в режиме 1С:Предприятие в случае возникновения критической ошибки система предлагает осуществить перезапуск с теми же параметрами текущего пользователя. 6.2. Быстрая разработка прикладных решений 6.2.1. Объект конфигурации Под объектом конфигурации в системе «1С:Предприятие» понимается формальное описание группы понятий (предметной области, средств взаимодействия пользователя с системой) со сходными характеристиками и одинаковым предназначением. Приведем такой пример. Объект конфигурации Справочник в системе «1С:Предприятие» предназначен для ведения списков однородных элементов данных – справочников, картотек, нормативных сборников и т. п. Использование объектов конфигурации этого типа позволяет организовать ведение любых справочников, необходимых для автоматизации деятельности предприятия. Как правило, объекты конфигурации типа Справочник являются компьютерными аналогами реально существующих на предприятии видов справочников, например, справочника сотрудников или номенклатуры товаров, хотя могут использоваться и для организации списков, не имеющих явных физических аналогов. Следует иметь в виду, что объект конфигурации описывает не конкретное значение, а только его вид. Например, справочник Физические лица описывает не конкретного человека, а содержит перечень реквизитов (набор видов характеристик о физическом лице), а также формы для ввода их значений, формы просмотра списков и макеты для печати информации. Другими словами, в конфигурации создается схема описания, с помощью которой учитываются все однородные объекты предметной области (в приведенном примере справочника Физические лица одно описание используется как для Петрова, Иванова, так и для любого другого физического лица). Реализованный в системе «1С:Предприятие» при помощи объекта конфигурации компьютерный аналог конкретного понятия предметной области будем называть объектом конфигурации. 6.2.1.1. Свойства объекта конфигурации Каждый объект конфигурации обладает уникальным набором свойств. Этот набор описан на уровне системы и не может быть изменен в процессе настройки конфигурации задачи. Набор свойств объекта конфигурации определяется в основном его назначением в системе «1С:Предприятие». 96 Главным свойством любого объекта конфигурации является имя – краткое наименование объекта конфигурации. При создании нового объекта конфигурации ему автоматически присваивается условное имя, состоящее из слова, определяемого по виду объекта, и цифры (например, при создании реквизита создается реквизит с именем Реквизит1, при создании документа – Документ1 и т. д.). Это имя можно изменить в процессе редактирования свойств объекта конфигурации, при этом система отслеживает уникальность имен. Имя объекта конфигурации не может быть пустым и быть длиннее 255 символов. Некоторые свойства из всего набора свойств, присущих объекту конфигурации, доступны для редактирования и могут быть так или иначе изменены в процессе конфигурирования системы. Характер изменений и их пределы также задаются на уровне системы. Специалист, осуществляющий конфигурирование системы, целенаправленным изменением свойств объекта конфигурации может добиться требуемого поведения объекта при работе системы. Однако такие изменения не затрагивают сущности объекта и не позволяют добиться от него действий, не свойственных объектам данного типа. Приведем такой пример. Объект конфигурации Константа в системе «1С:Предприятие» предназначен для хранения информации, которая не изменяется во времени или изменяется очень редко. При этом не важны предыдущие значения константы. Простым примером константы может служить название предприятия: оно, как правило, не меняется в процессе деятельности предприятия (если предполагается, что значения каких-либо учетных данных, изменяемых во времени, нужно выбирать с учетом времени, то для таких данных необходимо использовать не константу, а регистр сведений без измерений). Константа обладает большим набором редактируемых свойств, из которых наиболее важными являются:  имя константы,  синоним,  комментарий,  тип данных,  режим управления блокировкой,  ссылка, позволяющая открыть модуль менеджера константы. В наиболее общем случае значение в константу вводится один раз (как, например, название предприятия). С точки зрения использования константы не важно, что именно хранится в константе; главным является то, что константа сохранила записанное в нее значение. Способность сохранять введенное в нее значение – неотъемлемая особенность константы в системе «1С:Предприятие». Редактирование свойств константы на эту способность не влияет. 6.2.1.2. Основные виды объектов конфигурации Все объекты конфигурации, которые существуют в системе «1С:Предприятие», образуют несколько основных видов. Каждый вид объектов конфигурации представляет собой как раз те «строительные элементы», из которых будет создаваться конфигурация. Формально объекты конфигурации объединяются в виды в дереве конфигурации. Названия видов пользователь видит на первом уровне дерева конфигурации, когда открывает окно Конфигурация в конфигураторе. 97 Рисунок 6.9 – Дерево метаданных Несмотря на отсутствие формального определения, названия видов объектов конфигурации широко используются при работе с системой «1С:Предприятие». Например, специалист, осуществляющий конфигурирование системы «1С:Предприятие», видит свою цель в разработке необходимого набора справочников, документов, отчетов, журналов, которые будут реализовывать требуемую систему учета. Конечный пользователь системы «1С:Предприятие» – руководитель, бухгалтер, менеджер, кладовщик – также оперирует конкретными справочниками, документами и т. д. для решения стоящих перед ним задач. Общение между двумя этими категориями пользователей также будет происходить в понятиях видов объектов конфигурации. Объект данных какого-либо вида является уже конкретным документом, отчетом, журналом, константой и так далее. Как правило, каждый объект используется для работы со вполне определенной информацией предметной области. Ниже приведена краткая характеристика основных видов объектов конфигурации системы «1С:Предприятие». Подробная информация об объектах конфигурации, объединяемых в каждом из этих видов, будет изложена далее. 6.2.1.2.1. Константы Для работы с постоянной и условно постоянной информацией в системе используются объекты типа Константа. Информация, хранящаяся в константах, редко изменяется, но, как правило, часто используется в работе. Например, в константах может храниться наименование предприятия, его ИНН, фамилии директора и главного бухгалтера и другая подобная информация. В системе может быть описано неограниченное количество констант. 6.2.1.2.2. Справочники Для работы с постоянной и условно постоянной информацией с некоторым множеством значений в системе используются объекты типа Справочник. 98 Обычно справочниками являются списки материалов, товаров, организаций, валют, сотрудников и др. Механизм поддержки справочников позволяет спроектировать и поддерживать самые различные справочники. На этапе конфигурирования можно описать, какими свойствами обладает каждый конкретный справочник. К настраиваемым свойствам относятся, например, длина и тип кода, количество уровней иерархии, поддержка уникальности кодов, набор реквизитов справочника. Помимо кода и наименования, механизм работы со справочниками позволяет создавать набор реквизитов для хранения любой дополнительной информации об элементе справочника (например, для номенклатуры это может быть закупочная и отпускная цены, производитель, для сотрудника – должность, образование, адрес места жительства и т. д.), а также табличные части. В табличных частях хранится однотипная информация, число которой может быть переменным, например, описание комплектующих изделия, состав семьи сотрудника, телефоны организации и т. д. Для каждого справочника может быть задано несколько типов форм: элемента, группы, списка, выбора, выбора группы. По каждому типу форм может быть создано произвольное число форм. Для описания соподчиненных сущностей можно использовать подчиненные справочники. В этом случае в подчиненном справочнике каждый элемент «принадлежит» к определенному элементу справочника-владельца. В конкретной конфигурации создается необходимое количество справочников для хранения данных об объектах, используемых при автоматизации данной предметной области. Например, это могут быть справочники Организации, Товары, Сотрудники и т. д. 6.2.1.2.3. Перечисления Перечисления используются в системе «1С:Предприятие» для описания постоянных наборов значений, не изменяемых в процессе работы конфигурации. На этапе конфигурирования можно описать практически неограниченное количество видов перечислений. В отличие от справочника, значения перечислений задаются на этапе конфигурирования и не могут быть изменены на этапе исполнения. Типичными примерами перечислений являются виды оплаты (наличная, безналичная, бартер), статус клиента (постоянный, разовый) и т. д. Одной из главных особенностей перечислений, отличающей их от справочников, является то, что набор значений перечисления не изменяется при работе конечного пользователя с программой. Например, алгоритм конфигурации может быть ориентирован на то, что каждый клиент имеет один из двух статусов – либо постоянный, либо разовый. В этом случае указание статуса клиента выполняется путем выбора одного из значений перечисления. Пользователь не может добавить новый статус. В отличие от перечислений, для справочников конкретные значения обычно вводятся пользователем при работе с программой, например: наименования товаров, контрагентов и прочее. 6.2.1.2.4. Документы Документы предназначены для отражения хозяйственных событий предприятия, которые имеют отношение к автоматизируемой предметной области. Например, в конфигурации, предназначенной для учета торговых операций, могут быть такие документы, как счет, приходная накладная, расходная накладная и проч. При помощи документов отражаются и платежи с расчетного счета, и операции по кассе, и движения по складу, и прочие подобные события. В процессе конфигурирования настраивается произвольное количество видов документов. Типичными примерами видов документов являются такие, как Платежное поручение, Счет, Приходная накладная, Расходная накладная, Накладная на внутреннее 99 перемещение, Приходный кассовый ордер и другие. Каждый вид документа предназначен для отражения своего типа событий. Это определяет его структуру и свойства, которые описываются в конфигурации. Каждый вид документа может иметь неограниченное количество реквизитов и табличный частей. Несколько табличных частей требуются в тех случаях, когда одним документом необходимо зарегистрировать разные по сути, но связанные события, например: отразить поступление товара на склад и зарегистрировать понесенные дополнительные затраты – оплату транспорта, грузчиков и др. Для документа создаются формы ввода – экранные аналоги реальных документов. Если в других формах используются данные документов, то для включения этой информации разрабатываются формы для выбора. Для просмотра списка документов одного вида создаются формы списков. Число форм неограниченно. Каждый документ также может иметь неограниченное число печатных форм. Все документы характеризуются номером, датой и временем. При настройке для документа также задается длина номера документа, условия поддержки уникальности номеров и другие. Документы играют центральную роль для основных механизмов, реализуемых системой. Все документы образуют единую хронологическую последовательность. Фактически она отражает реальную последовательность событий. Внутри даты последовательность документов определяется их временем, при этом время документа является не столько средством отражения реального (астрономического) времени ввода документа, сколько средством, позволяющим четко упорядочить документы внутри одной даты. Данные, вводимые в документ (в реквизиты и табличные части документа), обычно содержат информацию о происшедшем событии: например, в накладной – информацию о том, с какого склада, каких товаров и сколько отгружено, какие дополнительные затраты произведены при приобретении товаров. Для документа весьма важным действием является его проведение. Если документ не является «проводимым», это значит, что событие, которое он отражает, не влияет на состояние учета, который ведется в данной конфигурации. Если документ проводится, то он изменяет состояние тех или иных учитываемых данных. При проведении документ может отразить зафиксированное им событие в механизмах, реализуемых различными регистрами. Например, в торговом предприятии выписка клиенту счета на оплату не изменяет состояния товарных или денежных средств предприятия, так как счет в данном случае – это только выражение намерения клиента приобрести товар. В этом случае в конфигурации для учета торговых операций документ Счет может не отражаться на регистрах учета. Однако если выписка счета сопровождается резервированием товара для данного клиента, то в этом случае документ Счет должен отражаться на регистрах учета, так как операция выписки счета еще и «замораживает», временно выключает из оборота определенное количество товаров. В этом случае конфигурация для учета торговых операций должна уметь отслеживать зарезервированный товар. 6.2.1.2.5. Журналы документов Журналы документов предназначены для просмотра документов разных видов. Каждый вид документа может быть показан в нескольких журналах. Журнал документов не добавляет новые данные в систему, а является средством для отображения в едином списке документов нескольких видов. Например, может быть создан журнал Складские документы, в котором будут отображаться все приходные и расходные накладные и накладные на внутреннее перемещение. 100 Для журнала могут быть определены графы журнала, предназначенные для отображения реквизитов документов разного вида, отнесенных к данному журналу. Например, журнал торговых документов может содержать графу Контрагент, в которой будет отражаться реквизит Комитент документа Прием на комиссию, реквизит Организация документа Приходная накладная и т. д. Каждый журнал может иметь неограниченное число форм визуального представления и печатных форм. 6.2.1.2.6. Отчеты и обработки Для описания отчетов и процедур обработки информации на этапе конфигурирования может быть создано неограниченное число отчетов и обработок. Отчеты и обработки могут иметь несколько форм, предназначенных, например, для ввода параметров формирования отчета или параметров обработки данных. Например, для выдачи складской справки – выбор конкретного склада. Алгоритм получения отчета может описываться с использованием встроенного языка или формироваться системой автоматически, в случае использования системы компоновки данных. Для вывода отчетов может быть использован как текстовый формат, так и специализированный табличный формат отчетов (макеты). Система также поддерживает возможность разработки внешних обработок, хранящихся не в самой конфигурации, а в отдельных файлах. 6.2.1.2.7. Планы видов характеристик В системе «1С:Предприятие» объекты Планы видов характеристик предназначены для описания множеств однотипных объектов аналитического учета. 6.2.1.2.8. Планы видов расчета Объекты данного вида предназначены для создания видов расчетов, используемых в механизмах периодических расчетов. 6.2.1.2.9. Планы счетов План счетов является одним из основных понятий бухгалтерского учета. Планом счетов называется совокупность синтетических счетов, предназначенных для группировки информации о хозяйственной деятельности предприятия. Информация, накапливаемая на таких синтетических счетах, позволяет получить полную картину состояния средств предприятия в денежном выражении. 6.2.1.2.10. Планы обмена Объекты данного вида предназначены для организации обмена данными между различными информационными базами, а также информационными базами и внешними программными системами. 6.2.1.2.11. Бизнес-процессы и задачи Позволяют создавать формализованные описания типичных последовательностей работ, выполняемых в организации, и на их основе формировать списки задач, которые необходимо выполнить тому или иному сотруднику организации в данный момент. Например, процесс продажи товара может быть представлен как последовательность выписки счета, его утверждения, получения наличной оплаты и отгрузки товара со склада. За выполнение каждого из этапов могут отвечать различные сотрудники. Таким образом, в любой момент времени можно определить, в каком состоянии находится процесс продажи товара и кто из сотрудников в данный момент должен выполнить какие-либо действия. 101 6.2.1.2.12. Регистры Регистры предназначены для хранения и обработки различной информации, отражающей хозяйственную или организационную деятельность предприятия и не имеющей объектной природы. В регистрах обычно хранится информация об изменении состояний объектов или другая информация, не отражающая непосредственно объекты предметной области. Например, в регистрах может храниться информация о курсах валют или информация о приходе и расходе товаров. В системе «1С:Предприятие» существует 4 вида регистров:  регистры сведений,  регистры накопления,  регистры расчетов,  регистры бухгалтерии. 6.2.1.2.13. Специализированные объекты конфигурации (ветвь «Общие») Помимо объектов, описывающих предметную область учета, конфигурация содержит ряд вспомогательных объектов, не относящихся непосредственно к деятельности предприятия, однако тесно связанных с функционированием самой системы. Это механизмы взаимодействия пользователей с системой «1С:Предприятие» (командный интерфейс, критерии отбора, права доступа различных групп пользователей к различной информации); вспомогательные объекты оформительского назначения, позволяющие производить конфигурирование на основе сформированных стилей; библиотеки картинок с учетом национального языка; модуль приложения и общие модули, в которых располагаются процедуры и функции, доступные из прочих модулей конфигурации; общие макеты печатных форм и многое другое. 6.2.1.3. Подчиненные группы объектов В зависимости от вида объекта конфигурации объект может иметь различные подчиненные группы объектов. Например, реквизиты, измерения, формы, табличные части и т. д. Состав подчиненных объектов зависит от типа объекта. Реквизиты – дополнительная информация об объекте, доступная только в пределах этого объекта. Табличные части – наборы дополнительной информации об объекте, представленной в виде таблицы. ВНИМАНИЕ! Число строк одной табличной части не может быть более 100 000. Реквизиты табличных частей – состав табличной части объекта, доступный только в пределах табличной части объекта. Формы – форма используется для ввода, просмотра и редактирования информации, хранящейся в объекте конфигурации, содержит модуль формы – программу на встроенном языке системы «1С:Предприятие». Способность иметь визуальное представление позволяет объекту конфигурации организовать интерактивное взаимодействие с пользователем. Характер такого взаимодействия разрабатывается специалистом, осуществляющим конфигурирование системы «1С:Предприятие», и определяется в основном типом объекта конфигурации. Для разработки форм в конфигураторе применяется комплексный редактор форм, позволяющий редактировать все компоненты формы во взаимосвязи. Каждый объект может иметь несколько форм. Команды – используются для выполнения различных операций с объектом. Команды бывают независимыми и параметризуемыми. 102 Макеты – табличные, HTML или текстовые документы (также могут использоваться двоичные и Active-документы), предназначенные для формирования печатных форм объекта. Графы – графы журнала документов. Измерения – для регистров это объекты конфигурации, данные о которых учитываются в регистре. Ресурсы – данные, учитываемые в регистре. Группы подчиненных объектов не удаляются и не имеют редактируемых свойств. 6.2.1.4. Типизированные и типообразующие объекты Одним из основных свойств некоторых объектов конфигурации является Тип данных. Это свойство определяет, какого рода информацию может содержать объект конфигурации. Тип данных объекта конфигурации назначается при создании или редактировании свойств объекта в процессе настройки конфигурации. Объекты конфигурации, для которых может быть указан тип информации, содержащейся в объекте, в системе «1С:Предприятие» называются типизированными объектами конфигурации. Такие объекты конфигурации, как Справочник, Документ, Обработка, не являются типизированными объектами, так как содержат «комплексную» информацию и, в свою очередь, включают в себя типизированные объекты конфигурации. Типы данных, которые может принимать объект конфигурации, можно разделить на две группы. Первую группу составляют примитивные типы данных: Число, Строка, Дата и Булево. Соответственно, информация, хранящаяся в объекте конфигурации, может быть числом, произвольной строкой символов, датой или логической величиной. Кроме этих типов к примитивным типам относят NULL, Неопределенои Тип (подробнее см. раздел «Примитивные типы данных» справки по встроенному языку). Кроме этого, некоторые объекты конфигурации системы «1С:Предприятие» также могут образовывать типы данных. Например, константе может быть назначен тип данных ДокументСсылка. В этом случае значение константы будет представлять собой ссылку на один из существующих в системе «1С:Предприятие» документов. Объекты конфигурации, которые могут образовывать типы значений конфигурации, в системе «1С:Предприятие» называются типообразующими объектами конфигурации. Такими объектами в системе «1С:Предприятие» являются:  справочники,  документы,  планы видов характеристик,  планы счетов,  планы видов расчета,  планы обмена,  бизнес-процессы,  задачи,  перечисления. Необходимо обратить внимание, что типообразующие объекты конфигурации образуют тип данных сразу после создания в конфигураторе объекта любого из таких типов. При этом появляются сразу три новых вида типов: Ссылка, Объект и Список. Например, когда в конфигураторе создается новый справочник, то в списке типов данных появляются новые типы данных: СправочникСсылка.<ИмяСправочника>, СправочникОбъект.<ИмяСправочника> иСправочникСписок.<ИмяСправочника>. Такие типы данных могут быть присвоены любому из типизированных объектов конфигурации. 103 Некоторые данные могут иметь составной тип. Для этого в окне редактирования типа данных нужно установить флажок Составной тип данных и указать те типы, которые могут принимать данные. Кроме того, допускается выбор специального типа ЛюбаяСсылка. При выборе типа данных реквизита система, помимо выбора типов, определенных в конкретном прикладном решении, предоставляет разработчику возможность выбирать наборы типов. Наборами типов, например, являются ЛюбаяСсылка, СправочникСсылка, Характеристика.<имя> и др. Наборы типов, так же как и составной тип данных, содержат некий перечень типов, определенных в данном прикладном решении, однако, в отличие от составного типа, этот перечень формируется системой автоматически, в результате анализа метаданных. Например, в прикладном решении имеются справочники Номенклатура и Контрагенты. Если определен реквизит составного типа данных, в который входят типы СправочникСсылка.Номенклатура и СправочникСсылка.Контрагенты, то наряду с этим можно определить реквизит, содержащий набор типовСправочникСсылка. И в том и в другом случае можно хранить в реквизите ссылки как на справочник Номенклатура, так и на справочник Контрагенты. После добавления нового справочника Цены в реквизите составного типа попрежнему могут храниться только ссылки на справочники Номенклатура иКонтрагенты, а в реквизите, описанном как набор типов, допускается хранение ссылки на любой из справочников, доступных в данной конфигурации, в том числе и на справочник Цены. При запуске прикладного решения набор типов преобразуется системой, как правило, в составной тип, содержащий все типы, которые должны входить в этот набор. Поэтому во втором случае в набор типов попадет и новый справочник Цены. Однако набор типов не всегда преобразуется системой в составной тип данных. Если оказывается, что в набор типов входит единственный тип значений, то набор типов будет преобразован в этот самый тип значений. Такая ситуация возможна, например, когда план видов характеристик (назовем его Свойства) имеет единственный тип значений в свойстве ТипЗначенияХарактеристик. Тогда набор типов Характеристика.Свойства будет преобразован системой не в составной тип данных, содержащий один тип значений, а в тот единственный тип значений, который указан для плана видов характеристик. Эта особенность может быть важна, когда, например, выполняется проверка реквизита, тип которого описан как Характеристика.Свойства, на заполненность. Когда Характеристика.Свойства преобразуется системой в составной тип данных, проверять нужно на значение Неопределено, а еслиХарактеристика.Свойства преобразуется в определенный тип значения, то проверять нужно на значение по умолчанию данного типа. 6.3. Использование основных объектов конфигурации В этой главе рассказывается о работе с конфигурацией в целом и о тех режимах и механизмах, которые используются для всех объектов конфигурации. Описание действий по созданию и настройке основных объектов конфигурации (константы, справочники, документы, последовательности, журналы, перечисления, отчеты, обработки, регистры), а также некоторых объектов, располагающихся в ветви конфигурации Общие (критерии отбора, стили), производится на примере использования окна редактирования объекта. Аналогичные действия можно выполнять и в палитре свойств объектов. 104 6.3.1. Свойства конфигурации Конфигурация в целом имеет свои свойства, которые можно редактировать. Палитра свойств открывается для корневой ветки дерева конфигурации. Помимо основных свойств, присущих каждому объекту конфигурации, конфигурация имеет следующие рассмотренные ниже свойства. 6.3.1.1. Категория свойств «Основные» Основной режим запуска – выбирается режим запуска системы по умолчанию (Управляемое приложение или Обычное приложение). Для новой конфигурации устанавливается режим запуска Управляемое приложение. Также режим запуска можно изменять для пользователя системы (см. книгу «1С:Предприятие 8.2. Руководство администратора»). Данное свойство нельзя изменить, если свойство Режим совместимости установлено в значение Версия 8.1. Вариант встроенного языка – выбирается основной язык программирования (русский или английский). Выбор определяет, на каком языке будут формироваться языковые конструкции в модулях (например, при использовании синтаксис-помощника) и выдаваться информация о примитивных типах данных. Вне зависимости от значения свойства можно использовать как русский, так и английский вариант языковых конструкций. При смене значения свойства вариант написания введенных языковых конструкций не изменяется. Основная роль – выбор основной роли конфигурации. Роль, указанная в этом свойстве, будет использоваться, если список пользователей конфигурации пуст и, таким образом, не проводится авторизация доступа при начале работы программы. В этом случае считается, что пользователь обладает административными правами вне зависимости от реального состояния права Администрирование в роли, указанной в качестве основной. Если не указана основная роль конфигурации и список пользователей пуст, то пользователь работает без ограничения прав доступа. Роли задаются в ветви дерева конфигурации Общие – Роли. Модуль управляемого приложения – по ссылке Открыть открывается окно редактирования модуля управляемого приложения. Модуль сеанса – по ссылке Открыть открывается окно редактирования модуля сеанса. Модуль внешнего соединения – по ссылке Открыть открывается окно редактирования модуля внешнего соединения. Использовать управляемые формы в обычном приложении – указывает необходимость использования управляемых форм в обычном режиме толстого клиента. При установке этого флажка изменяются правила выбора формы толстым клиентом, а также изменяются правила централизованной проверки конфигурации. ПРИМЕЧАНИЕ. Данное свойство доступно только в том случае, если режим редактирования конфигурации установлен в управляемое приложение и обычное приложение. Использовать обычные формы в управляемом приложении – указывает необходимость использования обычных форм в управляемом режиме толстого клиента. При установке этого флажка изменяются правила выбора формы толстым клиентом, а также изменяются правила централизованной проверки конфигурации. ПРИМЕЧАНИЕ. Данное свойство доступно только в том случае, если режим редактирования конфигурации установлен в управляемое приложение и обычное приложение. Дополнительные словари полнотекстового поиска – выбор общих макетов или констант, которые будут выступать в роли дополнительных словарей для полнотекстового поиска. 105 Хранилище общих настроек – данное хранилище предназначено для хранения различных настроек прикладного решения. Платформа самостоятельно не записывает в данное хранилище никаких настроек. Хранилище, указанное в данном свойстве, должен использовать разработчик из встроенного языка, для того чтобы выполнять сохранение/восстановление прикладных настроек пользователя. Хранилище пользовательских настроек – в данное хранилище помещаются пользовательские настройки отчетов. Хранилище вариантов отчетов – в данное хранилище помещаются варианты отчетов. Хранилище настроек данных форм – в это хранилище сохраняются данные форм. Этим хранилищем можно пользоваться, например, для сохранения реквизитов обработок. При этом можно выбрать индивидуальное хранилище для каждого отчета и обработки. 6.3.1.2. Категория свойств «Представление» Командный интерфейс – по ссылке Открыть открывается редактор, который позволяет задавать видимость подсистем по умолчанию на рабочем столе (в том числе в разрезе ролей). Рабочая область рабочего стола – по ссылке Открыть открывается форма настройки рабочего стола. Командный интерфейс рабочего стола – по ссылке Открыть открывается соответствующий редактор, позволяющий сформировать командный интерфейс рабочего стола. Основной язык – указывается основной язык конфигурации. Краткая информация – краткая информация о конфигурации. Подробная информация – подробная информация о конфигурации (допускается использование многострочного текста). Логотип – выбор логотипа. Выбор осуществляется в стандартном окне выбора картинки: Рисунок 6.10 – Выбор картинки ПРИМЕЧАНИЕ. Размер картинки для логотипа 64х64 точки или меньше. Тип картинки может быть любым из поддерживаемых системой «1С:Предприятие». Заставка – выбор заставки. Выбор осуществляется в стандартном окне выбора картинки. ПРИМЕЧАНИЕ. Для заставки необходимо, чтобы картинка удовлетворяла следующим требованиям: размер 305x110 точек, прозрачный цвет можно задать при выборе картинки. Тип картинки может быть любым из поддерживаемых системой «1С:Предприятие». Авторские права – информация об авторе конфигурации. 106 Адрес информации о поставщике – ссылка на информацию о поставщике конфигурации. Указывается в свойстве Авторские права. Может задаваться как с префиксом схемы (http://), так и без него. Адрес информации о конфигурации – ссылка на информацию о конфигурации. Может задаваться как с префиксом схемы (http://), так и без него. В окне О программе отображается следующая информация: Синоним конфигурации, свойство Адрес информации о конфигурации, свойство Авторские права, свойство Адрес информации о поставщике конфигурации. Основная форма констант – выбор основной формы для ввода и редактирования констант конфигурации. Эта форма выбирается из общих форм в ветви конфигурации Общие – Общие формы. ПРИМЕЧАНИЕ. Данное свойство доступно только в том случае, если режим редактирования конфигурации установлен в Управляемое приложение и обычное приложение. Свойства Основная форма отчета, Основная форма настроек отчета и Основная форма варианта отчета позволяет указать общие формы, которые будут использоваться отчетами, у которых не указаны соответствующие формы. Например, можно создать общую форму отчета, содержащую некоторые возможности, которые должны присутствовать во всех отчетах прикладного решения, например, отправка сформированного отчета по электронной почте. Для решения такой задачи следует создать общую форму отчета, реализовать в этой форме необходимые команды и указать ее в свойстве конфигурации Основная форма отчета. После этого все отчеты, для которых не указана основная форма отчета, будут использовать созданную общую форму. 6.3.1.3. Категория свойств «Разработка» В свойствах категории описываются данные о поставщике конфигурации и версии конфигурации. Адрес каталога обновлений – содержит адрес ресурса, который может использоваться для обновления прикладного решения. 6.3.1.4. Категория свойств «Справочная информация» Включать в содержание справки – если свойство установлено, то содержимое справочной информации включается в общее описание конфигурации. Справочная информация – по ссылке Открыть открывается окно редактирования описания конфигурации. 6.3.1.5. Категория свойств «Совместимость» Режим управления блокировкой данных – вариант управления блокировкой данных в транзакции. Режим автонумерации объектов – определяет, использовать повторно или нет автоматически полученные номера объектов, если они не записаны в базу данных. Значение данного свойства ОсвобождатьАвтоматически используется для обеспечения режима работы нумерации, аналогичного версии «1С:Предприятие 8.0». Полученные автоматически номера и коды будут в дальнейшем использоваться, если объект, для которого они получены, не записан. Значение данного свойства НеОсвобождатьАвтоматически используется для выбора режима работы, когда для объектов, требующих непрерывной нумерации, будет реализовано получение номеров при записи, а не при открытии формы. Режим совместимости – свойство управляет поведением механизмов, которое в версии «1С:Предприятие 8.2» изменено по сравнению с предыдущими версиями. Данное свойство может принимать значения Не использовать, Версия 8.2.13 и Версия 8.1. 107 При конвертации конфигураций версии «1С:Предприятие 8.1» (и более ранних) свойство принимает значение Версия 8.1. Если запускается «1С:Предприятие» версии 8.2.14 и данное свойство установлено в значение Не использовать, то происходит автоматическая установка данного свойства в значение Версия 8.2.13. Если нужно обеспечить работу прикладного решения в «1С:Предприятии» версии 8.2.13 и 8.2.14 (включая режим совместимости), то в местах различного вызова кода рекомендуется вначале проверять версию платформы и после этого – режим совместимости, если работа выполняется в версии 8.2.14. При этом не рекомендуется проверять режим совместимости на значение НеИспользовать. После того как информационная база была открыта с помощью версии 8.2.14, переход на версию 8.2.13 возможен только в том случае, если в конфигурации не использовались новые возможности версии 8.2.14. Для файлового варианта переход с версии 8.2.14 на версию 8.2.13 выполняется с помощью загрузки/выгрузки информационной базы. 6.3.2. Модуль управляемого приложения Модулем управляемого приложения называется модуль, который автоматически выполняется в момент загрузки конфигурации, при старте системы «1С:Предприятие» в следующих режимах: ● тонкого клиента, ● веб-клиента, ● толстого клиента в режиме управляемого приложения. Модуль управляемого приложения предназначен для отработки действий, связанных с сеансом работы пользователя (прежде всего обработки начала и окончания сеанса работы). Модуль управляемого приложения недоступен для процедур и функций, работающих на сервере. В нем рекомендуется реализовывать только обработчики соответствующих событий. Процедуры и функции модуля управляемого приложения, а также переменные, для которых в заголовках указано ключевое слово Экспорт, являются доступными: ● в клиентских неглобальных общих модулях, ● клиентских методах модулей форм, ● клиентских методах модулей команд. В контексте модуля управляемого приложения доступны экспортируемые процедуры и функции общих модулей. Модуль управляемого приложения, являясь частью конфигурации, сохраняется только в составе конфигурации. Использование пункта Файл – Сохранить приведет к выполнению процедуры сохранения сделанных изменений применительно ко всей конфигурации. 6.3.3. Модуль внешнего соединения В модуле внешнего соединения могут располагаться экспортируемые переменные, процедуры и функции, а также процедуры-обработчики событий ПриНачалеРаботыСистемы() и ПриЗавершенииРаботыСистемы(), используемые в режиме внешнего соединения (см. раздел «Средства интеграции и администрирования» справки по встроенному языку). 6.3.4. Модуль сеанса Модулем сеанса называется модуль, который автоматически выполняется при старте системы «1С:Предприятие», в момент загрузки конфигурации. Модуль сеанса предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы. Модуль сеанса всегда исполняется в привилегированном режиме в кластере серверов «1С:Предприятия». 108 ВНИМАНИЕ! Модуль сеанса может содержать только определения процедур и функций. Модуль сеанса не содержит экспортируемых процедур и функций и может использовать процедуры из общих модулей конфигурации. Установка параметров сеанса выполняется в обработчике события УстановкаПараметровСеанса(). Исполнение модуля сеанса происходит после начала исполнения модуля приложения (модуля внешнего соединения), до вызова обработчика события ПередНачаломРаботыСистемы() (ПриНачалеРаботыСистемы() в случае модуля внешнего соединения). 6.3.5. Ветвь конфигурации «Общие» В этом разделе описываются такие объекты конфигурации, как Подсистемы, Общие модули, Параметры сеанса, Роли, Планы обмена, Критерии отбора, Подписки на события, Регламентные задания, Функциональные опции, Параметры функциональных опций, Хранилища настроек, Общие формы, Общие команды, Группы команд, Интерфейсы, Общие макеты, Общие картинки, пакеты XDTO, Web-сервисы, WS-ссылки, Стили, Языки. Эти объекты не описывают структуру данных и механизмы их обработки. Они предназначены для установки правил работы пользователей с данными, описания вспомогательных объектов, используемых для формирования различных форм, в механизме обмена данными, а также содержат общие модули и макеты печатных форм, доступные из любого модуля конфигурации. 6.3.5.1. Подсистемы Основа формирования глобального командного интерфейса основного окна приложения – структура подсистем конфигурации. Именно подсистемы формируют представление пользователя о функциональности приложения в целом. Структура подсистем описывает для пользователя общую функциональность системы. Таким образом, построение глобального командного интерфейса основного окна приложения «от структуры подсистем» налагает на разработчика определенную ответственность при разработке подсистем конфигурации. Фактически структура подсистем – это первое, что увидит пользователь при ознакомлении с приложением. Рисунок 6.11 – Отображение подсистем в разделы На структуру командного интерфейса влияют подсистемы, которым установлено свойство Включать в командный интерфейс. Но данное свойство устанавливается подсистемам по умолчанию, и, таким образом, предполагается, что подсистемы создаются в первую очередь именно для описания глобального командного интерфейса. ПРИМЕЧАНИЕ. Если в конфигурации нет ни одной подсистемы с установленным свойством Включать в командный интерфейс, то панель разделов не отображается на рабочем столе. 109 Подсистемы первого уровня приводят к появлению в приложении «разделов» – совокупности глобальных команд определенной предметной направленности. Разделы отображаются в панели разделов основного окна приложения. Выбор того или иного раздела изменяет состав команд панели навигации и панели действий. Подсистемы более низкого уровня приводят к появлению в панели навигации «подразделов», в которые собираются команды соответствующей подсистемы. Принадлежность объекта к тому или иному набору подсистем определяет появление команд объекта в соответствующих фрагментах командного интерфейса конфигурации. Однако новые объекты по умолчанию не принадлежат ни одной подсистеме. Это означает, что команды объекта отсутствуют в командном интерфейсе. Поэтому для помещения стандартных и созданных разработчиком команд объекта в соответствующие фрагменты командного интерфейса необходимо указать, каким подсистемам принадлежит тот или иной объект. Принадлежность объекта к разным подсистемам является независимой, т. е. объект можно отнести одновременно как к «родительской» и «подчиненной» подсистемам, так и только к «подчиненной», если это целесообразно из соображений формирования командного интерфейса. ПРИМЕЧАНИЕ. Если в конфигурации нет ни одной подсистемы с установленным свойством Включать в командный интерфейс, то на рабочий стол попадают все команды, которые на нем можно было разместить вручную. В этой ситуации меняется внешний вид редактора командного интерфейса рабочего стола: в нем исчезает дерево команд и пропадает возможность удалить команду с рабочего стола. Как только появляется первая подсистема, включенная в командный интерфейс, автоматическое добавление команд на рабочий стол перестает действовать и команды на рабочем столе нужно размещать явно. ПРИМЕЧАНИЕ. Режим автоматического размещения на рабочем столе всех команд не действует, если у конфигурации установлен режим запуска Обычный. Не рекомендуется задавать подсистеме имя Desktop. На структуру объектов ветви Подсистемы не накладывается никаких ограничений по числу и вложенности. Для просмотра объектов конфигурации, относящихся к определенному набору подсистем, в окне Конфигурация можно произвести настройку фильтра отбора объектов. Следует выбрать пункт Действия – По подсистемам окна Конфигурация и указать необходимый набор подсистем, а также установить дополнительные признаки отбора Включать объекты подчиненных подсистем и Включать объекты родительских подсистем. 110 Рисунок 6.12 – Отбор по подсистемам В списке подсистем существует специальный пункт <Не входящие в подсистемы>, с помощью которого можно отобрать только те объекты, которые не принадлежат ни одной подсистеме. ПРИМЕЧАНИЕ. При установке отбора по подсистемам не показываются ключевые ветви дерева объектов конфигурации, в которых нет отобранных объектов. Принадлежность объектов конфигурации к определенной подсистеме определяет пользовательский интерфейс. Значение свойства объекта конфигурации Подсистемы доступно в программе с помощью средств встроенного языка. Это предоставляет дополнительные возможности отбора данных. Команда контекстного меню Переместить подсистему позволяет изменить подчиненность подсистемы в иерархии подсистем. Для того чтобы «привязать» объекты метаданных к конкретной подсистеме (подсистемам), служит закладка Состав редактора подсистемы. 111 Рисунок 6.13 – Состав подсистемы В верхней части окна перечислены все объекты конфигурации, которые могут быть отнесены к различным подсистемам. Отметка объекта галочкой (например, Организации на рисунке 6.13) означает, что объект начинает входить в подсистему и появляется в нижней части окна. В нижней части окна перечислены все объекты, которые входят в редактируемую подсистему. Если свойство Включать в содержание справки установлено, то в содержание справки будет включена ветвь, отображающая справку по подсистеме и всем объектам, входящим в ее состав. Если свойство сброшено, то такая ветвь (описывающая подсистему и объекты, входящие в ее состав) в содержании справки будет отсутствовать, но справка по объектам, входящим в подсистему, будет доступна непосредственно в формах самих объектов. 6.3.5.2. Общие модули Объекты, расположенные в ветви дерева конфигурации Общие модули, предназначены для размещения в них текстов функций и процедур, которые могут вызываться из любого другого модуля конфигурации. ВНИМАНИЕ! Общий модуль может содержать только определения процедур и функций. Процедуры и функции общего модуля, для которых в заголовках указано ключевое слово Экспорт, являются одними из составных частей глобального контекста. Подробнее о написании процедур в общем модуле можно узнать в разделах «Формат исходных текстов программных модулей» и «Операторы» справки по встроенному языку. Для редактирования общего модуля необходимо в палитре свойств объекта типа Общие модули окна Конфигурация в свойстве Модуль щелкнуть мышью ссылку Открыть. Текст общего модуля будет выдан для редактирования в редакторе текстов системы «1С:Предприятие» в режиме редактирования текста программного модуля. 112 Общий модуль, являясь частью конфигурации, сохраняется только в составе конфигурации. Свойство Глобальный определяет, являются ли экспортируемые методы общего модуля частью глобального контекста. Если свойство Глобальный установлено в значение Истина, то экспортируемые методы общего модуля доступны как методы глобального контекста. Если свойство Глобальный установлено в значение Ложь, то в глобальном контексте создается свойство с именем, соответствующим имени общего модуля в метаданных. Данное свойство доступно только для чтения. Значением данного свойства является объект ОбщийМодуль. Через данный объект доступны экспортируемые методы данного общего модуля. Таким образом, обращение к методам неглобальных общих модулей выглядит как XXXXX.YYYYY, где XXXXX – это имя свойства, соответствующее контексту общего модуля, а YYYYY – имя экспортируемого метода общего модуля. Пример: РаботаСТорговымОборудованием.ПодключитьСканерШтрихкодов(); 6.3.5.2.1. Различные контексты и общие модули С помощью свойств общих модулей и инструкций препроцессора можно организовать выполнение различных методов общих модулей в нужном контексте. Каждое свойство общего модуля отвечает за возможность компиляции (и исполнения) общего модуля в том или ином контексте. Доступны следующие свойства, отвечающие за контекст, в котором доступны методы общего модуля: ● Клиент (обычное приложение) – методы общего модуля будут доступны для толстого клиента в режиме обычного приложения; ● Клиент (управляемое приложение) – методы общего модуля будут доступны для тонкого клиента, веб-клиента, а также для толстого клиента в режиме управляемого приложения; ● Сервер – методы общего модуля будут доступны на сервере; ● Внешнее соединение – методы общего модуля будут доступны во внешнем соединении. Если устанавливаются одновременно несколько свойств, то это означает, что методы общего модуля будут доступны в нескольких контекстах. Если у общего модуля установлено свойство Сервер и еще какое-либо свойство, то это означает, что общий модуль будет доступен одновременно на сервере и в выбранном клиенте. При этом необходимо понимать, что фактически это будет несколько вариантов скомпилированного кода (по числу выбранных клиентов и собственно для сервера). При этом если метод, расположенный в таком общем модуле, вызывается со стороны клиента, то будет использована клиентская копия общего модуля, а если с сервера – серверная. В этом случае с помощью директив препроцессора можно «оградить» сервер от того кода, который на нем не может исполняться. Рассмотрим пример. В общем модуле (который может исполняться на тонком клиенте и на сервере) есть метод, который имеет несколько различное поведение на стороне тонкого клиента и на стороне сервера. Посмотрим, как это можно сделать: Процедура МетодОбщегоМодуля() Экспорт // Тут размещается различный важный код #Если ТонкийКлиент Тогда // Покажем предупреждение ПоказатьОповещениеПользователя("На клиенте"); #КонецЕсли КонецПроцедуры 113 Тогда на стороне сервера код приобретет следующий вид: Процедура МетодОбщегоМодуля() Экспорт // Тут размещается различный важный код КонецПроцедуры А на стороне тонкого клиента код будет иметь следующий вид: Процедура МетодОбщегоМодуля() Экспорт // Тут размещается различный важный код // Покажем предупреждение ПоказатьОповещениеПользователя("На клиенте"); КонецПроцедуры Для передачи управления с клиента на сервер существует несколько способов: ● вызвать метод серверного общего модуля; ● в модуле формы или команды вызвать метод, который предваряется директивами компиляции &НаСервере, &НаСервереБезКонтекста. При этом из серверных процедур невозможно вызвать методы клиентских общих модулей (у которых не установлено свойство Сервер) и клиентские методы модуля формы или модуля команды. Управление вернется на клиента после того, как будет завершен самый внешний вызов серверного метода. Исключение составляют методы модуля формы и модуля команды, которые предваряются директивами компиляции &НаКлиентеНаСервере, &НаКлиентеНаСервереБезКонтекста. Также следует упомянуть следующие моменты: ● Если общий модуль доступен более чем для одного клиента, то при написании программного кода следует учитывать максимальные ограничения, которые могут накладываться клиентами, либо использовать инструкции препроцессора для «изоляции» кода, специфичного для того или иного клиента. ● Инструкции препроцессора также имеют смысл тогда, когда один общий модуль имеет несколько контекстов исполнения, например, внешнее соединение и тонкий клиент или (что встречается значительно чаще) какой-либо клиент и сервер. В этом случае инструкции препроцессора будут обрамлять интерактивный код, который невозможно использовать на сервере, но возможно на клиенте (см. пример выше). Свойство Вызов сервера предназначено для управления возможностью вызова экспортируемых методов серверного общего модуля из клиентского кода. Если свойство установлено, то экспортируемые методы серверного общего модуля доступны для вызова со стороны клиента. Если свойство не установлено, то такие экспортируемые методы можно вызывать только из серверных методов (как методов серверных общих модулей, так и серверных методов модуля формы и модулей команд). СОВЕТ. Рекомендуется устанавливать в значение Ложь свойство Вызов сервера в тех случаях, когда серверный общий модуль содержит методы, которые нежелательно вызывать с клиента (например, по причинам безопасности). ПРИМЕЧАНИЕ. Если одновременно установлены свойства Клиент (обычное приложение), Клиент (управляемое приложение), Внешнее соединение, то свойство Вызов сервера автоматически сбрасывается. Если устанавливается свойство Вызов сервера, то автоматически сбрасываются свойства Клиент (обычное приложение), Клиент (управляемое приложение) и Внешнее соединение, если эти свойства были установлены одновременно. Свойство Привилегированный предназначено для отключения контроля прав доступа при выполнении методов общего модуля. ПРИМЕЧАНИЕ. Если свойство Привилегированный установлено, то общему модулю автоматически устанавливается свойство Сервер и сбрасываются остальные свойства (Клиент (обычное приложение), Клиент (управляемое приложение) и Внешнее соединение). Привилегированный общий модуль может исполняться только на сервере. 114 6.3.5.2.2. Повторное использование возвращаемых значений Если общий модуль не является глобальным, то становится доступно свойство Повторное использование возвращаемых значений. Это свойство может принимать следующие значения: ● Не использовать – повторное использование возвращаемых значений для функций этого общего модуля не используется. ● На время вызова и На время сеанса – для общего модуля используется метод определения повторного использования данных. Суть этого метода заключается в том, что в ходе выполнения кода система запоминает параметры и результат работы функций после первого вызова функции. При повторном вызове функции с такими же параметрами, происходит возврат запомненного значения (из первого вызова) без выполнения самой функции. Если функция во время своего выполнения меняет значения параметров, то повторный вызов функции не будет это делать. Можно выделить следующие особенности сохранения результатов вызова: ● если функция выполняется на сервере и вызывается из серверного кода, то значения параметров и результат вызова запоминаются для текущего сеанса на стороне сервера; ● если функция выполняется на толстом или тонком клиенте, то значения параметров и результатов вызова запоминаются на стороне клиента; ● если функция выполняется на стороне сервера, а вызывается из клиентского кода, то значения параметров вызова запоминаются и на стороне клиента, и на стороне сервера (для текущего сеанса). Сохраненные значения удаляются: ● если свойство установлено в значение На время вызова: ● на стороне сервера – при возврате управления с сервера; ● на стороне клиента – при завершении работы процедуры или функции встроенного языка верхнего уровня (вызванной системой из интерфейса, а не из другой процедуры или функции встроенного языка); ● если свойство общего модуля установлено в значение На время сеанса: ● на стороне сервера – при окончании сеанса; ● на стороне клиента – при закрытии клиентского приложения. Сохраненные значения будут удалены: ● на сервере, в толстом клиенте, во внешнем соединении, в тонком клиенте и в вебклиенте с обычной скоростью соединения – через 20 минут после вычисления сохраняемого значения или через 6 минут после последнего использования; ● в тонком клиенте и веб-клиенте с низкой скоростью соединения – через 20 минут после вычисления сохраняемого значения; ● при нехватке оперативной памяти в рабочем процессе сервера; ● при перезапуске рабочего процесса; ● при переключении клиента на другой рабочий процесс. После удаления значений вызов экспортируемой функции выполняется как при первом вызове. На выполнение процедур данное свойство общих модулей не влияет – процедуры выполняются всегда. Если у общего модуля установлено повторное использование возвращаемых значений, то на типы параметров экспортируемых функции накладывается ряд ограничений. Типы параметров могут быть только: ● Примитивными типами (Неопределено, NULL, Булево, Число, Строка, Дата). ● Любыми ссылками на объекты базы данных. ● Структурами со значениями свойств вышеперечисленных типов. В этом случае идентичность параметров контролируется «по содержимому» структур. 115 Если у общего модуля свойство Повторное использование возвращаемых значений установлено в значение На время сеанса, то в значениях, возвращаемых функциями такого модуля, нельзя использовать значения типа МенеджерВременныхТаблиц. Метод глобального контекста ОбновитьПовторноИспользуемыеЗначения() удаляет все повторно используемые значения, как на стороне сервера, так и на стороне клиента, независимо от места вызова метода. После выполнения метода ОбновитьПовторноИспользуемыеЗначения() первый вызов функции будет выполнен полностью. 6.3.5.3. Параметры сеанса Параметры сеанса предназначены в основном для использования значений параметров в запросах и условиях ограничения доступа к данным для текущего сеанса. Использование параметров сеанса снижает время доступа к данным за счет исключения связанных таблиц. Настройка параметров сеанса производится в палитре свойств. Для каждого параметра сеанса определены два права доступа – Получение и Установка (подробнее о правах см. раздел ниже). Если право Установка снято, то инициализация данного параметра сеанса возможна только в общем модуле с установленным свойством Привилегированный или в модуле сеанса. Инициализация параметров сеанса может выполняться в модуле сеанса, в обработчике события УстановкаПараметровСеанса(). До инициализации параметр сеанса находится в состоянии Не установлено. При попытке чтения такого параметра сначала вызывается обработчик события УстановкаПараметровСеанса(). Если после вызова состояние параметра остается Не установлено, то вызывается исключение. Следует разделять области применения параметров сеанса и глобальных переменных модуля управляемого приложения (модуля внешнего соединения). Среди основных отличий параметров сеанса: ● Параметры сеанса являются объектами метаданных, что позволяет «1С:Предприятию» осуществлять повышенный контроль за их использованием. ● Параметры сеанса имеют тип. Набор типов параметров сеанса ограничен. Их важной общей чертой является невозможность изменения внутреннего состояния для объектов этих типов. ● Для установки или получения значения параметра сеанса текущий пользователь должен быть наделен соответствующим правом. ● В клиент-серверном варианте «1С:Предприятия» значения параметров сеанса хранятся на сервере и доступны как с сервера, так и с клиента. ● Параметры сеанса доступны как из встроенного языка «1С:Предприятия», например: ПараметрыСеанса.ТекущийПользователь = ИмяПользователя() Так и из ограничений доступа к данным, например: Документ.Отчет.Пользователь = &ТекущийПользователь В последнем случае для получения значения параметра сеанса у текущего пользователя наличия соответствующего права не требуется. ПРИМЕЧАНИЕ. Если параметру сеанса установлен один из следующих типов: ФиксированныйМассив, ФиксированнаяКоллекция или ФиксированнаяСтруктура, то в качестве значения элемента коллекции может выступать значение Неопределено. 6.3.5.4. Роли и права доступа 6.3.5.4.1. Общая информация Каждый пользователь системы должен иметь свободный доступ к общей информации, такой как общие справочники, константы или перечисления. 116 С другой стороны, необходимо, чтобы каждый пользователь имел дело только с той информацией, которая необходима ему для работы, и никак не мог своими неосторожными действиями повлиять на работу других пользователей или на работоспособность системы в целом. Конфигуратор системы «1С:Предприятие» предоставляет разработчикам развитые средства администрирования, предназначенные для решения указанных задач. Прежде всего, в процессе создания конфигурации создается необходимое число типовых ролей, описывающих полномочия различных категорий пользователей на доступ к информации, обрабатываемой системой. Роли могут быть заданы в достаточно широких пределах – от возможности только просмотра ограниченного числа видов документов до полного набора прав по вводу, просмотру, корректировке и удалению любых видов данных. В системе «1С:Предприятие» различают два типа прав – основные и интерактивные. Основные проверяются всегда, независимо от способа обращения к объектам информационной базы. Интерактивные проверяются при выполнении интерактивных операций (просмотр и редактирование в форме и т. д.). Доступные права доступа описаны в описании метода глобального контекста ПравоДоступа() в синтакспомощнике. Если для объекта, данные которого представляются в форме, установлено (разрешено) право Просмотр, но не установлено право Редактирование, то в форме данный реквизит будет показан (элемент управления, связанный с данным объектом, отображает значение реквизита), но редактирование значения будет недоступно. Если снять право Просмотр, то при попытке открытия формы будет выдано предупреждение: Нарушение прав доступа!, и форма не будет открыта. В списке прав при редактировании роли следует обратить внимание на внутреннюю иерархию прав. Иерархия проявляется в виде «старшинства» прав. При снятии «старшего» права снимаются другие права («младшие»), связанные со «старшим» правом; и наоборот, при установке «младшего» права устанавливаются снятые «старшие» права. Так, при снятии права Просмотр снимается право Редактирование. Что вполне логично, так как нет смысла предоставлять право редактирования при невозможности показа элемента управления, связанного с данными. В общем случае права можно задавать: ● на всю конфигурацию в целом, ● объекты, ● реквизиты объектов, ● табличные части, ● реквизиты табличных частей, ● стандартные реквизиты. При создании новой роли устанавливаются следующие права доступа на корневой объект конфигурации: ТонкийКлиент, ВебКлиент, СохранениеДанныхПользователя, Вывод. 6.3.5.4.2. Привилегированный режим работы На сервере «1С:Предприятия» фрагменты кода могут исполняться как в обычном, так и в привилегированном режиме. В привилегированном режиме не выполняется проверка доступа на уровне записей, не производится контроль прав и разрешены любые операции, что ускоряет выполнение модулей. Для управления привилегированным режимом предназначен метод глобального контекста УстановитьПривилегированныйРежим(), который позволяет включать или выключать привилегированный режим. ВНИМАНИЕ! В клиент-серверном варианте вызов метода не оказывает влияния при работе на стороне клиента. 117 По умолчанию привилегированный режим выключен. Количество включений привилегированного режима должно совпадать с количеством выключений. Однако если внутри процедуры или функции происходило включение привилегированного режима (один раз или более), но не происходило его выключение, то система автоматически выполнит выключение столько раз, сколько незавершенных включений было в покидаемой процедуре или функции Если в процедуре или функции вызовов метода УстановитьПривилегированныйРежим(Ложь) сделано больше, чем вызовов метода УстановитьПривилегированныйРежим(Истина), то будет вызвано исключение. Функция ПривилегированныйРежим() возвращает Истина, если привилегированный режим еще включен, и Ложь, если он полностью выключен. При этом не анализируется количество установок привилегированного режима в конкретной функции. Программная установка привилегированного режима может потребоваться в случае массированных операций с данными информационной базы, и при этом нет смысла проверять права доступа к данным. Например, существует пользователь, которому доверили выполнять пересчет цен товаров. Тогда в обработке, например, которая это выполняет, можно проверить право текущего пользователя выполнять данную обработку, а затем включить привилегированный режим и выполнить все необходимые операции с базой данных. При этом у пользователя может не быть прав на чтение цен. Но так как данная обработка не выдает пользователю самих цен, а только их пересчитывает, то поставленные задачи ограничения доступа будут также решены. Также существует возможность стартовать привилегированный сеанс. Это сеанс, в котором привилегированный режим установлен с самого начала работы системы. При этом во время работы метод ПривилегированныйРежим() будет всегда возвращать Истина, а возможность отключить привилегированный режим не поддерживается. Стартовать привилегированный сеанс может только пользователь, которому доступны административные права (право Администрирование). Запуск сеанса можно выполнить с помощью ключа командной строки запуска клиентского приложения UsePrivilegedMode или параметра строки соединения с информационной базой prmod. 6.3.5.4.3. Безопасный режим работы В случае необходимости использования на сервере «ненадежного» программного кода: внешние обработки или программный код, вводимый пользователем для использования в методах Выполнить() и Вычислить(), можно воспользоваться безопасным режимом работы. В безопасном режиме: ● Привилегированный режим отменяется. ● Переход в привилегированный режим игнорируется. ● Запрещены операции, приводящие к использованию внешних средств по отношению к платформе «1С:Предприятие»: ● Механизмы COM: ● COMОбъект(), ● ПолучитьCOMОбъект(), ● ОболочкаHTMLДокумента.ПолучитьCOMОбъект(). ● Загрузка внешних компонентов: ● ЗагрузитьВнешнююКомпоненту(), ● ПодключитьВнешнююКомпоненту(). ● Доступ к файловой системе: ● ЗначениеВФайл(), ● КопироватьФайл(), ● ОбъединитьФайлы(), 118 ● ПереместитьФайл(), ● РазделитьФайл(), ● СоздатьКаталог(), ● УдалитьФайлы(), ● Новый Файл, ● Новый xBase, ● ЗаписьHTML.ОткрытьФайл(), ● ЧтениеHTML.ОткрытьФайл(), ● ЧтениеXML.ОткрытьФайл(), ● ЗаписьXML.ОткрытьФайл(), ● ЧтениеFastInfoset.ОткрытьФайл(), ● ЗаписьFastInfoset.ОткрытьФайл(), ● КаноническаяЗаписьXML.ОткрытьФайл(), ● ПреобразованиеXSL.ЗагрузитьИзФайла(), ● ЗаписьZipФайла.Открыть(), ● ЧтениеZipФайла.Открыть(), ● Новый ЧтениеТекста(), ● Новый ЗаписьТекста(), ● Новый Картинка(), если первый параметр – строка; ● Картинка.Записать(); ● Новый ДвоичныеДанные(); ● ДвоичныеДанные.Записать(); ● ФорматированныйДокумент.Записать(); ● ГеографическаяСхема.Прочитать(); ● ГеографическаяСхема.Записать(); ● ГеографическаяСхема.Напечатать(); ● ТабличныйДокумент.Прочитать(); ● ТабличныйДокумент.Записать(); ● ТабличныйДокумент.Напечатать(); ● ГрафическаяСхема.Прочитать(); ● ГрафическаяСхема.Записать(); ● ГрафическаяСхема.Напечатать(); ● ТекстовыйДокумент.Прочитать(); ● ТекстовыйДокумент.Записать(). ● Доступ к Интернету: ● Новый ИнтернетСоединение, ● Новый ИнтернетПочта, ● Новый ИнтернетПрокси, ● Новый HTTPСоединение, ● Новый FTPСоединение. ВНИМАНИЕ! При выполнении запрещенных операций во время выполнения генерирует исключение. ПРИМЕЧАНИЕ. Внешние отчеты и обработки, открываемые с помощью меню Файл – Открыть, выполняются в безопасном режиме, если у пользователя отсутствуют административные права доступа. Количество включений безопасного режима должно совпадать с количеством выключений. Однако если внутри процедуры или функции происходило включение безопасного режима (один раз или более), но не происходило его выключение, то система автоматически выполнит выключение столько раз, сколько незавершенных включений было в покидаемой процедуре или функции. 119 Если в процедуре или функции вызовов метода УстановитьБезопасныйРежим(Ложь) сделано больше, чем вызовов метода УстановитьБезопасныйРежим(Истина), то будет вызвано исключение. Программная установка безопасного режима может потребоваться в том случае, когда разработчик конфигурации предполагает использование стороннего (по отношению к конфигурации) программного кода, надежность которого разработчик гарантировать не может. Примером такого кода является выполнение методов Выполнить() и Вычислить() в тех случаях, когда исполняемый код получается из внешнего мира. В этом случае хорошей практикой будет установка безопасного режима до выполнения этих методов: // Формируется программный код, который следует исполнить // Возможно, что код загружается из внешних источников // или введен вручную ИсполняемыйКод = ПолучитьВыполняемыйКодИзВнешнегоМира(); // Включим безопасный режим УстановитьБезопасныйРежим(Истина); // Выполним потенциально опасный код Выполнить(ИсполняемыйКод); // Выключим безопасный режим УстановитьБезопасныйРежим(Ложь); 6.3.5.4.4. Режимы удаления данных Система «1С:Предприятие» предоставляет пользователям возможность удаления лишней или устаревшей информации в двух режимах: ● непосредственное удаление объектов, при котором не производится анализ использования удаляемого объекта в других объектах базы данных; ● использование контроля ссылочной целостности, при котором объекты сначала помечаются на удаление, а затем производится контроль наличия ссылок на эти объекты в других объектах. Если пользователю разрешен режим непосредственного удаления, то в этом случае дополнительная ответственность ложится и на пользователя, выполняющего удаление объектов, и на разработчика (администратора системы), определяющего права пользователей и действия системы при неразрешенных ссылках. Работа системы без контроля ссылочной целостности может, например, быть использована специалистами в процессе отладки конфигурации. Если контроль ссылочной целостности не используется, то удаление объектов происходит непосредственно (без пометки на удаление) и появляется возможность образования неразрешенных ссылок. Самым радикальным способом установки режима контроля ссылочной целостности является отключение прав непосредственного удаления объектов в целом. Таким способом полностью исключается возможность в пределах данной конфигурации непосредственно удалять объекты. Пользователи будут иметь возможность только помечать объекты на удаление. Заметим, что также существует возможность непосредственного удаления объектов средствами встроенного языка. Поэтому элементы конкретной конфигурации могут выполнять непосредственное удаление в обход механизма контроля ссылочной целостности. В этом случае ответственность за целостность данных лежит на специалисте, выполняющем конфигурирование системы. 6.3.5.4.5. Правила сочетания ролей Роли обычно указываются для каждого вида деятельности. При включении в список пользователей нового пользователя (см. книгу «1С:Предприятие 8.2. Руководство администратора») ему может быть назначена определенная роль или совокупность ролей. В случае использования нескольких ролей алгоритм предоставления доступа по каждому 120 объекту и виду права доступа (например, Пометка на удаление) будет работать следующим образом: ● если хотя бы в одной роли есть разрешение, то доступ будет открыт; ● если во всех ролях есть запрещение, то доступ будет закрыт. 6.3.5.4.6. Редактор прав доступа В левой части окна редактирования прав выводится дерево объектов конфигурации по всем подсистемам. В правой – список прав по выбранному объекту конфигурации в дереве конфигурации. Если для действия установлен флажок, то оно разрешено. Так, например, для пользователя с ролью МенеджерПоПродажам разрешен просмотр документа ПриходТовара и запрещено его интерактивное добавление. Рисунок 6.14 – Редактор прав доступа роли Состояние флажка Устанавливать права для новых объектов определяет, будут ли установлены права для этой роли на новые добавляемые объекты конфигурации (снят по умолчанию для новой роли). Состояние флажка Устанавливать права для реквизитов и табличных частей по умолчанию определяет, будут ли установлены права для этой роли на реквизиты (включая стандартные) и табличные части (включая стандартные) для новых объектов конфигурации (установлен по умолчанию). При изменении состояния флажка Устанавливать права для реквизитов и табличных частей по умолчанию система предлагает изменить (установить или сбросить) права доступа для всех реквизитов (включая стандартные) и табличных частей (включая стандартные) всех объектов конфигурации. В случае отказа от предлагаемого действия изменений в существующих объектах не происходит, а изменяется только поведение по умолчанию для новых объектов. При создании новой роли все права устанавливаются конфигуратором в следующее состояние: 121 ● для объектов права не установлены; ● для реквизитов (включая стандартные) и табличных частей (включая стандартные) права установлены. Флажок Независимые права подчиненных объектов определяет, каким образом система будет учитывать состояние прав на родительский объект при определении прав на подчиненный объект. Если флажок установлен, то права родительского объекта не учитываются. Если флажок снят, то при определении права подчиненного объекта анализируется соответствующее право родительского объекта. Если у родительского объекта право отсутствует, у подчиненного объекта также отсутствует право, вне зависимости от состояния права у подчиненного объекта. При назначении прав доступа на реквизиты (табличные части) отчетов/обработок следует помнить следующую особенность: если у роли снят флажок Независимые права подчиненных объектов и для реквизита (табличной части) установлено право Редактирование, а для отчета/обработки право Просмотр не установлено, то считается, что и для реквизита (табличной части) право Редактирование не установлено. Если пользователю назначено несколько ролей, то проверка прав родительского объекта выполняется до того, как будет выполнено сочетание прав по ролям (для определения результирующего права на объект). Действие флажка Независимые права подчиненных объектов распространяется на следующие объекты: ● реквизиты (включая стандартные); ● табличные части (включая стандартные); ● реквизиты табличных частей (включая реквизиты стандартных табличных частей); ● команды. Чтобы изменить право доступа, в левом списке следует выбрать объект конфигурации, а в правом изменить состояние флажка в нужной строке вида действия. Если требуется изменить доступ сразу ко всем объектам выбранной ветви, нужно указать в левой части эту ветвь и изменить установку прав доступа. Описание каждой роли можно вывести в табличный или текстовый документ с помощью пункта Действия – Вывести список. 6.3.5.4.7. Просмотр и редактирование всех ролей Если в конфигурации используется несколько ролей, то для удобства просмотра и редактирования прав рекомендуется использовать окно Все роли. Для его открытия в дереве объектов конфигурации окна Конфигурация нужно указать ветвь Роли и в контекстном меню выбрать команду Все роли. 122 Рисунок 6.15 – Окно редактирования «Все роли» В окне расположены три табличных поля. В первом (слева) производится выбор нужного объекта конфигурации. В первой колонке второго табличного поля выводится список прав по выбранному объекту. Другие колонки предназначены для указания использования каждого права для каждой существующей роли. Если для какой-нибудь роли требуется установить или снять все права, то достаточно в первой строке табличного поля установить или снять флажок разрешения. Если для какого-нибудь права требуется установить или снять его разрешение во всех ролях, то достаточно в первой колонке табличного поля установить или снять флажок разрешения. Поддерживается возможность перестановки колонок, соответствующих ролям. В третьем табличном поле редактируются условия доступа к данным на уровне отдельных полей и записей. 6.3.5.4.8. Ограничение доступа к данным Настройка ограничений прав выполняется для объектов метаданных, хранящихся в базе данных, на уровне отдельных полей и записей. Такие объекты в списке прав содержат права Чтение, Добавление, Изменение, Удаление. Ведение списка ограничений производится с помощью команд контекстного меню. Список состоит из двух колонок. В первой указывается поле или Прочие поля, а во второй – условия ограничения. ВНИМАНИЕ! Для права Чтение допускается установка нескольких (по числу полей) ограничений. Для остальных – только одного условия. Для каждого ограничения по праву Чтение допускается выбор поля. Выбор поля означает, что в выборке запроса будут присутствовать только данные, в которых по указанному полю будет удовлетворяться условие (проверка производится только по данному полю). Условие Прочие поля означает, что проверка выполнения условия будет производиться по каждому полю, и, если условие выполняется, данные выбираются. Условие ограничения можно ввести вручную или создать с помощью конструктора. 123 Сведения о принципах функционирования В этом разделе описывается функционирование механизма ограничений прав доступа к данным на уровне записей. Общие замечания Механизм ограничений доступа к данным позволяет управлять правами доступа не только на уровне объектов метаданных, но и на уровне объектов базы данных «1С:Предприятия». Для ограничения доступа к данным могут быть использованы следующие объекты «1С:Предприятия»: ● роли, ● параметры сеанса, ● функциональные опции, ● привилегированные общие модули, ● ключевое слово РАЗРЕШЕННЫЕ в языке запросов. Совместное использование перечисленных объектов позволяет обеспечить максимальную гибкость при необходимости разграничения прав доступа к данным между пользователями, выполняющими различные функции. Ограничения доступа Ограничения доступа к данным могут накладываться на чтение или изменение объектов базы данных. Текущий пользователь имеет право прочитать или изменить некоторый объект базы данных только в том случае, если ограничение доступа предоставляет ему такое право. В противном случае операция чтения или изменения этого объекта базы данных выполнена не будет. Для объектов базы данных следующих видов могут быть наложены различные ограничения на разные виды изменений (добавление, модификацию, удаление): ● Планы обмена, ● Справочники, ● Документы, ● Планы видов характеристик, ● Планы счетов, ● Планы видов расчета, ● Бизнес-процессы, ● Задачи. Для следующих видов объектов базы данных возможно наложение ограничений на чтение не только всего объекта целиком, но и на чтение отдельных его полей: ● Планы обмена, ● Справочники, ● Документы, ● Журналы документов, ● Планы видов характеристик, ● Планы счетов, ● Планы видов расчета, ● Регистры сведений, ● Бизнес-процессы, ● Задачи. ВНИМАНИЕ! При обращении к полям объектов базы данных посредством свойств прикладных объектов из встроенного языка «1С:Предприятия» выполняется чтение всего объекта целиком, а не только значения используемого поля. Исключением является получение представления, когда будут прочитаны только значения полей, участвующих в формировании представления. Ограничения доступа содержатся в ролях, они могут быть указаны для большинства объектов метаданных и записываются на специальном языке, являющемся подмножеством языка запросов. Главной частью ограничения является условие, истинное 124 значение которого для некоторого объекта базы данных означает наличие у текущего пользователя права на выполнение чтения или изменение этого объекта базы данных. Причем изменение записи считается допустимым, если запись не противоречит ограничениям на изменение как до выполнения операции изменения, так и после выполнения этой операции. В ограничении могут использоваться: ● Поля объекта базы данных, на который накладывается ограничение (основного объекта ограничения) и выражения над ними. Например, если ограничение накладывается на чтение элементов справочника Контрагенты, то в ограничении могут использоваться поля справочника Контрагенты и его табличных частей. В частности, наиболее простые ограничения на чтение элементов справочника Контрагенты могут выглядеть так: ГДЕ Наименование = "Кирпичный завод" Или так: ГДЕ Продукция.Наименование = "Кирпич красный" Где Продукция – это табличная часть справочника Контрагенты. ● Поля объектов базы данных, доступных по ссылкам, хранящимся в основном объекте ограничения, и выражения над ними. Например, если реквизит ОсновнойМенеджер справочника Контрагенты имеет тип ссылки на справочник Пользователи, то ограничение доступа может иметь, например, следующий вид: ГДЕ ОсновнойМенеджер.Код = "Иванов" Или: ГДЕ ОсновнойМенеджер.ФизическоеЛицо.Наименование = "Петровский" ● Поля объектов базы данных, связанных с основным объектом ограничения некоторыми условиями, и выражения над ними. Например, на чтение элементов справочника Контрагенты может быть наложено следующее ограничение: Контрагенты ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи ПО Контрагенты.ОсновнойМенеджер.Наименование = Пользователи.Наименование ГДЕ Пользователи.ФизическоеЛицо.Наименование = "Петровский" В этом ограничении используются поля элементов справочника Пользователи, связанных с данным элементом справочника Контрагенты по значению полей Наименование. ● Вложенные запросы в качестве набора записей для связывания с основным объектом ограничения или в качестве операнда операций сравнения В или НЕ В. Во вложенных запросах могут использоваться любые средства языка запросов, кроме оператора В ИЕРАРХИИ, предложения ИТОГИ и некоторых виртуальных таблиц, в частности ОстаткиИОбороты. В следующем примере ограничения на чтение из справочника Контрагенты вложенный запрос используется в качестве набора записей для связывания с основным объектом ограничения: Контрагенты ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Пользователи.Наименование, Пользователи.ФизическоеЛицо ИЗ Справочник.Пользователи КАК Пользователи ГДЕ Пользователи.Код > "Петечкин") КАК Пользователи ПО Контрагенты.ОсновнойМенеджер.Наименование = Пользователи.Наименование ГДЕ Пользователи.ФизическоеЛицо.Наименование = "Петровский" 125 Далее приведен пример ограничения на чтение из справочника ПаспортныеДанныеФизЛиц, в котором вложенный запрос используется в качестве операнда операции сравнения В: ПаспортныеДанныеФизЛиц ГДЕ ПаспортныеДанныеФизЛиц.ФизЛицо В (ВЫБРАТЬ РАЗЛИЧНЫЕ Работники.ФизЛицо КАК ФизЛицо ИЗ РегистрСведений.Работники КАК Работники) Важно, что результаты вложенных запросов, которые используются в ограничении, не должны содержать табличных частей. Если во вложенном запросе необходимо получить данные из табличной части, то в разделе ИЗ вложенного запроса необходимо обращаться непосредственно к табличной части. Например, вместо: ВЫБРАТЬ Ссылка КАК Ссылка, Продукция.Наименование КАК НаименованиеПродукции ИЗ Справочник.Контрагенты в качестве запроса, вложенного в ограничение, следует использовать: ВЫБРАТЬ Ссылка КАК Ссылка, Наименование КАК НаименованиеПродукции ИЗ Справочник.Контрагенты.Продукция ● Параметры сеанса, в том числе и в составе выражений. Например, на чтение элементов справочника ГруппыПисемЭлектроннойПочты может быть задано следующее ограничение доступа: ГДЕ Владелец.ДоступКУчетнойЗаписи.Пользователь = &ТекущийПользователь И Владелец.ДоступКУчетнойЗаписи.Администрирование = ИСТИНА Где ТекущийПользователь – это параметр сеанса. ● Функциональные опции, в том числе и в составе выражений. Могут использоваться только не зависящие от параметров функциональные опции. Например, если у справочника Номенклатура есть реквизит ОсновнойСклад, то ограничение на чтение данного реквизита может выглядеть следующим образом: ГДЕ ИСТИНА = &УчетПоСкладам Где УчетПоСкладам – это функциональная опция. В ограничениях на объекты базы данных следующих типов могут быть использованы не все поля основного объекта данных ограничения: ● в регистрах накопления ограничения доступа могут содержать только измерения основного объекта ограничения; ● в регистрах бухгалтерии в ограничениях можно использовать только балансовые измерения основного объекта ограничения. ПРИМЕЧАНИЕ. Если в условиях ограничения доступа к данным оборотного регистра накопления используются измерения, не входящие в итоги, то при обращении к виртуальной таблице оборотов не используются хранимые итоги и запрос выполняется полностью по таблице движений. Действия ограничения доступа Ограничения доступа проверяются при любом выполнении соответствующих операций над объектами базы данных (из диалогов, из встроенного языка, посредством запросов) и могут действовать одним из двух способов: ● Все. Способ «все» подразумевает, что некоторая операция над данными (из диалогов, из встроенного языка или посредством запросов) должна быть выполнена над всеми подразумеваемыми данной операцией объектами базы данных. Если при выполнении 126 такой операции должны быть прочитаны или изменены объекты базы данных, для которых не выполняются соответствующие ограничения доступа, то операция завершается аварийно из-за нарушения прав доступа. ● Разрешенные. Способ «разрешенные» подразумевает, что при выполнении операции над данными должны быть прочитаны только те объекты базы данных, которые удовлетворяют соответствующим ограничениям доступа. Объекты базы данных, не удовлетворяющие ограничениям доступа, при выполнении такой операции считаются отсутствующими и на результат операции не влияют. Ограничения доступа к данным накладываются на объекты базы данных в момент обращения «1С:Предприятия» к базе данных. В клиент-серверном варианте «1С:Предприятия» наложение ограничений выполняется на сервере «1С:Предприятия». Способ действия ограничений, выбираемый для выполнения каждой операции над данными, определяется назначением этой операции и степенью ответственности ее результатов. В частности, способ «разрешенные» используется при отображении динамических списков и некоторых других интерактивных действиях. Способ «все» используется при выполнении любых операций с прикладными объектами из встроенного языка «1С:Предприятия», в том числе при любых изменениях объектов базы данных. Поэтому, например, могут возникнуть затруднения при построении отбора для метода Выбрать() менеджеров справочников, документов и других с последующим обходом результата в том случае, если на соответствующий объект установлено достаточно сложное ограничение, поскольку не всякое условие в ограничении прав доступа может быть адекватно представлено в виде отбора для метода Выбрать(). В запросах способом действия ограничений доступа к данным можно управлять. Для этого в языке запросов предусмотрено ключевое слово РАЗРЕШЕННЫЕ. Если в запросе не указано РАЗРЕШЕННЫЕ, то ограничения действуют способом «все». Если слово РАЗРЕШЕННЫЕ указано, то выбирается способ «разрешенные». Важно, что если в запросе не указано ключевое слово РАЗРЕШЕННЫЕ, то все отборы, заданные в этом запросе, не должны противоречить ни одному из ограничений на чтение объектов базы данных, используемых в запросе. При этом если в запросе используются виртуальные таблицы, то соответствующие отборы должны быть наложены и на сами виртуальные таблицы. Пример: ВЫБРАТЬ КонтактнаяИнформацияСрезПервых.Представление ИЗ РегистрСведений.КонтактнаяИнформация.СрезПоследних(, Тип = &Тип) КАК КонтактнаяИнформацияСрезПервых ГДЕ КонтактнаяИнформацияСрезПервых.Тип = &Тип При использовании объектной техники нельзя осуществлять доступ к данным в режиме РАЗРЕШЕННЫЕ. Предполагается, что объектная техника используется для наиболее ответственных операций над данными, в том числе для их изменения. Для получения при помощи объектной техники всех данных, независимо от установленных ограничений, можно выполнять необходимые действия в привилегированном модуле или от имени пользователя с полными правами. Средств получения только разрешенных данных в объектной технике не предусмотрено. Механизм наложения ограничений Любая операция над данными, хранимыми в базе данных, в «1С:Предприятии» в конечном счете приводит к обращению к базе данных с некоторым запросом на чтение или изменение данных. В процессе исполнения запросов к базе данных внутренние механизмы «1С:Предприятия» выполняют наложение ограничений доступа. При этом: ● Формируется список прав (чтение, добавление, изменение, удаление), список таблиц базы данных и список полей, используемых этим запросом. 127 ● Из всех ролей текущего пользователя выбираются ограничения доступа к данным для всех прав, таблиц и полей, задействованных в запросе. При этом если какая-нибудь роль не содержит ограничений доступа к данным какой-нибудь таблицы или поля, то это значит, что в данной таблице доступны значения требуемых полей из любой записи. Иначе говоря, отсутствие ограничения доступа к данным означает наличие ограничения вида ГДЕ Истина. ● Получаются текущие значения всех параметров сеанса, участвующих в выбранных ограничениях. Причем для выборки значения параметра от текущего пользователя не требуется наличие права на получение значения этого параметра. Однако если значение некоторого параметра сеанса не было установлено, то произойдет ошибка и запрос к базе данных выполнен не будет. ● Ограничения, полученные из одной роли, объединяются операцией И. ● Ограничения, полученные из разных ролей, объединяются операцией ИЛИ. ● Построенные условия добавляются к SQL-запросам, с которыми «1С:Предприятие» обращается к СУБД. При обращении к данным со стороны условий ограничения доступа проверка прав не выполняется (ни к объектам метаданных, ни к объектам базы данных). Причем механизм добавления условий зависит от выбранного способа действия ограничений «все» или «разрешенные». Способ «все» При наложении ограничений способом «все» к SQL-запросам добавляются условия и поля так, чтобы «1С:Предприятие» могло получить информацию о том, были ли в процессе исполнения запроса к базе данных использованы данные, запрещенные для данного пользователя или нет. Если запрещенные данные были использованы, то инициируется аварийное завершение запроса. Наложение ограничений доступа способом «все» схематически представлено на рисунке 6.16: Рисунок 6.16 – Способ «все» Способ «разрешенные» При наложении ограничений способом «разрешенные» к SQL-запросам добавляются такие условия, чтобы запрещенные текущему пользователю записи не оказывали влияния на результат запроса. Иначе говоря, при наложении ограничений в режиме «разрешенные» запрещенные данному пользователю записи считаются отсутствующими, что схематически представлено на рисунке 6.17: 128 Рисунок 6.17 – Способ «разрешенные» Другие объекты, связанные с ограничениями доступа к данным При разработке конфигураций с использованием ограничений доступа к данным могут оказаться полезными такие объекты метаданных, как параметры сеанса, функциональные опции и общие модули с флажком Привилегированный. Параметры сеанса Параметры сеанса могут использоваться в ограничениях доступа к данным аналогично тому, как в запросе могут использоваться параметры запроса. Функциональные опции Не зависящие от параметров функциональные опции могут использоваться в ограничениях доступа к данным аналогично тому, как в запросе могут использоваться параметры запроса. Привилегированные общие модули Если для общего модуля установлен флажок Привилегированный, то исполнение процедур и функций этого модуля приобретает важную специфику: ● В клиент-серверном варианте «1С:Предприятия» привилегированным может быть только тот модуль, который исполняется на сервере. ● Исполнение процедур и функций привилегированного модуля и всего, что из них вызвано, выполняется при выключенной системе ограничения прав, как к объектам метаданных, так и к данным. Таким образом, из привилегированного модуля может быть выполнена любая операция над любыми объектами даже в том случае, если текущий пользователь не имеет соответствующих прав. Привилегированные модули предназначены для начальной установки значений параметров сеанса, используемых в ограничениях доступа к данным. Еще общие модули могут быть использованы для некоторых целостных действий над данными со стороны пользователя с ограниченными правами. Например, если в функции пользователя входит ввод и проведение документов, но пользователь не должен иметь доступа к данным, на которые влияет проведение документа, то выполнение операции проведения может быть вынесено в привилегированный модуль. Это позволит пользователю проводить документы без предоставления ему прав на другую информацию (регистры, например). Привилегированный режим Имеется возможность программной установки привилегированного режима при работе с данными. Программная установка привилегированного режима может потребоваться в случае массированных операций с данными информационной базы, и при этом нет смысла проверять права доступа к данным. Общие рекомендации по ограничению прав 129 Чтобы гибко управлять доступом пользователей к данным в соответствии с функциями при установке ограничений доступа к данным, рекомендуется придерживаться следующих принципов: ● Нужно выбрать совокупность информации (может быть зависимой от текущего пользователя), для которой целесообразна предварительная подготовка. Выбранная информация должна, с одной стороны, максимально упростить ограничения доступа к данным, а с другой стороны, не должна иметь слишком большой объем. Распределить ее по параметрам сеанса. ● Установить значения параметров сеанса в обработчике УстановкаПараметровСеанса() модуля сеанса. ● Задать ограничения доступа к тем данным, для которых это оправданно (данные являются секретными или наиболее важными для сохранения целостности системы). Необходимо иметь в виду, что установка ограничения доступа может привести к замедлению любого обращения к этим данным. Излишняя сложность ограничений также может привести к замедлению. ● При необходимости обеспечить выполнение некоторого ограниченного количества операций над данными со стороны пользователя, которому полный доступ к этим данным давать нецелесообразно, вынести эти действия в привилегированные модули или явно включать и выключать привилегированный режим в соответствующих местах программного кода. ● Доступ к данным при различных проверках, выполняемых системой при записи объектов, выполняется в привилегированном режиме. Это позволяет не отключать ограничения в правах на уровне записей для соответствующих полей, если работа конфигурации с этими данными планируется только в управляемом режиме: ● для справочников при проверке родителя, владельца и уникальности кода; ● для документов, бизнес-процессов и задач при проверке уникальности номера; ● для планов обмена отключена при проверке уникальности кода; ● для планов счетов и планов видов характеристик при проверке родителя и уникальности кода. При создании запроса ограничения к данным следует помнить о некоторых ограничениях и особенностях: ● Если для объектной таблицы заданы ограничения доступа к данным и в запросе к данным используется объединение с такой таблицей, то в условии соединения (секция запроса ПО) не допускается использование табличной части объекта с заданным ограничением доступа. ● Если в запросе указана таблица, у которой в запросе не используется ни одного поля, то на эту таблицу накладываются все ограничения доступа к данным. Например, запрос ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ Справочник.Контрагенты будет исполнен с учетом всех ограничений доступа, заданными для справочника Тест. Ограничения накладываются «по ИЛИ». Это значит, что будут доступны все записи, доступные хотя бы по одному условию. Если для каких-то полей не задано условий, то запрос будет выполнен для всех записей таблицы. Если в запросе используется таблица верхнего уровня, то ограничения, заданные для колонок вложенных таблиц, не накладываются. Если в запросе используется вложенная таблица, то накладываются ограничения как для вложенной таблицы, так и для таблицы верхнего уровня. Например, запрос ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ Справочник.Контрагенты.Договора будет исполнен с учетом всех ограничений для справочника Контрагенты, а также с учетом ограничений, относящихся к табличной части Договора. ● Если доступ к полям, необходимым для получения представления ссылочного объекта метаданных, запрещен с помощью ограничений доступа к данным или доступ 130 к объекту запрещен на уровне прав доступа, то получение представления такого объекта не влияет на ход текущей транзакции. 6.3.5.4.8.2. Использование препроцессора При редактировании текста ограничения доступа к данным возможно использование инструкций препроцессора. Доступны следующие инструкции: #ЕСЛИ <Выражение> #ТОГДА #ИНАЧЕЕСЛИ <Выражение> #ТОГДА #ИНАЧЕ #КОНЕЦЕСЛИ <Выражение> – произвольное логическое выражение на встроенном языке, результат которого имеет тип Булево. Выражение может содержать: ● операции сравнения <, >, <=, >=, =, <>; ● логические операции И, ИЛИ, НЕ; ● параметры сеанса – используется синтаксис &Параметр, где Параметр – имя параметра сеанса. Если результатом выражения инструкции #ЕСЛИ или #ИНАЧЕЕСЛИ является значение Истина, то в результирующий текст инструкции ограничения доступа помещается текст, расположенный после ключевого слова #ТОГДА. Если же результатом выражения является значение Ложь, то текст, расположенный после ключевого слова #ТОГДА, не помещается в текст инструкции ограничения доступа. Текст, расположенный после инструкции #ИНАЧЕ, будет помещен в результирующий текст ограничения доступа, если ни одно из ранних условий не было выполнено. ПРИМЕЧАНИЕ. Если текст ограничения доступа к данным содержит инструкции препроцессора, то такое ограничение не проходит проверку синтаксиса при редактировании и не может быть изменено при помощи конструктора. Пример: #ЕСЛИ &ТекущийПользователь <> "Климова" #ТОГДА <текст ограничения доступа> #КОНЕЦЕСЛИ Здесь ТекущийПользователь – параметр сеанса типа СправочникСсылка.Пользователи. Такая конструкция означает, что условие для установки ограничения доступа будет проверяться для всех пользователей из справочника, кроме пользователя Климовой. Конструктор ограничения доступа к данным Для вызова конструктора в табличном поле Ограничения доступа к данным в колонке Ограничение доступа нужно перейти в режим редактирования и нажать кнопку выбора. На экран выводится форма конструктора: 131 Рисунок 6.18 – Закладка «Таблицы и поля» конструктора ограничений С его помощью производится формирование условий для установки ограничения доступа к данным. На закладке Таблицы и поля следует выбрать нужные объекты и перенести их в раздел Таблицы и Поля. Если указано несколько таблиц, то в конструктор добавляется закладка Связи. Рисунок 6.19 – Закладка «Связи» конструктора ограничений На закладке Связи формируются условия, которые накладываются на связи между полями таблиц. Для ввода нового условия нужно нажать кнопку Добавить и в колонке 132 Таблица1 выбрать одну из таблиц. В колонке Таблица2 выбрать таблицу, поля которой связаны с полями первой. Ниже списка условий расположены элементы управления, с помощью которых формируется условие связи таблиц. Если выбран простой тип условия, то в Поле1 и Поле2 выбираются связанные поля указанных таблиц и задается условие сравнения. Если выбраны поля, сравнение которых не производится, то в строке списка условий в колонке Условие связи выводится текст: Неверно заполненное условие. На закладке Условия, если требуется, нужно указать условия, по которым будет выполняться отбор исходных данных. Рисунок 6.20 – Закладка «Условия» конструктора ограничений По каждому выбранному полю необходимо выбрать вид условия и указать наименование параметра. В качестве параметра допускается использование параметра сеанса. Разрешается указывать несколько условий. В этом случае в колонке Условие табличного поля условий текст условия выводится в несколько строк. В любой момент создания запроса текст запроса можно просмотреть, нажав кнопку Запрос. Шаблоны текста ограничения доступа Роль может содержать список шаблонов ограничения доступа, которые описываются на закладке Шаблоны ограничений формы роли. Также шаблоны ограничения доступа можно редактировать в редакторе группового редактирования ограничений доступа и шаблонов. Каждый шаблон ограничения доступа имеет имя и текст. Имя шаблона подчиняется обычным правилам для имен, принятых в системе «1С:Предприятие». Текст шаблона содержит часть текста на языке запросов и может содержать параметры, которые выделяются при помощи символа "#". После символа "#" могут следовать: ● ключевое слово Параметр, после которого в скобках указывается номер параметра в шаблоне; 133 ● имя параметра шаблона – означает вставку в текст ограничения соответствующего параметра шаблона; ● ключевое слово ТекущаяТаблица – обозначает вставку в текст полного имени таблицы, для которой строится ограничение; ● ключевое слово ИмяТекущейТаблицы – обозначает вставку в текст полного имени таблицы (как строковое значение, в кавычках), к которой применяется инструкция, на текущем варианте встроенного языка; ● ключевое слово ИмяТекущегоПраваДоступа – содержит имя права, для которого выполняется текущее ограничение: ЧТЕНИЕ/READ, ДОБАВЛЕНИЕ/INSERT, ИЗМЕНЕНИЕ/UPDATE, УДАЛЕНИЕ/DELETE; ● символ "#" – обозначает вставку в текст одного символа "#". Шаблоны ограничений могут использоваться в тексте ограничений доступа. Для этого в тексте ограничения указывается имя шаблона, перед которым указывается символ "#". После имени шаблона, в круглых скобках, через запятую перечисляются параметры шаблона. Значение каждого параметра заключено в двойные кавычки. При необходимости указания в тексте параметра символа двойной кавычки следует использовать две двойные кавычки. В выражении ограничения доступа могут содержаться: ● Функция СтрСодержит(ГдеИщем, ЧтоИщем). Функция предназначена для поиска вхождения строки ЧтоИщем в строке ГдеИщем. Возвращает Истина в случае, если вхождение обнаружено и Ложь – в противном случае. ● Оператор + для конкатенации строк. Для удобства редактирования текста шаблона на закладке Шаблоны ограничений в форме роли нужно нажать кнопку Установить текст шаблона. В открывшемся диалоге ввести текст шаблона и нажать кнопку ОК. Система «1С:Предприятие» выполняет проверку синтаксиса текстов шаблонов, проверку синтаксиса использования шаблонов и макроподстановку текстов шаблонов ограничения доступа роли в текст запроса. Макроподстановка шаблона заключается: ● в замене вхождений параметров в тексте шаблона на значения параметров из выражения использования шаблона в тексте ограничения; ● в замене выражения использования шаблона в тексте запроса на получившийся текст шаблона. При вызове конструктора запроса для условия, содержащего шаблоны ограничения доступа, выдается предупреждение о замене всех шаблонов. Далее приведены примеры шаблонов ограничений: Имя шаблона Шаблон Тело шаблона Итого = #Параметр(1) Использование Где #Шаблон("10") Результат Где Итого = 10 Имя шаблона Шаблон1(ВидДокумента) Тело шаблона ВидДокумента = #ВидДокумента Использование Где #Шаблон1(""Накладная"") Результат Где ВидДокумента = "Накладная" Имя шаблона Шаблон2 Тело шаблона ВидДокумента = #Параметр(1) ## #Параметр(2) 134 Использование Где #Шаблон2(""накладная", "1"") Результат Где ВидДокумента = "Накладная # 1" Имя шаблона Шаблон3 Тело шаблона ВидДокумента = #Параметр(3) Использование Где #Шаблон3("","",""Накладная"") Результат Где ВидДокумента = "Накладная" 6.3.5.4.9. Групповое редактирование ограничений прав доступа и шаблонов Режим группового редактирования ограничений прав доступа и шаблонов вызывается командой Все ограничения доступа контекстного меню ветки Роли. В открывшейся форме присутствуют две закладки: Ограничения доступа и Шаблоны ограничений. Рисунок 6.21 – Все ограничения прав доступа и шаблоны На закладке Ограничения доступа можно просматривать все введенные ограничения доступа в общем списке (по всем ролям, объектам, правам, комбинациям полей). Существует возможность добавлять ограничение доступа сразу для нескольких ролей, объектов, прав и комбинаций ролей. Можно фильтровать список по различным критериям. 135 Рисунок 6.22 – Отбор ограничений доступа Режим группового редактирования позволяет удалять выделенные в списке ограничения. Существует возможность редактировать выделенные ограничения. При этом можно заменять состав полей и/или ограничение доступа. Режим группового редактирования позволяет также копировать выделенные ограничения в другие роли. Рисунок 6.23 – Копирование ограничений На закладке Шаблоны ограничений можно видеть все шаблоны ограничения доступа, присутствующие в прикладном решении, при этом из собственно текста шаблона в таблице отображаются только первые 10 строк, которые завершаются символом "...", если текст шаблона более 10 строк. В окне редактирования шаблона будет отображаться полный текст шаблона. 136 Рисунок 6.24 – Все шаблоны ограничения доступа Существует возможность добавлять шаблон ограничения доступа сразу для нескольких ролей. Имеется возможность отбирать необходимые шаблоны с помощью набора критериев, а также по значению текущей колонки. Рисунок 6.25 – Отбор шаблонов ограничения доступа При необходимости имеется возможность выполнить копирование одного или нескольких шаблонов в другие роли. 137 Рисунок 6.26 – Копирование шаблонов Также редактор предоставляет возможность редактировать выделенные шаблоны. При этом можно изменять наименование и сам текст шаблона. 6.3.5.5. Общие реквизиты Общий реквизит – это реквизит, добавляемый ко всем или многим объектам конфигурации. Общий реквизит может использоваться в двух сценариях: ● Как общий реквизит, т. е. для упрощения указания реквизита, который присутствует во всех или многих объектах конфигурации, в которых этот реквизит сохраняет свой смысл и тип. В качестве примера такого использования общего реквизита можно привести поле произвольного комментария в документах прикладного решения. ● Как составная часть разделения данных – специального механизма, позволяющего разделить все хранимые данные, а также работу прикладного решения на отдельные части. При этом у общего реквизита включается разделение данных. В качестве примера такого использования можно привести понятие абонента, когда в одной физической информационной базе могут независимо работать различные «владельцы» данных, при этом пользователи такого прикладного решения будут считать, что в информационной базе кроме «их» данных нет больше ничего. Для того чтобы создать общий реквизит, необходимо создать объект конфигурации Общий реквизит. Это можно сделать в режиме Конфигуратор обычным способом, то есть в окне конфигурации следует выбрать пункт Общие, далее Общие реквизиты и добавить новый объект. 138 Рисунок 6.27 – Создание общего реквизита В результате будет создан объект конфигурации Общий реквизит, который можно использовать для включения общего реквизита в необходимые объекты конфигурации. Режим работы общего реквизита задается с помощью свойства Разделение данных. Если это свойство установлено в значение Не использовать, то созданный объект конфигурации будет использоваться только как реквизит, входящий в состав нескольких (или всех) объектов конфигурации. Если свойство установлено в значение Разделять, общий реквизит будет использоваться в качестве разделителя данных. Список объектов конфигурации, в состав которых входит общий реквизит, определяется с помощью свойств Состав и Автоиспользование (или соответствующая закладка в окне Дополнительно). Рисунок 6.28 – Общий реквизит без разделения 139 Если свойство Автоиспользование установлено в значение Использовать, то созданный общий реквизит будет автоматически добавлен во все существующие объекты конфигурации (для которых возможно использование общих реквизитов), а также будет автоматически добавляться во все вновь создаваемые объекты конфигурации. В том случае, если свойство Автоиспользование установлено в значение Не использовать, автоматического добавления реквизита происходить не будет, а для выбора объектов, в состав которых необходимо включить общий реквизит, следует воспользоваться свойством Состав. Этим же свойством следует воспользоваться в том случае, если при автоматическом использовании общего реквизита существуют объекты, в которых общий реквизит добавлять не следует. Рисунок 6.29 – Состав общего реквизита Окно редактирования состава общего реквизита разделено на две части: ● в верхней части указаны все объекты конфигурации, которые могут входить в состав общего реквизита; ● в нижней части – объекты, настройки которых отличаются от настроек по умолчанию, определяемых значением свойства Автоиспользование общего реквизита: ● если свойство установлено в значение Использовать, то нижняя часть окна содержит список объектов, не входящих в состав общего реквизита; ● если свойство установлено в значение Не использовать, то нижняя часть окна содержит список объектов, входящих в состав общего реквизита. Редактирование можно осуществлять как в верхней, так и в нижней части окна, при этом редактируемый объект конфигурации будет перемещаться между частями окна, в зависимости от значения в колонке Использование. Для каждого объекта конфигурации колонка Использование может принимать одно из трех значений: ● Автоматически – означает, что назначение объекта конфигурации общему реквизиту зависит от значения свойства Автоиспользование общего реквизита: 140 ● Использовать означает, что объект конфигурации входит в состав общего реквизита; ● Не использовать означает, что объект конфигурации не входит в состав общего реквизита. ● Использовать – означает, что объект конфигурации входит в состав общего реквизита вне зависимости от значения свойства Автоиспользование. ● Не использовать – означает, что объект конфигурации не входит в состав общего реквизита вне зависимости от значения свойства Автоиспользование. Таким образом, с помощью редактора свойства Состав можно, например, выборочно исключать некоторые объекты из состава общего реквизита, несмотря на то, что для него установлено автоиспользование. В состав общего реквизита (не находящегося в режиме разделения данных) могут входить следующие объекты конфигурации: ● справочники, ● документы, ● планы видов характеристик, ● планы счетов, ● планы видов расчета, ● бизнес-процессы, ● задачи, ● регистры сведений, ● регистры накопления, ● регистры бухгалтерского учета, ● регистры расчета, ● планы обмена. Общий реквизит может использоваться в ограничениях доступа к данным. Общий реквизит может быть составного типа. СОВЕТ. Не следует использовать общие реквизиты для описания данных, которые являются частью бизнес-логики конкретных объектов. Общие реквизиты отображаются в редакторе формы при редактировании форм объектов, входящих в состав общего реквизита, и могут быть размещены на форме. 6.3.5.6. Планы обмена План обмена используется для реализации механизмов обмена данными. План обмена: ● содержит информацию об узлах, которые могут участвовать в обмене данными; ● определяет состав данных, которыми будет производиться обмен; ● указывает, следует ли задействовать механизм распределенной информационной базы при обмене. В одном прикладном решении может существовать несколько планов обмена, каждый из которых может описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными складами и удаленными офисами, то, скорее всего, будут существовать два плана обмена (один – для обмена со складами, другой – для офисов), поскольку состав данных, которыми производится обмен со складами, будет значительно «уже», чем состав данных, предназначенных для обмена с офисами. 6.3.5.7. Критерии отбора Критерии отбора – одна из составляющих механизма отбора информации. С их помощью специалист, осуществляющий конфигурирование системы, создает предопределенные правила отбора. В режиме 1С:Предприятие по этим правилам будет выполняться отбор информации в списках. 141 В окне редактирования объекта Критерий отбора нужно указать имя, синоним и комментарий. Тип критерия отбора может быть любым из стандартных типов или определенных как объекты дерева конфигурации. Допускается включение реквизитов с составным типом, заданным как СправочникСсылка, ДокументСсылка и т. д., а также реквизитов с составным типом, определенным планом видов характеристик (Характеристика...). При создании типа критерия отбора следует указать те типы, по которым требуется производить отбор. На закладке Состав по этому типу будет сформирован состав объектов конфигурации, содержащих данные, тип которых входит в тип критерия отбора. В списке требуется установить отметку для тех реквизитов, по которым будет производиться данный отбор. Чтобы критерий отбора выполнял свои функции, в конфигураторе для него должен быть создан список (закладка Состав), состоящий из реквизитов справочников и документов. На состав списка не накладывается практически никаких ограничений: например, в отличие от графы журнала, для критерия отбора можно выбрать несколько реквизитов одного документа и реквизитов табличной части документа. Критериев отбора может быть произвольное число, а каждый критерий может иметь несколько форм представления результатов отбора. Этот механизм полезен в случае поиска различной информации. Например, требуется отобрать все документы, в которых используется (в реквизитах и табличных частях) определенный контрагент. При этом можно учитывать и другие условия отбора информации (например, поиск ведется только среди проведенных документов или в определенном интервале дат и т. д.). ПРИМЕЧАНИЕ. При открытии формы отбора следует передавать в нее параметр Отбор с установленным значением отбора (элемент Значение). Критерий отбора может иметь произвольное число форм для визуального представления результатов отбора. Для оперативности получения информации по отбору вызов формы можно разместить в пользовательском меню или на панели инструментов. Если форм критерия отбора несколько, то в свойстве Основная форма указывается та форма, которая будет вызываться по умолчанию. Если в конфигурации определено несколько подсистем, нужно выбрать ту, к которой относится данный критерий отбора. Можно указать несколько различных подсистем. Для вызова формы критерия отбора система размещает соответствующую команду в панели навигации формы. 6.3.5.8. Подписки на события Подписки на события позволяют назначать обработчики событий для одного объекта или группы объектов встроенного языка. При добавлении новой подписки на событие, кроме общих свойств объектов конфигурации, следует указать источник события, само событие, обработчик которого назначается, и процедуру, являющуюся обработчиком этого события. Источниками событий могут являться прикладные объекты, наборы записей регистров, менеджеры объектов конфигурации. Допускается как множественный выбор объектов, являющихся поставщиками событий, так и выбор всех объектов одного типа (например, все документы). Выбор события осуществляется из выпадающего списка, причем список содержит те события, которые присутствуют во всех выбранных объектах. Если таких событий нет, список будет пуст. Выбор обработчика события выполняется в окне, содержащем процедуры, которые могут быть назначены в качестве обработчика события. Такие процедуры должны удовлетворять следующим требованиям: ● процедура должна быть расположена в общем модуле; 142 ● у общего модуля, в котором расположена процедура, должны быть заданы следующие свойства: ● флажок Глобальный снят; ● флажок Клиент (обычное приложение) установлен; ● флажок Клиент (управляемое приложение) снят; ● флажок Сервер установлен; ● флажок Внешнее соединение установлен. ● количество параметров процедуры должно быть на единицу больше, чем количество параметров, которое имеет обработчик выбранного события (т. к. дополнительно к параметрам, передаваемым в обработчик события, передается еще и объект-источник данного события). При наступлении указанного события выполняется следующая последовательность действий: ● сначала отрабатывается событие в самом объекте и вызывается обработчик события, определенный в модуле объекта или набора записей; ● если в процессе выполнения обработчика параметр Отказ установлен в значение Истина или вызвано исключение, действие прерывается; ● затем в произвольном порядке вызываются внешние обработчики, назначенные для данного события; ● если в процессе выполнения назначенного обработчика параметр Отказ установлен в значение Истина или вызвано исключение, действие прерывается. В качестве источника в назначенный обработчик передается сам объект (набор записей), вызвавший событие. Назначенные обработчики событий вызываются в том же контексте, что и действие, вызвавшее событие. Если выполнение назначенного обработчика нужно перенести на сервер, следует вызывать в коде обработчика процедуру общего модуля, исполняемую на сервере. Назначение обработчиков событий доступно также и средствами встроенного языка. Для этого используются операторы ДобавитьОбработчик и УдалитьОбработчик. У объектов, которые могут являться источниками событий, есть свойство ДополнительныеСвойства типа Структура, позволяющее хранить информацию между вызовами событий, например, новый или старый это объект. 6.3.5.9. Регламентные задания 6.3.5.9.1. Основные возможности механизма заданий Основными возможностями механизма заданий являются: ● определение регламентных процедур на этапе программирования системы; ● выполнение заданных действий по расписанию; ● выполнение вызова заданной процедуры или функции асинхронно, т. е. без ожидания ее завершения; ● мониторинг хода выполнения заданий; ● управление заданиями (отмена, блокировка выполнения и др.); ● возможность ожидания завершения одного или нескольких заданий. 6.3.5.9.2. Фоновые задания Механизм фоновых заданий реализуется средствами встроенного языка. Фоновые задания предназначены для выполнения прикладных задач асинхронно. Они могут порождать дочерние фоновые задания, например, для распараллеливания сложных вычислений по различным рабочим серверам кластера в клиент-серверном варианте работы. 143 Существует возможность ограничить выполнение фоновых заданий, имеющих одинаковые методы, по определенному прикладному признаку. Программное создание и управление фоновыми заданиями возможны из любого соединения пользователя с информационной базой системы «1С:Предприятие». Фоновое задание выполняется от имени пользователя, который его создал. 6.3.5.9.3. Регламентные задания Регламентные задания представляют собой неотъемлемую часть конкретного прикладного решения и описываются на этапе конфигурирования. Рисунок 6.30 – Расписание фоновых заданий Для каждого регламентного задания может быть задано расписание, в соответствии с которым регламентное задание будет автоматически запущено на исполнение. В системе «1С:Предприятие» поддерживаются однократные и периодические расписания. Можно задать дату начала и окончания выполнения, дневное, недельное и месячные расписания. Расписание можно задать как на этапе конфигурирования, так и на этапе выполнения (в режиме 1С:Предприятие). В процессе запуска регламентное задание порождает фоновое задание, которое и выполняет реальную обработку. Регламентное задание может выполняться от имени заданного пользователя и имеет возможность перезапуска (например, в случае непредвиденного завершения работы). В утилите администрирования клиент-серверного варианта работы автоматическое выполнение регламентных заданий может быть запрещено для конкретной информационной базы. 6.3.5.9.4. Особенности выполнения регламентных заданий В клиент-серверном варианте работы запуск регламентных заданий по расписанию осуществляет менеджер кластера. Таким образом, даже если с информационной базой не установлено ни одного клиентского соединения, регламентные задания будут выполняться (при условии, что они не запрещены для конкретной информационной базы). 144 В файловом варианте работы для автоматического запуска регламентных заданий необходимо наличие выделенного клиентского соединения, используемого в качестве планировщика заданий. В этом соединении должна быть запущена обработка ожидания, с некоторой периодичностью выполняющая вызов метода встроенного языка ВыполнитьОбработкуЗаданий(). 6.3.5.10. Функциональные опции и параметры функциональных опций 6.3.5.10.1. Назначение Функциональные опции позволяют разработчику описать возможности прикладного решения, которые можно оперативно включать или выключать на этапе внедрения и/или в процессе работы системы. Например, возможность работы с дополнительными свойствами товаров можно выделить в отдельную функциональную опцию. Тогда если отключить эту возможность, в интерфейсе прикладного решения «пропадут» все связанные (с дополнительными свойствами товаров) возможности. Система способна автоматически учитывать состояние сделанных настроек – скрывать выключенные возможности, делая интерфейс приложения более ясным и понятным для пользователя. При разработке возникают ситуации, когда значение функциональной опции должно зависеть от неких параметров, например, валютный учет ведется не у всех организаций. Для реализации такой зависимости служат Параметры функциональных опций – объекты, параметризующие функциональные опции. 6.3.5.10.2. На что влияют функциональные опции Функциональные опции могут оказывать влияние: ● На пользовательский интерфейс – при выключении каких-либо функциональных опций система скрывает в пользовательском интерфейсе все элементы, относящиеся к ней. При этом затрагиваются следующие элементы интерфейса: ● глобальный командный интерфейс; ● реквизиты формы (в том числе колонки реквизита формы типа ТаблицаЗначений или ДеревоЗначений); ● команды формы; ● отчеты, реализованные с помощью системы компоновки данных. ВНИМАНИЕ! Если клиентское приложение работает с файловым вариантом информационной базы через веб-сервер, то изменение функциональной опции приведет к изменению пользовательского интерфейса только после перезапуска веб-сервера (перезапуск клиентского приложения не вызовет изменение пользовательского интерфейса). ● На алгоритмы, написанные на встроенном языке – имеется возможность программно получать значения функциональных опций и использовать их в различных условиях, например, для уменьшения объема вычислений. ВНИМАНИЕ! Функциональные опции и их параметры не влияют на состав базы данных. Все таблицы и поля присутствуют в базе данных независимо от состояния функциональных опций. Глобальный командный интерфейс Влияние функциональных опций на глобальный командный интерфейс заключается в том, что система скрывает команды всех объектов, относящихся к выключенным опциям. Например, если значение функциональной опции Закупки равно значению Ложь, то будут скрыты команды открытия раздела Закупки, создания документа ПриходТовара, открытия списка ПриходТовара и т. д. 145 В свою очередь, опция Закупки может учитывать значение параметра функциональной опции, например, Организация. Изменяя с помощью методов встроенного языка значение этого параметра, можно изменять состояние функциональной опции, а, следовательно, и видимость элемента интерфейса. Форма В форме функциональные опции могут влиять на реквизиты и команды формы и (как следствие) изменять видимость связанных с ними элементов формы (поля и колонки – для реквизитов формы, кнопки – для команд формы). ВНИМАНИЕ! В отличие от командного интерфейса, значения параметров функциональных опций устанавливаются только для конкретного экземпляра формы. Система компоновки данных Система компоновки данных в основном используется для построения отчетов. Функциональные опции влияют на состав данных, которые выводятся в отчет, и на состав настроек отчета, доступных пользователю. Например, если выключена функциональная опция Валютный учет, то в отчете, выводящем реестр документов Приход товара, будет отсутствовать колонка Валюта и Валютная сумма, а в настройках будет отсутствовать возможность отбора, группировки, сортировки и т. д. по полю Валюта. Характеристики Функциональные опции оказывают влияние на видимость полей формы, которые отображают значение характеристики объекта. Для этого необходимо включить в состав функциональной опции реквизит, хранящий значение характеристики. Рассмотрим пример. Характеристики используются для справочника Товары, виды характеристик хранятся в плане видов характеристик Характеристики, а значения – в качестве ресурса регистра сведений ЗначенияХарактеристик. Ресурс входит в состав функциональной опции УчетХарактеристик. Рисунок 6.31 – Влияние функциональных опций на характеристики В случае отключения функциональной опции УчетХарактеристик в формах отключается видимость полей (колонка Значение и поле Значение), отображающих значения характеристик, как показано на рисунке 6.31. 6.3.5.10.3. Общая схема работы Механизм функциональных опций включает в себя два типа объектов метаданных: Функциональная опция и Параметры функциональных опций. 146 Функциональная опция представляет собой объект метаданных, который может непосредственно влиять на состав интерфейса приложения (если функциональная опция хранит свое значение в реквизите типа Булево). С помощью объектов этого типа можно скрыть элементы, которые относятся к недоступной функциональности. Например, опция Валютный учет может скрыть справочник Валюты, поле Валюта из документов, колонку Валютная сумма из отчетов. Источником значения функциональной опции является объект метаданных, выбранный в качестве свойства Хранение, например, это может быть константа. В случае хранения значения функциональной опции в реквизите справочника или ресурсе регистра сведений требуется дополнительная информация, которая указывает на то, как именно выбрать значение опции. Для этой цели предусмотрен отдельный объект метаданных – Параметры функциональных опций. Можно сказать, что параметры функциональных опций являются осями координат пространства значений функциональных опций. Причем один параметр функциональных опций может определять значение «своей» оси координат одновременно для множества функциональных опций. Рисунок 6.32 – Параметризуемая функциональная опция Рассмотрим пример: допустим, суммовой учет зависит от склада, принадлежащего конкретной организации (рисунок 6.32). В нашей информационной базе можно вести учет от имени разных организаций и на разных складах. Для хранения значений функциональных опций создадим регистр сведений, где измерениями (осями координат) будут: ● Организация (соответствующего типа); ● Склад (соответствующего типа). Ресурсом регистра сведений будет значение функциональной опции суммового учета. Тогда общая структура конфигурации будет выглядеть следующим образом: ● Регистр сведений СуммовойУчет: ● измерение Организация; ● измерение Склад; ● ресурс СуммовойУчет, имеющий тип Булево. ● Параметр функциональных опций Организация. Свойство Использование указывает на измерение Организация регистра сведений СуммовойУчет. ● Параметр функциональных опций Склад. Свойство Использование указывает на измерение Склад регистра сведений СуммовойУчет. ● Функциональная опция СуммовойУчет. Свойство Хранение указывает на ресурс СуммовойУчет регистра сведений СуммовойУчет. 147 В результате для того, чтобы определить необходимость ведения суммового учета, нам необходимо в каждом конкретном случае указать значения параметров функциональных опций (Организация и Склад) и получить значение функциональной опции. Так, в примере, показанном на рисунке 6.32, для Организации 1 и Склада 1 суммовой учет разрешен, а для Организации 2 и Склада 1 суммовой учет запрещен. 6.3.5.10.4. Взаимодействие с другими объектами Функциональные опции могут быть назначены следующим объектам конфигурации: ● Подсистемы, ● Общие команды, ● Общие формы, ● Константы, ● Критерии отбора, ● Справочник, ● Документ, ● Журнал, ● План счетов, ● План видов характеристик, ● План видов расчета, ● Бизнес-процесс, ● Задача, ● Планы обмена, ● Отчет, ● Обработка, ● Регистр накопления, ● Регистр сведений, ● Регистр бухгалтерии, ● Регистр расчета, ● Команда, ● Реквизит объекта метаданных, ● Табличная часть, ● Реквизит табличной части, ● Признак учета, ● Признак учета субконто, ● Реквизиты адресации, ● Измерение регистра, ● Ресурс регистра. Также функциональные опции могут влиять на видимость элементов формы. 6.3.5.10.5. Создание Создание функциональной опции Для того чтобы создать функциональную опцию, необходимо создать объект конфигурации Функциональная опция. Это можно сделать в режиме Конфигуратор обычным способом, то есть в окне конфигурации следует выбрать пункт Общие, далее Функциональные опции и добавить новый объект. 148 Рисунок 6.33 – Создание функциональной опции В результате будет создан объект конфигурации Функциональная опция, который можно использовать для назначения функциональных опций другим объектам метаданных. Рисунок 6.34 – Хранение значения функциональной опции Кроме имени объект имеет обязательное для заполнения свойство – Хранение. В редакторе для него можно выбрать один из объектов, который будет являться источником значения опции. В список доступных объектов входят: ● константы, ● реквизиты справочников, ● ресурсы регистров сведений. Ограничение на тип источника значения опции нет, но для управления интерфейсом пригодны только те функциональные опции, которые хранят свои значения в реквизитах, имеющих тип Булево. Значения функциональных опций с другими типами доступны только для анализа на встроенном языке. Свойство Привилегированный режим при получении отвечает за способ получения (и кеширования) значения функциональной опции. 149 Рисунок 6.35 – Привилегированный режим при получении значения функциональной опции Если данное свойство установлено, то значение функциональной опции получается в привилегированном режиме. Полученное значение кешируется для всех сеансов, связанных с данной информационной базой. Если свойство Привилегированный режим при получении сброшено, то получение значения функциональной опции выполняется в обычном режиме. Кеширование выполняется для текущего сеанса. Кешируется как значение (если его удалось получить), так и признак невозможности получения значения (в том случае, если значение получить не удалось). Кеш сбрасывается при изменении значений параметров сеанса. СОВЕТ. Рекомендуется устанавливать свойство Привилегированный режим при получении для всех случаев, когда значение функциональной опции не содержит конфиденциальную информацию. Создание параметра функциональных опций Для того чтобы создать параметр функциональной опции, необходимо создать объект конфигурации Параметры функциональных опций. Это можно сделать в режиме Конфигуратор обычным способом, то есть в окне конфигурации следует выбрать пункт Общие, далее Параметры функциональных опций и добавить новый объект. Кроме имени, параметр имеет обязательное свойство Использование. В нем указывается набор объектов, значения которых будут определять то, как следует выбирать значение функциональной опции. В список доступных объектов входят справочники и измерения регистра сведений. Для каждого параметра функциональных опций в данном списке можно выбрать один справочник (из всего перечня справочников) и по одному измерению каждого регистра сведений. ВНИМАНИЕ! Нельзя использовать один и тот же объект метаданных в нескольких параметрах функциональных опций. 6.3.5.10.6. Использование Назначение объектам метаданных Объект метаданных (например, справочник) можно отнести к одной или нескольким функциональным опциям. Для этого служит свойство Функциональные опции, которое содержит ссылки на созданные в конфигурации функциональные опции. 150 Рисунок 6.36 – Назначение функциональной опции объекту Список доступных опций ограничен только теми опциями, для которых в свойстве Хранение назначен объект с типом значения Булево. ВНИМАНИЕ! Если объекту не назначена ни одна функциональная опция, то он считается видимым всегда. В противном случае объект считается видимым, если хотя бы одна из назначенных ему функциональных опций является включенной (т. е. функциональные опции сочетаются «по ИЛИ»). Назначение реквизитам и командам формы Объекты, принадлежащие форме (Реквизиты задействовать в механизме функциональных опций. и Команды), также можно 151 Рисунок 6.37 – Назначение функциональной опции команде Сделать это можно в редакторе формы, установив свойство Функциональные опции для требуемого объекта. Состояние функциональных опций будет влиять на отображение объектов формы точно так же, как это происходит в случае объектов метаданных. Например, в случае с командой, отключенной с помощью функциональной опции, будут убраны все связанные с ней кнопки. Если реквизиту формы или команде не назначена ни одна функциональная опция, то реквизит формы или команда считается видимой всегда. В противном случае реквизит формы или команда считается видимой, если хотя бы одна из назначенных ему функциональных опций является включенной. Использование в механизме ограничения доступа к данным В условиях механизма ограничения доступа к данным Функциональные опции могут использоваться точно так же, как и Параметры сеанса. Допустимо использовать только не зависящие от параметров опции, то есть те, которые привязаны к константам. ВНИМАНИЕ! Системой контролируется уникальность имен между параметрами сеанса и функциональными опциями. Определение значения функциональной опции Значение функциональной опции определяется объектом, который указан в свойстве Хранение. В случае константы используется ее значение. Для опции, связанной с реквизитом справочника или ресурсом регистра сведений, – значения, хранящиеся в этих 152 объектах. Для того чтобы найти конкретный объект, который хранит значение функциональной опции, необходима дополнительная информация – набор значений параметров функциональных опций. Если опция хранится в реквизите справочника, параметр должен содержать ссылку на конкретный элемент справочника. Если опция хранится в ресурсе регистра сведений, должны быть указаны значения всех измерений регистра. В этом случае каждое измерение должно характеризоваться своим параметром. Если для функциональной опции, имеющей тип Булево, заданы не все параметры, то выполняется сложение «по ИЛИ» всех значений с незаданными параметрами. Например, если функциональная опция хранится в регистре сведений с измерениями Организация и Склад и задано только измерение Организация, то значение функциональной опции будет равно Истина, если хотя бы у одного из складов, перечисленных в измерении Склад, значение функциональной опции будет равно значению Истина. Для функциональной опции, имеющий тип, отличный от Булево, ситуация с не полностью заданными параметрами приводит к генерации исключения. Методы встроенного языка позволяют получить значение опции, как в зависимости от переданных параметров, так и для параметров, установленных для командного интерфейса или конкретной формы. Если функциональная опция привязана к ресурсу периодического регистра сведений, то система использует срез последних для получения значения опции. Если требуется получать значение опции на какую-либо другую дату, необходимо указать значение для параметра функциональных опций Период (Period), имеющий тип Дата, который будет использоваться как дата получения среза. Этот параметр не нужно создавать в метаданных. Он предоставляется системой автоматически. При использовании параметризованных функциональных опций следует учитывать следующие особенности поведения: ● В формах списков колонка реквизита, связанного с параметризованной функциональной опцией, будет отображаться, если в информационной базе хранится хотя бы одно включенное значение данной функциональной опции. ● Если необходимо, чтобы при открытии формы реквизиты, связанные с функциональными опциями, были отключены по умолчанию, то нужно установить значения этих параметров в значения, отсутствующие в информационной базе (для справочников – пустая ссылка, для регистров сведений – значения измерений, для которых нет записей). В этом случае функциональная опция будет иметь значение Ложь. ● В том случае, когда в качестве параметра указана ссылка на группу (если типа параметра функциональной опции допускает создание групп), а не ссылка на элемент, поведение системы будет следующим: ● если реквизит, в котором хранится значение функциональной опции, используется как для элемента, так и для группы, то значение функциональной опции будет определяться значением этого реквизита. ● если реквизит, в котором хранится значение функциональной опции, не используется для группы, то при получении значения функциональной опции c помощью методов ПолучитьФункциональнуюОпцию(), ПолучитьФункциональнуюОпциюФормы() и ПолучитьФункциональнуюОпциюИнтерфейса() будет возращено значение NULL. Если, параметризованная таким значением, функциональная опция оказывает влияние на пользовательский интерфейс, то система будет воспринимать ее как выключенную (функциональная опция будет иметь значение Ложь). ● Для командообразующих объектов метаданных возможно установить привязку к параметризованной функциональной опции. В командном интерфейсе команды таких 153 объектов будут отображаться только в том случае, если есть хотя бы одна комбинация параметров функциональных опций, при которых значение функциональной опции равно Истина. Однако с помощью метода УстановитьПараметрыФункциональныхОпцийИнтерфейса() можно задать конкретные значения параметров функциональных опций, и тогда видимость команд будет определяться именно заданными параметрами. ● Динамический список автоматически использует функциональные опции, используемые формой. Если реквизиты, которые используются в запросе динамического списка, будут отключены при заданной комбинации параметров функциональных опций, данные по ним не будут выбраны и отображены в динамическом списке, а реквизит будет удален из списков доступных реквизитов в диалоге настройки отображения данных динамического списка (в режиме 1С:Предприятие). 6.3.5.10.7. Работа с функциональными опциями во встроенном языке Методы глобального контекста ПолучитьФункциональнуюОпцию() и ПолучитьФункциональнуюОпциюИнтерфейса() возвращают значение функциональной опции. Разница между ними заключается в том, что первый метод позволяет указать набор параметров функциональных опций, а второй – возвращает значение функциональной опции исходя из параметров, заданных для командного интерфейса. В форме есть свой метод, который возвращает значение опции для параметров, указанных в рамках формы, – ПолучитьФункциональнуюОпциюФормы(). Для обновления глобального командного интерфейса следует явным образом вызывать метод УстановитьПараметрыФункциональныхОпцийИнтерфейса(). Командный интерфейс будет обновлен с учетом нового состояния функциональных опций. ПРИМЕЧАНИЕ. Если значение функциональной опции изменяется в базе данных, то автоматического обновления глобального командного интерфейса и открытых в это время форм не происходит. Для этого следует использовать метод ОбновитьИнтерфейс() после записи значений функциональных опций в базу данных. Следует помнить, что установка параметров функциональных опций (и выполнение метода ОбновитьИнтерфейс()) приводит к следующим последствиям: ● для каждой формы вызывается закрытие всех вспомогательных форм (с вызовом соответствующих обработчиков); ● формы, отказавшиеся от закрытия, не закрываются; ● происходит обновление состава элементов основной формы; ● если на момент обновления интерфейса активной формой была основная, происходит отображение основной формы в соответствии с новым составом элементов; ● если на момент обновления интерфейса активной формой была вспомогательная форма, то: ● будет выполнена команда открытия вспомогательной формы, если после обновления интерфейса она является доступной; ● в противном случае обновляется состав элементов основной формы и выполняется ее отображение; ● если на момент обновления интерфейса активной формой была вспомогательная форма, открытая с помощью команды, не относящейся к панели навигации формы, то вместо этой формы будет обновлен состав элементов основной формы и выполнено ее отображение. Для того чтобы обновить конкретную форму, следует либо заново открыть ее, либо вызвать метод УстановитьПараметрыФункциональныхОпцийФормы(), при этом вышеописанная последовательность действий отрабатывает только для той формы, в контексте которой вызвана установка параметров функциональных опций формы. 154 Параметры не обязательно указывать все сразу, можно изменить значение конкретного параметра или набора параметров выборочно. Но эффективнее осуществляется именно групповая установка значений одним вызовом. Для получения значений параметров необходимо вызвать соответствующую функцию (ПолучитьПараметрыФункциональныхОпцийИнтерфейса() или ПолучитьПараметрыФункциональныхОпцийФормы()), которая вернет установленные параметры в виде структуры, где ключом будет выступать имя параметра. При открытии форма автоматически использует параметры функциональных опций, установленных для командного интерфейса. 6.3.5.11. Хранилища настроек Для сохранения информации о настройках пользователя, которые должны сохраняться между сеансами работы, в платформе реализованы хранилища настроек. Существует два вида хранилищ настроек: ● Стандартное хранилище – хранилище, используемое системой по умолчанию и хранящее данные в системных таблицах информационной базы. ● Хранилища настроек – специальные объекты метаданных, которые описывают хранение данных в некотором объекте информационной базы. Например, в этом объекте может быть описана работа с настройками, которые хранятся в справочнике. Платформа использует пять хранилищ: ● Системное хранилище – в данное хранилище система сохраняет все возможные настройки, которые нужны для работы платформы. К данным настройкам относятся настройки размеров форм, настройки печати табличного документа и т. п. В качестве системного хранилища настроек всегда используется стандартное хранилище настроек. То есть данные системного хранилища всегда сохраняются в системной таблице информационной базы. ● Хранилище общих настроек – данное хранилище предназначено для хранения различных настроек прикладного решения. Платформа самостоятельно не записывает в данное хранилище никаких настроек. Данное хранилище должен использовать разработчик из встроенного языка, для того чтобы выполнять сохранение/восстановление прикладных настроек пользователя. ● Хранилище пользовательских настроек отчетов – в данное хранилище помещаются пользовательские настройки отчетов. ● Хранилище вариантов отчетов – в данное хранилище помещаются варианты отчетов. ● Хранилище настроек данных форм – в это хранилище сохраняются данные форм. Этим хранилищем можно пользоваться, например, для сохранения реквизитов обработок. При этом можно выбрать индивидуальное хранилище для каждого отчета и обработки. При разработке конфигурации имеется возможность определить собственные хранилища настроек для всех хранилищ, кроме системного хранилища. Для этого необходимо создать объект хранилища настроек в соответствующей ветке дерева метаданных и затем указать его в нужном свойстве конфигурации. Свойства объекта Конфигурация имеют те же имена, что и вышеперечисленные хранилища. Данные хранилищ могут храниться как в системной таблице информационной базы, так и в некотором специальном объекте информационной базы, например, в справочнике или регистре сведений. Например, можно создать в конфигурации объект хранилища настроек и указать в свойстве конфигурации, что данное хранилище следует использовать для хранения настроек отчетов. Таким образом, настройки отчетов будут сохраняться не в системной таблице, а в некотором объекте, например, в справочнике, что дает возможность организовать работу с едиными настройками отчетов, реализовать систему прав, обмен настройками и т. п. 155 Создавать собственное хранилище имеет смысл в тех случаях, когда необходима особая структура хранения настроек, необходимы специальные механизмы управления настройками, требуется обмен настройками в рамках распределенной базы данных и других аналогичных случаях. ПРИМЕЧАНИЕ. Для хранения настроек рекомендуется выбирать такие объекты, для которых системой поддерживается способ идентификации, при котором идентифицирующий реквизит можно преобразовать в строку и обратно без потери данных. В качестве примера можно привести справочник и стандартный реквизит Код, уникальный во всем справочнике. 6.3.5.11.1. Общие принципы работы хранилища настроек Объект метаданных ХранилищеНастроек предназначен для обеспечения хранения прикладных настроек конфигурации. За счет реализации обработчиков событий и создания форм объекта выполняется модификация механизма работы с настройками таким образом, что изменяется место хранения настроек (вместо системных таблиц используются объекты конфигурации, которые создал разработчик) и визуальные механизмы работы с настройками. В конфигурации может быть определено произвольное количество хранилищ настроек. Хранилище настроек может использоваться как только для программной работы, так и для программной и интерактивной работы. В первом случае для обеспечения необходимой функциональности требуется обязательная реализация обработчиком модуля объекта ХранилищеНастроек: ● ОбработкаСохранения – содержит реализацию метода Сохранить(). В данном обработчике необходимо выполнить сохранение настройки в некоторый объект. Например, в элемент справочника. ● ОбработкаЗагрузки – содержит реализацию метода Загрузить(). В данном обработчике необходимо получить настройки из некоторого объекта. Например, из элемента справочника. ВНИМАНИЕ! Если не реализовать тот или иной обработчик, то будет недоступно выполнение действия, которое обработчик реализует. Например, если не реализовать обработчик ОбработкаСохранения, будет недоступно сохранение настроек. В процессе разработки хранилища разработчик самостоятельно определяет, каким образом будет идентифицироваться объект хранилища, тем самым определяя тип параметра. Например, если настройки сохраняются в справочнике, то в качестве ключа настройки можно использовать поле Код или значение Ссылка (элемента справочника). Если для работы с настройками требуется интерактивность (формы сохранения и восстановления настроек), то необходимо реализовать формы сохранения и восстановления настроек и заполнить соответствующие свойства объекта ХранилищеНастроек (Форма сохранения и Форма загрузки). ВНИМАНИЕ! Реализация форм сохранения и восстановления настроек является обязательной для выполнения интерактивных операций. Программное сохранение и восстановление настроек возможно и без реализации этих форм. Когда пользователь применяет команды сохранения или загрузки настроек, система получает соответствующую форму объекта хранилища настроек и отображает ее на экране. Например, при сохранении настроек отчета система будет использовать форму сохранения того объекта метаданных, который указан в качестве хранилища настроек отчетов (непосредственно у самого отчета или у всей конфигурации). При этом форме будут переданы параметры, более подробную информацию о которых можно получить в описании объекта ОписаниеНастроек в синтакс-помощнике. 156 При создании формы с помощью конструктора необходимые параметры будут автоматически добавлены в список параметров формы. В формах следует использовать переданные параметры и соответствующим образом фильтровать список настроек. Так, следует отображать только настройки для указанного в параметре КлючОбъекта объекта настройки (например, отчета). Если пользователь выбрал настройку, то результатом работы формы должно быть значение типа ВыборНастроек. В этом значении, в свойстве КлючНастроек, должен находиться ключ выбранной настройки (например, код элемента справочника или другой, идентифицирующий настройку параметр), а в свойстве ДополнительныеСвойства – дополнительная информация, которую пользователь мог указать в форме: Закрыть(Новый ВыборНастроек(КлючСохраняемойНастройки)); ВНИМАНИЕ! Не поддерживается сохранение настройки в стандартном хранилище настроек, если длина ключа объекта превышает 256 символов; длина ключа настроек превышает 128 символов; длина имени пользователя превышает 64 символа. 6.3.5.11.2. Создание объекта метаданных Для создания Хранилища настроек следует создать одноименный объект конфигурации. Это можно сделать в ветке Общие, пункт Хранилища настроек. Рисунок 6.38 – Создание хранилища настроек 6.3.5.11.3. Стандартное хранилище настроек Стандартное хранилище настроек представляется во встроенном языке объектом СтандартноеХранилищеНастроекМенеджер. Данный объект реализует тот же набор методов, что и объект ХранилищеНастроекМенеджер, и дополнительно реализует методы: ● ПолучитьСписок() – метод получения списка настроек для выбранного объекта настройки; ● Удалить() – удаление определенной настройки выбранного объекта настройки. Стандартное хранилище сохраняет настройки в системных таблицах информационной базы. В качестве ключа объекта настройки и в качестве ключа настройки системное хранилище настроек принимает строку. В качестве настроек системное хранилище принимает любое значение, которое может быть помещено в хранилище значений. ПРИМЕЧАНИЕ. При использовании методов Сохранить(), Удалить() и УстановитьОписание() объекта СтандартноеХранилищеНастроекМенеджер следует 157 учитывать, что если объект, к которому относятся настройки (например, форма), в текущем сеансе уже использовался, то изменения произойдут только в следующем сеансе. СОВЕТ. При существенном программном изменении настроек (например, при копировании настроек от одного пользователя другому) рекомендуется предложить пользователю выполнить перезапуск клиентского приложения. 6.3.5.11.4. Сохранение настроек форм Разработчик может управлять сохранением данных форм в настройках. Для этого при разработке формы ему необходимо воспользоваться следующими свойствами формы: ● Сохранение данных формы в настройках – при помощи данного свойства разработчик формы может включить возможность сохранения данных формы (с возможностью выбора настройки, в которую будут сохраняться данные). Если у формы включена необходимость сохранения, то форма предоставляет команды сохранения/загрузки настроек. ● Автоматическое сохранение данных в настройках – указывает необходимость автоматического сохранения настроек при закрытии формы и восстановлении при открытии формы. При этом не важно, используется или нет список настроек. Если для формы установлена возможность сохранения данных, то необходимо указать, какие реквизиты формы должны сохраняться (колонка Сохранение на закладке Реквизиты редактора формы). При сохранении настроек в качестве ключа объекта используется полное имя формы. В настройках сохраняется объект типа Соответствие, в котором в качестве ключей находятся пути к сохраняемым реквизитам, а в качестве значений – их (реквизитов) значения. 6.3.5.11.5. Сохранение настроек отчетов У объектов Отчет и Внешний отчет имеются свойства метаданных Хранилище вариантов и Хранилище настроек. В данных свойствах указывается, в какие хранилища нужно сохранять варианты и настройки отчета соответственно. Если хранилища не указаны, то используются хранилища, указанные в свойствах конфигурации. Если в свойствах конфигурации также не указаны конкретные объекты ХранилищеНастроек, то используется системное хранилище. Форма отчета предоставляет команды сохранения и загрузки вариантов и настроек отчетов. При необходимости сохранять в настройках компоновки данных или пользовательских настройках компоновки данных некоторую дополнительную информацию можно воспользоваться свойствами ДополнительныеСвойства объектов НастройкиКомпоновкиДанных и ПользовательскиеНастройкиКомпоновкиДанных. Свойство ДополнительныеСвойства представляет собой объект типа Структура. 6.3.5.11.6. Порядок разработки хранилища настроек Далее приводится рекомендованный порядок разработки хранилищ настроек: 1. Определяется, какое хранилище (см. начало раздела) будет использоваться. Например, будет реализовано хранилище настроек данных форм конфигурации. 2. Определяется перечень объектов метаданных, которые будут использовать это хранилище, и определяется перечень хранимой в хранилище информации, ее структура и типы. Эта информация поможет нам правильно выбрать объект метаданных, в данных которого будут храниться наши настройки. 3. На основании информации из п. 2 создается объект (и его структура), который будет хранить настройки. Пусть наши настройки хранятся в элементах справочника. Так как в нашем случае структура сохраняемых данных крайне разнородна, то нет смысла реализовывать отдельный набор реквизитов для хранения настроек каждой формы. 158 Поэтому настройки будут храниться в реквизите справочника типа ХранилищеЗначения. 4. Создается объект типа ХранилищеНастроек, и для него выполняется реализация форм сохранения и загрузки. Тем самым обеспечивается интерактивность при сохранении и восстановлении настроек. 6.3. Для созданного объекта ХранилищеНастроек выполняется реализация обработчиков событий, связанных с сохранением и восстановлением настроек. Если не выполнить эту операцию, то не будут происходить собственно операции чтения/записи настроек. Для решения этой задачи нужно реализовать обработчики событий ОбработкаСохранения и ОбработкаЗагрузки в модуле созданного объекта типа ХранилищеНастроек. 6. В объектах, выделенных в п. 2 (или в свойствах конфигурации), заполняются соответствующие свойства, тем самым указывая объектам, в каких хранилищах будут храниться настройки. В нашем примере необходимо заполнить свойство конфигурации Хранилище настроек данных форм ссылкой на объект, созданный на шаге 4. 7. При необходимости выполняется реализация обработчиков событий, связанных с сохранением и восстановлением настроек в тех прикладных объектах, где это необходимо. 6.3.5.11.7. Работа с хранилищем настроек из встроенного языка В данном примере рассматривается копирование настроек текущего пользователя другим пользователям системы. В качестве источника настроек используется ХранилищеСистемныхНастроек. ПРИМЕЧАНИЕ. Пример, приведенный ниже, не является законченным. Он предназначен для демонстрации работы с стандартным хранилищем настроек. Список имен пользователей передается параметром процедуры СкопироватьНастройки() в виде массива. Процедура СкопироватьНастройки(СписокПользователей) ОписаниеНастроек = Новый ОписаниеНастроек; ВыборкаНастроек = ХранилищеСистемныхНастроек.Выбрать(); Пока ВыборкаНастроек.Следующий() Цикл Для каждого Пользователь Из СписокПользователей Цикл ОписаниеНастроек.Представление = ВыборкаНастроек.Представление; ХранилищеНастроек.Сохранить(ВыборкаНастроек.КлючОбъекта, ВыборкаНастроек.КлючНастроек, ВыборкаНастроек.Настройки, ОписаниеНастроек, Пользователь); КонецЦикла; КонецЦикла; КонецПроцедуры 6.3.5.12. Общие формы Механизм общих форм позволяет использовать формы, доступные из любого модуля текущей конфигурации. Если необходимо разместить команду открытия общей формы в командном интерфейсе, то сделать это можно с помощью свойства Использовать стандартные команды. Команда открытия общей формы будет размещена в командном интерфейсе тех подсистем, которым принадлежит общая форма. Если общая форма входит в состав функциональной опции и функциональная опция отключена, то стандартная команда общей формы не отображается в командном интерфейсе. Если создается общая форма, которая будет использоваться в качестве формы отчета, настроек отчета или варианта, то не рекомендуется для такой формы устанавливать свойство Использовать стандартные команды. 159 6.3.5.13. Общие команды В данной ветке разработчик может создавать команды, не имеющие объектной специфики или служащие для выполнения действий с объектами, которые не используют стандартные команды. 6.3.5.14. Группы команд В данной ветке разработчик может создавать собственные группы команд. Созданная группа будет размещаться в той части командного интерфейса, который определен свойством команды Категория. Группа команд может быть размещена: ● в панели навигации, ● панели навигации формы, ● панели действий, ● командной панели формы. 6.3.5.15. Общие макеты Механизм общих макетов (печатных форм, форм отчетов, справочных данных и т. д.) позволяет создавать шаблоны печатных форм, доступные из любого модуля текущей конфигурации. 6.3.5.16. Общие картинки Конфигуратор позволяет включать в конфигурацию графические изображения – картинки. Картинки можно размещать в некоторых элементах управления, в формах, в макетах, а также обращаться к ним при помощи встроенного языка системы «1С:Предприятие». Если картинку планируется использовать в качестве пиктограммы в меню, панели инструментов, табличном документе и т. п., важно задать ей правильный размер, чтобы она отображалась без искажений. Рекомендуемый размер картинок: ● для пиктограмм – не более 16x16 точек; ● для использования в табличном поле – не более 14x14 точек; ● в качестве картинки кнопки выбора поля редактирования – не более 9x9 точек; ● для картинки, которая будет использована в качестве представления подсистемы, – не более 48x48 точек. СОВЕТ. Если картинку предполагается использовать в нескольких местах, ее размер разумно ограничить меньшим значением. Для работы с картинками предназначено окно Библиотека картинок. Для его вызова в окне Конфигурация нужно указать ветвь Общие картинки и в контекстном меню выбрать пункт Все картинки. На экран выводится окно ведения списка картинок (рисунок 6.39). 160 Рисунок 6.39 – Библиотека картинок Для добавления новой картинки следует нажать кнопку Добавить. На экран выводится окно, в котором можно выбрать картинку из файла или открыть редактор картинок и создать новую картинку, а также выбрать или изменить для картинки прозрачный фон. Для выбора готовой картинки нужно нажать кнопку Выбрать из файла и выбрать файл, в котором расположена подготовленная заранее картинка. Система «1С:Предприятие» позволяет использовать картинки форматов bmp, gif, jpg, png, tiff, ico и метафайлы (wmf, emf). СОВЕТ. Для картинок, которые будут использоваться в качестве пиктограмм в интерфейсе (см. рекомендованные размеры картинок в начале раздела), рекомендуется использовать форматы, поддерживающие сжатие без потерь (png и gif), для того чтобы избежать искажения и минимизировать трафик между клиентом и сервером. Нужно задать имя, по которому данная картинка будет выбираться средствами встроенного языка. Рисунок 6.40 – Свойства картинки 161 Чтобы картинка при вставке хорошо вписывалась в элемент управления или форму, желательно установить ей прозрачный фон. Для этого в качестве цвета фона при редактировании картинки достаточно выбрать любой не используемый в картинке цвет, сформировать изображение и сохранить картинку. Для существующей картинки можно указать любой цвет. Благодаря установленной прозрачности данного цвета сквозь него становятся видны детали той части формы, которую закрывает область картинки. Для установки прозрачного фона нужно нажать кнопку Установить прозрачный фон. Указатель мыши изменит вид. Подвести курсор к той части картинки, цвет которой нужно сделать прозрачным, и щелкнуть левой кнопкой мыши. Выбранный цвет становится прозрачным. Для снятия прозрачности следует нажать кнопку Убрать прозрачность. Кнопки Установить прозрачный фон и Убрать прозрачность доступны только для картинок форматов bmp, jpg и tiff. Для картинок в остальных форматах данные кнопки недоступны. Подобные действия можно выполнить с помощью ссылки Открыть в свойстве Картинка. На экран выводится окно выбора картинки. Рисунок 6.41 – Выбор картинки Для редактирования картинки нужно нажать кнопку Редактировать. Запускается редактор картинок. 6.3.5.17. XDTO-пакеты Механизм XDTO является универсальным способом представления данных для взаимодействия с различными внешними источниками данных и программными системами. 6.3.5.17.1. Импорт схемы XML в глобальную фабрику XDTO Для того чтобы импортировать схему XML из файла .xsd в глобальную фабрику XDTO, следует выделить в дереве конфигурации ветку XDTO и выполнить команду контекстного меню Импорт XML-схемы... 162 Рисунок 6.42 – Импорт XML-схемы После указания требуемого файла .xsd будет выполнена проверка существования в дереве конфигурации пакетов XDTO, пространства имен которых совпадают с импортируемыми из файла. Если такие пакеты существуют, то будет отображен список этих пакетов и предложено указать те пакеты, которые должны быть обновлены (по умолчанию существующие пакеты не обновляются). Рисунок 6.43 – Выбор пространств имен После этого будет выполнен импорт, в результате которого новые пакеты XDTO будут добавлены в дерево конфигурации, а пакеты, отмеченные для обновления, обновлены. 6.3.5.17.2. Экспорт схемы XML-данных конфигурации Для того чтобы экспортировать схему XML, соответствующую типам данных конфигурации (без учета пакетов XDTO, созданных в дереве конфигурации), в файл .xsd, следует выделить в дереве конфигурации ветку XDTO и выполнить команду контекстного меню Экспорт XML-схемы данных конфигурации... 163 Рисунок 6.44 – Экспорт схемы конфигурации После выбора каталога и указания имени файла будет выполнен экспорт схемы XML в указанный файл. 6.3.5.17.3. Экспорт схемы XML-пакета XDTO Для того чтобы экспортировать схему XML, соответствующую существующему пакету XDTO, в файл .xsd, следует выделить в дереве конфигурации требуемый пакет XDTO и выполнить команду контекстного меню Экспорт XML-схемы... Рисунок 6.45 – Экспорт XML-схемы пакета XDTO После этого будет выполнена проверка выгружаемого пакета XDTO. Если будут обнаружены ошибки, соответствующие сообщения будут выведены в окно сообщений, а процедура экспорта будет прервана. В случае успешной проверки будет предложено выбрать каталог и имя файла .xsd, после чего схема XML будет экспортирована в указанный файл. 6.3.5.17.4. Проверка пакета XDTO 164 Для того чтобы проверить пакет XDTO, следует выделить в дереве конфигурации требуемый пакет XDTO и выполнить команду контекстного меню Проверить пакет. В результате будет выполнена проверка модели пакета XDTO. Если будут обнаружены ошибки, соответствующие сообщения будут выведены в окно сообщений. 6.3.5.17.5. Окно редактирования пакета XDTO Редактирование пакета XDTO выполняется в окне редактирования пакета XDTO. Рисунок 6.46 – Окно редактирования пакета XDTO При добавлении нового пакета XDTO в дерево конфигурации окно редактирования пакета XDTO открывается автоматически. Для того чтобы открыть окно редактирования для существующего пакета XDTO, следует выделить в дереве конфигурации требуемый пакет XDTO и выполнить команду контекстного меню Открыть пакет. Иерархическая структура пакета XDTO Окно редактирования пакета XDTO содержит иерархическую структуру пакета XDTO, отображенную в виде дерева. В корне дерева расположен идентификатор пакета XDTO, содержащий URI пространства имен данного пакета. На первом уровне иерархии могут располагаться следующие элементы пакета: ● Директивы импорта – перечень директив импорта. Каждая директива импорта представляет собой ссылку на другой пакет, содержащий типы, на которые так или иначе ссылается данный пакет. При работе с данным пакетом XDTO средствами встроенного языка данный перечень директив импорта будет доступен в виде объекта КоллекцияПакетовXDTO, содержащегося в свойстве Зависимости пакета XDTO. ● Типы значений – перечень типов значений XDTO, которые содержит пакет XDTO. ● Типы объектов – перечень типов объектов XDTO, которые содержит пакет XDTO. ● Свойства – перечень свойств пакета XDTO. Представляет собой объявления объектов/значений, которые могут являться корневыми элементами документов XML, принадлежащих URI пространству имен данного пакета XDTO. ● Каждый тип значения XDTO описывается иерархической структурой и может содержать в своем составе следующие элементы: 165 ● Образец – описывает один фасет XDTO типа Образец. ● Перечисление – описывает один фасет XDTO типа Перечисление. Каждый тип объекта XDTO описывается иерархической структурой, которая может содержать в своем составе набор свойств объекта. Свойства пакета XDTO Редактирование свойств пакета XDTO выполняется в палитре свойств. Если палитра свойств открыта для пакета XDTO, выделенного в дереве конфигурации, то в ней будут содержаться следующие свойства: Имя, Синоним, Комментарий, Подсистемы и URI пространства имен. Кроме этого, палитра свойств будет содержать ссылку Пакет, по которой можно перейти в окно редактирования пакета XDTO. Рисунок 6.47 – Свойства пакета XDTO Если палитра свойств открыта для пакета XDTO, выделенного в окне редактирования пакета XDTO (корневой элемент), то она содержит единственное свойство – URI пространства имен. Это свойство задает URI пространства имен пакета XDTO, к которому принадлежат все определенные в этом пакете типы. Свойства директивы импорта Редактирование свойств директивы импорта выполняется в палитре свойств. Для директивы импорта палитра свойств содержит единственное свойство – Пространство имен. Это свойство задает URI пространства имен импортируемого пакета. Рисунок 6.48 – Свойства директивы импорта Свойства типа значения XDTO Редактирование свойств типа значения XDTO выполняется в палитре свойств. 166 Рисунок 6.49 – Свойства значения XDTO Для типа значения XDTO палитра свойств содержит следующие свойства: ● Имя – имя типа значения XDTO. ● Базовый тип – базовый тип для данного типа значения XDTO. ● Вариант – вариант простого типа (атомарный тип, список, объединение). Если значение установлено, то должно не противоречить значениям Тип элемента и Типы объединения. ● Тип элемента – тип элемента списка в случае, когда тип значения XDTO определяется списком. При этом все фасеты и свойство Типы подчиненных должны быть пустыми. ● Типы объединения – список типов, образующих объединение в случае, когда тип значения XDTO определяется объединением. Объединяться могут только типы значений XDTO. При этом все фасеты и свойство Тип элемента должны быть пустыми. ● Длина – фасет длины. ● Минимальная длина – фасет минимальной длины. ● Максимальная длина – фасет максимальной длины. ● Пробельные символы – фасет пробельного символа. ● Минимум, включающий границу – фасет минимума, включающего границу. ● Минимум, не включающий границу – фасет минимума, не включающего границу. ● Максимум, включающий границу – фасет максимума, включающего границу. ● Максимум, не включающий границу – фасет максимума, не включающего границу. ● Общее количество цифр – фасет общего количества цифр. ● Количество цифр дробной части – фасет количества цифр дробной части. Свойства типа объекта XDTO Редактирование свойств типа объекта XDTO выполняется в палитре свойств. 167 Рисунок 6.50 – Свойства объекта XDTO Для типа объекта XDTO палитра свойств содержит следующие свойства: ● Имя – имя типа объекта XDTO. ● Базовый тип – базовый тип для данного типа объекта XDTO. Это может быть только тип объекта XDTO. ● Открытый – признак, является ли тип объекта XDTO открытым. Данное свойство показывает, может ли экземпляр объекта XDTO содержать дополнительные свойства, не определенные в его типе. ● Абстрактный – признак, является ли тип объекта XDTO абстрактным. ● Смешанный – свойство показывает, имеет ли соответствующий объект XDTO смешанное содержание. Если значение свойства Смешанный равно Истина, то значение Последовательный обязательно равно Истина, так как смешанное содержание невозможно смоделировать без применения последовательности XDTO. ● Упорядоченный – признак, является ли порядок следования элементов, представляющих значения свойств, строго соответствующим порядку следования свойств в типе объекта XDTO. Если свойство Упорядоченный имеет значение Ложь, то на входе порядок следования элементов XML не контролируется, а на выходе определяется порядком следования свойств, если только свойство Последовательный не имеет значение Истина. ● Последовательный – это свойство показывает, содержит ли экземпляр соответствующего объекта XDTO последовательность XDTO. Данный признак равен значению Истина в тех случаях, когда порядок следования вложенных элементов XML не может однозначно определяться порядком следования свойств в типе или соответствующий объект XDTO имеет смешанное содержание. Последовательность XDTO позволяет задать в явном виде порядок следования элементов, как они будут представлены в документе XML. Для объектов типов, у которых свойство Последовательный установлено в значение Ложь, порядок следования вложенных элементов соответствует порядку следования свойств. Свойства свойств типа объекта XDTO Редактирование свойства свойств типа объекта XDTO выполняется в палитре свойств. 168 Рисунок 6.51 – Палитра свойств типа XDTO Для типа объекта XDTO палитра свойств содержит следующие свойства: ● Имя – имя свойства. В пределах одного типа объекта XDTO имена свойств должны быть уникальными. ● Тип – тип свойства. Может быть как типом значения XDTO, так и типом объекта XDTO. ● Минимальное количество – минимальное количество значений свойства. Минимальное количество значений свойства может принимать значения >= 0. Естественно, значение Минимальное количество должно быть меньше или равно значению Максимальное количество (если, конечно, Максимальное количество не равно -1); ● Максимальное количество – свойство типа объекта XDTO может быть определено как содержащее одно или множество значений. Свойство считается содержащим одно значение, если свойство Максимальное количество равно 1. Если же свойство Максимальное количество больше 1, то считается, что свойство может содержать множество значений. Такое свойство в структуре объекта моделируется как список. Свойство Максимальное количество показывает максимальное количество значений свойства. Максимальное количество > 1 может быть задано только для свойств, представляемых в виде элемента XML. ● Возможно пустое – показывает, может ли свойство принимать неопределенное значение. Свойство Возможно пустое, равное Истина, может быть определено только для свойств с формой представления Элемент. Если Максимальное количество > 1, неопределенное значение является допустимым для элемента списка значений свойства. ● Фиксированное – указывает, является ли значение свойства фиксированным. Если установлено в значение Истина, то само фиксированное значение можно получить через свойство По умолчанию. ● По умолчанию – значение свойства по умолчанию. Тип значения по умолчанию может быть только типом значения XDTO. При этом данное значение должно быть совместимо с типом свойства (быть того же типа, что и тип свойства или же унаследованного типа). При создании объекта XDTO свойство, если оно допускает единственное значение, принимает значение по умолчанию. Для свойств с множеством значений список значений изначально пуст, независимо от того, определено или нет значение по умолчанию. ● Форма – форма представления свойства в XML. Это может быть Текст, Элемент или Атрибут. Если формой представления является Атрибут или Текст, то значение свойства Максимальное количество не может быть больше 1. Если свойство принимает 169 значение Текст, то значение свойства Минимальное количество также должно быть равным 1. У одного типа только одно свойство может иметь форму представления Текст, при этом остальные свойства должны иметь форму представления Атрибут. ● Локальное имя – локальное имя, используемое для представления свойства. Для свойств с формой представления Текст – пустая строка. Глобальное свойство Редактирование свойств глобального свойства выполняется в палитре свойств. Рисунок 6.52 – Палитра свойств глобального свойства Для глобального свойства палитра свойств содержит следующие свойства: ● Имя – имя глобального свойства. В пределах одного типа объекта XDTO имена глобальных свойств должны быть уникальными. ● Ссылка – ссылка на корневое определение свойства пакета. ● Тип – тип глобального свойства. ● Минимальное количество – минимальное количество значений свойства. Если Минимальное количество = 0, то значение свойства может быть не установлено. ● Максимальное количество – максимальное количество значений свойства. Если Максимальное количество равно -1, то количество значений свойства неограниченно. ● Возможно пустое – показывает, может ли свойство принимать неопределенное значение. ● Фиксированное – указывает, является ли значение свойства фиксированным. ● По умолчанию – значение свойства по умолчанию. Лексическое представление значения свойства должно соответствовать правилам проверки типа данного свойства. ● Форма – форма представления свойства в XML. Это может быть Текст, Элемент или Атрибут. ● Локальное имя – локальное имя, используемое для представления свойства. 6.3.5.18. Web-сервисы Механизм Web-сервисов позволяет использовать «1С:Предприятие» как набор сервисов в сложных распределенных и гетерогенных системах, а также позволяет интегрировать «1С:Предприятие» с другими промышленными системами использованием сервисно-ориентированной архитектуры. 6.3.5.18.1. Добавление Web-сервиса 170 Для того чтобы добавить Web-сервис в дерево конфигурации, следует выделить ветку Общие – Web-сервисы и выполнить команду контекстного меню Добавить. В результате выполнения команды будет открыто окно редактирования Webсервиса. На закладке Прочее окна редактирования Web-сервиса следует установить следующие параметры: ● URI пространства имен – содержит URI пространства имен Web-сервиса. Каждый Web-сервис может быть однозначно идентифицирован по своему имени и URI пространству имен, которому он принадлежит. ● Пакеты XDTO – перечень пакетов XDTO, типы которых могут использоваться в качестве типов возвращаемого значения операций и типов параметров операций Webсервиса. ● Имя файла публикаций – имя файла описания Web-сервиса, который расположен на веб-сервере (о публикации Web-сервисов см. книгу «1С:Предприятие 8.2. Руководство администратора»). Для получения доступа к Web-сервису необходимо использовать адрес, который формируется следующим образом: <Имя хоста веб-сервера>/<Имя виртуального каталога>/ws/<Имя Web-сервиса> или <Имя хоста веб-сервера>/<Имя виртуального каталога>/ws/<Адрес Web-сервиса>. Так, если виртуальный каталог имеет имя DemoWS, имя Web-сервиса в конфигураторе указано как ДемонстрацияРаботыWS, а в качестве адреса указано DemoWorkWS, то обращение к Web-сервису можно выполнять одновременно по двум адресам (для получения доступа с локальной машины): http://localhost/DemoWS/ws/ДемонстрацияРаботыWS или http://localhost/DemoWS/ws/DemoWorkWS. Кроме этого, на закладке содержится кнопка Модуль, которая позволяет открыть для редактирования модуль Web-сервиса. 6.3.5.18.2. Иерархическая структура Web-сервиса Каждый Web-сервис, описываемый в дереве конфигурации, может содержать набор операций. Каждой операции должна соответствовать экспортируемая процедура, описанная в модуле Web-сервиса. Рисунок 6.53 – Описание Web-сервиса 171 В свою очередь, каждая операция может содержать набор параметров, имена которых должны соответствовать именам параметров процедуры, описывающей данную операцию. 6.3.5.18.3. Операции Web-сервиса На закладке Операции выполняется добавление операции Редактирование свойств операции выполняется в палитре свойств. Web-сервиса. Рисунок 6.54 – Свойство операции Web-сервиса Тип возвращаемого значения – тип значения, которое возвращает операция Webсервиса. Может являться типом значения XDTO или типом объекта XDTO. Возможно пустое значение – показывает, может ли возвращаемое значение принимать неопределенное значение. В транзакции – показывает, будет ли выполняться код модуля Web-сервиса в транзакции или нет. Если свойство установлено, то при вызове Web-сервиса автоматически будет начата транзакция, а при завершении транзакция будет либо зафиксирована, либо произойдет откат транзакции (в зависимости от результатов выполнения). Если свойство не установлено, при начале исполнения модуля Web-сервиса транзакция начата не будет. Имя процедуры – имя процедуры модуля Web-сервиса, которая будет выполнена при вызове данного свойства. 6.3.5.18.4. Параметры операции На закладке Операции для указанной операции нужно осуществить задание параметров операции Web-сервиса. Редактирование свойств параметра выполняется в палитре свойств. 172 Рисунок 6.55 – Свойства параметра операции Тип значения – тип значения параметра операции Web-сервиса. Может являться типом значения XDTO или типом объекта XDTO. Возможно пустое значение – показывает, может ли значение параметра операции принимать неопределенное значение. Направление передачи – определяет направление передачи данных с помощью данного параметра. Возможные значения: ● Входной – означает, что параметр может использоваться только для передачи данных Web-сервису. ● Выходной – означает, что параметр может использоваться как для передачи данных, так и для их получения от Web-сервиса. 6.3.5.18.5. Указание типов, определяемых системой Чтобы в Web-сервисе воспользоваться типами, определяемыми системой «1С:Предприятие» (например, в параметрах и возвращаемом значении операций), нужно в конфигурации определить пакеты XDTO и для каждого пакета указать в его списке импортируемых пакетов (свойство Директивы импорта) набор пакетов платформы, в которые эти типы входят. URI пространства имен для указания типа содержится в статье синтакс-помощника по объекту данного типа. 6.3.5.18.6. Публикация Web-сервисов Публикация Web-сервисов описывается в книге «1С:Предприятие 8.2. Руководство администратора». 6.3.5.19. WS-ссылки Система «1С:Предприятие» может использовать веб-сервисы, предоставляемые другими поставщиками, с помощью статических ссылок, создаваемых в дереве конфигурации. 6.3.5.19.1. Добавление WS-ссылки Для того чтобы добавить статическую ссылку на внешний веб-сервис в дерево конфигурации, следует выделить ветку WS-ссылки и выполнить команду контекстного меню Добавить или соответствующую команду меню Действия. 173 Рисунок 6.56 – Добавление WS-ссылки В открывшемся окне следует ввести URL описания добавляемого веб-сервиса, например: http://users.v8.1c.ru/ws/products.1cws?wsdl. ПРИМЕЧАНИЕ. При добавлении WS-ссылки следует помнить, что «1С:Предприятие» удаляет из введенного URL завершающий символ «/», в силу чего URL http://localhost/ws/ws-service/?wsdl и URL http://localhost/ws/ws-service?wsdl с точки зрения «1С:Предприятия» будут считаться идентичными. 6.3.5.19.2. Иерархическая структура WS-ссылки Просмотр иерархической структуры WS-ссылки выполняется в окне просмотра WS-ссылки. Значения свойств элементов ссылки можно просмотреть в палитре свойств. Для того чтобы открыть окно просмотра WS-ссылки, следует выделить в дереве конфигурации требуемую WS-ссылку и выполнить команду контекстного меню Свойства. После этого в палитре свойств воспользоваться ссылкой WS-ссылка, которая открывает окно просмотра WS-ссылки. Рисунок 6.57 – WS-ссылка Окно просмотра содержит иерархическую структуру WS-ссылки, отображенную в виде дерева. На первом уровне иерархии могут располагаться: ● Модель данных – содержит перечень пакетов XDTO, описывающих структуру типов, используемую веб-сервисами, на которые ссылается данная WS-ссылка. ● Web-сервисы – перечень Web-сервисов, на которые ссылается данная ссылка. Просмотр структуры и свойств модели данных выполняется аналогично работе с пакетами XDTO, за исключением того, что редактирование свойств пакетов, отображаемых в окне просмотра WS-ссылки, невозможно. Просмотр структуры WS-ссылки выполняется аналогично работе с Web-сервисами, за исключением того, что для каждого Web-сервиса отображаются поддерживаемые точки подключения Web-сервиса, для которых, в свою очередь, отображается список операций и параметров каждой операции. 174 Рисунок 6.58 – Структура Web-сервиса Различные точки подключения Web-сервиса позволяют выполнять операции, используя различные протоколы. 6.3.5.20. Элементы стиля Объекты конфигурации Элементы стиля предназначены для единообразного оформления различных элементов формы в тех случаях, когда недостаточно того оформления, которое автоматически предлагает «1С:Предприятие». Например, требуется цвет каких-либо надписей в формах конфигурации сделать одинаковым. В этом случае логично создать элемент стиля, задать ему цвет и использовать созданный элемент для установки цвета текста элемента формы. Рисунок 6.59 – Использование элемента стиля Элементы стиля могут быть трех разных видов: ● Цвет, ● Шрифт, ● Рамка. 175 ПРИМЕЧАНИЕ. Системные элементы стиля недоступны для выбора в качестве значений пользовательских элементов стиля. В диалоге выбора шрифта в тонком клиенте в списке шрифтов присутствуют шрифты, установленные на текущем компьютере, и перечень специальных шрифтов, заключенных в угловые скобки (<>). Если выбран шрифт <Шрифт текста>, то будет использоваться шрифт интерфейса «1С:Предприятия», остальные шрифты соответствуют соответствующим шрифтам операционной системы. В начале списка размеров шрифта <Шрифт текста> присутствует элемент <>. Выбор этого размера шрифта (его значение равно 0) означает, что будет использован размер шрифта интерфейса «1С:Предприятия». Начертание шрифта (жирный, наклонный и т. д.) по умолчанию берется из стиля, но может быть изменено пользователем без каких-либо ограничений. При выборе другого шрифта внесенные пользователем изменения размера или начертания не сохраняются и устанавливаются в значения по умолчанию. Имеется возможность программного доступа к значению элемента стиля с помощью свойства Значение. Пример: Метаданные.ЭлементыСтиля.ЦветОтрицательного.Значение 6.3.5.21. Языки Объекты конфигурации Языки предназначены для создания интерфейса программы на различных языках. Для каждого объекта конфигурации типа Языки резервируется отдельная строка для тех реквизитов метаданных, для которых допускается представление на разных языках. Рассмотрим пример формы для элемента справочника Номенклатура. Для языка Русский надписи формы выглядят так: Рисунок 6.60 – Форма на русском языке Если в ветви Языки создано несколько объектов (например, Русский и Английский), то для смены языка нужно выбрать пункт Конфигурация – Язык редактирования конфигурации. В открывшемся окне выбора языка выбрать язык просмотра конфигурации. 176 Рисунок 6.61 – Выбор языка редактирования конфигурации Аналогичный результат можно получить с помощью кнопки выбора языка, расположенной в панели состояния справа от кнопок CAP и NUM (правый нижний угол основного окна конфигуратора). Конфигуратор заменит текст надписей на варианты надписей выбранного языка. Рисунок 6.62 – Форма на английском языке Разумеется, текст надписей должен быть заранее введен для каждого элемента управления. Для ввода текста в палитре свойств элемента управления Надпись в свойстве Заголовок (Текст или Синоним, в зависимости от типа элемента управления) нужно нажать кнопку «лупа» (рисунок 6.63). На экран выводится окно Строки на разных языках. 177 Рисунок 6.63 – Строки на разных языках СОВЕТ. В конфигурации нет ограничений на число языков. Однако не следует создавать объекты типа Языки «с запасом», т. к. создать объект Язык можно в любой момент. В свойстве Код языка указывается код языка, например, EN для языка Английский. Если в конфигурации определено два и более объекта типа Языки, то для свойства Синоним и Заголовок элемента управления появляется кнопка редактирования текста на разных языках (в виде лупы). Первый объект языка программа создает в соответствии с выбором языка (страны) при создании новой информационной базы. Чтобы сформировать текстовое представление реквизита для отображения в форме, используется следующее правило: ● Выполняется получение заголовка отображаемого объекта на языке конфигурации текущего пользователя. Если заголовок задан, используется именно он. ● Выполняется попытка получения синонима отображаемого объекта на языке конфигурации текущего пользователя. Если синоним задан, используется именно он. ● Дальнейшее зависит от вида отображаемого объекта: ● для стандартных реквизитов получается представление на языке локализации платформы; ● для объектов, созданных прикладным разработчиком, используется имя объекта так (и на том языке), как оно задано в конфигурации. ВНИМАНИЕ! Если тексты в свойствах Синоним или Заголовок введены, то изменение кода языка в свойстве Код языка приведет к «потере» введенных текстов (тексты остаются для прежнего значения кода). Тексты «восстанавливаются» при указании прежнего значения кода языка. Для редактирования текстов и выполнения задач локализации (создания интерфейса на другом языке) следует использовать режим Редактирование текстов интерфейса. 6.3.6. Общие свойства объектов конфигурации Данный раздел содержит описание общих свойств объектов метаданных. 178 6.3.6.1. Основные свойства Практически все объекты конфигурации имеют следующие свойства, располагающиеся в категории свойств Основные: ● Имя – имя объекта конфигурации. Имя должно состоять из одного слова, начинаться с буквы и не содержать специальных символов, кроме «_». По имени объекта производится доступ и управление объектом конфигурации средствами встроенного языка. Имена объектов конфигурации не должны совпадать с зарезервированными словами языка запросов. ● Синоним – помимо имени можно указать также его синоним. Если конфигурация создается для использования на разных языках, то следует указать синонимы на используемых языках. При работе с системой «1С:Предприятие» синоним будет выдаваться в различных списках выбора, заголовках окон, текстах надписей, при формировании интерфейсов с учетом текущего языка. Синоним не имеет ограничений на использование символов. Если синоним не задан, выбирается имя. ПРИМЕЧАНИЕ. Имя или синоним, выдаваемые пользователю, также называются представлением объекта конфигурации. ● Комментарий – произвольная строка символов. Как правило, расшифровывает и поясняет имя объекта. 6.3.6.2. Представление объектов метаданных Для многих объектов метаданных реализована возможность задавать различные представления объекта. Это сделано для того, чтобы разработчик имел возможность задать представление стандартных команд, их подсказок, а также заголовков форм. Рисунок 6.64 – Представление объектов ● Представление объекта (для регистра – записи): ● название одного объекта (например, Расчетный счет); ● используется в представлении стандартной команды (создание объекта). ● Расширенное представление объекта (для регистра – записи) используется для формирования заголовка формы объекта. Например, Расчетный счет организации. ● Представление списка: ● название списка объектов (например, Расчетные счета); 179 ● используется в представлении стандартной команды (команда открытия списка объектов). ● Расширенное представление списка – используется для формирования заголовка формы списка (например, Расчетные счета организации). ● Расширенное представление – заголовок формы отчета или обработки (например, Отчет о взаиморасчетах по расчетным счетам). ● Пояснение – используется для формирования подсказки к стандартным командам (например, Расчетные счета наших организаций). ● Картинка – картинка для представления подсистемы в панели разделов. Следует учитывать, что заполнение свойств, связанных с представлением объектов и списков, необходимо только в тех случаях, когда требуется несколько уточнить информацию, отображаемую для объекта по умолчанию. Например, существует справочник Товары (Имя объекта метаданных – Товары, Синоним объекта метаданных – Товары), элементами которого могут быть товары и услуги. Но в текстах команд вы хотите использовать единственное число для команды (создать товар) и не хотите отражать информацию об услугах, т. к. она «удлиняет» текст команды. В то же время в форме объекта вы хотите указать пользователю, что в данной форме можно редактировать и товары, и услуги. В этом случае имеет смысл свойство Представление объекта заполнить текстом Товар, а свойство Расширенное представление объекта заполнить текстом Товар (услуга). Тогда команда создания элемента справочника товары будет выглядеть как Товар: создать, а заголовок формы – Товар (услуга). 6.3.6.3. Стандартные реквизиты Для того чтобы на уровне конфигурации переопределять некоторые интерфейсные свойства (такие как синоним, проверка заполнения и т. д.) стандартных реквизитов (например, Код, Наименование, Родитель) и стандартных табличных частей (например, ВидыСубконто, БазовыеВидыРасчета) прикладных объектов, существует возможность настройки этих свойств. Рисунок 6.65 – Стандартные реквизиты Для этого в палитре свойств ряда объектов существуют команды, открывающие списки стандартных реквизитов и стандартных табличных частей (рисунок 6.65). Такие команды доступны для тех объектов, у которых имеются стандартные реквизиты и стандартные табличные части. С помощью палитры свойств можно переопределять некоторые свойства стандартных реквизитов таким образом, чтобы они более полно соответствовали требованиям решаемой прикладной задачи. Например, для свойства Владелец справочника РасчетныеСчета можно задать синоним Контрагент. Тогда во всех формах представление этого реквизита (Владелец) по умолчанию будет выглядеть как «Контрагент:». 180 В том случае если свойства стандартного реквизита (или стандартной табличной части) не заданы, будут использованы свойства стандартных реквизитов по умолчанию. По своему набору свойств стандартный реквизит практически ничем не отличается от любого другого реквизита, за исключением того, что нельзя изменить: ● имя стандартного реквизита, ● тип стандартного реквизита, ● имя стандартной табличной части, ● индексирование стандартного реквизита. ВНИМАНИЕ! Наличие описания стандартного реквизита не меняет его имени, то есть все обращения к реквизиту во встроенном языке и в языке запросов остаются неизменными. 6.3.6.4. Ввод по строке Для прикладных объектов (справочники, документы, планы видов характеристик, планы счетов, планы видов расчета, регистры, бизнес-процессы и задачи, а также планы обмена) в свойстве Ввод по строке можно указать те реквизиты, по которым выполняется поиск. Если ввод по строке разрешен (заданы соответствующие реквизиты), то допустимо в поле ввода соответствующего типа не выполнять выбор из формы объекта, а ввести информацию, которая содержится в заданных реквизитах объекта. Рисунок 6.66 – Ввод по строке Например, у нас есть справочник Номенклатура, в котором находится несколько товаров, начинающихся со слова Bosch. Тогда, введя в поле ввода номенклатуры слово bosс, мы получим список товаров, которые начинаются с этого слова (рисунок 6.66). В качестве реквизитов, по которым будет выполняться поиск, могут выступать: ● Для справочников, планов видов характеристик, планов счетов, планов видов расчета, планов обмена – Код и Наименование. ● Для документов – Номер. ● Для бизнес-процессов и задач – Номер и Наименование. ● Реквизиты, имеющие тип Число или Строка, для которых свойство Индексировать имеет значение Индексировать или Индексировать с доп. упорядочиванием. Примером последних может служить поле для ввода артикула, штрихкода, ИНН. Для формирования списка реквизитов нужно нажать кнопку выбора и в открывшемся диалоге перенести в левый список те поля, по которым может производиться ввод по строке. 181 Рисунок 6.67 – Настройка ввода по строке Если полей несколько, то установить порядок их следования. При поиске по строке поиск выполняется в полях в той последовательности, в которой они приведены в данном диалоге. Например, для элемента справочника Номенклатура ввод может осуществляться как по коду, так и по артикулу. Если значение кода одного элемента совпадет со значением артикула другого, то в список найденные значения попадут в том порядке, в котором указаны при настройке. ВНИМАНИЕ! При выполнении поиска данных (во время ввода по строке) действуют ограничения доступа к данным. 6.3.6.4.1. Особенности поведения поля ввода При вводе данных в поле ввода следует учитывать некоторые особенности работы со списком выбора. Если в результате набора текста система однозначно идентифицирует объект, который пользователь хочет ввести, то происходит автоматическая подстановка найденного объекта в поле ввода. Если в результате набора обнаружено несколько объектов, начинающихся с введенного текста, то список этих объектов будет расположен в выпадающем списке (не более 50 элементов). Во время ввода пользователь может с помощью кнопок Стрелка вверх и Стрелка вниз передвигаться по списку, при этом продолжая набор текста в самом поле. В этом случае для осуществления выбора требуется выбрать необходимый элемент и подтвердить выбор нажатием кнопки Enter или Tab. 6.3.6.4.2. Программное формирование списка выбора Если разработчика не устраивает, каким образом формируется список выбора, он может переопределить его самостоятельно. Сделать это можно двумя способами: ● Непосредственно в форме – в этом случае особое формирование списка выбора будет работать только для этого, единственного поля. Для этого необходимо определить обработчики событий НачалоВыбора, АвтоПодбор и ОкончаниеВводаТекста. ● В модуле менеджера соответствующего объекта – в этом случае особое формирование списка выбора будет выполняться для всех полей ввода, в которых вводятся значения используемого объекта. Если поле связано с данными, имеющими тип ссылки на прикладной объект (например, СправочникСсылка, ПеречислениеСсылка и т. д.), то список выбора можно 182 сформировать или в модуле менеджера соответствующего объекта, или с помощью обработчиков модуля формы. В остальных случаях список выбора можно сформировать только с помощью обработчиков модуля формы. Подробнее остановимся на втором способе. Для программного формирования списка выбора необходимо переопределить обработчик события ОбработкаПолученияДанныхВыбора менеджера объекта. Обработчик получает набор параметров, определяющих условия формирования списка выбора. Набор параметров представляет собой структуру, которая содержит: ● Строку поиска – текстовую строку, содержащую текст, который пользователь ввел в поле ввода. Данный параметр присутствует всегда. ● Отбор – структура, которая описывает отбор так, как его описывает параметр формы Отбор для расширения формы для динамического списка. Данный параметр присутствует всегда. ● Свойство, которое указывает режим выбора групп и элементов (передается только для иерархических списков). ● Кроме этого, в структуре передаются элементы, которые заданы в свойствах элемента формы – Связи параметров выбора и Параметры выбора. Кроме того, в обработчик передается переменная, в которую следует вернуть сформированный список выбора, и параметр СтандартнаяОбработка, который определяет поведение системы после того, как произойдет выход из обработчика. Если разработчик устанавливает параметр СтандартнаяОбработка в значение Ложь, то ему необходимо самому полностью формировать список выбора (учитывая ограничение в 50 отображаемых элементов). Если флажок стандартной обработки установить в значение Истина, то можно предоставить системе возможность сформировать список выбора, но при этом можно модифицировать параметры выбора (добавить дополнительные значения отбора, изменить режим выбора групп и элементов и т. д.). ПРИМЕЧАНИЕ 1. Если система сама формирует список выбора, при формировании списка учитываются ограничения доступа к данным. ПРИМЕЧАНИЕ 2. Примеры, приведенные ниже, не являются законченным. Они предназначены для демонстрации различных механизмов получения списков выбора. Так, следующий код в случае любого текста, вводимого пользователем, будет предоставлять выбор из трех товаров, с кодами 00000002, 00000003 и 00000004. Пример: Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) ДанныеВыбора = Новый СписокЗначений; ДанныеВыбора.Добавить(Справочники.Товары.НайтиПоКоду("00000002")); ДанныеВыбора.Добавить(Справочники.Товары.НайтиПоКоду("00000003")); ДанныеВыбора.Добавить(Справочники.Товары.НайтиПоКоду("00000004")); СтандартнаяОбработка = Ложь; КонецПроцедуры В следующем примере отбор, который сформировало поле ввода, будет расширен установкой дополнительного отбора так, чтобы в список выбора не попали услуги. При этом все формирование списка выбора берет на себя система. Пример: Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Параметры.Отбор.Вставить("Вид", Перечисления.ВидыТоваров.Товар); КонецПроцедуры 183 В качестве последнего примера рассмотрим упрощенный случай реализации отбора полностью средствами встроенного языка. В этом примере будет рассмотрен отбор товаров, название которых начинается со строки, введенной пользователем в поле ввода. Пример: Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Товары.Ссылка как Товар |ИЗ | Справочник.Товары КАК Товары |ГДЕ | Товары.Наименование ПОДОБНО &Наименование"; Запрос.УстановитьПараметр("Наименование", Параметры.СтрокаПоиска + "%"); Результат = Запрос.Выполнить(); ТаблицаРезультатов = Результат.Выгрузить(); МассивТоваров = ТаблицаРезультатов.ВыгрузитьКолонку("Товар"); ДанныеВыбора = Новый СписокЗначений; ДанныеВыбора.ЗагрузитьЗначения(МассивТоваров); СтандартнаяОбработка = Ложь; КонецПроцедуры Также следует обратить внимание на еще один способ формирования списка выбора: передачу в качестве значения элемента списка значений не ссылки на искомый объект (как в примерах выше), а структуру особого содержания. Эта структура состоит из следующих элементов: ● Значение – собственно значение выбираемого элемента. Элемент структуры с таким именем должен быть обязательно. ● ПометкаУдаления – признак, что выбираемое значение помечено на удаление в информационной базе. Элемент структуры с таким именем не является обязательным. ● Предупреждение – строка с текстом предупреждения, которое отобразит «1С:Предприятие» при выборе такого элемента из списка значений. Элемент структуры с таким именем не является обязательным. Если в структуре свойство ПометкаУдаления равно значению Истина и не указано свойство Предупреждение, то система автоматически сформирует текст предупреждения. Если свойство Предупреждение указано, то отображается именно оно. Следует помнить, что текст Предупреждение завершается вопросом Продолжить? и отображается в качестве вопроса с вариантами ответа Да и Нет. Далее будет показана модификация предыдущего примера, в котором для складов с установленным в значение Истина реквизитом НеИспользовать будет сформировано предупреждение Этот склад не должен использоваться. Также можно совмещать в одном списке выбора и значения типа Структура, и простые значения. Пример: Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ДанныеВыбора = Новый СписокЗначений; // Сформируем список с предупреждениями Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Склады.Ссылка, | Склады.Наименование, 184 | Склады.НеИспользовать |ИЗ | Справочник.Склады КАК Склады"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Структура = Новый Структура("Значение", ВыборкаДетальныеЗаписи.Ссылка); // Заполним предупреждение Если ВыборкаДетальныеЗаписи.НеИспользовать Тогда Структура.Вставить("Предупреждение", "Этот склад не должен использоваться!"); КонецЕсли; Элемент = ДанныеВыбора.Добавить(); Элемент.Значение = Структура; Элемент.Представление = ВыборкаДетальныеЗаписи.Наименование; КонецЦикла; КонецПроцедуры ПРИМЕЧАНИЕ. Если представления элементов (в том числе и элементов структуры с именем Значение) не указаны в явном виде, то они будут получены автоматически. 6.3.6.5. Формы Форма – это объект, созданный для ввода или просмотра какой-либо информации, а также для управления различными процессами. С помощью форм программа запрашивает у пользователя ту информацию, которая необходима ей для дальнейшей работы, либо выдает какую-либо информацию пользователю для просмотра и редактирования. В тех случаях, когда необходимо обеспечить функционирование конфигурации одновременно в обычном и управляемом режимах, можно использовать дополнительные формы объектов метаданных. При этом «1С:Предприятие» будет автоматически выбирать для использования ту форму, которая соответствует текущему режиму работы. Рисунок 6.68 – Основные и дополнительные формы Тонкий клиент и веб-клиент оперируют только управляемыми формами. Значит: 185 ● если обе назначенные формы – управляемые, то будет открыта та форма, которая назначена как основная; ● если среди назначенных форм есть только одна управляемая, будет открыта именно она; ● если управляемая форма не назначена, она будет сгенерирована автоматически. Толстый клиент при выборе формы старается выбрать форму, которая максимально соответствует текущему режиму запуска: ● если никакие формы не назначены, то будет сгенерирована: ● в обычном режиме – обычная форма; ● в управляемом режиме – управляемая форма; ● если назначена только одна форма, то именно она и будет открыта; ● если назначены две формы, обычная и управляемая, то будет открыта: ● в обычном режиме – обычная форма; ● в управляемом режиме – управляемая форма. ● если назначены две обычные или две управляемые формы, то будет открыта та форма, которая назначена основной. Двойной комплект форм можно использовать в тех случаях, когда вы переводите вашу конфигурацию из неуправляемого в управляемый режим, либо когда необходимо, например, часть возможностей конфигурации сделать доступными в веб-клиенте (или тонком клиенте). В этом случае можно реализовать необходимые возможности в управляемых формах и указать их в качестве дополнительных форм. Тогда при работе в режиме веб-клиента (или тонкого клиента) будут использоваться нужные формы (управляемые). Однако следует учитывать, что на получение форм по умолчанию в толстом клиенте оказывают влияние свойства конфигурации Использовать управляемые формы в обычном приложении и Использовать обычные формы в управляемом приложении: ● Если свойство конфигурации Использовать управляемые формы в обычном приложении имеет значение Ложь, то в толстом клиенте, в обычном режиме, при получении формы по умолчанию обязательно должна быть получена обычная форма. Если ни основная, ни дополнительная форма не является обычной, то генерируется обычная форма. ● Если свойство конфигурации Использовать обычные формы в управляемом приложении имеет значение Ложь, то в толстом клиенте, в управляемом режиме, при получении формы по умолчанию обязательно должна быть получена управляемая форма. Если ни основная, ни дополнительная форма не является обычной, то генерируется управляемая форма. Если в результате открывается форма, которая автоматически сгенерирована системой и режим запуска клиентского приложения отличается от режима запуска, установленного в свойстве конфигурации Основной режим запуска, то формы объектов и формы наборов записей открываются в режиме Только просмотр. Также в формах списков и формах объектов будут отсутствовать команды Создать на основании, а в формах списков – команда Создать, если для выполнения этих команд системе необходимо автоматически сгенерировать форму, подходящую для текущего режима запуска и режим запуска клиентского приложения отличается от режима запуска, установленного в свойстве конфигурации Основной режим запуска. 6.3.6.6. Команды Для выполнения операций, связанных с конкретным объектом метаданных, существуют команды этого объекта. При этом непараметризованные команды объекта будут доступны в командном интерфейсе тех подсистем, в состав которых входит объект метаданных. Если команда является параметризованной, то она будет доступна в тех 186 формах, которые содержат реквизиты формы (включая подчиненные реквизиты первого уровня основного реквизита формы) того же типа, что и тип параметра команды. Для команд требуется написать процедуру выполнения команды. Для этого служит модуль команды, в котором необходимо реализовать обработчик ОбработкаКоманды(). Данная процедура должна предваряться директивой &НаКлиенте, так как выполнение команды происходит в клиентском приложении. Однако другие процедуры и функции, расположенные в модуле команды, могут предваряться другими директивами, если это необходимо для выполнения команды. Модуль команды может содержать, например, открытие формы отчета с предварительно установленным ему параметром для вывода на печать карточки определенного бухгалтерского счета или открытие формы списка товаров с установленным отбором по виду товара. Если команда, принадлежащая группе Панель навигации, должна открывать одну и ту же форму в разных закладках, следует при получении (или открытии) формы указывать ключ уникальности или ключевой параметр формы. ПРИМЕЧАНИЕ. Если команда расположена в панели навигации основного окна приложения, то повторный выбор этой команды не приведет к ее (команды) повторному выполнению. Это относится и к стандартным командам, и к командам, созданным в конфигурации. 6.3.6.7. Механизм заполнения реквизитов новых объектов Существует возможность заполнения реквизитов новых объектов при интерактивном создании (кроме копирования), при вводе на основании, при использовании методов ОткрытьФорму()/ПолучитьФорму() или при явном вызове метода Заполнить(). Это заполнение может выполняться: ● значениями отбора при вводе из списка; ● конкретными значениями, указанными в конфигурации в свойствах реквизитов (значения заполнения); ● значениями, которые разработчик указал в обработчике события ОбработкаЗаполнения(). Механизм обработки заполнения реализован для следующих объектов: ● планы обмена, ● справочники, ● документы, ● планы видов характеристик, ● планы счетов, ● планы видов расчета, ● наборы записей регистров сведений, ● бизнес-процессы, ● задачи. Для получения данных заполнения в обработчике ОбработкаЗаполнения() существует параметр ДанныеЗаполнения. В зависимости от того, каким образом вызван обработчик, значение параметра ДанныеЗаполнения может принимать разные значения: ● Ввод на основании – в качестве значения параметра передается ссылка на объектоснование. При этом значение параметра ДанныеЗаполнения будет являться ссылкой на объект-основание базы данных. ● Ввод из списка с установленным отбором – в качестве значения параметра передается структура, элементами которой становятся используемые элементы отбора с установленным видом сравнения Равно или В списке (при этом в списке находится единственное значение). При создании нового документа из формы журнала документов элементы отбора по графам журнала предварительно преобразуются таким 187 образом, чтобы в качестве имени элемента структуры ДанныеЗаполнения выступало имя реквизита документа, а не имя графы журнала. ● Ввод нового объекта или записи без использования отбора – значение параметра равно Неопределено. ● Ввод нового объекта или записи с помощью глобальной команды – значение параметра равно Неопределено. ● Программное выполнение методов ОткрытьФорму()/ПолучитьФорму() – в случае, если исполнение методов ОткрытьФорму()/ПолучитьФорму() приводит к созданию формы нового объекта, в качестве значения параметра обработчика ДанныеЗаполнения будет передано значение (типа Структура) параметра формы ЗначенияЗаполнения. Если параметр ЗначенияЗаполнения не задан в параметрах формы, то значение параметра обработчика будет равно Неопределено. ● Программный вызов метода объекта Заполнить() – в качестве значения параметра передается та информация, которая передана в качестве параметра метода Заполнить(). ПРИМЕЧАНИЕ. Операция интерактивного создания нового объекта с помощью копирования обрабатывается в обработчике ПриКопировании() соответствующего объекта. На заполнение реквизитов из данных заполнения оказывает влияние свойство Заполнять из данных заполнения реквизита объекта метаданных. Если это свойство имеет значение Истина, то реквизиты будут заполняться системой из данных заполнения автоматически. Если свойство имеет значение Ложь или в данных заполнения нет необходимого значения, то система будет пытаться заполнить реквизит из свойства Значение заполнения. ВНИМАНИЕ! Разработчик может управлять заполнением стандартных реквизитов объектов наравне с самостоятельно созданными реквизитами. Например, можно запретить заполнение стандартного реквизита Родитель, и тогда он не будет автоматически заполняться текущей группой. Если после исполнения обработчика ОбработкаЗаполнения() параметр СтандартнаяОбработка равен значению Истина, то система автоматически заполнит те реквизиты (включая стандартные), для которых в метаданных установлены свойства Заполнять из данных заполнения или Значение заполнения и которые не заполнены в обработчике (значение равно значению по умолчанию для типа реквизита). Свойство Заполнять из данных заполнения автоматически устанавливается системой для некоторых стандартных реквизитов ряда объектов: ● для справочников – реквизиты Родитель и Владелец; ● для планов счетов, планов видов характеристик и планов видов расчета – реквизит Родитель; ● для регистра сведений – ведущие измерения; ● для стандартных реквизитов остальных объектов данное свойство автоматически не устанавливается. При этом данные для стандартного заполнения берутся системой из одноименных реквизитов данных, передающихся в параметре ДанныеЗаполнения. Данные заполнения передаются в создаваемую форму объекта в качестве стандартного параметра формы ЗначенияЗаполнения и передаются из этого параметра расширением формы для заполнения объекту. Также имеется возможность программно задать параметр формы ЗначенияЗаполнения нового объекта, при этом будут выполнены все действия, которые исполняются при интерактивном создании объекта. ПРИМЕЧАНИЕ. При программном создании нового объекта обработка заполнения системой автоматически не вызывается. Для вызова обработчика заполнения существует метод Заполнить(). 188 Значение заполнения – это свойство реквизита объекта метаданных, позволяющее задать значение по умолчанию, которое может принимать реквизит при интерактивном создании объекта. ВНИМАНИЕ! Заполнение реквизитов из свойства Значение заполнения происходит после вызова обработчика ОбработкаЗаполнения(). Реквизит будет заполнен в том случае, если его значение не заполнено ранее (в обработчике ОбработкаЗаполнения() или механизмом стандартного заполнения). Тип значения заполнения совпадает с типом реквизита. При этом в качестве значения этого свойства можно указывать значения примитивных типов или предопределенные данные. 6.3.6.8. Проверка заполнения реквизитов В информационной системе данные могут вноситься множеством различных способов, и часто они могут быть некорректны. Поэтому при разработке решения бывает необходимо прилагать много усилий на реализацию проверки правильности вводимых данных и уведомления пользователя о некорректности введенной информации. Механизм проверки заполнения позволяет существенно упростить процесс разработки конфигураций. Платформа поддерживает автоматическую проверку указанных реквизитов прикладных объектов и форм, а также позволяет выполнить процесс проверки в модуле. Платформа выполняет автоматическую проверку заполнения: ● констант; ● справочников, документов, отчетов, обработок, планов видов характеристик, планов счетов, планов видов расчета, бизнес-процессов, задач: ● реквизитов и стандартных реквизитов, ● табличных частей, ● реквизитов и стандартных реквизитов табличных частей; ● наборов записей регистров бухгалтерии, регистра сведений, регистра накопления, регистра расчета, перерасчетов, последовательностей: ● измерений, ● ресурсов, ● реквизитов и стандартных реквизитов; ● реквизитов форм; ● реквизитов форм отчетов; ● реквизитов форм обработок. ПРИМЕЧАНИЕ. Проверка заполнения реквизитов выполняется аналогично функции ЗначениеЗаполнено(). Проверка заполнения табличных частей подразумевает, что табличная часть считается заполненной, когда в ней присутствует хотя бы одна строка. Проверка заполнения может быть вызвана двумя способами: ● вызовом метода ПроверитьЗаполнения() (у объекта или формы); ● автоматически. ВНИМАНИЕ! Если свойство конфигурации Режим совместимости установлено в значение Версия 8.1, то автоматическая проверка заполнения не работает. 6.3.6.8.1. Установки по умолчанию По умолчанию свойство устанавливается в значение Выдавать ошибку для следующих стандартных реквизитов: ● ПланОбмена – Наименование; ● Справочник – Владелец, Наименование; ● Документ – Дата; ● ПланВидовХарактеристик – Наименование; 189 ● ПланСчетов – Код, Наименование; ● ПланСчетов.ВидыСубконто – ВидСубконто; ● ПланВидовРасчета – Наименование; ● ПланВидовРасчета.ВедущиеВидыРасчета – ВидРасчета; ● ПланВидовРасчета.БазовыеВидыРасчета – ВидРасчета; ● ПланВидовРасчета.ВытесняющиеВидыРасчета – ВидРасчета; ● РегистрСведений – Период; ● РегистрНакопления – Период; ● РегистрБухгалтерии – Период; ● РегистрРасчета – ПериодРегистрации, ВидРасчета, ПериодДействияНачало, ПериодДействияКонец; ● БизнесПроцесс – Дата; ● Задача – Наименование. 6.3.6.8.2. Порядок работы Автоматическая проверка заполнения вызывается расширением формы перед интерактивной записью всех объектов, кроме документов, бизнес-процессов, отчетов и обработок. Для этих объектов определено следующее поведение: ● для документов: ● проверка заполнения вызывается расширением формы перед проведением, если свойство Проведение установлено в значение Разрешить; ● проверка заполнения вызывается расширением формы перед записью, если свойство Проведение установлено в значение Запретить; ● для бизнес-процессов проверка заполнения вызывается расширением формы перед стартом; ● для отчетов проверка заполнения вызывается расширением формы при нажатии кнопки Сформировать; ● для обработок проверка заполнения вызывается расширением формы в случаях, если нажаты кнопки, связанные со стандартными командами формы OK, Да, Повторить, Пропустить. Если реквизит является основным реквизитом формы следующих типов: СправочникОбъект, ДокументОбъект, ОтчетОбъект, ПланВидовХарактеристикОбъект, ПланСчетовОбъект, ПланВидовРасчетовОбъект, БизнесПроцессОбъект, ЗадачаОбъект, то для значения такого реквизита также будет вызвана проверка заполнения. Для вызова проверки заполнения системой необходимо, чтобы у формы (с которой происходит работа) было установлено свойство Проверять заполнение автоматически. В этом случае вначале будет вызван обработчик ОбработкаПроверкиЗаполненияНаСервере() формы, а затем обработчик ОбработкаПроверкиЗаполнения() модуля объекта. ВНИМАНИЕ! Если у формы свойство Проверять заполнение автоматически установлено в значение Истина при выполнении стандартных команд Записать (Провести для документов и т. д.), а также стандартных команд формы OK, Да, Повторить, Пропустить, будет вызван метод ПроверитьЗаполнение(). В противном случае проверка заполнения не вызывается ни для формы, ни для объекта. Процесс проверки заполнения происходит следующим образом: ● Формируется список имен реквизитов формы, для которых возможна проверка заполнения и для которых свойство ПроверкаЗаполнения установлено в значение ВыдаватьОшибку. В этот список не будут включены имена реквизитов, тип которых не поддерживает проверку заполнения (например, СправочникОбъект), но будет включено имя основного реквизита формы. ● Вызывается обработчик события формы ОбработкаПроверкиЗаполненияНаСервере, в котором разработчик может описать свой алгоритм проверки заполнения или изменить 190 состав проверяемых реквизитов. В обработчик будет передан сформированный список имен реквизитов. Если в обработчике необходимо добавить к списку какие-либо реквизиты, это можно сделать только для реквизитов вышеперечисленных типов (для которых возможна проверка заполнения в форме) и основного реквизита. Добавление в список имен реквизитов объектного типа (например, СправочникОбъект) вызовет исключение при дальнейшей автоматической проверке. Добавление в список имени несуществующего реквизита вызовет исключение при дальнейшей автоматической проверке. ● После завершения работы обработчика события механизм проверки заполнения получает обратно список имен, проверяемых реквизитом (который, возможно, был изменен в обработчике). Система анализирует список реквизитов и проверяет заполненность каждого реквизита. Если реквизит является основным реквизитом объектного типа (например, Объект типа СправочникОбъект), будет вызвана проверка заполнения самого объекта. Если реквизит является реквизитом объектного типа, но не основным, будет вызвано исключение. Разработчик имеет возможность влиять на процесс проверки путем определения в модуле объекта, набора записей и в модуле формы обработчика события ОбработкаПроверкиЗаполнения. Определив обработчик события, разработчик получает полный контроль над проверкой заполнения. В параметре ПроверяемыеРеквизиты обработчик получает массив реквизитов, для которых в режиме Конфигуратор указано, что они должны проверяться. Разработчик может произвольно модифицировать этот массив: ● удалять те реквизиты, проверку заполнения которых он реализует сам или считает, что их не нужно проверять в данный момент; ● добавлять необходимые реквизиты, для которых должна выполниться проверка заполнения. В случае, если разработчика не устраивает стандартная процедура проверки, он может написать алгоритм проверки сам и, используя объект СообщениеПользователю, сообщить об имеющихся проблемах пользователю. Если в процессе проверки разработчик вывел пользователю сообщения об ошибках, необходимо установить параметр Отказ в значение Истина, чтобы уведомить платформу о том, что текущее действие не может быть завершено. Параметр события ПроверяемыеРеквизиты содержит имена атрибутов в следующем формате: ● для реквизитов и констант – ИмяРеквизита, например, Поставщик; ● для табличных частей – ИмяТабличнойЧасти, например, Товары; ● для реквизитов табличных частей – ИмяТабличнойЧасти.ИмяРеквизита, например, Товары.Номенклатура; ● для реквизитов форм – ИмяРеквизита, например, ДокументОбъект. Для реквизитов, входящих в состав функциональных опций без параметров, значение опции учитывается при проверке заполнения. Если функциональная опция включена, то реквизит будет включен в список проверяемых реквизитов; если опция выключена, реквизит не будет включен в список проверяемых реквизитов. Это значит, что отключенное поле не будет передано через параметры ПроверяемыеРеквизиты в ОбработкаПроверкиЗаполнения. Реквизиты, входящие в состав функциональной опции с параметрами, всегда включаются в список проверяемых реквизитов (параметр ПроверяемыеРеквизиты). Удаление реквизита из списка проверяемых реквизитов в таких случаях необходимо выполнять в обработчике ОбработкаПроверкиЗаполнения. Для этого следует получить значение функциональной опции, указав в качестве параметров необходимые данные объекта. 191 6.3.6.8.3. Правила отображения отметки незаполненного На отображение отметки незаполненного влияют следующие свойства элементов конфигурации: ● свойство Проверка заполнения реквизита или стандартного реквизита объекта метаданных; ● свойство Проверка заполнения реквизита формы; ● свойство Автоотметка незаполненного элемента формы; ● свойство ОтметкаНезаполненного элемента формы (доступно только для программного изменения). Свойство элемента формы Автоотметка незаполненного может быть установлено в значение: ● Авто – отметка будет отображаться, если у реквизита формы или реквизита (стандартного реквизита) объекта метаданных свойство Проверка заполнения установлено в значение Выдавать ошибку и реквизит, связанный с элементом формы, содержит пустое значение. ● Да – отметка будет отображаться для незаполненного элемента вне зависимости от того, в каком состоянии находится свойство Проверка заполнения. ● Нет – отметка не будет отображаться для незаполненного элемента вне зависимости от того, в каком состоянии находится свойство Проверка заполнения. При начале интерактивного изменения поля ввода отметка незаполненного перестает отображаться, при этом значение свойства ОтметкаНезаполненного не изменяется. Отображение отметки восстанавливается (если это необходимо) после того, как в поле ввода завершено интерактивное редактирование или установлено значение. При этом свойство ОтметкаНезаполненного может быть изменено системой в том случае, если свойство АвтоОтметкаНезаполненного установлено в значение Истина: ● если значение в поле не заполнено, то свойство ОтметкаНезаполненного будет установлено в значение Истина; ● если в поле значение заполнено, то свойство ОтметкаНезаполненного будет установлено в значение Ложь. ПРИМЕЧАНИЕ. Если свойство ОтметкаНезаполненного установлено у таблицы, то для таблицы, в которой нет строк, будет подсвечена первая строка, а для заполненной таблицы – все строки. Кроме того, отметка незаполненного также будет отображена, если в окне сообщений есть сообщение, связанное с конкретным полем формы, вне зависимости от установленных свойств элемента формы и связанных с ним реквизитов. После очистки окна сообщений отметка незаполненного снимается у тех элементов формы, значение свойства ОтметкаНезаполненного которых равно значению Ложь. 6.3.6.9. Индексирование реквизитов объектов Большинство прикладных объектов конфигурации имеют в составе подчиненных объектов группу Реквизиты. В этой группе указываются дополнительные характеристики объектов. В режиме 1С:Предприятие часто требуется осуществлять отбор данных по значению какого-либо реквизита или сортировать списки данных по реквизитам. Средства «1С:Предприятия» позволяют выполнить подобную задачу, однако если данных достаточно много, такая задача может выполняться долго. Чтобы ускорить эту работу, следует реквизитам, по которым будет выполняться отбор или сортировка, устанавливать свойство Индексировать. Если свойство установлено (выбрано значение Индексировать или Индексировать с доп. упорядочиванием), то подобные задачи будут выполняться эффективнее. Для примитивных типов реквизитов указание индексирования предоставляет пользователям средство сортировки списка по щелчку мыши в области заголовка колонки. 192 Наряду с сортировкой по реквизиту или отбором данных по значению какого-либо реквизита часто требуется, чтобы в результирующем списке данные были дополнительно отсортированы по основному представлению (наименованию или коду), т. е. в пределах одного значения реквизита записи были отсортированы по представлению. Добиться правильного результата можно, если выбрано значение индексирования Индексировать, а в условиях сортировки списка указаны реквизит и представление. Если возникает необходимость минимизации времени таких отборов или сортировки, то для реквизита следует выбрать значение индексирования Индексировать с доп. упорядочиванием (если выбор такого значения возможен). ВНИМАНИЕ! Механизм дополнительного упорядочивания будет эффективно использоваться только в том случае, когда в режиме 1С:Предприятие в условиях сортировки списка указан определенный порядок сортировки: сначала по реквизиту, а затем по представлению. Если такие условия сортировки не задаются, то использование значения Индексировать с доп. упорядочиванием не имеет смысла, т. к. оно будет эквивалентно обычному индексированию, однако размер индекса при этом будет больше. Индексирование с дополнительным упорядочиванием используется для реквизитов справочников, документов, планов видов характеристик, планов счетов, планов видов расчетов. Для реквизитов регистров допускается использование обычного индексирования. 6.3.6.10. Права Права доступа к объектам конфигурации можно редактировать как с помощью редактора прав доступа ролей, так и с помощью окна редактирования объекта. В окне редактирования объекта выполняется настройка прав доступа для данного объекта во всех ролях, которые существуют в системе. Имеется возможность задавать права доступа: ● для собственно объектов метаданных, ● табличных частей, ● реквизитов объектов. 6.3.6.11. Быстрый выбор За способ выбора объектов при заполнении полей ввода отвечают свойства Способ выбора и Быстрый выбор. Свойство Быстрый выбор отвечает за режим выбора по умолчанию. Свойство доступно только в том случае, если свойство Способ выбора имеет значение Обоими способами. Покажем работу свойств Быстрый выбор на примере. Допустим, у нас есть справочник Склады. У него свойство Способ выбора равно Обоими способами, а также установлено свойство Быстрый выбор. В этом случае по умолчанию выбор из значений справочника Склады во всей конфигурации будет осуществляться в режиме быстрого выбора. Если отключить свойство Быстрый выбор, то выбор по умолчанию станет Из формы. Также имеется возможность явного переопределения режима выбора для реквизита объекта метаданных и/или элемента формы. Для этого достаточно изменить значение Авто свойства Быстрый выбор на значение Использовать – для разрешения быстрого выбора или Не использовать – для запрещения быстрого выбора. По умолчанию свойство Быстрый выбор реквизита объекта метаданных и элемента формы установлено в значение Авто. Таким образом, получается трехуровневая схема управления режимом выбора: 1. Вначале платформа анализирует свойство Быстрый выбор элемента формы. 2. Если свойство равно Авто, то оно анализируется у реквизита объекта. 193 3. В случае равенства Авто выполняется анализ свойств Способ выбора и Быстрый выбор прикладного объекта, соответствующего типу реквизита. Если на каком-то из первых двух уровней (элемент формы и реквизит объекта) значение свойства Быстрый выбор отлично от Авто, анализ прекращается и выполняется выбор в определенном режиме. ПРИМЕЧАНИЕ. Если свойство Способ выбора прикладного объекта равно Из формы или Быстрый выбор (но только не Обоими способами), то установка свойств Быстрый выбор реквизита и элемента формы никак не влияет на способ выбора. 6.3.6.12. Связи параметров выбора Связи параметров выбора – данное свойство позволяет указать список реквизитов, которые будут поставлять значения, используемые при выборе значения реквизита, при открытии формы выбора, при отображении списка быстрого выбора и при выполнении ввода по строке. В качестве примера можно привести выбор договора с контрагентом. Вначале осуществляется выбор контрагента, а затем выполняется выбор договора только из списка договоров выбранного контрагента. Причем отбор автоматически изменяется при смене контрагента. Для того чтобы ограничить выбор, реквизиту в свойстве Связи параметров выбора устанавливается соответствие имени реквизита, по которому будет выполняться фильтрация выбираемых значений, и реквизита, из которого будет браться значение фильтрации. Рисунок 6.69 – Связи параметров выбора Значения, указанные в данном свойстве, будут переданы в открываемую форму через структуру Параметры. При этом значение колонки Имя будет соответствовать ключу элемента структуры, а значение реквизита, указанное в колонке Реквизит, – значению элемента структуры. Если в колонке Имя указано значение вида Отбор.Владелец, то будет создан параметр формы Отбор (типа Структура). В этой 194 структуре будет создан элемент с ключом Код и значением, полученным из реквизита, указанного в колонке Реквизит (в нашем примере – Поставщик). Если имя у какого-либо элемента свойства Связи параметров выбора совпадает с именем какого-либо элемента свойства Параметры выбора, то приоритет отдается элементу из свойства Связи параметров выбора в том случае, если значение поля, указанного в элементе Связи параметров выбора, переданное в функцию ЗначениеЗаполнено(), возвращает Истина. При этом элемент из свойства Параметры выбора игнорируется. Также в окне редактирования связей параметров выбора можно задать режим очистки поля при изменении полей связи. Если значение свойства Режим изменения связанного значения равно Очищать, то поле будет очищено при интерактивном изменении значения связи (изменением считается также повторный выбор значения, ранее находившегося в поле) до наступления события ПриИзменении. В противном случае (значение свойства равно Не изменять) поле не будет очищено. Очистка происходит вне зависимости от реального изменения значения в элементе связи и выполняется до вызова обработчика события ПриИзменении. Если поле отображает данные таблицы (колонка таблицы или отдельное поле, связанное с текущими данными), то очистка такого поля производится, если источником данных для таблицы формы является ДанныеФормаКоллекция или ДанныеФормыСтруктураСКоллекцией. Если реквизит, который нужно очистить, связан с табличными данными, а реквизит связи не является табличными данными, то очищаются значения во всех строках таблицы, где расположен реквизит, для которого выполнена настройка связей параметров выбора. Реквизит не может быть очищен, если он связан с колонкой реквизита типа ДинамическийСписок. Для стандартного реквизита Родитель подчиненного справочника возможна ситуация, когда свойство Связи параметров выбора будет изменено системой автоматически. Это изменение происходит в следующих случаях: ● когда у справочника изменяется состояние подчиненности; ● когда у справочника изменяется значение свойства Иерархический справочник. Это изменение происходит следующим образом: ● если справочник является подчиненным и иерархическим, то для реквизита Родитель в свойство Связи параметров выбора добавляется параметр Имя: Отбор.Владелец – Реквизит: Владелец; ● в противном случае параметр Имя: Отбор.Владелец – Реквизит: Владелец удаляется из списка параметров свойства Связи параметров выбора стандартного реквизита Родитель. Рассмотрим пример: на форме есть поле Покупатель и поле РасчетныйСчетПокупателя. Для поля РасчетныйСчетПокупателя свойство СвязиПараметровВыбора установлено в значение Объект.Покупатель, которое будет устанавливаться в поле отбора Владелец. 195 Рисунок 6.70 – Очистка связанных элементов формы Тогда при интерактивном изменении значения поля Покупатель будет происходить автоматическая очистка значения поля РасчетныйСчетПокупателя. 6.3.6.13. Параметры выбора Параметры выбора – данное свойство позволяет указать значения параметров, которые будут применяться при выборе значения реквизита. Параметры выбора будут выполняться при открытии формы выбора, при отображении списка быстрого выбора и при выполнении ввода по строке. Например, необходимо ограничить выбор только теми товарами, у которых реквизит Вид равен значению Перечисление.ВидыТоваров.Услуга. Для конкретного значения отбора можно указать список значений. Для этого при редактировании колонки Значение следует выбрать тип Фиксированный массив. 196 Рисунок 6.71 – Параметры выбора Значения, указанные в данном свойстве, будут переданы в открываемую форму через структуру Параметры. При этом значение колонки Имя будет соответствовать ключу элемента структуры, а колонка Значение – значению элемента структуры. Если в колонке Имя указано значение вида Отбор.Код, то будет создан параметр формы Отбор (типа Структура). В этой структуре будет создан элемент с ключом Код и значением Значение. Если имя у какого-либо параметра свойства Связи параметров выбора совпадает с именем какого-либо параметра свойства Параметры выбора, то приоритет отдается элементу из свойства Связи параметров выбора (параметр из свойства Параметры выбора игнорируется). Приоритет будет отдан в том случае, если значение поля, указанного в параметре Реквизит свойства Связи параметров выбора, является заполненным (функция ЗначениеЗаполнено() для этого значения возвращает значение Истина). ПРИМЕЧАНИЕ. Значения, указанные в свойстве реквизита Параметры выбора, также используются динамическим списком и системой компоновки данных. При выборе значения субконто в ячейке таблицы, связанной с набором записей регистра бухгалтерии, автоматически устанавливается параметр выбора для поля Владелец, только если данный вид субконто имеет тип справочника дополнительных значений субконто. Значением параметра выбора является соответствующий вид субконто. 6.3.6.14. Прочее Свойство Использовать стандартные команды определяет возможность включения стандартных команд (например, команды открытия списка справочника) этого объекта в командный интерфейс. Если свойство имеет значение Ложь, то стандартные команды не 197 будут отображаться системой, и включить объект в интерфейс можно только с помощью команды, созданной в конфигураторе. Свойство Форма выбора устанавливает форму, которая будет применяться для выбора значения реквизита. Используется для реквизитов, тип которых образован объектом метаданных, имеющим понятие форма. Например, у справочника Товары есть несколько форм выбора, при этом для стандартного реквизита Родитель необходимо использовать особую форму. Для реализации такого поведения нужно указать эту особую форму в свойстве Форма выбора стандартного реквизита Родитель. Формат – для типов Число, Булево, Дата позволяет задать формат, с помощью которого при выводе будут отображаться данные реквизита. Формат редактирования – свойство позволяет задать формат редактирования данных типов Число, Булево, Дата. Связь по типу – устанавливает связь с реквизитом, ограничивая тип вводимых значений для поля ввода. Настройка связи по типу имеет смысл для реквизитов с составным типом данных, логически связанных с другим реквизитом типа ПланВидовХарактеристик.Ссылка, в том числе для связи реквизита, содержащего субконто с реквизитом, который содержит значение типа Ссылка на план счетов. Элемент связи по типу содержит номер вида субконто для случая, если реквизит, с которым выбрана связь по типу, имеет значение типа Ссылка на план счетов. Например, есть два реквизита – ВидХарактеристики и Характеристика. У реквизита ВидХарактеристики – тип ПланВидовХарактеристикВидыХарактеристикТоваров.Ссылка; у реквизита Характеристика – тип Характеристика.ВидыХарактеристикТоваров. В свойствах реквизита Характеристика можно установить свойство Связь по типу – ВидХарактеристики. Тогда тип выбираемого значения будет определяться типом, который задан для выбранного значения плана видов характеристик. 6.3.7. Константы В системе «1С:Предприятие» константы предназначены для хранения постоянной или условно-постоянной информации. Такая информация либо совсем не изменяется в процессе деятельности предприятия, либо изменяется достаточно редко. Наиболее простой пример подобной информации – название организации, которое, как правило, не меняется. Основная причина использования констант заключается в том, что в них один раз заносится какая-либо информация, которая затем может использоваться при формировании документов, в расчетах, при построении отчетных форм. Значение константы время от времени может редактироваться. Рассмотрим такой пример. Наиболее часто на документах предприятия встречается подпись директора и главного бухгалтера. Естественно, что эти должностные лица должны самостоятельно ставить подписи. Но помимо самой подписи в документах требуется ее расшифровка – фамилия подписавшего документ. Конечно, можно ввести фамилии директора и главного бухгалтера непосредственно в формы документов. Но если какая-либо из фамилий изменится, то придется вновь редактировать все бланки документов и исправлять фамилии. Поэтому гораздо удобнее создать в конфигурации две константы – для хранения фамилий директора и главного бухгалтера, ввести эти фамилии в константы один раз, а в многочисленных бланках документов использовать имена констант для получения их значений. При смене директора или главного бухгалтера достаточно внести изменения только в константы – ввести в них новые фамилии, и все изменения автоматически будут отражены в тех местах, где эти константы используются. ВНИМАНИЕ! При изменении значения константы прежнее значение теряется. Для получения прежних значений данных вместо константы нужно использовать регистр сведений без измерений. 198 Конфигуратор системы «1С:Предприятие» позволяет создавать практически неограниченное количество констант для хранения любой нужной информации. 6.3.7.1. Свойства константы Для работы с константами предназначена ветвь Константы дерева конфигурации. Свойства константы редактируются в палитре свойств. Необходимо обратить внимание, что константа является типизированным объектом конфигурации. Тип – указывается тип константы. Тип константы может быть любым из стандартных типов конфигурации (Дата, Число, СправочникСсылка, ДокументСсылка и т. д.) или составным (состоящим из набора различных типов). В зависимости от выбранного типа палитра свойств может содержать дополнительные свойства, уточняющие выбранный тип. Если форму редактирования константы необходимо показать в командном интерфейсе, то следует установить свойство Использовать стандартные команды. В этом случае команда открытия редактора константы будет отображена в тех подсистемах, к которым отнесена константа. Форма редактирования константы задается с помощью свойства Основная форма. Формы для ввода констант создаются в ветви Общие формы. 6.3.8. Справочники При заполнении бланка какого-либо документа часто требуется указывать информацию, выбирая значение из заранее заданного списка. Возьмем в качестве примера анкету, которую требуется заполнять при поступлении на работу. При заполнении графы Место рождения необходимо указать населенный пункт. Хотя общее количество населенных пунктов достаточно большое, список всех населенных пунктов все-таки ограничен. Фактически место рождения можно указать, выбрав из подобного списка нужный населенный пункт. Такой список и представляет собой справочник. Таким образом, можно сказать, что справочник является списком возможных значений того или иного реквизита документа (в широком смысле слова «документ»). Справочники используются в тех случаях, когда необходимо исключить неоднозначный ввод информации. Например, для того, чтобы покупатель, продавец, кладовщик, директор понимали, о каком товаре идет речь, каждый должен называть его одинаково. И в этом случае необходим справочник. Обычно в торговом предприятии он имеет вид прайс-листа, а если такой справочник хранится в компьютере, то в него заносят всю возможную номенклатуру товаров, с которыми работает торговая фирма. Система «1С:Предприятие» позволяет вести практически неограниченное количество необходимых справочников. Каждый справочник представляет собой список однородных экземпляров объектов: сотрудников, организаций, товаров и т. д. Каждый такой экземпляр объекта будем называть элементом справочника. Следует иметь в виду, что в конфигурации создается структура справочника, а собственно его содержимое – элементы справочника – вводится пользователем при работе с программой. В процессе конфигурирования описывается структура информации, которая будет храниться в справочнике, разрабатывается экранное и, если необходимо, печатное представление справочника, задаются различные особенности его «поведения». Как правило, справочники имеют предопределенные реквизиты код и наименование, при этом код может иметь тип Число или Строка. Система «1С:Предприятие» предоставляет широкие возможности по работе с кодами элементов справочника: автоматическое присвоение кодов, автоматический контроль уникальности кода и другие. 199 Справочник в системе «1С:Предприятие» может быть иерархическим. Существуют два вида иерархии: иерархия групп и элементов и иерархия элементов. В первом случае все данные справочника будут разделяться на два вида: «просто» элементы справочника и группы справочника. Группы – это логическое объединение элементов справочника. Примером иерархического справочника может служить справочник товаров, где группами являются виды товаров («Сантехника», «Бытовая химия» и т. д.), а элементами – конкретные товары («Смеситель», «Зеркало», «Стиральный порошок»). Использование иерархических справочников позволяет организовать ввод информации в справочник с нужной степенью детализации. Элементы и группы элементов в иерархическом справочнике можно переносить из одной группы в другую. Для справочников с видом иерархии Иерархия элементов группы как самостоятельный вид отсутствуют. Их роль выполняют сами элементы. Отличительной особенностью таких справочников является функциональность всех элементов. Примером справочника данного вида может служить справочник подразделений. Каждое подразделение описывается одинаковым набором реквизитов и при этом логически может содержать другое подразделение или входить в него. Для иерархических справочников конфигуратор позволяет установить ограничение числа уровней справочников, или допускается неограниченное число уровней вложенности. Помимо кода и наименования для справочника можно создать набор реквизитов, позволяющих хранить дополнительную информацию об элементе справочника. Например, справочник Контрагенты может содержать такие сведения, как полное наименование контрагента, его ИНН, фамилии директора и главного бухгалтера и другую информацию. Если объект предметной области, которой соответствует справочник, имеет не только такие «простые» свойства, например, полное наименование или ИНН, но и составные (списочные) свойства, справочнику может быть создан набор табличных частей. Например, в справочнике Контрагенты может быть создана табличная часть для списка телефонных номеров контрагента. Имена реквизитов справочника не должны совпадать ни с одним именем реквизита из какой-либо табличной части. Для работы с информацией, хранящейся в справочнике, можно создать экранные формы. Могут быть созданы отдельные формы для просмотра списка элементов справочника, для редактирования элемента справочника, формы для выбора из справочника нужного элемента. Конфигуратор позволяет создать несколько форм одного типа, например, формы для выбора из справочника нужного элемента, и использовать разные формы в разных случаях. Рекомендуется создавать разные формы для отображения списка элементов и для выбора элементов справочника. 6.3.8.1. Свойства справочника Для работы со справочниками предназначена ветвь Справочники дерева конфигурации. При создании нового справочника открывается окно редактирования объекта. Иерархический справочник – если свойство установлено, то справочник имеет иерархическую структуру и становится доступным свойство Вид иерархии и Ограничение количества уровней иерархии. Вид иерархии – определяется, какой вид иерархии используется в данном справочнике. При выборе вида Иерархия групп и элементов для справочника определяются два вида элементов: группы и элементы. Группы предназначены только для 200 объединения других групп и элементов справочника. Обычно для описания группы достаточно кода, наименования и родителя (ссылка на верхний уровень). Элемент справочника помимо этих реквизитов может содержать другие реквизиты, указанные на закладке Данные. Для справочников с этим видом иерархии можно создать формы группы и формы элемента. При выборе вида Иерархия элементов все элементы справочника равнозначны. Примером справочников такого вида могут служить справочники подразделений и статьи затрат. Размещать группы сверху – свойство становится доступным, если выбрано значение Иерархия групп и элементов. Если свойство Размещать группы сверху установлено, то при отображении справочника в виде иерархического списка группы окажутся в верхних строчках списка, а элементы справочника будут располагаться ниже. Если это свойство не установлено, расположение групп и элементов будет подчиняться установленным правилам сортировки (по коду, наименованию и пр.). Например, при создании новой группы с кодом большим, чем у всех имеющихся групп и элементов (при сортировке по коду), в первом варианте эта подгруппа окажется нижней среди групп, но выше остальных элементов справочника; во втором варианте она займет самую нижнюю строчку. Следует отметить, что установка или снятие свойства Размещать группы сверху не влияет на показ справочника в виде неиерархического списка. Количество уровней иерархии – свойство становится доступным, если установлено свойство Ограничение количества уровней иерархии. Справочники в системе «1С:Предприятие» могут иметь более одного уровня вложенности. Если свойство Ограничение количества уровней иерархии не установлено, то максимальное количество уровней вложенности справочника неограниченно. Владельцы – это свойство требует подробного объяснения. Любой справочник может использоваться как сам по себе, так и быть подчиненным какому-либо другому справочнику или справочникам. Например, справочник договоров может использоваться отдельно, а может быть связан со справочником организаций. Чтобы подчинить справочник другому, уже существующему в системе, в поле Список владельцев справочника следует нажать кнопку редактирования и в открывшемся окне выбора объекта отметить те справочники, которые являются владельцами данного справочника. Каждый такой справочник в системе «1С:Предприятие» называется владельцем, а сам справочник – подчиненным. В отличие от многоуровневого справочника, в котором все элементы имеют одинаковую структуру, использование механизма подчиненных справочников позволяет связать элементы разной структуры. В этом случае каждый элемент подчиненного справочника будет логически связан с одним из элементов справочника-владельца. Для справочников, которые имеют нескольких владельцев, у разных элементов могут быть владельцы разного типа, но у одного элемента может быть только один владелец. Использование подчинения – позволяет управлять ограничением, накладываемым на владельцев. Могут использоваться только элементы, только группы или и группы, и элементы. Если у справочника несколько владельцев, то ограничение применяется ко всем владельцам. Длина кода – свойство устанавливает максимальную длину кода элемента справочника. Конфигуратор позволяет установить длину кода равной 0. Это может понадобиться в тех случаях, когда код элемента справочника не используется. При назначении этого свойства желательно реально определить возможную длину кода. Однако следует иметь в виду, что в процессе эксплуатации конфигурации, если потребуется, длину кода можно увеличить. ПРИМЕЧАНИЕ. Максимальная длина кода равна 50. 201 Длина наименования – в свойстве устанавливается максимально возможная длина наименования элемента справочника. Конфигуратор позволяет установить длину наименования равной 0. Это означает, что у справочника не будет наименования. ПРИМЕЧАНИЕ. Максимальная длина наименования равна 150. Серии кодов – свойство позволяет установить диапазон проверки кода на уникальность и автоматическое присвоение кодов. Если выбрана установка Во всем справочнике, то при автоматическом присвоении кода или при вводе кода пользователем вручную его уникальность будет проверяться среди всех элементов справочника. Установка В пределах подчинения справедлива только для иерархических и подчиненных справочников. В этом случае уникальность кода будет проверяться системой только в пределах той группы и того элемента справочника-владельца, в которую вводится новый элемент справочника или редактируется уже существующий элемент. При установке серии кодов В пределах подчинения нормальной является ситуация, когда находящиеся в разных группах элементы справочника имеют одинаковые коды. Это следует учитывать, если требуется переносить элементы многоуровневого справочника из одной группы в другую. При совпадении кода переносимого элемента с кодом уже существующего элемента в группе будет выдано предупреждение, и элемент не будет перенесен. При установке серии кодов В пределах подчинения владельцу в иерархических подчиненных справочниках обеспечивается автоматическая нумерация и контроль уникальности кодов среди элементов с одинаковым владельцем, но различными родителями. Тип кода – свойство позволяет выбрать тип значения для кода элемента справочника: Число или Строка. Выбор строкового типа кода бывает полезным, когда используется сложная система кодирования, и код может включать помимо цифр также буквы и символы-разделители. Наиболее характерный пример – использование в качестве кодов артикулов для швейных изделий. Следует обратить внимание, что выбор строкового типа кода не исключает возможности автоматического присвоения таких кодов. Для самого первого элемента система формирует код вида 001 (количество нулей зависит от установленной длины кода), то есть код представляет собой строку символов, но все символы в этой строке являются цифрами. При вводе других элементов в справочник система будет продолжать присваивать коды аналогичным образом – 002, 003 и т. д. Если требования к ведению справочника предполагают непременное использование смешанных буквенно-цифровых кодов, то для целей автоматической нумерации можно использовать коды вида AA001. Здесь первая часть кода – символы АА – является текстовым префиксом, а вторая часть – символы 001 – будет интерпретироваться системой как число и использоваться при автоматическом присвоении очередного кода. Например, если самым первым кодом в справочник введен АА001, то следующим автоматически присвоенным кодом будет АА002, затем – АА003, и так далее по возрастанию. Текстовый префикс можно задать вручную (при вводе в справочник нового элемента ввести такой «составной» код) или использовать возможности установки префикса из встроенного языка системы «1С:Предприятие» (метод УстановитьНовыйКод()). Допустимая длина кода – доступно в том случае, если свойство Тип кода установлено в значение Строка. С помощью свойства можно регулировать, строка какой 202 длины будет хранить код. Если значение свойства равно Фиксированная, то длина строки, содержащая код элемента справочника, всегда будет равна значению, указанному в свойстве Длина кода. В противном случае длина строки будет равна реальному количеству символов, формирующих код элемента. Реквизиты. Любой новый справочник можно представить в виде таблицы, которая имеет две колонки: код элемента справочника и его наименование. Система «1С:Предприятие» помимо кода и наименования позволяет хранить дополнительную информацию об элементе справочника. При редактировании справочника можно описать набор дополнительных реквизитов, предназначенных для хранения таких дополнительных сведений. При показе справочника на экране эти реквизиты могут представляться в виде колонок табличного поля формы списка справочника. Кроме этого, сведения, хранящиеся в реквизитах, можно использовать при формировании в различных расчетах, при формировании отчетов и так далее. Используя механизм реквизитов справочника, легко организовать, например, картотеку сотрудников. Для этого достаточно для справочника Сотрудники создать реквизиты для хранения сведений об образовании, паспортных данных и прочей кадровой информации. С помощью встроенных средств поиска в справочнике при использовании конфигурации нужная информация о сотруднике может быть легко найдена. Табличные части. Для описания некоторых данных, относящихся к справочнику и не используемых самостоятельно, используют табличные части. Примером табличной части может служить состав семьи сотрудника (данные по каждому члену семьи описываются в реквизитах табличной части, а число членов семьи может быть произвольным), послужной список сотрудника и т. д. Если бы в приведенном примере сведения по составу семей сотрудников могли использоваться самостоятельно, то их можно было бы выделить в отдельный справочник, подчиненный справочнику Сотрудники. Основное отличие табличной части от подчиненного справочника в том, что на элементы справочника можно ссылаться, а на строки табличной части – нет. При обращении к элементу справочника он весь, вместе со всеми табличными частями, считывается из базы данных в память. Если табличная часть содержит достаточно большое количество строк, это может ухудшить производительность системы. Поэтому табличную часть стоит использовать, если не нужно хранить ссылки на элементы и количество элементов ограничено. Каждый справочник может иметь неограниченное число табличных частей. Автонумерация. Установка свойства приводит к тому, что вновь введенному элементу в справочнике код будет присваиваться при записи. Автоматически присвоенный код можно исправить. Контроль уникальности. Если код используется для однозначной идентификации конкретного элемента в справочнике, он должен быть уникальным (не должен повторяться). Если свойство Контроль уникальности установлено, проверка кода на уникальность будет проводиться автоматически при вводе в справочник нового элемента. Основное представление – в свойстве задается представление элементов справочника. Например, значения типа СправочникСсылка, введенные в реквизит документа, справочника или константу, будут представляться в виде кода или наименования элемента справочника в зависимости от данного свойства. Для форм списков данная колонка становится колонкой по умолчанию. При открытии списка эта колонка становится активной. Ввод на основании. На закладке Ввод на основании указывается, какие объекты конфигурации могут являться основанием для объектов данного типа и для каких объектов объекты данного типа могут являться основанием. По кнопке Конструктор ввода на основании запускается конструктор создания процедуры ввода на основании. 203 Примером ввода на основании может служить ввод документа Передача на реализацию на основании элемента справочника Товары. 6.3.8.2. Свойства реквизитов справочника Помимо основных свойств реквизиты справочника имеют следующие свойства: ● Тип – указывается тип данных реквизита. ● Использование – для иерархических справочников определяет использование реквизита для групп и элементов. 6.3.8.3. Предопределенные элементы справочника Разработчик конфигурации может создать для справочников набор предопределенных элементов и групп элементов (для иерархических справочников). Эти элементы не могут быть удалены пользователями в режиме 1С:Предприятие. Форма для ввода предопределенных элементов открывается нажатием кнопки Предопределенные на закладке Прочие окна редактирования объекта конфигурации. В конфигураторе вводятся только основные свойства элемента (имя, код и наименование). Имя элемента можно использовать в выражениях встроенного языка. Значения других реквизитов предопределенного элемента вводятся в режиме 1С:Предприятие. Визуально предопределенные элементы справочников в режиме 1С:Предприятие отличаются от элементов, созданных пользователями, видом пиктограммы. ВНИМАНИЕ! Для справочника, имеющего владельца, нельзя создать предопределенные элементы. И наоборот, справочнику, имеющему предопределенные элементы, нельзя назначить владельца. 6.3.9. Документы Документ – одно из основных понятий системы «1С:Предприятие». При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях. В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумажных документов, однако использование этого типа данных может выходить далеко за рамки простой фиксации информации о хозяйственных операциях. Каждый документ содержит информацию о конкретной хозяйственной операции и характеризуется своим номером, датой и временем. Дата и время – наиболее важные характеристики документов, так как позволяют устанавливать строгую временную последовательность совершения операций. В конфигурации описывается только структура документа, конкретные экземпляры документов вводятся при работе с программой пользователем. Например, созданный в конфигурации документ Накладная при работе с системой «1С:Предприятие» позволит формировать накладные, которые будут иметь разное содержание, но одинаковый набор реквизитов, одинаковую логику поведения и так далее. Далее для простоты вместо термина «структура документа» будет использоваться термин «документ», подразумевая под этим средства для ввода и визуализации документа. Конфигуратор позволяет описать структуру документа, организовать формы для ввода информации в документ и описать алгоритм построения печатных форм документа. Помимо даты, времени и номера документа можно создать набор реквизитов, позволяющих хранить дополнительную информацию. Если объект предметной области, которой соответствует документ, имеет не только такие «простые» свойства, как, например, дату, номер и итоговую сумму, но и составные (списочные) свойства, документу может быть создан набор табличных частей. Например, в документе Расходная накладная может быть создана табличная часть для списка продаваемой номенклатуры. 204 Для работы с документами в конфигурации может быть создано необходимое количество списков документов одного вида и журналов документов разного вида. Форма списка отличается от формы журнала в первую очередь тем, что в списке отсутствует колонка Вид документа (т. к. список содержит документы одного вида), а журнал обычно содержит эту колонку. При создании документа можно указать перечень журналов, в которых будет осуществляться работа с документами этого вида. Для документов разных видов можно указывать один журнал, что позволяет произвольным образом группировать документы в журналах. Назначенные документу журналы можно менять. Документы могут изменять состояние регистров учета (проводиться). Если документ проведен, то данные, которые указал пользователь при вводе документа, отразились в учетных регистрах системы – изменились остатки товаров на складах, изменилась задолженность перед контрагентом и т. д. Документы могут проводиться в реальном времени (оперативное проведение) и прошлой датой (неоперативной проведение). 6.3.9.1. Свойства документа Для работы с документами предназначена ветвь Документы дерева конфигурации. На этой же ветви располагаются служебные объекты конфигурации – нумераторы и последовательности. Свойства документа редактируются в палитре свойств или окне редактирования. Данные по документу в окне редактора распределены по закладкам. На закладке Основное размещены основные данные по документу. На закладке Данные вводятся реквизиты и табличные части. В палитре свойств каждому реквизиту помимо основных свойств указывают тип. Если требуется обеспечить быстрый поиск или отбор нужной информации по реквизитам документа, для реквизитов нужно установить свойство Индексировать. На закладке Нумерация объединены данные, которые используются для назначения правил нумерации документов. У любого документа существуют обязательные реквизиты, которые создаются автоматически и которые удалить нельзя, – это дата, время и номер документа. В отличие от даты и времени, для номера документа можно задать несколько параметров, которые будут управлять поведением этого реквизита при работе с документами создаваемого вида. Совокупность этих параметров будет определять правила нумерации документов при работе системы «1С:Предприятие». Автонумерация – установка свойства приводит к тому, что вновь введенному документу номер будет присваиваться автоматически. Автоматически присвоенный номер можно исправить. Нумератор – документу может быть назначен нумератор из числа уже существующих в конфигурации. Для назначения документу нумератора из числа существующих в конфигурации следует выбрать имя нумератора в свойстве Нумератор. В этом случае прочие элементы группы Нумерация документа окна, за исключением свойства Автонумерация, становятся недоступными, то есть правила нумерации документов данного вида будут полностью определяться назначенным нумератором. Использование нумераторов позволяет организовать сквозную нумерацию документов разных видов. Для этого всем документам, для которых требуется иметь сквозную нумерацию, должен быть назначен один нумератор. Контроль уникальности и присвоение очередного номера будут выполняться с учетом всех документов, для которых назначен этот нумератор. Длина номера – устанавливает максимальную длину номера документа. Тип номера – свойство аналогично свойству Тип кода справочника. 205 Допустимая длина номера – доступно в том случае, если свойство Тип номера установлено в значение Строка. С помощью свойства можно регулировать, строка какой длины будет хранить номер. Если значение свойства равно Фиксированная, то длина строки, содержащая номер документа, всегда будет равна значению, указанному в свойстве Длина номера. В противном случае длина строки будет равна реальному количеству символов, формирующих номер документа. Контроль уникальности – если это свойство установлено, то при вводе нового документа его номер проверяется на уникальность в пределах, установленных в свойстве Периодичность. Периодичность – свойство устанавливает пределы контроля уникальности номеров документов и период повторяемости номеров. Если свойство Контроль уникальности номеров документов установлено, то в свойстве Периодичность указывается, в каких пределах будет осуществляться этот контроль. При установленном свойстве Автонумерация система «1С:Предприятие» будет присваивать очередной порядковый номер каждому новому документу. После завершения периода, установленного в свойстве Периодичность, нумерация документов начнется с 1. На закладке Движения производится настройка поведения при проведении и отмене проведения документа. Проведение – свойство устанавливает, разрешено ли проведение документа при записи. Если выбрано Разрешить, то документ осуществляет движения регистров (изменяет их состояние). Другим следствием такого выбора будет автоматический вызов обработчика события ОбработкаПроведения проведения документа в режиме 1С:Предприятие, возникающего при нажатии кнопки формы документа, для которой при конфигурировании выбрано предопределенное действие Записать и закрыть (обычно кнопка ОК). Для формирования обработчика события ОбработкаПроведения можно воспользоваться конструктором движения регистров, кнопка вызова которого расположена на закладке Движения окна редактирования объекта Документ. Оперативное проведение – свойство устанавливает, разрешено ли оперативное проведение документа. Для документов с разрешенным оперативным проведением при выборе не текущей даты проведение осуществляется в неоперативном режиме, т. к. учитывается уже свершившийся факт, который не требует контроля, осуществляемого в оперативном режиме (например, проверка остатка, указанного в расходной накладной товара). Если для документа разрешено Оперативное проведение, то при создании нового документа время документа «нулевое». При проведении система получает оперативную отметку времени, которая может совпадать с текущей датой и текущим временем, а может быть и больше, чем текущее время, и присваивает ее документу, после чего осуществляется оперативное проведение. В случае редактирования документа с установленным свойством Оперативное проведение время уже отличается от текущего, поэтому при проведении (указана текущая дата) документа на экран выводится запрос о виде проведения. Если на вопрос о виде проведения выбрать Оперативное проведение, то для документа устанавливается текущее время. Если при редактировании изменить время (например, указать будущее время текущего дня), то система также установит текущее время. Если на вопрос о виде проведения выбрать Неоперативное проведение, то, когда формат даты не предусматривает ввода времени, в документе указывается время начала дня. Удаление движений – свойство доступно, если в свойстве Проведение выбрано Разрешить. Оно задает режим удаления всех записей при перепроведении или отмене проведения документа, которые документ записал в процессе проведения: ● Режим Удалять автоматически означает, что удаление производится системой при выполнении повторного проведения уже проведенного документа (перед записью новых движений) и при отмене проведения документа. 206 ● Режим Не удалять автоматически означает, что удаление движений выполняется программно в специальных случаях. Этот режим используется, если нужно управлять удалением и при проведении, и при отмене проведения. ● Режим Удалять автоматически при отмене проведения означает, что система будет автоматически удалять движения только при отмене проведения. При перепроведении движения не будут удаляться автоматически. Этот режим устанавливается по умолчанию. Если свойство Удаление движений у документа установлено в значение Не удалять автоматически или Не удалять автоматически при отмене проведения, то для избежание дублирования информации, следует выполнять очистку наборов записей коллекции Движения вначале операции проведение. Запись движений при проведении – свойство определяет поведение системы при создании движений во время проведения документа: ● Режим Записывать выбранные (режим по умолчанию) означает, что набор записей коллекции движения будет записан только в том случае, если свойство набора Записывать установлено в значение Истина (вне зависимости от того, были модифицированы записи набора или нет). ● Режим Записывать модифицированные (устанавливается при конвертации из версий «1С:Предприятие 8.1» и более ранних) означает, что записаны будут те наборы записей, которые были модифицированы (для них система автоматически установит свойство Записывать в значение Истина). По окончании записи документа система ставит всем наборам записей, регистрирующим движения документа, свойство Записывать в исходное состояние, даже если запись завершилась неудачно. Заполнение последовательности – выбирается режим автоматического заполнения последовательностей. В окне редактирования на закладке Последовательности определяется вхождение документа в последовательности. В окне редактирования документа на закладке Журналы можно отметить те журналы документов, в которых при работе пользователя с системой «1С:Предприятие» будут отражаться документы данного вида. Необходимые формы журналов документов могут быть созданы потом. На закладке Ввод на основании размещено два списка объектов конфигурации. В верхнем списке необходимо указать объекты, на основании которых может вводиться документ, а в нижнем – для которых данный документ является основанием при вводе нового объекта. ВНИМАНИЕ! Документ может вводиться как на основании другого документа, так и на основании объектов другого вида (элементов справочника, плана видов характеристик, плана счетов и плана видов расчета). И наоборот, документ может являться основанием для ввода не только другого документа, но и объектов другого вида. Для создания процедуры, осуществляющей подготовку данных создаваемого объекта на основании образца, следует воспользоваться специальным конструктором. На закладке Права имеется возможность установки привилегированного режима при проведении (свойство Привилегированный режим при проведении) и/или при отмене проведения документа (свойство Привилегированный режим при отмене проведения): ● Если свойство установлено, то соответствующее действие (проведение или отмена проведения) система будет выполнять всегда в привилегированном режиме (при вызове проведения или отмены проведения на стороне сервера и в файловом варианте). Однако привилегированный режим не будет установлен, если проведение (или отмена проведения) документа выполняется в клиент-серверном варианте на стороне толстого клиента. В привилегированном режиме выполняется: ● Автоматическое удаление движений. ● Автоматическая запись движений. 207 ● Соответствующий обработчик (ОбработкаПроведения или ОбработкаУдаленияПроведения). Однако запись объекта выполняется в обычном (непривилегированном) режиме. ● Привилегированный режим включается системой после выполнения записи объекта перед началом проведения (перед удалением движений, если они удаляются автоматически). Аналогично и при отмене проведения. ● При создании новых документов свойства имеют значение Истина, если в свойствах конфигурации указан основной режим запуска – управляемое приложение, и Ложь, если основным режимом запуска указан обычный. 6.3.9.2. Механизм проведения документов Информация, отражающая хозяйственную деятельность предприятия, хранится в регистрах. Документы могут изменять состояние регистров. Этот процесс называется проведением. Данный механизм является рекомендуемым механизмом изменения состояния регистров. Проведение может выполняться в оперативном или неоперативном режиме (свойство Оперативное проведение). ПРИМЕЧАНИЕ. Как правило, механизм оперативного проведения используется для решения задач оперативного учета. 6.3.9.2.1. Оперативное и неоперативное проведение Механизм оперативного проведения предназначен для того, чтобы разделить случаи, когда документ проводится в реальном времени, и случаи, когда проведение документа отражает уже свершившийся факт. Проведение в реальном времени необходимо тогда, когда ввод и проведение документа не просто фиксируют в системе произошедшее событие, а участвуют в его формировании, помогая оператору правильно ввести информацию. Разумеется, это имеет смысл только в тот момент, когда данное событие происходит в реальной жизни. Классическим примером является ввод и проведение документа, отражающего продажу товаров со склада. При вводе такого документа в задачу оператора входит не только правильный ввод списка товаров, которые приобретает покупатель, но и выполнение различных проверок. Прежде всего, необходимо проверить, что запрашиваемый товар имеется на указанном складе. При этом очень важно, чтобы проверка учитывала тот факт, что одновременно с этим оператором работают и другие операторы, которые могут одновременно выписывать те же самые товары. Соответственно, задачей системы является не допустить продажу одного и того же товара двум покупателям. Кроме того, может потребоваться и проверка доступного покупателю размера кредита или наличие факта оплаты счета, а также другие самые разнообразные проверки. В то же время если документ вводится задним числом, то есть в момент его ввода известно, что такое событие уже произошло в жизни предприятия, например, конкретный товар уже отгружен клиенту, необходимость в таких проверках отпадает, и нужно просто отразить в учете произошедшее событие. В этом случае проведение документа только фиксирует событие, а не участвует в его формировании. Таким образом, задача механизма оперативного проведения заключается в разделении этих двух вариантов проведения и с точки зрения пользователя, чтобы он понимал, какой вид проведения выполняется, и с точки зрения алгоритма проведения документа, чтобы тот отработал действия, соответствующие текущему варианту проведения. Следовательно, оперативность или неоперативность проведения документа определяется по его дате. Если дата проводимого документа совпадает с текущей датой, то система будет проводить такой документ в оперативном режиме, не задавая вопросов, и 208 в обработке проведения об этом можно узнать, чтобы выстроить определенный алгоритм проведения документа. 6.3.9.2.2. Расширение формы и проведение Кроме свойства документа Оперативное проведение существует возможность задания режима проведения у расширения формы документа. Свойство Использовать режим проведения может принимать следующие значения: ● Неоперативный – документ всегда будет проводиться в неоперативном режиме. Если отсутствуют права на неоперативное проведение, будет выдано исключение. ● Оперативный – документ всегда будет проводиться в оперативном режиме. Если отсутствуют права на неоперативное проведение, то будет выдано исключение при попытке провести документ прошлого периода. ● Запрашивать – система всегда будет запрашивать текущий режим проведения. ● Автоматически – в этом случае система работает по следующему алгоритму: ● если дата документа меньше текущей, выполняется неоперативное проведение; ● если дата документа равна текущей, выполняется оперативное проведение; ● если дата документа больше текущей, выдается исключение; ● если невозможно провести документ в выбранном режиме (не хватает прав доступа и т. д.), также будет выдано исключение; ● если на стороне клиента режим проведения неизвестен, то в параметр РежимПроведения обработчика события ПередЗаписью будет передано значение Неопределено. Одной из задач оперативного проведения документов является размещение документов в хронологическом порядке на шкале времени. Такое размещение необходимо, в частности, для того, чтобы корректно списывались остатки по регистрам остатков оперативного учета. Для размещения документов используются такие понятия, как момент времени и оперативная отметка времени. Рассмотрим эти понятия более подробно. Для определения положения документа на оси времени используется реквизит документа Дата, который содержит время с точностью до секунды. Это позволяет контролировать последовательность записи документов. Однако при большом объеме создаваемых документов вероятна ситуация, когда несколько документов будут иметь одинаковое значение даты (т. е. будут созданы в течение одной секунды). Как в этом случае определить последовательность созданных документов? 6.3.9.2.3. Момент времени Для обработки подобных ситуаций существует понятие момент времени. Момент времени представляет собой совокупность даты, времени и ссылки на объект базы данных. Он позволяет однозначно идентифицировать любой объект ссылочного типа базы данных на оси событий, но имеет смысл в основном только для документов. Кроме того, момент времени позволяет идентифицировать и необъектные данные, например, записи регистров, подчиненных регистратору. Понятие момента времени реализовано во встроенном языке при помощи универсального объекта МоментВремени. Для нескольких документов, имеющих одинаковую дату и время, последовательность их на оси событий определяется системой исходя из ссылок на эти документы. Она может не совпадать с последовательностью создания документов, и она недоступна для изменения пользователем, то есть нельзя каким-либо образом повлиять на последовательность документов внутри одной секунды или «вычислить», что один документ создан раньше, а другой – позже. 6.3.9.2.4. Оперативная отметка времени 209 Оперативная отметка времени – это значение типа Дата. Оперативная отметка времени – это «основа», которая собственно и позволяет выполнять оперативное проведение документов. Оперативная отметка времени создается системой каждый раз при оперативном проведении документа. Ее значение формируется исходя из текущей даты сеанса и последней созданной оперативной отметки. 6.3.9.2.5. Поясное время При работе системы в различных часовых поясах необходимо учитывать эту особенность при получении оперативной отметки времени. Например, когда в единой информационной базе, физически расположенной в одном городе (часовом поясе), ведется учет нескольких удаленных предприятий (например, филиалы холдинга), которые расположены в других городах (и других часовых поясах). В этом случае необходимо, чтобы для каждого филиала выдавалась своя отметка времени. Для учета часовых поясов существует понятие часового пояса информационной базы и часового пояса сеанса. Часовой пояс информационной базы определяет часовой пояс, который по умолчанию будет установлен для нового сеанса. При создании информационной базы часовой пояс информационной базы не определен. Однако может быть установлен с помощью метода глобального контекста УстановитьЧасовойПоясИнформационнойБазы(). Информация о часовом поясе информационной базы сохраняется в базе данных и не меняется при операциях загрузки/выгрузки информационной базы. При создании начального образа информационной базы (с помощью механизмов распределенной информационной базы) в создаваемый образ переносится часовой пояс информационной базы, из которой создается образ. Если часовой пояс информационной базы не задан, то используется часовой пояс компьютера, на котором установлен сервер «1С:Предприятия» (в клиент-серверном варианте), или часовой пояс локального компьютера (в файловом варианте). Часовой пояс сеанса описывает тот часовой пояс, в котором работает конкретный сеанс. По умолчанию часовой пояс сеанса равен часовому поясу информационной базы. Часовой пояс сеанса может быть установлен с помощью метода глобального контекста УстановитьЧасовойПоясСеанса(). Часовой пояс сеанса сохраняется до конца сеанса. Используется для определения текущей даты сеанса и получения оперативной отметки времени. 6.3.9.2.6. Получение оперативной отметки времени В ходе оперативного проведения система изменяет время документа таким образом, чтобы очередной документ, проводимый в оперативном режиме, имел бы момент времени более поздний, чем у предыдущего оперативно проведенного документа. Для этого используется понятие оперативной отметки времени. Оперативная отметка получается системой автоматически при оперативном проведении, но может быть получена во встроенном языке в явном виде с помощью метода ПолучитьОперативнуюОтметкуВремени() на основании текущей даты сеанса. Текущая дата сеанса равна дате компьютера, приведенной к часовому поясу сеанса. Под приведением понимается пересчет местного времени компьютера в поясное время, заданное часовым поясом сеанса. Пересчет выполняется через универсальное координированное время (UTC). Все пользователи обращаются к единому механизму оперативной отметки времени, а механизм выдает каждому пользователю очередную отметку. Механизм получения оперативной отметки времени обеспечивает получение даты, большей, чем предыдущая отметка, полученная этим или другим пользователем в данном часовом поясе. В качестве оперативной отметки система, как правило, возвращает текущее время сеанса. Однако если текущее время больше или равно последней выданной какому-либо пользователю 210 отметке, то возвращается значение на секунду большее, чем значение последней выданной отметки. Таким образом, обеспечивается получение при каждом обращении значения, по возможности соответствующего текущему времени, но в обязательном порядке большего, чем предыдущее полученное значение. Следует помнить, что различные сеансы с одинаковым часовым поясом будут использовать одно и то же время для получения оперативной отметки времени. Таким образом, будет существовать столько несвязанных оперативных отметок времени, сколько уникальных часовых поясов будет установлено в качестве часовых поясов сеансов. 6.3.9.3. Нумераторы Нумератор представляет собой объект конфигурации, описывающий правила нумерации документов: тип и длину номера документа, его периодичность, необходимость контроля уникальности. Основное назначение нумератора – обеспечить возможность сквозной нумерации документов разного вида. Для этого таким документам назначается одинаковый нумератор. 6.3.9.3.1. Управление списком нумераторов Для работы с объектами конфигурации типа Нумератор предназначена ветвь дерева конфигурации, которая расположена «внутри» ветви Документы и начинается у ключевого слова Нумераторы. 6.3.9.3.2. Свойства нумератора В этом разделе будут описаны специфические свойства нумераторов в дополнение к общим свойствам объектов конфигурации. Рисунок 6.72 – Свойства нумератора Тип номера – выбирается тип значения для номера документа – числовой или текстовый. Выбор текстового типа номера бывает полезным, когда используется сложная система нумерации документов, и номер документа может включать, помимо цифр, также буквы и символы-разделители. Длина номера – устанавливает максимальную длину номера документа. Периодичность – свойство устанавливает две важные характеристики нумератора: пределы контроля уникальности номеров документов и период повторяемости номеров. Если свойство Контроль уникальности номеров документов установлено, свойство Периодичность устанавливает, в каких пределах осуществлять этот контроль. 211 Например, если установлена периодичность В пределах дня, то уникальность номеров документов будет контролироваться в пределах суток: на следующие сутки номера документов могут повторяться, но в пределах суток они будут уникальны. При установленном свойстве Автонумерация система «1С:Предприятие» будет присваивать очередной порядковый номер каждому новому документу. После завершения периода, установленного в свойстве Периодичность, нумерация документов начнется с 1. Контроль уникальности – если это свойство установлено, то при вводе нового документа его номер проверяется на уникальность в пределах, установленных в свойстве Периодичность. 6.3.9.4. Последовательности документов Последовательности документов являются вспомогательными объектами конфигурации. Они предназначены для обеспечения проведения определенных документов в строгой хронологической последовательности. Все документы в системе «1С:Предприятие» образуют единую хронологическую последовательность. Для этого каждый документ имеет дату и время. Даже если два документа имеют одинаковую дату и одинаковое время, они все равно располагаются в определенной последовательности, определяемой моментом их ввода в систему. Дата и время документа могут быть изменены. Таким образом, независимо от порядка ввода документов они могут быть расположены в последовательности, отражающей реальную последовательность происходивших в хозяйственной жизни предприятия событий, которые данные документы отражают. В системе «1С:Предприятие» в процессе проведения документ выполняет некоторые действия, которые отражаются данным документом в различных механизмах учета, поддерживаемых «1С:Предприятием». Алгоритм проведения документа, как правило, отражает в учете данные, записанные в самом документе (в его реквизитах и табличных частях). Однако в некоторых случаях алгоритм проведения документа анализирует также и текущие итоги, используя их при проведении. Например, если документ списывает товары или материалы по средней себестоимости, то для определения суммы списания алгоритм проведения будет анализировать остатки товаров (материалов) на момент документа. Если списание выполняется по методам LIFO или FIFO, то алгоритм проведения будет анализировать существующие остатки товаров (материалов) в разрезе партий на момент позиции документа, определяемой датой и временем проведения документа. Очевидно, что документы, основывающиеся при проведении на данные итогов, должны проводиться строго последовательно. Однако на практике из-за ошибок при вводе информации и несвоевременного поступления документов часто приходится вводить или исправлять документы задним числом. Разумеется, в этом случае движения регистров, сформированные всеми последующими документами (расположенными после того, который был исправлен), становятся некорректными. Например, если выяснилось, что в одной из приходных накладных, введенных в начале месяца, было неверно указано количество товара, то во всех последующих расходных накладных, списывающих имеющиеся в наличии партии, необходимо заново проанализировать остатки с учетом внесенных изменений и заново записать движения регистров. То есть все документы, анализирующие остатки и расположенные после измененного документа, должны быть перепроведены. Для автоматического контроля необходимости перепроведения документов используются объекты ветви Последовательности. Каждый введенный в конфигурации объект Последовательность обеспечивает контроль за порядком проведения документов указанных видов. Таким образом, в системе может существовать несколько независимых последовательностей. 212 6.3.9.4.1. Управление списком последовательностей Работа по созданию объектов конфигурации типа Последовательность ведется в окне Конфигурация. Для последовательности отведена отдельная ветвь дерева конфигурации, которая расположена «внутри» ветви Документы и начинается у ключевого слова Последовательности. 6.3.9.4.2. Свойства последовательности документов В этом разделе будут описаны специфические свойства последовательностей документов в дополнение к общим свойствам объектов конфигурации. Свойства последовательности редактируются в окне редактирования Последовательность. На закладке Использование выбираются документы, которые относятся к данной последовательности, и движения, влияющие на последовательность. Рисунок 6.73 – Свойства последовательности Перемещение границы при проведении. Если для свойства указано значение Перемещать, то документ, зарегистрированный в этой последовательности, при своем проведении будет пытаться переместить границу этой последовательности документов. Если для свойства указано значение Не перемещать, то документ не будет перемещать границу этой последовательности документов при своем проведении. Документы, входящие в последовательность – в верхнем списке окна Последовательность указываются виды документов, которые относятся к данной последовательности. В качестве документов, на проведение которых будет влиять данная последовательность, следует выбрать те виды документов, которые при проведении будут анализировать состояние различных регистров. Например, такими документами могут быть расходные накладные, накладные на передачу, на реализацию и т. д. 213 Движения, влияющие на последовательность – одно из основных свойств последовательности. Оно определяет, какие из движений будут влиять на необходимость перепроведения документов данной последовательности, то есть движения или итоги каких механизмов учета используются документами данной последовательности при проведении. Например, в качестве таких движений могут выступать движения регистров. Для настройки данного параметра следует добавить в список те виды регистров, движения которых будут нарушать данную последовательность. Измерения. Последовательности могут иметь подчиненные объекты, называемые измерениями, которые создаются на закладке Данные окна редактирования. Если для последовательности не создано ни одного измерения, то при восстановлении данной последовательности будут перепроводиться все входящие документы. Если требуется, чтобы данная последовательность учитывала не все, а вполне определенные ситуации, то в последовательность включают измерение. В этом случае перепроводить нужно будет только те документы, которые изменяют состояние регистра с учетом свойств измерения. Если изменяется состояние регистров, участвующих в последовательности, то неактуальными становятся более поздние документы с теми же значениями в реквизитах (перечислены в свойстве измерения Соответствие реквизитам документов), которые содержатся в реквизитах удаленных (добавленных) записей регистров (перечислены в свойстве измерения Соответствие реквизитам движений). Например, последовательность учитывает изменение состояния регистров по документам Приходная накладная и Расходная накладная. Если требуется учитывать дополнительные критерии необходимости перепроведения указанных документов (например, нужно перепроводить документы по определенному значению номенклатуры), то в последовательность следует добавить измерение. В палитре свойств измерения указать его тип (СправочникСсылка.Номенклатура) и установить связь с реквизитами регистров. Рисунок 6.74 – Свойства измерения последовательности В соответствии с выбранным типом измерения в списки документов и регистров измерения для выбора включаются только те объекты, в состав которых входят указанные типы измерения. Введение измерения позволяет сократить время перепроведения документов, что особенно важно при значительном числе документов, т. к. будут перепроводиться только те документы, которые содержат данные по указанному значению измерения. 214 6.3.9.4.3. Работа с последовательностями документов При работе в режиме 1С:Предприятие для каждой введенной в конфигурации последовательности документов система будет автоматически поддерживать границу последовательности. В качестве границы последовательности будет выступать позиция документа. При последовательном проведении документов, входящих в данную последовательность, граница последовательности будет устанавливаться на каждый вновь проведенный документ. Однако если будет проводиться документ, относящийся к данной последовательности, но расположенный позже другого проведенного документа, относящегося к той же последовательности и находящегося после текущей границы последовательности, то граница последовательности сдвигаться не будет, так как нарушается последовательность проведения документов. Эта ситуация может быть проанализирована алгоритмом проведения документа. При проведении документов задним числом, отмене проведения или удалении документов, если удаляются или записываются движения регистров, указанные как влияющие на данную последовательность, граница последовательности отодвигается на момент измененного документа. Перед перемещением границы назад производится проверка на наличие границ, которые необходимо переместить назад. Эта проверка производится без эксклюзивной блокировки границы. Таким образом, граница последовательности будет продвигаться вперед при последовательном проведении документов, относящихся к данной последовательности, и будет отодвигаться назад при изменении задним числом движений регистров, относящихся к данной последовательности. В режиме перепроведения документов (вызывается выбором пункта Все функции – Стандартные – Проведение документов) существует специальная возможность восстановления последовательности проведения документов. При ее использовании система автоматически выполняет перепроведение всех документов, относящихся к данной последовательности, от границы последовательности до указанного момента. В приведенном нами примере с учетом товаров проводимые расходные накладные будут сдвигать границу последовательности вперед. Любое изменение в движениях по регистру, на котором ведется стоимостный учет товаров, записанное раньше границы последовательности, будет отодвигать границу последовательности назад, на момент этого документа. После этого проводимые документы, находящиеся позже границы последовательности, уже не будут двигать ее вперед, если между границей последовательности и проводимым документом окажутся проведенные документы из этой последовательности. Режим восстановления последовательности будет перепроводить все расходные накладные. Заметим, что приходные накладные хотя и влияют своими движениями на границу последовательности, перепроводиться не будут, так как они не используют в алгоритме проведения остатков и не включены в список документов, относящихся к данной последовательности. После выполнения восстановления последовательности проводимые после границы последовательности документы снова будут двигать границу вперед. Режим восстановления последовательности позволяет автоматически выполнить перепроведение всех документов, относящихся к последовательности, от текущей позиции границы последовательности до указанного момента. В верхней части диалога следует выбрать позицию, до которой будет выполняться перепроведение документа. 6.3.9.5. Ввод документов на основании Одним из режимов ввода новых документов в процессе работы пользователя с системой «1С:Предприятие» является режим ввода на основании. С точки зрения пользователя режим ввода на основании позволяет вводить документы или элементы справочников, заполняя их реквизиты путем копирования информации из другого объекта информационной базы – документа или объекта другого вида. 215 На закладке Ввод на основании можно выбрать объекты, которые могут являться основанием для выбранного вида документа (поле Вводится на основании), и те объекты, которые могут быть введены на основании данного вида документов (поле Является основанием для). Для реализации механизма ввода на основании необходимо реализовать в модуле документа обработчик события ОбработкаЗаполнения. Текст обработчика может быть доработан специалистом, осуществляющим конфигурирование системы. В тексте обработчика следует предусмотреть выполнение тех или иных операций по переносу информации в зависимости от вида документа-образца, а также любые другие необходимые действия. Конструктор ввода на основании предназначен для облегчения создания этого обработчика. 6.3.10. Журналы документов В системе «1С:Предприятие» журналы документов являются объектами, позволяющими осуществлять работу с документами разных видов. Работая с формами журнала, пользователь может вводить документы, просматривать их, редактировать и удалять. Пользователь может искать любой документ в журнале по содержимому граф, выполнять поиск документов по их номерам, осуществлять отбор документов по различным признакам. Конфигуратор позволяет создавать любое необходимое число журналов. При создании журнала для него может быть создано произвольное число экранных форм, на которых располагаются табличные поля, содержащие колонки для отображения вида документа, номера, даты и времени, а также дополнительные графы для отображения значений любых других реквизитов документов из числа отображаемых в каждом журнале. Если ни одной формы журнала не создано, в режиме 1С:Предприятие автоматически создается форма журнала по умолчанию. 6.3.10.1. Создание журнала Для работы с журналами документов предназначена ветвь Журналы документов дерева конфигурации. В системе «1С:Предприятие» процессы создания журналов и размещения документов по конкретным журналам тесно связаны между собой. Указание отображения информации документа в определенном журнале синхронизировано с данными журнала о документах, информация о которых представлена в журнале. При создании и журнала, и документов в список журналов и документов автоматически будет добавлен созданный журнал или документ. Для отражения данных документа в журнале необходимо или в журнале, или в документе указать эту принадлежность. Указание принадлежности документа журналу можно производить как в журнале, так и в документе, т. к. эта операция синхронизирована. 6.3.10.2. Редактирование журнала В этом разделе будут описаны уникальные свойства журналов в дополнение к общим свойствам объектов конфигурации, и приемы редактирования объектов конфигурации типа Журнал, отличные от общих приемов редактирования объектов конфигурации. Редактирование свойств журнала (формирование списка дополнительных граф и определение их состава, форм журнала и макетов печатных форм и др.) выполняется в окне редактирования. 216 На закладке Данные формируется список документов, входящих в журнал, и список граф журнала. В каждом подчиненном объекте, расположенном в ветви Графы, указывается реквизит всех документов, включаемый в журнал. 6.3.10.3. Графы журнала документов Когда в конфигурации создается новый журнал документов, для работы с ним может быть создано неограниченное число форм журнала. Форма журнала создается с помощью конструктора форм объектов конфигурации. Конструктор размещает в форме табличное поле, содержащее набор граф для показа различных реквизитов документов. При создании формы журнала конструктор формы создает графы: картинка (для показа состояния документа), вид, дата и номер документа. Если требуется включить в журнал дополнительную информацию, то необходимо сформировать список дополнительных граф и разместить их в формах. На закладке Данные окна редактирования располагается список документов, данные которых отображаются в журнале. Для создания дополнительной графы в нижнем списке нужно добавить подчиненный объект Графа и указать реквизиты документов, данные которых будут показываться в графе. Для выбора реквизитов документов, которые будут размещены в графе журнала, в палитре свойств графы, в свойстве Ссылки, нужно нажать кнопку выбора. На экран выводится окно выбора реквизитов документов. Рисунок 6.75 – Выбор реквизитов для графы ВНИМАНИЕ! Нельзя выбрать несколько реквизитов одного и того же документа. Если реквизит какого-либо документа не выбран, то в данной графе журнала документов будет отсутствовать информация по всем документам этого вида. При выборе следует руководствоваться исключительно здравым смыслом и не смешивать в одной графе абсолютно разные понятия (например, наименование контрагента и сумму документа). Помимо обязательных граф документов (Дата, Номер, Вид документа) и граф, указанных в подчиненной группе объектов журнала Графы, в журнал можно добавить любое количество дополнительных граф. 217 Новая графа добавляется в список граф выбранного объекта Журналы, а затем с помощью пункта Форма – Вставить реквизиты производится вставка графы в форму. Наличие в журнале дополнительных граф дает возможность пользователю получить наиболее важные сведения о документе уже при просмотре журнала, не открывая сам документ. Для элемента формы, отображающего графу журнала, автоматически применяются следующие свойства реквизитов, входящих в состав графы: ● Режим пароля – если такой режим установлен хотя бы у одного реквизита, входящего в состав графы. ● Формат – при полном совпадении у всех реквизитов, входящих в состав графы, на всех языках, определенных в конфигурации. ● Подсказка – если подсказки совпадают для всех реквизитов, выводится одна подсказка; если подсказки не совпадают, они выводятся через запятую. ● Выделять отрицательные – если данное свойство установлено у всех реквизитов, входящих в состав графы. ● Многострочный режим – если данное свойство установлено у всех реквизитов, входящих в состав графы. 6.3.11. Перечисления Перечисление представляет собой служебный тип данных, который не используется самостоятельно, а применяется в основном в совокупности с другими типами данных. Определить перечисление можно как список возможных значений реквизита. Перечисления используются при вводе значений реквизитов документов, справочников, при вводе значений констант, в тех случаях, когда необходимо исключить неоднозначный ввод информации. Рассмотрим в качестве примера такое понятие, как «статус покупателя». В простейшем случае покупатели бывают розничные и оптовые. Со статусом покупателя обычно связывают уровень предоставляемых скидок с продажной цены товаров. Такой список «статусов» – розничный, оптовый – может служить примером простого перечисления. При выписке расходной накладной от пользователя системы требуется указать статус покупателя, выбрав его из этого списка. Выбранный статус покупателя, в свою очередь, определяет размер продажных цен. Если статус покупателя вводится в процессе настройки конфигурации задачи как перечисление, то специалист, выполняющий конфигурирование системы «1С:Предприятие», может заранее ввести варианты расчета продажных цен в зависимости от указанного статуса. Прежде всего, перечисление не может пополняться в процессе работы с ним: список его значений задается при настройке перечисления в конфигураторе. Перечисление не имеет вложенности – все его значения находятся на одном уровне. Основная особенность перечисления состоит в том, что список значений перечисления известен и доступен в конфигураторе – сама конфигурация использует конкретные значения перечисления. Использование перечисления позволяет ограничить число возможных вариантов, например, при вводе реквизита документа. Так как список значений перечисления создается в конфигурации, то можно организовать проверку выбранного значения и описать действия, которые должны за этим выбором последовать. Для работы с перечислениями предназначена ветвь Перечисления дерева конфигурации. Редактирование перечисления заключается в создании списка значений перечислений. Для редактирования перечисления используется окно редактирования объекта Перечисление. При создании нового перечисления свойство Использовать стандартные команды выключено. 218 На закладке Данные производится формирование значений перечисления. Рисунок 6.76 – Добавление значения перечисления В палитре свойств указывается имя и синоним. Список значений перечисления в режиме 1С:Предприятие используется следующим образом: каждое значение перечисления представляется синонимом; если синоним не задан, то используется его имя. В приведенном на рисунке 6.76 примере значение перечисления ВидыТоваров будет представляться в виде Товар (по введенному синониму). На закладке Формы создаются формы списка и выбора. Это позволяет создавать различные формы для выбора (в зависимости от применяемого контекста). Формы списка позволяют распечатывать списки перечислений. При создании формы списка по умолчанию автоматически включается свойство Использовать стандартные команды. На закладке Макеты могут быть созданы макеты печати. 6.3.12. Отчеты и обработки Любая система автоматизации учета только тогда выполняет свои функции, когда она имеет средства обработки накопленной информации и получения сводных данных в удобном для просмотра и анализа виде. Как правило, для решения подобных задач в системе автоматизации учета существует возможность формирования отчетов. Конфигуратор позволяет формировать набор различных отчетов, достаточных для удовлетворения потребности пользователей системы в достоверной и подробной выходной информации. Для получения отчетной информации в системе «1С:Предприятие» используются объекты конфигурации, расположенные в ветви Отчеты дерева конфигурации. Каждый объект этого типа может содержать алгоритм формирования «бумажного» или «электронного» отчета на внутреннем языке системы «1С:Предприятие» или схему компоновки данных, на основании которой система «1С:Предприятие» может 219 автоматически выполнить отчет. Отчет может содержать одну или несколько форм, с помощью которых, при необходимости, можно организовать ввод каких-либо параметров, влияющих на ход алгоритма. Для вывода результатов выполнения алгоритма на экран и принтер отчет может иметь созданные с помощью конструктора макетов описания печатных форм (макеты). Редактирование свойств объектов типа Отчет и Обработка и создание подчиненных объектов выполняются в окне редактирования. Для выполнения различных действий над информацией в системе «1С:Предприятие» используются объекты конфигурации, расположенные в ветви Обработки дерева конфигурации. Например, с их помощью можно выполнять удаление из системы устаревших данных, импорт информации из других систем и многое другое. Характер выполняемых в этом случае действий отражает название объекта конфигурации – Обработка, так как в результате информация, хранящаяся в системе, претерпевает какиелибо изменения. Обработка может содержать одну или несколько форм, с помощью которых, при необходимости, можно организовать ввод каких-либо параметров, влияющих на ход алгоритма. Вывод результатов выполнения алгоритма на экран и принтер осуществляется с помощью конструктора макетов описания печатных форм (макеты). Основное отличие отчета от обработки заключается в возможности использования схемы компоновки данных. В остальном обработка не отличается от отчета. Существует возможность для нескольких (или всех) отчетов прикладного решения использовать единые формы отчета, настроек или варианта отчета. Для этого необходимо использовать общие формы. В общем случае можно выделить следующие варианты использования: ● Для всех отчетов прикладного решения используется единый набор форм работы с отчетами. В этом случае нужно создать необходимые формы и указать их в свойствах конфигурации. Тогда в самих отчетах формы разрабатывать не нужно, т. к. будут использоваться общие формы. ● Можно выделить наборы отчетов, для каждого из которых необходимо разработать свои формы работы с отчетом. В этом случае создаются общие формы работы с отчетами, которые указываются для каждого отчета «своей» группы. Так можно сделать особый набор форм, например, для бухгалтерских отчетов или для отчетов аналитиков. ПРИМЕЧАНИЕ. Если у нескольких отчетов в качестве основной формы указана одна общая форма, то в толстом клиенте (в обычном режиме) одновременно можно будет открыть только один из этих отчетов. 6.3.12.1. Внешние отчеты и обработки Внешним отчетом в системе «1С:Предприятие» называется отчет, хранящийся вне конфигурации, в отдельном файле внешнего отчета. Внешний отчет служит для решения тех же задач, что и объекты конфигурации типа Отчет. Внешней обработкой в системе «1С:Предприятие» называется обработка, хранящаяся вне конфигурации, в отдельном файле внешней обработки. Внешняя обработка служит для решения тех же задач, что и объекты конфигурации типа Отчет или Обработка. Основное назначение внешнего отчета (обработки) заключается в возможности реализовывать, поставлять и обновлять некоторые возможности отдельно от конфигурации. Внешние отчеты и обработки хранятся в файлах, имеющих расширение .erf и .epf соответственно. Имеется возможность разработки и отладки в процессе работы системы «1С:Предприятие». В этом случае разработка и отладка обработки (отчета) значительно ускоряются: редактирование и сохранение внешней обработки (отчета) выполняются в 220 режиме Конфигуратор, без сохранения конфигурации в целом, а запуск – в режиме 1С:Предприятие. Для выполнения внешняя обработка (отчет) загружается при помощи пункта Файл – Открыть и работает так же, как и любая другая обработка (отчет) конфигурации. ПРИМЕЧАНИЕ. Внешний отчет или обработка, открываемые с помощью меню Файл – Открыть, будут исполняться в безопасном режиме, если у пользователя отсутствуют административные права доступа. Любой объект конфигурации типа Отчет или Обработка может быть сохранен в файл внешней обработки (отчета), и наоборот – существующий объект конфигурации может быть заменен внешней обработкой (отчетом). Для внешней обработки (отчета) может быть создана справочная информация, как и для других объектов конфигурации. СОВЕТ. Для обеспечения целостности конфигурации внешние обработки (отчеты) рекомендуется использовать в основном в отладочных целях. После отладки алгоритма формирования обработки (отчета) необходимо включить внешнюю обработку в конфигурацию. 6.3.12.1.1. Создание внешней обработки (отчета) Для создания внешней обработки (отчета) необходимо выбрать пункт Файл – Новый и в выданном на экран запросе выбрать строку Внешняя обработка или Внешний отчет. Рисунок 6.77 – Выбор вида документа На экран будет вызван редактор форм для разработки внешней обработки (отчета). Для внешнего отчета окно редактирования будет дополнительно содержать управляющие элементы для создания, настройки и редактирования системы компоновки данных. Так как внешняя обработка (отчет) не является частью текущей конфигурации (хотя и очень тесно с ней связана), процедура ее сохранения отличается от процедуры сохранения изменений конфигурации. Для сохранения внешней обработки (отчета) необходимо использовать пункт Файл – Сохранить, или Файл – Сохранить как..., или Файл – Сохранить копию. В стандартном диалоге сохранения файла нужно выбрать тип файла Внешняя обработка (*.epf) (Внешний отчет (*.erf)) и ввести имя для сохраняемой внешней обработки (отчета). 6.3.12.1.2. Использование внешних обработок (отчетов) Для использования внешней обработки (отчета) при работе с системой «1С:Предприятие» ее необходимо открыть так же, как это делается в конфигураторе. Однако следует иметь в виду, что в системе «1С:Предприятие» внешняя обработка (отчет) открывается только для исполнения: пользователь не может его редактировать. При 221 попытке открытия проверяются соответствующие права доступа и происходит установка безопасного режима (если у пользователя нет административных прав). Компиляция модуля внешней обработки (отчета) выполняется при открытии внешней обработки (отчета), поэтому после редактирования внешней обработки (отчета) в конфигураторе и ее сохранения необходимо вновь открыть эту обработку в режиме 1С:Предприятие. Кроме того, работа с внешними обработками (отчетами) возможна также на сервере «1С:Предприятия». При этом сохраняются все ограничения на использование интерактивных объектов (форм и т. д.). Для того чтобы использовать внешнюю обработку (отчет) программно, необходимо вначале подключить ее с помощью метода Подключить() (доступен только на сервере «1С:Предприятия»). // На клиенте размещаем обработку во временном хранилище АдресХранилища = ""; Результат = ПоместитьФайл(АдресХранилища, "ВнешОбработка.epf", , Ложь);... // На сервере подключаем обработку из созданного ранее // временного хранилища. ИмяОбработки = ВнешниеОбработки.Подключить(АдресВременногоХранилища); В переменную ИмяОбработки будет помещено имя внешней обработки, с помощью которого в дальнейшем будет происходить обращение к подключенной внешней обработке, например, открытие формы обработки: // Откроем форму подключенной внешней обработки ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма"); Для программной работы внешняя обработка (отчет) может быть расположена: ● в файле, который расположен в конфигурации (например, в макете); ● в данных информационной базы; ● во временном хранилище. Имена внешних обработок (отчетов) должны быть уникальны в пределах сеанса. Если осуществляется подключение (программное или интерактивное) внешней обработки (отчета) с именем, повторяющим имя уже загруженной в данном сеансе внешней обработки (отчета), то будет произведено отключение старой обработки и подключение новой. ПРИМЕЧАНИЕ. При работе внешних обработок (отчетов) в толстом клиенте следует учитывать, что при работе в режиме управляемого приложения возможно открытие только управляемых форм, при работе в обычном режиме – только обычных форм. При использовании внешних обработок (отчетов) нужно иметь в виду следующие особенности: ● если подключена новая обработка (отчет) с таким же именем, как и подключенная обработка (отчет), то открытые формы от «старой» обработки (отчета) перестают работать (генерируется ошибка); ● при подключении внешней обработки (отчета), если подключаемая обработка (отчет) двоично идентична уже подключенной, реального переподключения не происходит, ошибки при этом не выдается; ● при получении формы для внешней обработки (отчета) будет найдена открытая форма независимо от того, открыта она для подключенной сейчас обработки или для той, которая была подключена ранее (с тем же именем); ● при открытии обработки (отчета) с помощью команды главного меню Файл – Открыть, форма обработки (отчета) открывается методом ОткрытьФорму() с параметром Уникальность, равным значению Истина, чтобы можно было открыть новую форму обработки в случае ее изменения. 6.3.12.1.3. Редактирование внешней обработки (отчета) 222 Редактирование внешней обработки (отчета) выполняется в конфигураторе. Чтобы открыть существующую внешнюю обработку (отчет), следует выбрать пункт Файл – Открыть. В выданном на экран стандартном диалоге выбрать тип файла Внешняя обработка (*.epf) (Внешний отчет (*.erf)) и указать имя открываемого файла. При открытии внешней обработки (отчета) в конфигураторе автоматически открывается окно редактирования объекта. В отличие от других объектов конфигурации, отладка внешней обработки (отчета) может производиться без перезапуска системы «1С:Предприятие». Достаточно после сохранения обработки (отчета) конфигуратором заново вызвать ее на выполнение в режиме 1С:Предприятие. 6.3.12.1.4. Справочная информация Внешняя обработка (отчет) может быть снабжена пользовательским описанием. Для редактирования описания в палитре свойств внешней обработки нужно щелкнуть ссылку Открыть свойства Справочная информация. В режиме 1С:Предприятие для просмотра описания внешней обработки (отчета) необходимо нажать клавишу F1. 6.3.12.1.5. Внешние обработки (отчеты) и объекты конфигурации Существующие в конфигурации объекты типа Отчет и Обработка могут быть преобразованы во внешние отчеты и обработки, и наоборот, внешние отчеты и обработки могут заменять собой существующий объект конфигурации типа Отчет или Обработка. Также внешние отчеты и обработки могут быть добавлены в структуру конфигурации как новые объекты конфигурации типа Отчет или Обработка. Копирование обработки (отчета) во внешнюю обработку (отчет) Существующий объект конфигурации типа Отчет или Обработка может быть скопирован во внешнюю обработку или отчет. Для этого нужно выделить наименование объекта конфигурации в окне Конфигурация и в контекстном меню объекта конфигурации выбрать пункт Сохранить как внешнюю обработку, отчет. Затем в выданном на экран стандартном диалоге сохранения файла выбрать тип файла Внешняя обработка (*.epf) (Внешний отчет (*.erf)) и указать имя файла внешней обработки (отчета). В результате будет создана внешняя обработка (отчет), которая будет скопирована с выбранного объекта конфигурации. Сам объект конфигурации при этом не изменится. Выполнение этой операции целесообразно для последующей отладки создаваемого отчета или обработки. По окончании отладки внешняя обработка или отчет может быть вставлена в конфигурацию взамен существующего объекта конфигурации. Замена обработки (отчета) на внешнюю обработку (отчет) Внешние отчет или обработка могут заменить собой существующий объект конфигурации типа Отчет или Обработка. Для замены объекта конфигурации внешней обработкой (отчетом) необходимо выделить его наименование в окне Конфигурация и использовать пункт Заменить на внешнюю обработку, отчет контекстного меню объекта конфигурации. Затем в выданном на экран стандартном диалоге открытия файла выбрать тип файла Внешняя обработка (*.epf) (Внешний отчет (*.erf)) и указать имя файла внешней обработки (отчета). Добавление внешней обработки (отчета) в структуру конфигурации Существующая внешняя обработка (отчет) может быть вставлена в структуру конфигурации как новый объект конфигурации типа Отчет или Обработка. Для этого необходимо в структуре конфигурации выделить наименование любого объекта конфигурации типа Отчет или Обработка и использовать пункт Вставить внешнюю 223 обработку, отчет контекстного меню объекта конфигурации. В выданном на экран стандартном диалоге открытия файла необходимо выбрать тип файла Внешняя обработка (*.epf) (Внешний отчет (*.erf)) и указать имя файла внешней обработки (отчета), которую требуется вставить в структуру конфигурации. В результате этих действий в дереве конфигурации появится новая обработка (отчет). 6.3.12.1.6. Сравнение и объединение внешних обработок (отчетов) Внешние обработки (отчеты) можно сравнивать и объединять с обработками (отчетами), расположенными в конфигурации, а также сравнивать и объединять с другими внешними обработками (отчетами). Для сравнения и объединения с отчетом или обработкой конфигурации в окне Конфигурация следует указать нужный объект, в контекстном меню этого объекта выбрать пункт Сравнить, объединить с внешней обработкой, отчетом... В стандартном диалоге выбора файла выбрать нужную внешнюю обработку (отчет). На экран выводится окно Сравнение и объединение... Приемы работы в окне полностью совпадают с приемами работы при объединении конфигураций. Рисунок 6.78 – Объединение обработок Для сравнения или объединения внешней обработки (отчета) с другой внешней обработкой (отчетом) нужно открыть исходную внешнюю обработку (отчет), в окне редактирования нажать кнопку Действия и в выпадающем меню выбрать пункт Сравнить, объединить с внешней обработкой, отчетом. В стандартном диалоге выбора файла выбрать нужную внешнюю обработку (отчет). 6.3.13. Планы видов характеристик В системе «1С:Предприятие» объекты Планы видов характеристик предназначены для описания видов характеристик объектов аналитического учета. Примером использования объектов данного типа является описание характеристик товаров, контрагентов. Они используются для реализации аналитического учета по 224 субконто (не по субсчетам) при создании плана счетов. Основной особенностью использования планов видов характеристик является то, что объекты данного типа не описывают напрямую конкретный товар или счет, а ссылаются на такое описание. Так, для управленческого учета часто требуется описать не только такие обязательные свойства номенклатуры, как наименование, цена, артикул, поставщик, но и другие – цвет, срок годности, размер, вес, вкус и т. д. Очевидно, что для разных видов товара будет разный набор характеристик (для обуви желательно указать размер, полноту, цвет, материал и другие особенности; но эти характеристики не нужны для описания компьютерной техники). В этом случае достаточно, чтобы в конфигурации на объектном уровне были созданы все необходимые схемы описаний, а для конкретной позиции номенклатуры был выбран нужный вид описания (вид характеристики). Конфигуратор системы «1С:Предприятие» позволяет организовать любое количество планов видов характеристик в соответствии с требованиями полноты аналитического учета на предприятии. С точки зрения основных приемов работа с объектами типа План видов характеристик очень схожа с работой над объектами типа Справочник. Объекты также могут образовывать иерархическую структуру, они имеют одинаковый состав подчиненных объектов, их создание и редактирование можно выполнять в форме элемента, в форме списка или обоими способами и т. д. Для объекта План видов характеристик разработчик конфигурации может создать набор предопределенных элементов. Эти элементы не могут быть удалены пользователями в режиме 1С:Предприятие. Настройка объектов План видов характеристик имеет некоторые особенности. Объект План видов характеристик имеет свойство Тип значения характеристик, которое позволяет определить набор возможных типов данных, используемых для видов характеристик. Выбор типа значения осуществляется на закладке Основные окна редактирования объекта. Обычно при указании типа используют составной тип данных. Это позволяет при вводе конкретной характеристики сразу указывать нужное значение. Так, например, для плана счетов при определении видов субконто используется объект плана видов характеристик ВидыХарактеристикТоваров, для которого тип значения характеристики определяется как составной (рисунок 6.79). 225 Рисунок 6.79 – План видов характеристик «Виды характеристик товаров» Так, в случае использования объектов План видов характеристик для описания структуры плана счетов бухгалтерского учета виды субконто будут выбираться из предопределенных видов характеристик. При создании конкретного счета указывают, какие виды субконто связаны с данным счетом. Рисунок 6.80 – Использование видов субконто 226 Как видно из рисунка, счет 40 «Выпуск продукции (работ, услуг)» имеет два вида субконто – НоменклатурныеГруппы и ВидыСтоимости, которые выбираются из набора предопределенных видов характеристик, определенных в данном плане видов характеристик. Для ведения учета в разрезе характеристики, не имеющей описания (справочника) в конфигурации, используется свойство плана видов характеристик Дополнительные значения характеристик. Например, требуется вести учет в разрезе центров затрат, а соответствующего справочника в конфигурации нет. Тогда пользователь может создать собственный вид характеристики ЦентрЗатрат и указать, что значениями данного вида характеристик будут элементы дополнительного справочника. Так как данный справочник подчинен плану видов характеристик, то при выборе будут выдаваться только элементы справочника, подчиненные данному виду характеристик. Таким образом, значения от разных видов не будут смешиваться. ВНИМАНИЕ! При выборе в свойстве Тип значения характеристик примитивных типов Число, Строка или Дата в диалоге редактирования типа данных следует указать размер или состав типа с таким расчетом, чтобы данное описание охватывало все возможные значения. Так, если дробная часть числовых типов не указана, нельзя будет ввести дробные числа. Изменение в описании числовых данных после ввода пользовательских значений может привести к потере этих данных. Для создания предопределенных элементов в окне редактирования объекта типа План видов характеристик на закладке Прочее нужно нажать кнопку Предопределенные. На экран выводится окно со списком предопределенных элементов. Рисунок 6.81 – Предопределенные элементы плана видов характеристик Работа со списком предопределенных характеристик выполняется с помощью пунктов меню Действия. Визуально в режиме 1С:Предприятие предопределенные элементы характеристик отличаются от элементов, созданных пользователями, видом пиктограммы. В режиме 1С:Предприятие для элементов характеристик, созданных пользователями, тип значения можно менять. Пример создания и использования плана видов характеристик Можно привести примерную структуру данных для реализации хранения характеристик (несущественные для данного примера поля таблиц мы опускаем).  Справочник «Номенклатура» Наименование Телефон Vega 700 Телефон Vega 300 Копировальный аппарат Omega 227  План видов характеристик «ВидыХарактеристикНоменклатуры» Наименование Вес Время работы Формат бумаги Основной поставщик  Регистр сведений «ХарактеристикиНоменклатуры» Наименование (измерение) ВидХарактеристики (измерение) ЗначениеХарактеристики (ресурс) Ссылка: Телефон Vega 700 Ссылка: Вес 70 Ссылка: Телефон Vega 700 Ссылка: Время работы 120 Ссылка: Телефон Vega 300 Ссылка: Вес 50 Ссылка: Телефон Vega 300 Ссылка: Время работы 80 Ссылка: Копировальный Ссылка: Вес аппарат Omega 1300 Ссылка: Копировальный Ссылка: Формат бумаги аппарат Omega «А4» Ссылка: Копировальный Ссылка: аппарат Omega поставщик  Основной Ссылка: Приборпоставка Справочник «Контрагенты» Наименование Ссылка: Приборпоставка Внесем в конфигурацию объекты метаданных (справочники, план видов характеристик и регистр сведений) с приведенной в таблицах структурой. При попытке реализовать в конфигурации приведенный пример встанет один существенный вопрос. Неизвестно, какой тип нужно выбрать для ресурса ЗначениеХарактеристики регистра ХарактеристикиНоменклатуры. Действительно, характеристики имеют не только различный смысл, но и различные типы значений. Здесь и начинают играть свою роль специфические особенности плана видов характеристик. Отличием плана видов характеристик от справочника является возможность описания типов значений характеристик. В метаданных для плана видов характеристик задается свойство Тип, описывающее тип значений характеристик. Это свойство имеет тип ОписаниеТипов и должно содержать все типы значений, которые могут принимать различные характеристики. Например, в данном случае для плана видов характеристик ВидыХарактеристикНоменклатуры можно указать типы: ● Строка, длина 20; ● Число, формат 15.2; ● СправочникСсылка.Контрагенты. Такой набор типов должен обеспечить хранение всех приведенных в примере значений характеристик. После того как мы задали в плане видов характеристик значение свойства Тип (тип значения характеристик), в перечне типов, доступных для выбора, появляется тип Характеристика.ВидыХарактеристикНоменклатуры. 228 Теперь при выборе типа ресурса ЗначениеХарактеристики мы можем выбрать тип (Характеристика.ВидыХарактеристикНоменклатуры), который определен планом видов характеристик. Следует обратить внимание на то, что здесь необходимо выбрать не тип ПланВидовХарактеристикСсылка.ВидыХарактеристикНоменклатуры, а именно тип Характеристика.ВидыХарактеристикНоменклатуры. Фактически выбором типа Характеристика.ВидыХарактеристикНоменклатуры мы определяем тип ресурса косвенно, то есть указываются не конкретные типы, а указывается, что состав типов должен определяться типами, выбранными в свойстве плана видов характеристик. Таким образом, создав план видов характеристик, мы определили возможность хранения в базе данных перечня видов характеристик товаров и определили область допустимых значений характеристик. Однако план видов характеристик позволяет не только описывать типы значений характеристик всех видов, но и хранить в базе данных типы значений каждого вида характеристик, ведь в метаданных мы задаем типы для значений всех возможных видов характеристик, а у характеристик конкретного вида могут быть значения определенных типов. Например, вес должен задаваться именно числовым значением. Для решения этой задачи в плане видов характеристик поддерживается поле ТипЗначения. Это поле имеет тип ОписаниеТипов и предназначено для описания допустимых типов конкретных видов характеристик. Таким образом, в нашем примере данные плана видов характеристик будут иметь следующий вид:  План видов характеристик «ВидыХарактеристикНоменклатуры» Наименование ТипЗначения Вес Число Время работы Число Формат бумаги Строка Основной поставщик СправочникСсылка.Контрагенты Мы описали все необходимые объекты для хранения характеристик. Однако следует учитывать, что измерения Номенклатура и ВидХарактеристики с точки зрения системы никак между собой не связаны, и при вводе значений характеристик система никак не будет учитывать выбранный вид характеристики, а будет просто предлагать заполнять поле с выбором из всех типов, описанных в плане вида характеристик. В описании структуры регистра сведений не задается информация о логической связи полей, в которых хранятся виды характеристик и значения характеристик. В реальных решениях такая логическая взаимосвязь может быть достаточно сложной. Вид характеристики может храниться в других объектах и определяться в конфигурации сложным алгоритмом, зависящим от особенностей предметной области. Поэтому реализация взаимосвязи между видом характеристики и значением характеристики выполняется разработчиком конфигурации. Таким образом, в нашем случае необходимо для ввода записи регистра сведений реализовать взаимосвязь между видом характеристики и значением характеристики. Для этого необходимо установить для ресурса ЗначениеХарактеристики свойство Связь по типу в значение ВидХарактеристики. Теперь, если пользователь будет менять вид характеристики, а существующее значение не будет соответствовать допустимым для выбранного вида типам характеристики, значение характеристики будет очищаться. Для того чтобы попробовать приведенный пример, нужно внести еще небольшое изменение в конфигурацию. Для измерения Номенклатура регистра ВидыХарактеристикНоменклатуры нужно установить свойство Ведущее, чтобы данные 229 характеристик удалялись при удалении товара и чтобы в панели навигации формы справочника появилась бы команда открытия регистра сведений. Теперь мы можем убедиться, что у нас реализован механизм хранения характеристик. Открыв элемент справочника Номенклатура, мы можем выбрать гиперссылку панели навигации Характеристики номенклатуры и начать вводить характеристики конкретного элемента номенклатуры. При этом можно будет по мере ввода характеристик создавать новые виды характеристик и указывать их тип. В реализованном решении есть существенный недостаток. Реализована возможность вводить характеристики примитивных типов, а также тех ссылочных типов, которые определены в конфигурации. В данном случае используется справочник контрагентов для ввода основного поставщика. Однако очевидно, что часть свойств должна выбираться из некоторого набора значений. С другой стороны, состав значений для разных свойств будет различный. Соответственно, значения таких свойств не получится выбирать из справочников, имеющихся в конфигурации. В нашем примере мы вводим формат бумаги в качестве строки. Конечно, правильнее выбирать значение данного свойства из перечня возможных форматов, но заводить в конфигурации справочники для всех видов характеристик невозможно, так как справочники создаются при разработке конфигурации, а новые виды характеристик будут вводиться при использовании прикладного решения. В плане видов характеристик предусмотрена возможность решения этой задачи. Для хранения значений перечисляемых характеристик, которые не могут быть выбраны из имеющихся в конфигурации справочников, перечислений и других ссылочных данных, используется подчиненный справочник. Создадим подчиненный справочник ЗначенияХарактеристик и установим у него подчинение плану видов характеристик ВидыХарактеристикНоменклатуры. Далее нужно выбрать этот справочник в качестве значения свойства ДополнительныеЗначенияХарактеристик плана видов характеристик. Кроме того, необходимо добавить тип СправочникСсылка: ЗначенияХарактеристик в свойство Тип плана видов характеристик. Теперь для плана видов характеристик установлено, что он для перечисляемых значений характеристик может использовать справочник ЗначенияХарактеристик. В примере изменим ТипЗначения у вида характеристики Формат бумаги, выбрав в нем Справочник ссылка: Значения характеристик. При заполнении значения характеристики будет предложен выбор из списка справочника ограниченный владельцем – видом характеристики Формат бумаги. Структура данных полученного примера будет выглядеть следующим образом.  Справочник «Номенклатура» Наименование Телефон Vega 700 Телефон Vega 300 Копировальный аппарат Omega  План видов характеристик «ВидыХарактеристикНоменклатуры» Наименование ТипЗначения Вес Число Время работы Число Формат бумаги СправочникСсылка: ЗначенияХарактеристик Основной поставщик Справочник ссылка: Контрагенты 230 Наименование ТипЗначения Цвет корпуса СправочникСсылка: ЗначенияХарактеристик  Регистр сведений «ХарактеристикиНоменклатуры» Наименование (измерение) ВидХарактеристики (измерение) ЗначениеХарактеристики (ресурс) Ссылка: Телефон Vega 700 Ссылка: Вес 70 Ссылка: Телефон Vega 700 Ссылка: Время работы 120 Ссылка: Телефон Vega 300 Ссылка: Вес 50 Ссылка: Телефон Vega 300 Ссылка: Время работы 80 Ссылка: Копировальный Ссылка: Вес аппарат Omega 1300 Ссылка: Копировальный Ссылка: Формат бумаги аппарат Omega Ссылка: А4 Ссылка: Копировальный Ссылка: аппарат Omega поставщик  Основной Ссылка: Приборпоставка Справочник «Контрагенты» Наименование Приборпоставка  Справочник «ЗначенияХарактеристик» Владелец Код Наименование Ссылка: Формат бумаги 1 А3 Ссылка: Формат бумаги 2 А4 Ссылка: Цвет корпуса 3 Белый Ссылка: Цвет корпуса 4 Серебристый План видов характеристик предоставляет возможность вводить виды характеристик в процессе работы с информационной базой. Однако существует возможность определить в конфигурации и предопределенные виды характеристик. В основном рекомендуется создавать такие виды не как виды характеристик по умолчанию, а как значения, используемые в логике работы самой конфигурации. Например, это может быть процент новогодней скидки. Если такая характеристика введена для товара, то алгоритм расчета цен может использовать ее при определении отпускной цены в предновогодний период. 6.3.14. Регистры Регистры «1С:Предприятия» предназначены для хранения и обработки различной информации, отражающей хозяйственную или организационную деятельность предприятия. Объекты информационной базы типа Документ и Справочник предназначены для хранения информации об объектах предметной области, таких как сотрудники, товары, материалы, валюты. Соответственно, каждый объект базы данных отражает соответствующий объект предметной области. 231 В регистрах обычно хранится информация об изменении состояний объектов или другая информация, не отражающая непосредственно объекты предметной области. Например, в регистрах может храниться информация о курсах валют или информация о приходе и расходе товаров. Объект базы данных существует независимо от значений его реквизитов и имеет самостоятельную ценность. Например, у сотрудника может поменяться фамилия, номер паспорта и любые другие реквизиты. При этом он будет оставаться тем же самым физическим лицом. После удаления объект нельзя создать заново. Даже если завести все его реквизиты в соответствии с удаленным объектом, это будет уже другой объект. Для объекта система хранит внутренний идентификатор – ссылку. Ссылка уникальна в пределах всей информационной базы. Двух объектов с одинаковыми ссылками не может существовать на всем протяжении жизни информационной базы. Ссылки удаленных объектов не присваиваются вновь созданным объектам. Система предоставляет возможность хранить в полях базы данных ссылки на объекты базы данных. Единицей хранения информации в регистрах является запись. Прикладная нагрузка записи регистра определяется исключительно хранящимися в ней данными. Например, сама запись о курсе валюты не представляет собой ничего существенного. Она не соответствует никакому объекту в предметной области. Существенным является только то, что в ней содержится валюта, дата и курс валюты, установленный на эту дату. Можно удалить эту запись и внести такую же – это не повлияет на логику работы системы. Соответственно, у записей регистров не существует ссылок, и в полях базы данных нельзя хранить ссылки на записи регистров. В данной главе приведено описание регистров сведений и регистров накоплений. 6.3.14.1. Регистры сведений В этом разделе будет рассказано о понятии «регистр сведений» и об основах использования этих регистров. 6.3.14.1.1. Общая информация о регистрах сведений Основная задача регистра сведений – хранить существенную для прикладной задачи информацию, состав которой развернут по определенной комбинации значений и при необходимости развернут во времени. Например, если мы хотим хранить информацию о ценах конкурентов на продаваемые нами товары, то собранная информация о ценах разворачивается по товарам и конкурентам. А если мы хотим отслеживать динамику изменений цен и будем заносить их периодически, то хранимая информация разворачивается также и во времени. В системе «1С:Предприятие» для хранения подобных данных и работы с ними используется специальный механизм – регистр сведений. Регистр сведений фактически представляет собой в общем случае многомерный массив данных, необходимый для реализации функции, которая может выдать нужную информацию по определенному набору аргументов. Аргументы функции называются измерениями, а результат функции – ресурсами. В приведенном выше примере двумерный регистр ЦеныКонкурентов будет содержать измерения Конкурент и Товар и ресурс Цена. Ресурсов может быть больше чем один: например, можно хранить оптовую и розничную цены. Помимо измерений и ресурсов для регистра сведений может быть создан набор реквизитов. Реквизиты позволяют включать в записи регистров различную дополнительную информацию. Реквизиты не влияют на значения ресурсов регистра и могут использоваться для анализа записей регистра. Регистры сведений, информация в которых развернута во времени, называются периодическими. Для периодических регистров сведений система поддерживает такие 232 стандартные операции, как получение наиболее позднего или наиболее раннего значения (например, получение последней введенной цены по конкретному товару и конкретному конкуренту), а также получение среза наиболее поздних или ранних значений. Например, могут быть получены все последние введенные цены по различным товарам и конкурентам. Для разворота информации во времени используется поле Период регистра. Оно не вносится в качестве измерения, а добавляется системой автоматически при создании периодического регистра. Для регистров сведений можно не создавать измерений. В этом случае регистр будет представлять набор периодических данных. Такие регистры могут использоваться, например, для хранения фамилий различных должностных лиц, чьи подписи располагаются в документах. В процессе ведения хозяйственной деятельности документы создаются и подписываются должностными лицами, имеющими право подписи в определенный момент времени. здесь показывалось, как использовать значения констант для подобных целей. Недостатком данного приема в случае смены значения константы является то, что при открытии архивного документа будет указана новая фамилия ответственного лица, выбранная из константы. В таких случаях нужно использовать не константу, а периодический регистр сведений, который хранит данные об изменениях, а в документах используется выбор значений из регистра сведений по дате документа. Наиболее характерный пример одномерной периодической величины – курс валюты. При выполнении каких-либо расчетов (например, при определении рублевой цены пересчетом валютной цены по курсу) важно знать его величину на момент вычисления. Особенно важно знать курс валюты при выполнении каких-либо расчетов задним числом – в этом случае необходимо «вспоминать» курс за уже прошедшие даты. Чтобы иметь возможность получать подобные сведения, необходимо создать таблицу, графами в которой были бы, очевидно, наименование валюты, дата курса и сама величина курса. Строки такой таблицы содержат курс нескольких валют на конкретную дату. Дата Валюта Курс 31.10.2008 USD 26,5430 31.10.2008 EUR 35,0447 01.11.2008 USD 27,0981 01.11.2008 EUR 34,4092 02.11.2008 USD 27,0793 02.11.2008 EUR 34,4828 При обращении к подобной таблице следует иметь в виду, что в колонке Курс хранятся конкретные величины курса на определенную дату и подразумевается, что на все последующие даты, до новой величины курса, курс не меняется. Поэтому для получения курса на какую-то промежуточную дату следует брать величину курса на ближайшую предыдущую дату, на которую существует записанный курс. Также следует понимать, что различные значения валют в колонке Валюта фактически означают, что ведется параллельная история курсов нескольких валют. Иначе говоря, приведенную выше таблицу можно отобразить по-другому. Дата Курс USD Курс EUR 31.10.2008 26,5430 35,0447 233 Дата Курс USD Курс EUR 01.11.2008 27,0981 34,4092 02.11.2008 27,0793 34,4828 Подобных колонок курсов в таблице может быть столько, сколько курсов разных валют требуется хранить. Если регистр непериодический, то поле Период для него не создается. В приведенном примере регистр ЦеныКонкурентов может быть непериодическим, если мы не хотим хранить историю изменения цен, а хотим иметь только актуальные цены. Тогда функция регистра сможет ответить на вопрос: «Какая сейчас цена у такого-то конкурента на такой-то товар», но не сможет ответить на вопрос: «Какая была цена у такого-то конкурента на такой-то товар в начале года». Из описанных принципов работы регистра сведений вытекает то, что в системе может быть только одна запись с определенным набором и периодом измерений. Действительно, по одному товару одного конкурента может быть только одна цена. Если по какой-либо причине мы можем получить несколько цен и хотим занести эту информацию в базу данных, то нам нужно создать еще одно измерение для хранения того значения, по которому эти цены могут различаться. Например, можно завести измерение ИсточникИнформации. Тогда можно будет вводить цены конкурентов в разрезе источников. Уникальность записей по набору измерений принципиально отличает регистры сведений от регистров накоплений, которые позволяют вводить несколько записей с одинаковым значением измерений и периодом. 6.3.14.1.2. Записи регистра сведений Строки регистра сведений, содержащие информацию о значениях ресурсов для определенных значений измерений и конкретного периода, называются записями. Записи в регистр сведений можно вносить двумя способами: ● вручную, ● документами. Эти два варианта влияют на способ внесения информации, а не на основную логику работы регистра. Документ, которым вносится запись в регистр сведений, называется регистратором. Регистры, записываемые независимо, могут свободно редактироваться вручную или средствами встроенного языка. При этом если измерение такого регистра назначено как «ведущее» и значением измерения является ссылка на объект базы данных, то будет считаться, что запись регистра имеет смысл, только пока существует этот объект. Например, если назначить ведущим измерение Конкурент, то считается, что запись имеет смысл только как информация по данному конкуренту. Соответственно, при удалении данных конкурента записи по нему будут удалены автоматически. Если регистр записывается регистратором, то это значит, что записи будут жестко подчинены регистраторам – документам. Обычно это значит, что записи будут порождаться при проведении документов. Соответственно, при удалении документа записи будут удаляться автоматически. В отличие от ведущих измерений, регистратор может быть только один. 6.3.14.1.3. Редактирование регистра сведений Для работы с регистрами сведений предназначена ветвь Регистры сведений дерева конфигурации. При редактировании регистра определяются его свойства, разрабатывается структура регистра: создаются наборы измерений, ресурсов и реквизитов регистра, 234 создаются экранные формы просмотра и редактирования записей регистра и, если необходимо, печатные формы регистра. В этом разделе в дополнение к общим свойствам объектов конфигурации будут описаны уникальные свойства регистра сведений. Регистр редактируется в окне редактирования Регистр сведений. Свойства регистра собраны на закладках. Рисунок 6.82 – Редактор регистра сведений Периодичность – это свойство позволяет указать, с какой периодичностью регистр должен сохранять значения ресурсов. Это свойство напрямую влияет на возможность получения значений ресурсов регистра методами встроенного языка. Для непериодического регистра можно получить только последнее введенное значение ресурсов регистра – информация за предыдущие периоды в таком регистре отсутствует. Для периодических регистров нельзя получить значение с меньшей периодичностью, чем установленная периодичность регистра. Периодичность не зависит от способа редактирования регистра. Режим записи – свойство определяет, каким образом будут вноситься записи: независимо (например, вручную) или будут подчиняться регистратору (например, документами). Если для регистра указано, что он периодический и выбран независимый режим записи, то становится доступным свойство Основной отбор по периоду. Если флажок установлен, то наряду с основными измерениями и реквизитами регистра, участвующими в отборе записей при регистрации изменений, можно указывать отбор по полю Период. На закладке Данные формируется структура данных регистра. Создаются измерения и ресурсы, а также реквизиты. 235 На закладке Регистраторы производится управление списком регистраторов. Закладка доступна, если в свойстве Режим записи установлено Подчинение регистратору. Рисунок 6.83 – Задание регистраторов регистра сведений В верхнем списке производится управление списком регистраторов (устанавливаются или снимаются отметки), а в нижнем списке приводится список отмеченных объектов, являющихся регистраторами. Аналогично описанному для регистров сведений механизму управления списком регистраторов производится управление списком регистраторов для других видов регистров. Особенностью ресурсов регистров сведений является широкая типизация данных, в отличие от регистров других типов, где ресурсы могут быть только числовыми. 6.3.14.1.4. Разработка структуры регистра сведений Разработка структуры регистра заключается в создании наборов измерений, ресурсов и реквизитов. Для управления списком измерений, ресурсов и реквизитов регистра и редактирования их свойств служат управляющие элементы групп Измерения, Ресурсы, Реквизиты окна редактирования Регистр. С точки зрения настройки элементы этих групп одинаковы. Свойства измерения (ресурса, реквизита) регистра сведений Свойства измерений, ресурсов и реквизитов редактируются при помощи палитры свойств. В основном они совпадают с общими свойствами объектов конфигурации. Ниже в этом разделе будут описаны уникальные свойства измерений, ресурсов и реквизитов. 236 Ведущее – установка этого свойства имеет смысл для измерений, тип данных которых – ссылка на объект конфигурации. В этом случае считается, что запись регистра сведений имеет смысл, только пока существует этот объект. При удалении объекта записи по нему будут автоматически удалены из регистра. Запрет пустых значений – установка этого флажка включает механизм запрета записи регистра с пустым значением измерения. Индексировать – для измерений свойство доступно для редактирования, если измерение не является ведущим. Для измерений, ресурсов и реквизитов с установленным свойством Индексировать создается отдельный индекс, что увеличивает производительность при работе с регистром. Для ведущих измерений индекс создается всегда. При просмотре регистра в режиме 1С:Предприятие существует возможность сортировать записи регистра по индексированным измерениям, ресурсам и реквизитам. Необходимое число форм для просмотра и редактирования регистра должно быть создано в процессе разработки конфигурации. Упорядочивание списка измерений регистра сведений Порядок расстановки измерений регистра сведений имеет важное значение. Измерения, к которым необходим быстрый доступ, следует располагать в начале списка измерений. Последовательность расстановки измерений регистра сведений влияет на возможность применения методов встроенного языка, использующих позиционный доступ к измерениям. Также необходимо иметь в виду, что изменение порядка измерений требует реструктуризации информационной базы. 6.3.14.2. Регистры накопления Регистры в системе «1С:Предприятие» используются для накопления информации о наличии и движении каких-либо величин – материальных, денежных и других. Вся информация о хозяйственных операциях, которая вводится с использованием документов или формируется при помощи расчетов, должна быть накоплена в регистрах. Тогда эту информацию можно будет извлечь, проанализировать и представить пользователю в виде отчетных форм. В этом разделе будет рассказано о понятии регистр накопления и даны сведения об основах использования. 6.3.14.2.1. Общая информация о регистрах накопления Регистр накопления – это объект конфигурации, предназначенный для хранения движений регистра и итоговой информации. Проблема, которая обычно возникает при создании «хранилища» сводной информации, состоит в определении его структуры: в каких разрезах следует накапливать сводные данные, чтобы затем можно было извлечь нужную информацию без утомительной обработки. Система «1С:Предприятие» использует простые и в то же время гибкие средства для создания регистров накопления: достаточно просто задать, в каких разрезах и какие данные требуется хранить в регистре, а система сама обеспечит запись и получение нужных данных простыми языковыми средствами. Методы встроенного языка позволяют получить остатки регистра накопления на заданный момент времени. Есть возможность фильтрации по значениям измерений, а также получения остатков в разрезе других измерений. Рассмотрим пример. Предположим, что в создаваемой программе торговоскладского учета требуется хранить сведения о количестве и стоимости каждого товара на каждом складе. В дальнейшем предполагается получать информацию такого типа: 237 «остаток конкретного товара на конкретном складе», «остаток конкретного товара всего, на всех складах», «стоимость всех товаров на конкретном складе». В идеологии системы «1С:Предприятие» регистр накопления такого вида представляет собой прямоугольную систему координат, на одной оси которой находятся склады, на другой – товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара. Рисунок 6.84 – Регистр накопления Физический смысл регистра накопления сформулировать довольно сложно, и, скорее всего, регистр накопления не имеет материального аналога. ВНИМАНИЕ! Поэтому определим, что регистр накопления – это n-мерная система координат, в узлах которой хранятся совокупные данные. Оси такой системы координат будем называть измерениями регистра, а хранящиеся в узлах данные – ресурсами регистра. 6.3.14.2.2. Движения регистра накопления Изменение состояния регистров накопления выполняется обычно при проведении документа. Процедура проведения документа расположена в модуле документа и содержит алгоритм формирования сведений об изменениях в регистрах, которые необходимо выполнить при проведении документа. Эти сведения называются движениями регистра. Механизм подсчета итогов использует движения регистров для выполнения непосредственных изменений в регистрах накопления. Таким образом, движения регистров содержат только приращения (со знаком плюс или минус) значений ресурсов регистра, а не итоговые величины значений. Специалист, выполняющий конфигурирование системы, имеет возможность предоставить конечному пользователю средства просмотра движений регистров. Конфигуратор позволяет создавать экранные и печатные формы для просмотра и анализа движений регистров. В процессе разработки конфигурации можно создать неограниченное количество регистров накопления. Однако следует учитывать, что запись изменений в большом числе регистров при проведении документа может вызывать уменьшение скорости работы системы в целом. 238 Помимо измерений и ресурсов для регистра накопления может быть создан набор реквизитов. Реквизиты позволяют включать в движения регистров различную дополнительную информацию. Реквизиты не влияют на значения ресурсов регистра и могут использоваться для анализа движений регистра. 6.3.14.2.3. Итоги регистра накопления Как было написано выше, изменения в регистрах вносятся движениями регистра. Движения регистров оказывают влияние на его итоги. Итоги – это сводная информация регистров, которая получается путем суммирования значений, вносимых движениями регистров. Итоги регистра накопления можно представить в виде таблицы с количеством колонок, равным сумме измерений и ресурсов регистра накопления. Количество строк таблицы будет зависеть от количества различных значений измерения и ресурсов. Товар Склад Количество Сумма Стол Розничный 10 5 000 Стол Оптовый 5 2 500 Шкаф Временный 7 10 500 Шкаф Оптовый 2 3 000 Шкаф Розничный 10 15 000 Из таблицы видно, что измерение Товар принимает значения Стол, Шкаф, а измерение Склад – Временный, Оптовый и Розничный. В колонках Количество и Сумма, отражающих ресурсы регистра накопления, записано количество и сумма каждого товара на каждом складе. В отличие от движений регистра, нет возможности непосредственно просматривать итоги регистра накопления. Для обращения к итогам в конфигурации может быть создано необходимое число отчетов, которые будут обращаться к итогам и выдавать их в виде товарных отчетов, складских карточек и ведомостей и т. д. 6.3.14.2.4. Регистры остатков и регистры оборотов В системе «1С:Предприятие» возможно использование регистров накопления двух типов: регистры остатков и регистры оборотов. Для регистра остатков методы встроенного языка позволяют получить остатки регистра накопления на заданный момент времени. Есть возможность фильтрации по значениям измерений, а также получения остатков в разрезе других измерений. Регистры оборотов предназначены для хранения информации, для которой понятие остатка лишено смысла, например, сумм продаж в разрезе покупателей. Рассмотрим в качестве примера отслеживание взаиморасчетов с покупателями товаров, которые производит или продает предприятие (потребителями услуг, оказываемых предприятием, и так далее). Можно утверждать, что ведение подобного учета – обязательная часть общего учета на любом предприятии. Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр Взаиморасчеты, в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр Взаиморасчеты – это регистр остатков. Однако быстро получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра Взаиморасчеты нельзя – он такой 239 информации не хранит. Поэтому придется приложить дополнительные усилия для ее получения: например, можно включить в структуру регистра реквизит Контрагент, а затем отобрать движения регистра по нужному контрагенту и вычислить общую сумму закупок. Но когда необходимо получать эти сведения оперативно (например, при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит. В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре – назовем его Объем закупок – для каждого покупателя будет храниться информация об объеме закупок (об обороте покупателя). Теперь при совершении хозяйственных операций необходимо будет изменять не только состояние регистра Взаиморасчеты, но и регистр Объем закупок. В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре Объем закупок будет постоянно накапливаться информация об общем объеме закупок клиента. Из всего сказанного выше можно сделать выводы о преимуществах использования регистров. Прежде всего, регистры используются для хранения информации, к которой требуется получать оперативный доступ. «Уровень оперативности» и, соответственно, целесообразность использования регистра должен определять специалист, выполняющий конфигурирование системы «1С:Предприятие», в соответствии с требованиями пользователей системы. Также можно сказать, что регистры позволяют получать наиболее достоверную информацию о состоянии средств. Так как процессы сохранения документа и записи изменений в регистрах разделены (допускается сохранение документа без его проведения), может возникать расхождение между данными документов и информацией в регистрах. Но регистр, в отличие от документа, является хранилищем итоговой информации, поэтому именно запись изменений в регистры служит подтверждением того, что хозяйственная операция совершена. 6.3.14.2.5. Основные свойства регистра накопления Для работы с регистрами накопления предназначена ветвь Регистры накопления дерева конфигурации. Редактирование свойств объектов типа Регистр накопления и создание подчиненных объектов выполняются в окне редактирования. При редактировании регистра накопления определяется его вид, разрабатывается структура регистра: ● создаются наборы измерений, ресурсов и реквизитов регистра; ● если необходимо, создаются экранные и печатные формы просмотра движений регистра. В этом разделе будут описаны уникальные свойства регистра накопления, в дополнение к общим свойствам объектов. Вид регистра – если регистр предназначен: ● для хранения остатков (выберите из списка значение Остатки); ● хранения оборотов – значение Обороты. Разница между регистрами остатков и оборотов рассматривалась выше. Основные формы – для регистра может быть создано несколько форм для просмотра его движений. Если форм для ввода и выбора несколько, то в свойстве Основная форма можно указать форму, которая будет использоваться по умолчанию. Разрешить разделение итогов – если флажок установлен в значение Истина (значение по умолчанию), то будет задействован механизм разделителя итогов, который обеспечивает более высокую параллельность работы при записи в регистр. При одновременной записи движений несколькими сеансами система не будет обновлять одни 240 и те же записи итогов, а будет записывать изменения итогов отдельно. При получении итогов эти данные складываются. Таким образом, обеспечивается и поддержание в актуальном состоянии итогов (для быстрого получения отчетов, например), и параллельность записи движений. Этот режим требует дополнительных расходов ресурсов (например, увеличивается количество данных в итоговых таблицах). Поэтому свойства есть и в конфигурации, и в языке для управления этим режимом. Записи будут «размножаться» только при параллельно выполняемых транзакциях. Их количество по каждой комбинации измерений будет зависеть от максимального количества одновременно выполняемых транзакций. При пересчете итогов накопленные отдельные записи сворачиваются. Режим разделения итогов может быть изменен пользователем в режиме работы 1С:Предприятие. По умолчанию свойство включено. Использование в итогах – если флажок установлен в значение Ложь, измерение исключается из хранимых итогов регистра. Также для регистра может быть создано несколько форм для просмотра его движений. Если форм для ввода и выбора несколько, то в свойстве Основная форма списка можно указать форму, которая будет использоваться по умолчанию. 6.3.14.2.6. Агрегаты оборотных регистров накопления Для повышения производительности системы в случае использования оборотных регистров накопления предназначен механизм агрегатов. Можно сказать, что агрегаты – это специализированные хранилища, предназначенные для использования в рамках механизмов запросов «1С:Предприятия». Основные понятия При дальнейшем рассмотрении работы с агрегатами будут использоваться некоторые термины, которые мы определим в этом разделе. Агрегат – физическая таблица базы данных, хранящая сводные обороты всех ресурсов регистра по выбранным измерениям с выбранной периодичностью и за определенный период. В регистре, для которого формируются агрегаты, не может быть более 30 измерений. Агрегат характеризуется следующими параметрами: ● Размер агрегата – это размер таблицы агрегата. Оценочный показатель. ● Эффект – ожидаемое уменьшение среднего времени выполнения запроса с использованием агрегатов. Например, если эффект агрегата равен 90 %, то это означает, что среднее время выполнения запроса с использованием агрегатов будет на 90 % меньше, чем среднее время выполнения того же запроса, но с использованием итогов. Оценочный показатель. Период агрегата – интервал дат, данные за который помещены в агрегат. Периодичность агрегата – периодичность, с которой в агрегате хранятся данные. Список агрегатов – набор агрегатов, заданный на этапе конфигурирования. Список может быть сформирован либо вручную, либо загружен из файла, полученного в результате расчета оптимальных агрегатов. Статистика использования – информация о том, какие запросы (измерения, период, периодичность) выполняются к регистру. Используется для перестроения агрегатов и получения оптимального списка агрегатов. Оптимальный список агрегатов – список агрегатов, соотношение размера и эффекта которых является оптимальным для текущего состояния регистра (его движений и статистики использования). Режим агрегатов/итогов – если установлен режим агрегатов, то при выполнении запросов будут использоваться данные агрегатов; если установлен режим итогов, то при выполнении запросов будут использоваться данные итогов. 241 Использование агрегатов – выключение использования агрегатов означает, что при изменении движений не будет выполняться никаких операций над агрегатами. Выключать использование агрегатов имеет смысл на время массированной загрузки данных в регистры, однако последующее включение использования агрегатов может привести к ресурсоемкому процессу актуализации агрегатов (если изменяемые данные находятся внутри периода агрегатов). Общая схема работы с агрегатами Приведем общую схему работы с агрегатами: Рисунок 6.85 – Общая схема работы с агрегатами ПРИМЕЧАНИЕ. Данная схема описывает работу с одним регистром. Если необходимо работать с несколькими регистрами, то операцию, выполняемую на каждом шаге, следует выполнить для каждого регистра. Более подробно распишем приведенную схему работы: 1. Нужно создать в конфигураторе необходимый список агрегатов. Это можно сделать несколькими способами: ● Рассчитать (например, в режиме итогов) и загрузить оптимальные агрегаты (метод ОпределитьОптимальныеАгрегаты()). Если агрегаты ранее не использовались, то список оптимальных агрегатов будет получен только на основании таблицы движений регистра. Если агрегаты использовались, то список оптимальных 242 агрегатов будет построен на основании таблицы движений и статистики использования. ● Создать собственный список агрегатов на основании анализа запросов к регистру. 2. После обновления конфигурации базы данных включить для регистра режим агрегатов (метод УстановитьРежимАгрегатов()). 3. Далее необходимо выполнить перестроение агрегатов (метод ПерестроитьИспользованиеАгрегатов()). Перестроение агрегатов – это процесс определения того, как будет использоваться введенный (на шаге 1) список агрегатов. 4. Затем необходимо выполнить обновление агрегатов (метод ОбновитьАгрегаты()). Обновление агрегатов производит перенос данных из таблиц движений выбранного регистра в соответствующие таблицы агрегатов. Переносятся те движения, которые были созданы в таблице движений после предыдущего обновления агрегатов. 6.3. Далее следует накопить статистику использования созданных агрегатов. Для этого следует в течение некоторого интервала времени (например, 1 месяц) выполнять типовые задачи, в которых используются данные из регистра, для которого был включен режим агрегатов. В процессе работы необходимо регулярно выполнять обновление агрегатов. 6. После того как истечет выбранный интервал, следует заново рассчитать оптимальные агрегаты (метод ОпределитьОптимальныеАгрегаты()). 7. Затем необходимо определить, требуется изменение списка агрегатов в метаданных конфигурации или нет. Если изменение не требуется, то следует продолжить работу, перейдя на шаг 3. 8. Если необходимо выполнить обновление списка агрегатов, то следует выполнить загрузку необходимых (или всех) агрегатов (из списка оптимальных). Затем нужно обновить конфигурацию базы данных (произойдет реструктуризация информационной базы) и потом продолжить работу с шага 3. Рассмотренная схема описывает общий подход к работе с агрегатами регистра. Рекомендации по выполнению каждого из рассмотренных шагов рассматриваются в следующем разделе. Рекомендации по использованию агрегатов Формирование списка агрегатов Формирование списка агрегатов можно выполнять несколькими способами. Если агрегаты планируется включить для регистра, уже существующего в конфигурации, но для которого не было включено использование агрегатов, то это можно сделать следующими способами: ● Если в регистре отсутствуют движения или движений мало (не более 2–3 тысяч записей), следует выполнить анализ запросов, которые используют выбранный регистр, и получить перечень часто используемых комбинаций измерений, отборов, периодов запросов и периодичности получения данных. На основании полученной информации создать список агрегатов, при этом постараться минимизировать количество используемых агрегатов. ● Если в регистре присутствует существенное количество записей (более 3 тысяч), то можно выполнить расчет оптимальных агрегатов на основании данных регистра с помощью метода ОпределитьОптимальныеАгрегаты() и загрузить полученный список агрегатов. ● Если для используемого регистра был включен режим агрегатов и включено использование агрегатов (т. е. каким-то образом сформирован первоначальный список агрегатов), то можно также получить список оптимальных агрегатов и загрузить его в конфигураторе. Отличие этого способа от способа номер 2 заключается в том, что в этом случае для расчета оптимальных агрегатов будет использоваться статистика, которую ведет система. Поэтому полученный список агрегатов будет более 243 эффективен, нежели получение оптимальных агрегатов для регистра, у которого не был включен режим агрегатов и использование агрегатов. ПРИМЕЧАНИЕ. Использовать метод получения оптимальных агрегатов имеет смысл в том случае, если в таблице движений регистра находятся не менее 3–5 тысяч записей. На меньшем количестве записей построенный список агрегатов может оказаться неэффективным. Выполнение перестроения Операцию перестроения агрегатов следует выполнять не реже, чем операцию расчета списка оптимальных агрегатов. При этом данная операция не предполагает изменения списка агрегатов, а старается «обойтись» только существующими агрегатами. Также следует помнить, что операция перестроения эффективна в том случае, если для ее работы накоплен достаточно большой объем статистических данных. Однако рекомендации по периоду перестроения в общем случае дать затруднительно, но можно отметить основные факторы: ● есть вероятность изменения характера данных в регистре; ● есть подозрения на изменение характера запросов (что приведет к изменению накапливаемой статистики). При выполнении операции следует указать два параметра: ● Максимальный относительный размер – задает ограничение на размер формируемого списка агрегатов (в процентах от таблицы движений). Если параметр равен 0, то ограничения на размер агрегатов не задаются. ● Минимальный эффект – процент, на который необходимо увеличить эффект старого списка при перестроении. Если новый список увеличивает эффект на заданное значение, то метод реально перестраивает список. Если параметр не указан или равен 0, это означает отсутствие требований к минимальному эффекту. Также происходит перестроение текущего списка агрегатов, если он больше, чем параметр Максимальный относительный размер, или удалось построить список с эффективностью большей как минимум на значение параметра Минимальный эффект. В противном случае список агрегатов не перестраивается. ПРИМЕЧАНИЕ. Операция перестроения является достаточно длительной и ресурсоемкой процедурой. Не рекомендуется выполнять ее во время интенсивной работы с информационной базой других пользователей. Выполнение операции обновления агрегатов Данную операцию рекомендуется выполнять чаще, чем выполняется операция перестроения агрегатов. Обновление агрегатов может выполняться двумя способами: ● Полностью обновляются все агрегаты, отмеченные как используемые. Это может занимать существенное время. ● Так называемое «порционное» заполнение. В этом случае за одно обращение обновляется период, равный 1 месяцу в 10 агрегатах. При выполнении операции следует указать параметр Максимальный относительный размер. Он задает ограничение на размер формируемого списка агрегатов (в процентах от таблицы движений). Если параметр равен 0, то ограничения на размер агрегатов не задаются. ПРИМЕЧАНИЕ. Желательно выполнять данную операцию в периоды минимальной нагрузки на информационную базу. СОВЕТ. Рекомендуется использовать режим разделения итогов при использовании агрегатов, особенно если обновление агрегатов выполняется регламентным заданием на фоне интенсивного проведения документов, связанных с регистром, у которого выполняется обновление агрегатов. Выполнение расчета оптимальных агрегатов 244 Данная операция может выполняться по необходимости, она не является регулярной. Ниже приведен перечень ситуаций, при наступлении которых рекомендуется выполнить расчет списка оптимальных агрегатов: ● по истечении некоторого времени после первичного формирования списка агрегатов; ● в случае существенного падения производительности на текущем списке агрегатов; ● при существенном изменении характера данных; ● при изменении состава запросов к регистру; ● если есть вероятность, что текущий список агрегатов перестал быть оптимальным. ПРИМЕЧАНИЕ. Данная операция является наиболее ресурсоемкой и продолжительной. Настоятельно рекомендуется выполнять ее только в тех случаях, когда с информационной базой не работают другие пользователи. Использование регламентных заданий при работе с агрегатами Операции перестроения и обновления агрегатов можно выполнять с помощью регламентных заданий. Необходимо соблюдать следующие рекомендации при составлении расписания выполнения регламентных заданий: ● для регламентного задания, выполняющего операции перестроения и обновления, рекомендуется заполнять свойство регламентного задания Ключ. ● рекомендуется задавать расписание регламентных заданий перестроения и обновления так, чтобы не возникла ситуация, когда операции обновления и перестроения будут выполняться в одно время. Соблюдение рекомендаций приведет к предотвращению параллельного выполнения операций перестроения и обновления, что положительно скажется на производительности. Редактирование агрегатов Создание и редактирование списка агрегатов возможно только для оборотного регистра накопления (свойство Вид регистра имеет значение Обороты). Для вызова конструктора агрегатов следует использовать команду Открыть агрегаты контекстного меню соответствующего регистра. Рисунок 6.86 – Вызов конструктора агрегатов Затем откроется окно конструктора агрегатов, в котором можно управлять агрегатами оборотного регистра накопления. Агрегатами можно управлять вручную, а также можно загрузить (для этого предназначена специальная кнопка командной панели) заранее подготовленный список оптимальных агрегатов. 245 Рисунок 6.87 – Конструктор агрегатов При создании агрегатов можно указать вариант использования. Если стоит Авто (по умолчанию), то система будет сама определять необходимость использования данного агрегата во время выполнения операции перестроения агрегатов. Если стоит Всегда, значит система будет использовать агрегат всегда. Колонка Периодичность определяет минимальный период времени, за который агрегат будет хранить итоги по выбранным измерениям. Допускается иметь несколько агрегатов с одинаковым набором измерений, но с разной периодичностью. Не следует злоупотреблять количеством агрегатов. Большое количество агрегатов может привести к излишнему увеличению размера базы данных, но не приведет к повышению производительности работы запросов. В правой части окна можно указать, какие измерения входят в редактируемый агрегат. Агрегат может включать произвольное количество измерений (но не более 30) и не включать их вовсе. В этом случае система хранит сводные обороты по регистру с заданной периодичностью. Если существует xml-файл, содержащий список оптимальных агрегатов, то можно выполнить загрузку такого списка. Для этого стоит воспользоваться специальной командой конструктора агрегатов (рисунок 6.87) и выбрать там предварительно подготовленный файл. Рисунок 6.88 – Загрузка списка оптимальных агрегатов Система выполнит сравнение списка из файла и текущего списка агрегатов и цветом отметит те агрегаты, которые рекомендуется добавить в систему (из списка Оптимальные агрегаты), и агрегаты, которые рекомендуется удалить из системы (список Агрегаты). Предложенные рекомендации можно не выполнять или выполнять в ограниченном объеме. 246 6.3.14.2.7. Разработка структуры регистра накопления Разработка структуры регистра заключается в создании наборов измерений, ресурсов и реквизитов на закладке Данные. Свойства измерения (ресурса, реквизита) регистра накопления Свойства измерений, ресурсов и реквизитов редактируются при помощи палитры свойств. В основном они совпадают с общими свойствами объектов. Ниже в этом разделе будут описаны уникальные свойства измерений, ресурсов и реквизитов. Тип данных. В отличие от измерений и реквизитов, объекты вида Ресурс могут хранить только один тип данных – Число. Запрет незаполненных значений – установка этого флажка для измерения включает механизм запрета записи движений регистра с пустым значением измерения. Индексировать – данное свойство можно установить только для измерений. Установка свойства позволяет ускорить выполнение операций, обращающихся к данным регистра, например, если выбираются движения по конкретному значению данного измерения. К таким операциям относятся запросы с условием равенства данного измерения указанному значению, а также временный расчет и методы обхода движений объекта РегистрНакопления встроенного языка, использующие отбор по определенному значению измерения. Использование в итогах – если свойство не установлено, измерения исключаются из хранимых итогов регистра (свойство используется только для измерений оборотного регистра). Если такое измерение используется в запросе или в условии виртуальной таблицы, то виртуальная таблица не будет использовать хранимые итоги, а будет рассчитывать данные только по таблице движений. Упорядочивание списка измерений регистра накопления Порядок расстановки измерений регистра накопления влияет на оптимизацию доступа к итогам регистра: измерения, к которым необходим быстрый доступ, следует располагать в начале списка измерений. 6.4. Основы администрирования При работе с системой «1С:Предприятие» необходимо выполнять различные действия, связанные с администрированием системы, например:  ведение списка пользователей;  назначение прав пользователям;  резервное копирование;  создание технологического журнала для разбора ошибок и т. д. Конфигуратор содержит средства администрирования, предназначенные для решения указанных задач. Так, в системе «1С:Предприятие» существует возможность создания списка пользователей, которым разрешена работа с системой. Этот список будет использоваться для авторизации пользователя при его входе в систему. Следует обратить внимание, что список пользователей системы «1С:Предприятие» не является частью конфигурации: он создается отдельно в конкретной организации, в которой используется система. Для каждого пользователя может быть установлен пароль на вход в систему. Пароль используется для подтверждения прав пользователей на работу в системе «1С:Предприятие». Другой важной задачей административного характера является ведение резервного копирования. Проведение этой процедуры должно выполняться периодически, чтобы в случае разрушения базы данных иметь возможность с минимальными потерями восстановить исходные данные. Частота определяется интенсивностью изменений 247 данных. Чем чаще меняются данные, тем чаще следует производить резервное копирование. В этой главе будут рассмотрены вопросы администрирования «1С:Предприятия», которые можно выполнять с помощью конфигуратора. 6.4.1. Ведение списка пользователей Список пользователей вызывается на экран выбором пункта Администрирование – Пользователи. Рисунок 6.89 – Список пользователей Окно со списком пользователей имеет панель инструментов и табличное поле с двумя колонками:  В колонке Имя выводится список пользователей, зарегистрированных для работы с системой «1С:Предприятие 8».  Колонка Полное имя может содержать расшифровку имени, выданного в первой колонке. Пользователи, для которых определен пароль доступа, отображаются пиктограммами с замочком (пользователь Продавец на рисунке 6.89). Пользователи, для которых не определена роль или аутентификация, отображаются пиктограммами с вопросом (пользователь Менеджер по продажам на рисунке 6.89). С помощью пунктов меню Действия осуществляется ведение списка пользователей, настойка показа списка (отбор, состав и порядок колонок, сортировка), а также вывод списка в табличный или текстовый документы. 6.4.1.1. Добавление нового пользователя Для добавления нового пользователя необходимо выбрать пункт Действия – Добавить в окне Список пользователей. На экран будет выдано окно для редактирования параметров пользователя. На закладке Основные указывается имя и полное имя пользователя. 248 Рисунок 6.90 – Новый пользователь В имени пользователя не рекомендуется указывать символ ":". Уникальность пользователя информационной базы поддерживается по совокупности значений трех полей: имя, полное имя и имя пользователя операционной системы (если включена аутентификация средствами операционной системы). Для поля Имя уникальность поддерживается по первым 64 символам, для поля Полное имя – по первым 128 символам, для поля Пользователь операционной системы – по первым 128 символам. Рекомендуется не допускать для поля Имя превышения длины в 64 символа. СОВЕТ. Желательно задавать пользователям смысловые имена, используя фамилию сотрудника, наименование должности, характер выполняемых им функций и тому подобное. В дальнейшем это имя будет использоваться сотрудником для входа в систему «1С:Предприятие». Для пользователя необходимо указать способ аутентификации. Если для пользователя сняты оба флажка аутентификации (Аутентификация 1С:Предприятия и Аутентификация операционной системы), то данному пользователю закрыт доступ к этой конфигурации. Для того, чтобы система выполняла аутентификацию с помощью протокола OpenID необходимо, чтобы у пользователя был установлен флажок Аутентификация 1С:Предприятия и соответствующим образом была настроена публикация данной информационной базы на веб-сервере. ВНИМАНИЕ! В системе должен быть по крайней мере один пользователь, который обладает административными правами и допускает аутентификацию средствами «1С:Предприятия». Если установлен флажок Пользователю запрещено изменять пароль, то это означает, что данный пользователь не может изменять свой пароль (используется, если включена аутентификация системы «1С:Предприятие»). Если флажок Показывать в списке выбора установлен, то данный пользователь будет отображаться в списке выбора при соединении с информационной базой системы «1С:Предприятие». Если пользователю запрещена аутентификация средствами системы «1С:Предприятие», то флажок Показывать в списке становится недоступным для редактирования, а пользователь не будет отображен в списке выбора при соединении с информационной базой. На закладке Прочие указываются доступные роли и язык. Если ролей в конфигурации определено несколько, то для пользователя можно также указать несколько 249 ролей. Кроме того, для пользователя можно указать режим запуска «1С:Предприятия». Если используется значение Авто, то при запуске будет использоваться режим запуска, установленный в свойстве конфигурации Основной режим запуска. Указание конкретного режима запуска можно использовать в тех случаях, когда некоторые пользователи должны работать в особом режиме. Например, какой-либо пользователь работает в режиме управляемого приложения. Тогда в поле Режим запуска стоит указать Управляемое приложение. Рисунок 6.91 – Прочие параметры нового пользователя В окне для редактирования свойств пользователя не обязательно заполнять сразу все поля – это можно сделать позднее. 6.4.1.2. Копирование пользователя Нового пользователя можно создать путем копирования существующего. Используя такую возможность, нет необходимости создавать нового пользователя с нуля – достаточно скопировать одного из уже существующих в списке пользователей и отредактировать его свойства. Для копирования нужно выбрать исходную строку списка пользователей и выполнить команду Действия – Скопировать. При копировании имя пользователя может быть преобразовано с целью соблюдения уникальности. Остальные свойства нового пользователя будут такие же, как и у пользователя, выбранного в качестве образца (кроме пароля). 6.4.1.3. Установка пароля С целью предотвращения входа пользователей в систему «1С:Предприятие» под чужими именами каждому пользователю, которому разрешена работа с системой, может быть установлен пароль на вход. Как и имя пользователя, пароль служит для подтверждения полномочий пользователя на работу в системе. В поле для ввода пароля нужно ввести пароль пользователя. Пароль представляет собой произвольную строку, состоящую из букв и цифр. Размер пароля не должен превышать 255 символов. При вводе пароль отображается звездочками, поэтому будьте внимательны. В поле Подтверждение пароля следует указать введенный пароль еще раз для исключения ошибки ввода. Если повторно введенный пароль отличается от 250 первоначального, то при нажатии кнопки ОК на экран выводится предупреждение Пароль и подтверждение пароля не совпадают, и пароль не будет установлен. Если вы передумали устанавливать пароль, то нужно нажать кнопку Отмена. ВНИМАНИЕ! Присвоенный пользователю пароль нельзя посмотреть, поэтому будьте внимательны при установке пароля и хорошо запомните его. Если пользователь забыл свой пароль, необходимо задать ему новый пароль. Пользователи, имеющие пароль, отличаются в списке пользователей пиктограммой (замочек на пиктограмме – см. пользователь Продавец на рисунке 6.89). 6.4.1.4. Удаление пользователя Для удаления пользователя следует в списке пользователей выделить его имя и выбрать пункт Действия – Удалить окна Список пользователей. Для подтверждения удаления пользователя в появившемся на экране запросе следует нажать ОК. 6.4.1.5. Редактирование свойств пользователя Для редактирования параметров пользователя предназначен пункт Администрирование – Пользователи меню конфигуратора. Выбрав нужного пользователя в списке, следует выбрать пункт Действия – Изменить меню окна Список пользователей. В окне Параметры пользователя можно изменить параметры выбранного пользователя. 6.4.1.6. Установка отбора Для удобства просмотра списка пользователей можно использовать отбор. В списке пользователей выбирается пункт Действия – Установить отбор... Рисунок 6.92 – Установка отбора Отбор можно выполнить по роли, языку, режиму запуска, а также с учетом аутентификации пользователя. 6.4.1.7. Виды аутентификации Аутентификация – проверка принадлежности предъявленного идентификатора (имени) конкретному пользователю системы, проверка подлинности. Система 251 «1С:Предприятие» поддерживает несколько различных вариантов аутентификации, которые будут рассмотрены в следующих разделах. 6.4.1.7.1. Аутентификация средствами системы «1С:Предприятие» Пользователь может быть аутентифицирован системой «1С:Предприятие» с помощью ввода его имени и пароля (в диалоге аутентификации, в виде параметров командной строки или строки соединения с информационной базой для внешнего соединения или automation-сервера). В этом случае проверка наличия пользователя и корректности ввода его пароля выполняет система «1С:Предприятие». 6.4.1.7.2. Аутентификация операционной системы Пользователь может быть аутентифицирован неявно средствами операционной системы. Для этого пользователю должен быть поставлен в соответствие некоторый пользователь операционной системы. При старте системы, «1С:Предприятие» запрашивает у операционной системы пользователя, который аутентифицирован в системе в данный момент. Для этого в ОС Windows используется интерфейс SSPI, а в ОС Linux – GSS-API. Затем выполняется проверка, что данному пользователю операционной системы сопоставлен пользователь «1С:Предприятия». Если поиск заканчивается успешно – считается, что пользователь системы «1С:Предприятие» аутентифицирован успешно, и диалог аутентификации не отображается. ПРИМЕЧАНИЕ. Не поддерживается аутентификация пользователя средствами ОС в том случае, если клиентское приложение подключается к информационной базе через вебсервер Apache, работающий под управлением ОС Windows. Пользователь операционной системы указывается в формате: \\имя_домена\имя_пользователя. Если необходимо принудительно выполнить аутентификацию средствами системы «1С:Предприятие», то в командной строке запуска клиентского приложения следует указать ключ командной строки -WA-. Соответственно, ключ командной строки –WA+ предназначен для принудительного применения аутентификации средствами операционной системы (действует по умолчанию). 6.4.1.7.3. Аутентификация с помощью OpenID OpenID (http://openid.net/) – это протокол, который позволяет пользователю использовать единую учетную запись для аутентификации на множестве не связанных друг с другом ресурсов, систем и т. д. Система «1С:Предприятие» использует протокол, созданный на основе протокола OpenID версии 2.0 по модели Direct Identity. ПРИМЕЧАНИЕ 1. Данный способ аутентификации не применим при обращении к вебсервисам, опубликованным из «1С:Предприятия». ПРИМЕЧАНИЕ 2. В роли провайдера OpenID выступает информационная база «1С:Предприятия». Общая схема работы выглядит следующим образом:  Пользователь пытается выполнить вход в систему.  Система определяет, что в информационной базе работает OpenID-аутентификация (по файлу публикации default.vrd).  Провайдеру OpenID отправляется запрос на выполнение аутентификации.  Если необходимо выполнить интерактивное действие (выполняется первая аутентификация для данного идентификатора или закончено время жизни признака аутентификации данного идентификатора), то провайдер сообщает системе о необходимости запросить имя и пароль пользователя. Система выполняет интерактивное действие и возвращает провайдеру OpenID запрошенные данные. 252 Признак аутентифицированности пользователя хранятся в файлах cookie, которые размещаются в хранилище, индивидуальном для каждого веб-браузера. Тонкий клиент использует собственное хранилище.  Если провайдер аутентифицирует пользователя, то системе возвращается признак того, что пользователь аутентифицирован. OpenID-аутентифкация работает только в тех случаях, когда доступ к информационной базе осуществляется по протоколу http и https. Это означает, что использовать OpenID-аутентификацию могут только веб-клиент и тонкий клиент, подключенный к информационной базе через веб-сервер. При OpenID-аутентификации возможны кросс-доменные запросы при работе с помощью тонкого клиента, а также с помощью веб-браузеров Mozilla Firefox, Google Chrome, Safari и Microsoft Internet Explorer версий 8 и 9. В веб-браузере Microsoft Internet Explorer версий 6.0 и 7, после ввода имени пользователя и пароля, открывается окно сообщения с запросом подтверждения на выполнение операции. Если пользователь подтверждает выполнение операции – процесс аутентификации продолжается. В противном случае вновь предлагается ввести имя пользователя и пароль. В качестве OpenID-провайдера выступает информационная база системы «1С:Предприятие». В качестве OpenID-идентификатора используются имена пользователей информационной базы. Такая информационная база должна быть особым образом опубликована на веб-сервере (в файле публикации default.vrd расположен особый элемент) и доступна для информационной базы, которая желает выполнять аутентификацию с помощью OpenID. ВНИМАНИЕ! Взаимодействие с OpenID-провайдером осуществляется только по HTTPSсоединению. В качестве OpenID-идентификатора пользователя выступает свойство Имя пользователя информационной базы OpenID-провайдера. Пароль пользователя также задается в информационной базе OpenID-провайдера. Пароль, заданный в информационной базе, которая является клиентом OpenID-провайдера, игнорируется при выполнении аутентификации с помощью OpenID. Если необходимо принудительно выполнить аутентификацию с помощью OpenID, то в командной строке запуска клиентского приложения следует указать ключ командной строки -OIDA+ (действует по умолчанию). Соответственно, ключ командной строки OIDA– предназначен для принудительного отключения аутентификации с помощью OpenID. 6.4.2. Список активных пользователей В процессе работы бывает необходимо определить, какие пользователи работают в данный момент с информационной базой. Для получения списка пользователей нужно выбрать пункт Сервис – Активные пользователи. На экран выводится окно со списком пользователей, работающих в данный момент с базой данных. 253 Рисунок 6.93 – Список активных пользователей При открытии текущая строка показывает данные пользователя, вызвавшего окно (текущий сеанс). Текущий пользователь отличается в списке пиктограммой (имеет пометку на пиктограмме). С помощью пунктов меню Действия можно настроить показ списка, а также вывести его в табличный или текстовый документ. Список активных пользователей можно сортировать по любой колонке. 6.4.3. Блокировка установки сеансов пользователями Система «1С:Предприятие» позволяет устанавливать блокировки сеансов пользователей с информационной базой. Можно запретить установку сеансов пользователей с информационной базой с отображением сообщения о причине запрета. Эта возможность полезна, например, когда для выполнения административных действий требуется, чтобы текущие пользователи завершили свои сеансы работы и в то же время новые пользователи не могли подключиться к информационной базе. При работе в клиент-серверном варианте работы установка блокировки может быть выполнена с помощью утилиты администрирования кластера серверов «1С:Предприятия». Предусмотрена возможность соединения с информационной базой в обход установленной блокировки сеансов. Для этого используется параметр командной строки UC<код разрешения> и параметр строки соединения UC=<код разрешения>. Если при установке блокировки задан непустой код разрешения, то для установки соединения в обход блокировки необходимо в параметре -UC указать этот код разрешения. Если код разрешения содержит пробелы, он должен быть заключен в кавычки. Если используется веб-клиент или тонкий клиент, работающий через веб-сервер, имеется возможность указания кода разрешения в параметре UC строки соединения файла-дескриптора. В этом случае рекомендуется выполнять дополнительную публикацию информационной базы на веб-сервере. Программный способ Кроме этого, при работе в любом режиме установка блокировки может быть выполнена средствами встроенного языка. Для этого используется объект встроенного языка БлокировкаСеансов, который можно создать с помощью конструктора и установить необходимые свойства блокировки установки соединений. Метод глобального контекста УстановитьБлокировкуСеансов() позволяет установить созданную блокировку, а метод ПолучитьБлокировкуСеансов() – получить установленную блокировку. 6.4.4. Региональные установки информационной базы Режим настройки региональных установок информационной базы позволяет управлять форматом отображения даты, времени, чисел, логических констант и влияет на 254 порядок сортировки строк в списках информационной базы данных. Для вызова режима нужно выбрать пункт Администрирование – Региональные установки ИБ. Рисунок 6.94 – Региональные установки Если какое-либо свойство не установлено, то форматы отображения чисел, даты и времени будут определяться установками по умолчанию, принятыми в системе «1С:Предприятие» для указанного языка (страны). Язык (страна) определены при создании информационной базы. Если установлено свойство Использовать региональные установки текущего сеанса, то значения типа Число и Дата отображаются (в том числе в полях ввода, календаре и калькуляторе) в соответствии с региональными настройками текущего сеанса. Эти настройки определяются на основании региональных установок клиентского компьютера, но могут быть переопределены параметром -VL. В нижней части диалога выводятся примеры отображения числа, даты и времени с выбранными в диалоге установками. Значения типа Булево отображаются в соответствии с языком интерфейса платформы. Это значение может быть указано с помощью параметра -L. Язык. Выбор языка (страны) для данной установки информационной базы. ВНИМАНИЕ! Если в качестве СУБД используется PostgreSQL, то для существующей информационной базы изменение языка (страны) не может быть выполнено произвольным образом. Установленное значение языка (страны) можно изменить только на такое, которое будет использовать тот же порядок сортировки строк (collation) СУБД, что и существующее значение. Например, русский (Россия) может быть изменен на белорусский (Беларусь), но не может быть изменен на украинский (Украина). Если в качестве СУБД используется IBM DB2, то смена значения языка (страны) не поддерживается. 255 Разделитель дробной части. Символ-разделитель целой и дробной части чисел можно выбрать из выпадающего списка или указать самостоятельно в поле ввода. Пример символа будет выведен в рамке слева от поля ввода. Разделитель групп. Символ-разделитель групп цифр в целой части числа можно выбрать из выпадающего списка или указать самостоятельно в поле ввода. Пример символа будет выведен в рамке слева от поля ввода. Группировка. Свойство задает формат группировки цифр в целой части числа. Форматную строку можно выбрать из выпадающего списка или указать самостоятельно. Формат группировки указывается следующим образом: <количество цифр в группе><символ-разделитель>......<0>. В качестве символа-разделителя можно использовать любой символ, отличный от цифры. Например, последовательность символов 3,2,0 означает, что цифры будут сгруппированы следующим образом (отсчет цифр в числе идет слева направо только в целой части):  первую группу образуют первые три цифры числа;  затем идет символ-разделитель групп (заданный настройками операционной системы или указанный в свойстве Разделитель групп);  все оставшиеся цифры числа будут сгруппированы по две. Символ 0 в конце форматной строки означает «и так же – до конца». То есть если в вышеприведенном примере форматной строки убрать 0, указав 3,2, группировка изменится следующим образом:  первую группу образуют первые три цифры числа;  затем идет символ-разделитель групп;  вторую группу образуют следующие 2 цифры числа;  затем идет символ-разделитель групп;  все оставшиеся цифры числа будут собраны вместе. Выбор одного символа 0 в этом поле означает, что цифры в целой части чисел не будут разделяться на группы. Представление отрицательных чисел. Из выпадающего списка можно выбрать вид отрицательных чисел. Выбор Авто означает, что вид отрицательных чисел будет определяться установками операционной системы. Формат даты. Устанавливает формат отображения даты. Можно использовать в различных сочетаниях следующие символы: Символы Описание D Число месяца. Числа меньше 10 выводятся без лидирующего нуля Dd Число месяца. Числа меньше 10 выводятся с лидирующим нулем M Номер месяца. Номера месяцев меньше 10 выводятся без лидирующего нуля MM Номер месяца. Номера месяцев меньше 10 выводятся с лидирующим нулем MMMM Наименование месяца словами Y Две последние цифры года. Года меньше 10 выводятся без лидирующего нуля Yy Две последние цифры года. Года меньше 10 выводятся с лидирующим нулем Yyyy Год четырьмя цифрами Перечисленные выше символы и группы символов можно указывать в любой последовательности. Для разделения дня, месяца и года можно указывать различные символы-разделители. 256 Формат времени. Устанавливает формат отображения использовать в различных сочетаниях следующие символы: времени. Можно Символы Описание h, H часы в 12-часовом (h) или 24-часовом (H) формате. Часы меньше 10 выводятся без лидирующего нуля hh, HH часы в 12-часовом (hh) или 24-часовом (HH) формате. Часы меньше 10 выводятся с лидирующим нулем m минуты. Минуты меньше 10 выводятся без лидирующего нуля mm минуты. Минуты меньше 10 выводятся с лидирующим нулем s секунды. Секунды меньше 10 выводятся без лидирующего нуля ss секунды. Секунды меньше 10 выводятся с лидирующим нулем Перечисленные выше символы и группы символов можно указывать в любой последовательности. Для разделения часов, минут и секунд можно указывать различные символы-разделители. ВНИМАНИЕ! При использовании региональных настроек для определения представления даты в поле ввода следует выбирать только такие настройки, которые поддерживаются полем ввода. Логическое ложь, логическое истина. Позволяет указать вид логических констант. Можно выбрать из выпадающего списка либо ввести самостоятельно. 6.4.5. Параметры информационной базы Режим настройки параметров информационной базы позволяет задавать время ожидания блокировки данных и указывать необходимость использования ограничений на пароли пользователей. Рисунок 6.95 – Параметры информационной базы Для настройки доступны перечисленные ниже параметры: Время ожидания блокировки данных (в секундах) Определяет максимальное время ожидания установки транзакционной блокировки сервером баз данных. Например, если текущая транзакция должна установить блокировку на запись, а запись уже заблокирована другой транзакцией, то текущая транзакция будет ожидать снятия блокировки, но не дольше, чем значение данного параметра. Аналогичным образом этот параметр регулирует время ожидания транзакционной блокировки в режиме управляемых блокировок системы «1С:Предприятие». Минимальная длина паролей пользователей Указывает минимальную длину пароля пользователя. Если установлен параметр Проверка сложности паролей пользователей, то минимальная длина пароля пользователя не может быть менее 7 символов. Проверка сложности паролей пользователей 257 Если данный параметр установлен, пароли пользователей должны удовлетворять следующим требованиям:  длина пароля не должна быть менее значения, указанного в параметре Минимальная длина паролей пользователей;  пароль должен состоять из символов, относящихся как минимум к трем из перечисленных групп:  заглавные буквы;  строчные буквы;  цифры;  специальные символы;  пароль не должен совпадать с именем пользователя;  пароль не должен являться последовательностью символов. Использование ограничений на пароли пользователей информационной базы не влияет на существующие пароли. Ограничения будут применены только при изменении существующего пароля или при добавлении нового пользователя информационной базы. Однако проверка пароля выполняется по текущей настройке информационной базы. В частности, это означает, что при включении параметра Проверка сложности паролей пользователей проверка пароля начнет выполняться с учетом регистра. Например, если для пользователя (по каким-то причинам) был задан пароль PaRoL, то до включения параметра Проверка сложности паролей пользователей пользователь мог вводить пароль и так: parol, и так: PAROL, и так: ParoL, и всякий раз система разрешала ему доступ в систему. После установки параметра Проверка сложности паролей пользователей вход в систему будет разрешен только в том случае, если пароль будет введен с учетом регистра: PaRoL. 6.4.6. Выгрузка информационной базы данных в файл Текущую информационную базу данных можно сохранить в файл на диске. Для сохранения данных в файл нужно выбрать пункт Администрирование – Выгрузить информационную базу данных в файл. На экран выводится стандартный диалог выбора файла. Следует выбрать каталог и указать имя файла, в который будут записаны данные. Механизм выгрузки предназначен:  для получения образа информационной базы независимо от способа хранения данных;  для переноса информационной базы из одной СУБД (или файлового варианта) в другую СУБД (или в файловый вариант). Перед выполнением выгрузки информационной базы рекомендуется выполнить процедуру тестирования (средствами конфигуратора или отдельной утилиты) и исправить все обнаруженные проблемы. Не рекомендуется использовать данный способ для создания резервной копии информационной базы по следующим причинам:  может возникнуть ситуация, при которой файл выгрузки будет невозможно загрузить, если в информационной базе, из которой производилась выгрузка, существовали ошибки;  длительное время создания;  необходимость монопольного доступа к базе данных;  высокие требования к оперативной памяти. ПРИМЕЧАНИЕ. Работа информационной базы в монопольном режиме не переводит базу данных MS SQL в однопользовательский режим (single user). 258 6.4.7. Загрузка информационной базы данных из файла Для восстановления информационной базы данных из файла используется пункт Администрирование – Загрузить информационную базу данных из файла. На экран выводится стандартный диалог выбора файла. Необходимо выбрать каталог и указать имя файла, в который будут записаны данные. ВНИМАНИЕ! При восстановлении текущая информационная база данных будет полностью заменена. ПРИМЕЧАНИЕ. Файлы выгрузки информационной базы (.dt), созданные «1С:Предприятием» версии 8.1, могут быть загружены «1С:Предприятием» версии 8.2. 6.4.8. Создание резервной копии информационной базы ВНИМАНИЕ! Резервное копирование необходимо выполнять перед любой операцией, которая может повредить данные, находящиеся в информационной базе. ВНИМАНИЕ! Во время выполнения операции резервного копирования информационной базы в файловом варианте к информационной базе не должно быть никаких подключений (в том числе и конфигуратором). Создание резервной копии осуществляется в любой программе, поддерживающей работу с файлами, например, в программе Проводник (Explorer) Microsoft Windows. С помощью программы работы с файлами необходимо открыть каталог с информационной базой. Для создания копии информационной базы можно просто скопировать файл 1Сv8.1CD в отдельный каталог. Для восстановления (в случае утери, порчи и т. д.) информационной базы достаточно скопировать сохраненный файл в прежний каталог. Заметим, что для копирования информационной базы также можно использовать специализированное программное обеспечение, предназначенное для резервного копирования и восстановления данных. 6.4.9. Тестирование и исправление информационной базы В процессе работы системы «1С:Предприятие» могут возникать различные нештатные ситуации – отключение питания компьютера, «зависание» операционной системы, сбои оборудования и прочее. Такие ситуации, возникшие в процессе записи изменений в информационную базу системы «1С:Предприятие» (особенно при работе в файловом варианте), могут привести к ее некорректному состоянию. Внешние проявления некорректного состояния информационной базы могут быть различными, вплоть до невозможности запуска. Процедура Тестирование и исправление информационных баз предназначена для диагностики и устранения ошибочных состояний информационных баз, имеющих различный формат (файловый или клиент-серверный). Для запуска режима используется пункт Администрирование – Тестирование и исправление ИБ. На экран выводится диалог: 259 Рисунок 6.96 – Тестирование и исправление информационной базы В списке проверок и режимов следует установить требуемые виды выполняемых действий. Виды тестирования можно производить независимо друг от друга. Для файлового варианта информационной базы возможно выполнение реиндексирования и сжатия базы данных. Для обоих вариантов (файловый и клиент-серверный) возможна проверка логической целостности данных и пересчет итогов. Для некоторых распределенных информационных баз, у которых возможно получение данных, содержащих ссылки на объекты, не расположенные в тестируемой информационной базе, снятие флажка Проверка ссылочной целостности информационной базы позволит отключить создание «несуществующих» данных и как следствие не приведет к передаче этих данных в другие узлы распределенной информационной базы. Под списком режимов расположены несколько групп настроек:  В первой группе выбирается, что необходимо выполнить: тестирование или тестирование и исправление. В первом случае программа проведет проверку информационной базы без внесения в нее каких-либо изменений. Во втором случае будут выполнены директивы, указанные во второй группе настроек. Смысл переключателей понятен из их названия.  Настройки второй группы определяют, что будет делать система при наличии ссылок на несуществующие объекты и при частичной потере данных в существующих объектах.  Третья группа элементов управления позволяет выполнять длительные процедуры тестирования и исправления в несколько сессий. Флажок Прервать выполнение проверки через позволяет задать интервал времени, по истечении которого тестирование будет прервано, а параметры тестирования и исправления сохранены до следующей сессии конфигуратора. Флажок Продолжить прерванное ранее тестирование позволяет продолжить процесс с того места, на котором он был прерван в предыдущей сессии тестирования и исправления. 260 События тестирования и исправления отображаются в журнале регистрации. Для запуска тестирования необходимо нажать кнопку Выполнить. Тестирование может быть прервано нажатием комбинации клавиш Ctrl + Break. Программа произведет анализ возможности установки монопольного режима и установит монопольный режим. В случае обнаружения невозможности установки на экран выводится предупреждение: Не удалось переключить доступ в монопольный режим. Имеются работающие пользователи. Для получения информации о работающих пользователях нужно открыть список активных пользователей (выбрать пункт Администрирование – Активные пользователи). Если монопольный режим установлен, запускается процесс выполнения указанных действий и на экран выводится информационная страница диалога о выполнении тестирования. ПРИМЕЧАНИЕ. Работа информационной базы в монопольном режиме не переводит базу данных MS SQL в однопользовательский режим (single user). После завершения работы монопольный режим снимается. В комплект поставки входит утилита восстановления файлового варианта базы данных (chdbfl.exe). 6.4.10. Журнал регистрации Для выполнения административных обязанностей часто требуется выяснить, какие события происходили в определенный момент времени или какие действия выполнял тот или иной пользователь. Для этих целей предназначен журнал регистрации. В этом журнале могут фиксироваться различные события. С его помощью администратор может получить историю работы пользователей с системой. Журнал регистрации не хранится в базе данных и не сохраняется при операциях загрузки/выгрузки информационной базы. При работе пользователей система «1С:Предприятие» фиксирует в журнале основные действия, выполняемые пользователем по модификации данных информационной базы, выполнению регламентных операций, подключению и отключению от системы и т. д. Журнал регистрации работает как в режиме Конфигуратор, так и в режиме 1С:Предприятие. 6.4.10.1. Настройка журнала регистрации С помощью пункта меню Администрирование – Настройка журнала регистрации можно настроить учет событий в журнале регистрации. Рисунок 45. Настройка журнала регистрации В случае сетевой работы выбранную установку можно сохранить только тогда, когда с конфигурацией кроме администратора никто не работает. Записи журнала регистрации хранятся в файлах. Каждый файл содержит записи определенного периода. Размер периода задается в поле Разделять хранение журнала регистрации по периодам. Новый файл открывается при наступлении (указывается в значении настройки) каждого нового:  часа,  дня,  недели,  месяца,  года. 261 При создании новой информационной базы для журнала устанавливается режим регистрации событий всех уровней важности и периодичность разделения на файлы – день. В процессе эксплуатации системы в журнале регистрации может накопиться значительное число записей. Для сокращения числа записей следует открыть окно настройки журнала и нажать кнопку Сократить. На экран выводится окно: Рисунок 6.97 – Сохранение журнала регистрации Сокращение записей производится до указанной в поле Удалить события до. При этом следует учитывать тот факт, что будут удалены все записи периода разделения журнала регистрации (см. выше описание поля Разделять хранение журнала регистрации по периодам), в который попадет указанная дата. Так, если указано разделение журнала по месяцам и указана дата 14.05.2009 (например), то будут удалены записи журнала регистрации по май 2009 года (включительно). Также следует помнить, что период разделения журнала регистрации может меняться (с течением времени), и удаляемый период будет определяться не текущим периодом разбиения, а тем периодом, который был установлен «во время» даты, указанной в поле Удалить события до. Если требуется сохранить удаляемые записи, то нужно установить флажок Записать удаляемые записи в файл и указать имя файла-архива. Если требуется периодически сокращать журнал и при этом иметь возможность просматривать уже удаленные события журнала, то следует установить флажок Сохранять разделение хранения журнала по периодам и объединять с сохраненным ранее журналом. СОВЕТ. Для сохранения разделения по периодам при запуске конфигуратора в командном режиме можно также использовать команду -ReduceEventLogSize KeepSplitting. Для просмотра архива записей журнала регистрации нужно выбрать пункт Файл – Открыть и в стандартном диалоге выбора файла указать тип файла Журнал регистрации (*.lgf). Выбрать нужный файл архива и нажать кнопку Открыть. Настройка автоматического обновления и интервала обновления производится стандартным для табличного поля механизмом настройки списка. События в журнале регистрации идентифицируются строкой. При этом для системных событий используются комбинации символов _$ и $_ (например, _$InfoBase$_.MasterNodeUpdate или _$PerformError$_). _$InfoBase$_.MasterNodeUpdate отобразится в виде строки Информационная база. Изменение главного узла. Использование этих комбинаций в именах событий, записываемых из встроенного языка, с помощью метода ЗаписьЖурналаРегистрации (WriteLogEvent) запрещено. Созданные при помощи этого метода события отображаются как есть. 6.4.10.2. Сохранение журнала регистрации Для сохранения журнала регистрации нужно открыть его и выбрать пункт Файл – Сохранить копию. На экран выводится диалог выбора каталога и файла, в который будет 262 произведена выгрузка, а также тип файла (по умолчанию указывается тип журнала регистрации *.lgf). Выгрузка также возможна в формате XML. Пример выгрузки журнала регистрации: Warning Дата события Enterprise 1С:Предприятие имя события презентация события 00000000-0000-0000-0000-000000000001 Иванов Ivanov Справочники.Номенклатура Справочники Номенклатура Комментарий Какие-то данные Описание данных 6.4.11. Технологический журнал Система «1С:Предприятие» обеспечивает возможность ведения технологического журнала, в который помещается информация от всех приложений, относящихся к системе «1С:Предприятие». Технологический журнал предназначен для выявления ошибок, возникающих при эксплуатации системы, и диагностики работы системы службой технической поддержки фирмы «1С», а также для анализа технологических характеристик работы системы. Состав и свойства событий технологического журнала могут меняться при выпуске обновлений платформы. Поскольку технологический журнал представляет собой набор текстовых файлов, хранящихся в различных каталогах, он может быть использован разработчиками прикладных решений для анализа различных режимов работы системы «1С:Предприятие» и прикладных решений. Технологический журнал может вестись на любом компьютере, на котором установлена система «1С:Предприятие». За ведение технологического журнала отвечает конфигурационный файл, в котором описываются:  каталог, в котором будут располагаться файлы технологического журнала;  состав информации, которая будет помещаться в технологический журнал;  время, в течение которого хранятся файлы технологического журнала;  параметры дампа, создаваемого при аварийном завершении приложения. По умолчанию конфигурационный файл отсутствует. Это означает, что технологический журнал включен и настроен на сохранение минимальных дампов при аварийном завершении приложения в каталог: 263 %USERPROFILE%\Local Settings\Application Data\1C\1Cv82\dumps Для ОС Windows Vista и выше каталог будет иметь вид: %LOCALAPPDATA%\1C\1Cv82\dumps При необходимости может быть выполнена произвольная настройка журнала регистрации с помощью отдельного конфигурационного файла. Этот файл должен иметь имя logcfg.xml и располагаться в каталоге конфигурационных файлов системы «1С:Предприятие». ПРИМЕЧАНИЕ. Для работы технологического журнала в ОС Windows необходимо, чтобы пользователь процесса, который пишет технологический журнал, имел полные права на каталог технологического журнала и права на чтение владельца каталога технологического журнала. Система «1С:Предприятие» автоматически, с периодичностью 60 секунд, опрашивает каталоги конфигурационных файлов на предмет наличия файла logcfg.xml и анализирует его состав. Таким образом, изменение параметров технологического журнала может быть выполнено на ходу, без перезапуска работающих приложений системы «1С:Предприятие». При определенных настройках объем технологического журнала может быть достаточно большим, поэтому в конфигурационном файле желательно указывать время, в течение которого хранятся файлы журнала. По истечении указанного времени система «1С:Предприятие» удалит устаревшие файлы журнала. Если после удаления устаревших файлов каталог, в котором располагались эти файлы, оказывается пустым, то такой каталог тоже удаляется. Таким образом, все дерево каталогов технологического журнала не содержит устаревших файлов и папок. ВНИМАНИЕ! Необходимо иметь в виду, что каталог технологического журнала не предназначен для хранения в нем файлов, которые не относятся к технологическому журналу. Поэтому не следует размещать в нем дампы или использовать каталог, который может содержать файлы, не относящиеся к технологическому журналу «1С:Предприятия». Если в каталоге, который указан в качестве каталога технологического журнала, имеются посторонние файлы, то указание каталога считается неверным, и технологический журнал не создается. 6.4.11.1. Конфигурационный файл технологического журнала В простейшем виде конфигурационный файл может иметь, например, следующее содержимое: Данный конфигурационный файл указывает на следующее:  в технологическом журнале регистрируются все события установки и разрыва клиентского соединения с сервером;  файлы технологического журнала располагаются в каталоге c:\v82\logs;  файлы технологического журнала хранятся в течение одного часа;  файлы дампа помещаются в каталог c:\v82\dumps; 264  файлы дампа содержат всю доступную информацию (содержимое всей памяти процесса). При отсутствии конфигурационного файла используются следующие параметры:  Технологический журнал выключен.  Технологический журнал по умолчанию включен.  Дампы минимального размера.  Дампы сохраняются в каталог %USERPROFILE%\Local Settings\Application Data\1C\1Cv82\dumps профиля текущего пользователя (или %LOCALAPPDATA%\1C\1Cv82\dumps для ОС Windows Vista и старше). 6.4.11.2. Технологический журнал по умолчанию Для записи событий, возникающих в критических ситуациях (с точки зрения системы «1С:Предприятие») предназначен технологический журнал по умолчанию. Для этого журнала создается фиксированный фильтр событий, который формирует платформа и который невозможно изменить. Технологический журнал по умолчанию имеет следующие настройки:  Каталог фалов технологического журнала по умолчанию для ОС Windows: %USERPROFILE%\Local Settings\Application Data\1C\1Cv82\logs (или %LOCALAPPDATA%\1C\1Cv82\logs для ОС Windows Vista и старше).  Информация удаляется из технологического журнала по умолчанию через 24 часа.  В технологический журнал по умолчанию попадают события SYSTEM с уровнем Error. Указанные настройки можно изменить с помощью элемента . Настройка правил формирования событий, которые регистрируются в технологическом журнале по умолчанию выполняется с помощью элемента . 6.4.11.3. Структура технологического журнала Технологический журнал представляет собой каталог, в подкаталогах которого располагаются файлы с собранными технологическими данными. Каталог журнала имеет следующую структуру: <каталог журнала> <идентификатор процесса операционной системы> <файлы журнала одного процесса> Каждый файл журнала содержит события за 1 час и имеет имя yymmddhh.log, где:  yy – две последние цифры года;  mm – номер месяца;  dd – номер дня;  hh – номер часа. Файлы журнала имеют текстовый формат. В файле сведения о завершении каждого события записываются с новой строки. Например: 16:08.87509060,CALL,0,process=rphost,p:processName=DebugControlCenter,t:clientID=221,t:application Name=Debugger,t:computerName=COMP1,Interface=5cf29e71-ec34-4f01-b7d13529a3da6a21,Method=0 16:08.89111,DBPOSTGRS,2,process=rphost,p:processName=Database,t:clientID=216,t:applicationName= 1CV8,t:computerName= COMP1,t:connectID=125,Usr= User2,Trans=1,dbpid=58152,Sql="SELECT 1::INT8 FROM PG_CLASS WHERE 265 pg_catalog.pg_table_is_visible(OID) AND RELKIND='r' AND RELNAME='params' LIMIT 1",Result=PGRES_TUPLES_OK 16:08.89131,DBPOSTGRS,2,process=rphost,p:processName=Database,t:clientID=216,t:applicationName= 1CV8,t:computerName= COMP1,t:connectID=125,Usr=User2,Trans=1,dbpid=58152,Sql="SELECT Creation,Modified,Attributes,DataSize,BinaryData FROM Params WHERE FileName = 'ibparams.inf'",Result=PGRES_TUPLES_OK Строка окончания события имеет формат: mm:ss.tttt-d, <наименование>, <уровень>, <ключевые свойства>, где:  mm – номер минуты в текущем часе.  ss – номер секунды в текущей минуте.  tttt – номер десятитысячной доли текущей секунды.  d – длительность события в десятитысячных секунды.  <наименование> – наименование события.  <уровень> – уровень события в стеке текущего потока.  <ключевые свойства> – <ключевое свойство>, <ключевое свойство>,...  <Ключевое свойство> – <имя> = <значение>; <наименование>, <имя>, <значение> – произвольный текст. Если в нем присутствуют символы «конец строки» или «запятая», то текст заключается в кавычки или апострофы, в зависимости от того, каких символов в строке меньше, а кавычки или апострофы в тексте удваиваются. 6.4.11.4. Настройка формирования дампов памяти для ОС Windows Данный раздел содержит пример настройки файла конфигурации технологического журнала (logcfg.xml), необходимой для создания дампов памяти аварийного завершения. При такой настройке дампы памяти будут формироваться в каталоге C:\Program Files\1cv82\dumps и построенные дампы будут включать содержимое всей памяти процесса и дополнительный сегмент данных. Пользователь, от чьего имени выполняется клиентское приложение или сервер, должен иметь полные права на каталоги:  каталог временных файлов,  каталог технологического журнала,  каталог дампов. Пользователь, от чьего имени выполняется клиентское приложение или сервер, должен иметь право на чтение каталогов:  конфигурационных файлов;  каталога-владельца каталога дампов. Если в файле logcfg.xml выполнена настройка получения планов запросов, то такой файл должен располагаться в каталоге конфигурационных файлов соответствующего приложения:  для клиент-серверного варианта – в каталоге конфигурационных файлов, доступных серверу «1С:Предприятия»;  для файлового варианта с прямым подключением – в каталоге конфигурационных файлов, доступных нужной версии клиентского приложения;  для файлового варианта с подключением через веб-сервер – в каталоге конфигурационных файлов, доступных расширению веб-сервера, обслуживающего данную информационную базу. 266 6.4.11.5. Примеры файлов настройки технологического журнала В приведенных ниже примерах предполагается, что «1С:Предприятие» установлено стандартным способом в каталог C:\Program Files\1cv82. В этом случае технологический журнал удобно размещать в каталоге C:\Program Files\1cv82\logs. Именно этот каталог и будет указан во всех примерах. Важно иметь в виду, что в каталог технологического журнала при некоторых его настройках могут выводиться данные очень большого объема. Поэтому либо на диске C: должно быть достаточно места, либо каталог технологического журнала необходимо изменить. Далее приведено несколько примеров файлов logcfg.xml, содержащих наиболее часто используемые конфигурации технологического журнала. 6.4.11.5.1. Технологический журнал выключен Если файл logcfg.xml отсутствует в каталоге конфигурационных файлов «1С:Предприятия», то технологический журнал не создается. Если файл logcfg.xml необходим для правильной настойки дампов, то он не должен содержать ни одного элемента log. Следующий пример определяет необходимость построения полного дампа приложения при его аварийном завершении. Дампы помещаются в каталог C:\Program Files\1cv82\dumps. 6.4.11.5.2. Полный технологический журнал Приведенный ниже конфигурационный файл определяет вывод в технологический журнал всех событий вместе со всеми свойствами. Журнал будет сохраняться в течение недели (168 часов). Объем выводимой информации при этом будет очень большим, однако она может быть полезна при анализе сложных нештатных ситуаций. Данную конфигурацию рекомендуется использовать на этапе тестирования и при расследовании ошибок. 6.4.11.5.3. Обращения к СУБД Следующий конфигурационный файл определяет, что технологический журнал будет содержать только обращения «1С:Предприятия» СУБД, а также информацию об ошибочных ситуациях. Объем выводимой информации меньше, чем при полном технологическом журнале, но тоже может быть очень большим. 267 6.4.11.5.4. Действия администратора и ошибки Этот конфигурационный файл создает технологический журнал небольшого объема, в котором содержится информация о запуске и завершении приложений, установке и разрыве соединений с кластером серверов «1С:Предприятия», действиях администратора кластера и об ошибочных ситуациях в работе «1С:Предприятия». Такой журнал в большинстве случаев достаточен для расследования ошибочных ситуаций как в конфигурации, так и в технологической платформе «1С:Предприятие». 6.4.11.5.5. Ошибки и долгие операции 268 По сравнению с предыдущим, данный конфигурационный файл добавляет все операции, длительность которых превышает 10 секунд. Это может оказаться полезным для обнаружения действий пользователей, которые выполнялись длительное время, с целью, например, их последующей оптимизации. Длительность событий выражается в сотнях микросекунд. 6.4.12. Контроль ссылочной целостности В системе «1С:Предприятие» значительная часть данных хранится в виде ссылок. Например, при вводе документов многие реквизиты документа могут заполняться путем выбора значения из списка или документа из списка документов. Такие реквизиты являются ссылками на элементы соответствующих списков. Использование ссылок позволяет избежать многократного исправления одной и той же информации в разных местах. Например, после ввода и распечатки ряда документов выяснилось, что наименование организации-контрагента, на которую были выписаны эти документы, указано неправильно. Так как наименование контрагента вводилось в документы путем выбора из списка контрагентов, достаточно отредактировать наименование контрагента только в списке – измененное наименование будет отражено в документах автоматически, и достаточно будет только заново построить печатные формы. 269 Однако если удалить организацию-контрагента из списка, то во всех документах, в которых она использовалась, останутся так называемые «неразрешенные ссылки» – ссылки на несуществующий объект. Для исключения таких ситуаций в системе «1С:Предприятие» существует механизм контроля ссылочной целостности, о котором пойдет речь в этом разделе. 6.4.12.1. Основные понятия Механизм контроля ссылочной целостности разделяет процесс удаления объектов данных, на которые могут существовать ссылки (списки и документы), на два этапа. На первом этапе пользователи выполняют пометку объектов на удаление. При этом помеченный на удаление объект практически ничем не отличается в использовании от обычного объекта. На втором этапе администратор системы или иное лицо, для которого определены соответствующие права (установлено право Интерактивное удаление помеченных для соответствующих видов списков и документов), выполняет специальную процедуру – удаление помеченных объектов, которая реализована в виде стандартной функции Удаление помеченных объектов. В ходе выполнения этой процедуры происходит полный анализ всех ссылок на помеченные объекты, и могут быть удалены только те объекты, на которые ссылки либо отсутствуют, либо располагаются в объектах, которые также помечены для удаления. Фактически процедура удаления помеченных объектов является регламентной. Ее рекомендуется выполнять периодически по мере накопления помеченных объектов. 6.4.12.2. Включение режима контроля ссылочной целостности Система «1С:Предприятие» позволяет удалять лишнюю или устаревшую информацию в двух режимах:  Непосредственное удаление объектов – не производится анализ использования удаляемого объекта в других объектах базы данных.  Использование контроля ссылочной целостности – объекты сначала помечаются на удаление, а затем производится контроль наличия ссылок на эти объекты в других объектах. ВНИМАНИЕ! Установка прав удаления (непосредственное удаление или использование контроля ссылочной целостности) производится для каждой роли, назначаемой пользователям, по каждому виду объектов (списков и документов) на этапе проектирования прикладного решения. Если пользователь работает в режиме непосредственного удаления, то дополнительная ответственность ложится и на пользователя, выполняющего удаление объектов, и на администратора системы, определяющего права пользователей и действия системы при неразрешенных ссылках. Работа системы без контроля ссылочной целостности может быть, например, использована специалистами в процессе отладки прикладного решения. Если контроль ссылочной целостности не используется, то удаление объектов происходит непосредственно (без пометки на удаление), и появляется возможность образования неразрешенных ссылок. Самым радикальным способом установки режима контроля ссылочной целостности является отключение в конфигурации в целом прав непосредственного удаления объектов. Таким способом полностью исключается возможность в пределах данного прикладного решения непосредственно удалять объекты. Пользователи будут иметь возможность только помечать объекты на удаление. Предоставление прав на непосредственное удаление, а также установку и снятие пометки удаления объектов производится для каждого вида объектов конфигурации. Если по данному виду для выбранного набора прав (роли) установлено право Интерактивное удаление, то пользователи, для которых определена эта роль, имеют возможность 270 непосредственного удаления объектов данного вида. Установка прав производится при разработке прикладного решения. Аналогично предоставляется право установки и снятия пометки удаления объектов, а также удаления помеченных объектов. Разумеется, только отключение в конфигурации права Интерактивное удаление обеспечивает согласованное использование механизма ссылочной целостности всеми пользователями. ВНИМАНИЕ! Заметим, что также существует возможность непосредственного удаления объектов средствами встроенного языка. Поэтому элементы конкретной конфигурации могут выполнять непосредственное удаление в обход механизма контроля ссылочной целостности. В этом случае ответственность за целостность данных лежит на специалисте, выполняющем разработку конкретного механизма системы. 6.4.12.3. Непосредственное удаление объектов Если режим контроля ссылочной целостности не используется (в конфигурации установлено право Интерактивное удаление у конкретного пользователя для конкретного вида объекта конфигурации), в списках списков и в журналах документов пользователь имеет возможность использовать пункт меню Удалить непосредственно (клавишу Shift + Del или соответствующую кнопку панели инструментов) для удаления данного вида объектов. При этом данный объект будет удален без проверки ссылок на него в других объектах. 6.4.12.4. Установка и снятие пометки удаления При использовании механизма контроля ссылочной целостности в списках списков и журналах документов в меню Все действия присутствует пункт Пометить на удаление/Снять пометку. При выборе данного пункта меню выполняется пометка объекта на удаление. Помеченный на удаление объект отмечается в левой колонке списка значком, изображающим перечеркнутый образ объекта. ВНИМАНИЕ! При пометке на удаление проведенного документа он становится непроведенным. Выбор пункта меню Все действия – Пометить на удаление/Снять пометку удаления помечает объект на удаление, а для помеченного на удаление объекта снимает у него пометку удаления. ВНИМАНИЕ! При снятии пометки удаления у документа он не становится проведенным. Для того чтобы он стал проведенным, документ следует провести. Возможность установки и снятия пометки удаления конкретным пользователем также регламентируется правами доступа (отдельно пометка и снятие пометки). 6.4.12.5. Особенности использования объектов, помеченных на удаление В основном помеченные на удаление объекты используются так же, как и обычные. Они также показываются в списках, по ним может выполняться поиск и т. д. Помеченные на удаление объекты могут быть открыты и изменены. Помеченный на удаление документ не может быть проведен. При попытке выполнить проведение помеченного на удаление документа выдается соответствующее сообщение, и проведение документа не выполняется. 6.4.13. Стандартные функции Стандартные функции – это набор инструментов системы, предназначенный для выполнения различных сервисных операций, которые могут потребоваться при выполнении действий по администрированию информационной базы. 271 Доступ к стандартным функциям возможен только в режиме 1С:Предприятие. Для получения доступа к стандартным функциям необходимо включить соответствующий параметр в окне настроек (Сервис – Параметры – Отображать команду "Все функции"). ПРИМЕЧАНИЕ. Для окон стандартных функций не поддерживается получение навигационных ссылок, и они не могут быть добавлены в избранные работы пользователя. Ниже приведен полный список стандартных функций с кратким описанием. Название Краткое описание Активные пользователи Отображает список пользователей, работающих в данный момент с системой «1С:Предприятие». Доступность функции определяется правом Активные пользователи Журнал регистрации Позволяет просматривать журнал регистрации. Доступность функции определяется правом Журнал регистрации Поиск ссылок на объекты Позволяет найти объекты, ссылающиеся на какой-либо выбранный объект Проведение документов Позволяет выполнять проведение и перепроведение документов за выбранный период, а также восстанавливать последовательности, существующие в конфигурации Удаление помеченных Позволяет выполнить удаление объектов, помеченных на объектов удаление Управление итогами Позволяет выполнять регламентные операции с регистрами Управление полнотекстовым поиском Позволяет управлять полнотекстовым поиском Для вызова необходимой стандартной функции следует открыть окно Все функции, выбрать ветвь Стандартные функции и в открывшемся списке выбрать нужную стандартную функцию (если она доступна). Далее подробно описаны все стандартные функции. 6.4.13.1. Список активных пользователей На экран выводится окно со списком пользователей, работающих в данный момент с базой данных. Рисунок 6.98 – Список активных пользователей Данные пользователя, вызвавшего окно (текущего соединения), отображаются полужирным начертанием. 272 В нижней части окна отображается общее количество пользователей, работающих с данной информационной базой. Открыть журнал регистрации событий – открывает журнал регистрации. Работа пользователя – открывает журнал регистрации с установленным отбором по выбранному пользователю. 6.4.13.2. Журнал регистрации Для выполнения административных обязанностей часто требуется выяснить, какие события происходили в определенный момент времени или какие действия выполнял тот или иной пользователь. Для этих целей предназначен журнал регистрации. В нем могут фиксироваться различные события. С его помощью администратор может получить историю работы пользователей с системой. При работе пользователей система «1С:Предприятие» фиксирует в журнале основные действия, выполняемые пользователем по модификации данных информационной базы, выполнению регламентных операций, подключению и отключению от системы и т. д. 6.4.13.2.1. Просмотр журнала регистрации Просмотр журнала регистрации выполняется в соответствующей форме. Рисунок 6.99 – Журнал регистрации Каждое событие фиксируется в отдельной строке журнала. В левой колонке Дата, время пиктограммой отображается вид события (рисунок 6.100). Для просмотра события следует выбрать пункт Все действия – Просмотр текущего события в отдельном окне. При работе с системой могут возникать события следующих видов: 273 Рисунок 6.100 – Виды событий журнала регистрации Если событие связано с данными, то становится доступным пункт Все действия – Открыть данные для просмотра. С его помощью можно просмотреть данные, с которыми связано событие. Событие может быть либо транзакционным либо независимым (определяется программно). По умолчанию установлен независимый режим записи событий. Следует учитывать, что есть набор предопределенных событий, которые формируются на уровне системы. Для таких событий транзакционность устанавливается также на уровне системы. Так, события изменения данных, проведения документов являются транзакционными, а начало и завершение сеанса – независимыми. Ниже приведен полный список предопределенных событий.  Независимые:  Информационная база:  изменение параметров информационной базы,  изменение региональных установок,  изменение параметров журнала регистрации,  изменение главного узла.  Тестирование и исправление:  сообщение,  предупреждение,  ошибка.  Пользователи:  добавление,  изменение,  удаление.  Фоновое задание:  запуск,  успешное завершение,  ошибка выполнения,  отмена.  Транзакционные:  Данные:  добавление,  изменение,  удаление,  проведение,  отмена проведения,  изменение периода рассчитанных итогов. 274  Транзакция: начало, фиксация, отмена. В колонках Транзакция и Статус транзакции показывается информация о транзакции. Для транзакционных событий статус транзакции может принимать одно из следующих значений: Не завершена, Зафиксирована, Отменена. У независимых событий статус транзакции отсутствует. При начале транзакции в журнал регистрации записывается событие начала транзакции Транзакция.Начало, которому присваивается идентификатор транзакции. По завершении транзакции в случае ее фиксации в журнал записывается событие Транзакция.Фиксация, статус транзакции записи Транзакция.Начало обновляется на Зафиксирована. В случае отмены транзакции в журнал записывается событие Транзакция.Отмена, статус транзакции для записи Транзакция.Начало обновляется на Отменена. В случае аварийного завершения выполнения статус транзакции остается Не завершена. ВНИМАНИЕ! При открытии журнала регистрации по умолчанию устанавливается отбор по событиям, исключающий события, связанные с транзакциями. Записи, соответствующие отмененным транзакциям и транзакциям с неопределенным статусом, выводятся бледным шрифтом. Кроме просмотра журнала регистрации текущей информационной базы, имеется возможность просмотреть фрагмент журнала регистрации, ранее сохраненного в формате LGP. Для этого нужно воспользоваться командой Все действия – Загрузить из файла.    6.4.13.2.2. Установка интервала С помощью пункта меню Все действия – Установить интервал дат для просмотра можно управлять интервалом показа событий журнала. Рисунок 6.101 – Диалог настройки периода В диалоге настройки нужно выбрать требуемый интервал и нажать кнопку ОK. Этот же диалог можно вызвать двойным щелчком по содержимому колонки Дата, время. 6.4.13.2.3. Установка отбора С помощью пункта меню Все действия – Отбор можно управлять отбором событий журнала. На экран выводится окно настройки отбора. 275 Рисунок 6.102 – Диалог настройки отбора в журнале регистрации В диалоге производится установка фильтров отбора по периоду, пользователю, событию, наименованию компьютера, номеру соединения, степени важности событий, комментарию. Если исполнялись несколько видов приложений, то в списке приложений можно указать, события каких именно приложений следует отбирать. В списке событий указывается, какие виды событий нужно включить в отбор. В группе Данные указываются данные, по которым будет производиться отбор событий. Информация о событиях представлена в колонках Метаданные, Данные и Представление данных журнала регистрации. В поле Метаданные содержится список метаданных, представленных в конфигурации. Нужно установить флажки для тех метаданных, по которым требуется произвести отбор. В поле Данные выбирается объект информационной базы, по которому требуется отобрать события. В поле Представление данных указывается строковое представление. В группе Прочие указываются дополнительные параметры отбора:  Статус транзакции – выбираются статусы транзакции.  Транзакция – указывается конкретная транзакция. 276  Сеансы – указываются номера сеансов (через запятую).  Рабочие серверы – выбираются центральные серверы кластеров (для клиентсерверного варианта работы).  Основные IP порты – выбираются IP-порты менеджеров кластера (для клиентсерверного варианта работы).  Вспомогательные IP порты – выбираются вспомогательные порты менеджеров кластера (для клиент-серверного варианта работы). Для установки отбора нужно нажать кнопку ОK. 6.4.13.3. Удаление помеченных объектов Процесс удаления помеченных объектов имеет несколько стадий. Стадии следуют строго последовательно. Перед каждой очередной стадией можно прервать процесс, закрыв окно режима. Ниже подробно описаны действия системы и пользователя на каждой стадии. 6.4.13.3.1. Выбор варианта удаления На первой стадии система предложит выбрать вариант удаления: полное или выборочное удаление. Рисунок 6.103 – Удаление помеченных объектов 6.4.13.3.2. Полное удаление При выборе варианта Полное удаление система выполняет попытку удаления всех помеченных объектов. Удаление происходит с контролем ссылочной целостности, по окончании операции не все объекты могут оказаться удаленными, т. к. на часть из них могут оказаться ссылки в неудаляемых объектах. Перечень неудаленных объектов отображается после окончания процесса удаления (если остались неудаленные объекты). 6.4.13.3.3. Выборочное удаление При выборе варианта Выборочное удаление система выполняет формирование списка объектов, помеченных на удаление. В конце этой стадии пользователю выдается окно. Оно содержит список объектов, помеченных на удаление, которые обнаружены в информационной базе. В этом списке можно выбрать те объекты, которые должны быть удалены. Если напротив объекта в списке объектов установлен флажок, то это означает, что объект будет удален. 277 Рисунок 6.104 – Список объектов, помеченных на удаление Установка пометки в данном диалоге имеет смысл только в пределах режима удаления помеченных объектов и не влияет на пометки объектов в самой системе. Если данная пометка была снята в диалоге, то после выхода из режима удаления помеченных объектов объект все равно останется помеченным на удаление. Двойным щелчком мыши на объекте можно открыть форму этого объекта. Это позволяет просмотреть объекты и принять решение о правомерности их удаления. На этой стадии пользователь может, не закрывая окно режима удаления помеченных объектов, переходить в другие окна и режимы, а также вносить любые исправления. Для удаления объектов следует нажать кнопку Удалить. В этом случае система переходит к удалению объектов, разрешенных для удаления. Удаление происходит с контролем ссылочной целостности, по окончании операции не все объекты могут оказаться удаленными, т. к. на часть из них могут оказаться ссылки в неудаляемых объектах. 6.4.13.3.4. Список неудаленных объектов Если в информационной базе есть ссылки на выбранные объекты в списке помеченных на удаление, то система выведет предупреждение: Невозможно удалить объектов: <количество>, т. к. в информационной базе на них ссылаются другие объекты. Такие объекты удалены не будут. По нажатии кнопки Далее система отобразит список неудаленных объектов, который содержит список обнаруженных ссылок. Ссылки выводятся для выбранного объекта. 278 Рисунок 6.105 – Список неудаленных объектов При выборе в списке нужной ссылки ее можно открыть для просмотра и редактирования. Это позволяет внести изменения в объект (выбрать другую ссылку), чтобы помеченный объект можно было удалить. Чтобы выйти из режима удаления помеченных объектов, следует нажать кнопку Закрыть. 6.4.13.4. Поиск ссылок на объекты Данный режим предоставляет администратору системы возможность найти объекты, ссылающиеся на выбранный объект. В данном режиме пользователь может выбрать объект и получить список ссылок на него, содержащихся в других объектах информационной базы. 279 Рисунок 6.106 – Поиск ссылок на объект Необходимо выбрать объект в поле Объект и нажать кнопку Найти ссылки. Система производит поиск ссылок на указанный объект во всех объектах информационной базы, в которых он может встречаться (определяется прикладным решением). После выполнения поиска можно проанализировать найденные ссылки. Чтобы открыть форму интересующей ссылки, следует нажать кнопку Открыть (если это допустимо). При работе с окном можно переходить в другие окна и режимы, не закрывая окно поиска. 6.4.13.5. Проведение документов С помощью данного сервиса имеется возможность выполнять пакетное проведение или перепроведение документов, а также восстановление последовательностей. 6.4.13.5.1. Проведение документов С помощью сервиса Проведение документов документов выбранных видов в указанном интервале. осуществляется проведение 280 Рисунок 6.107 – Проведение документов В верхней части диалога, в поле Период задается интервал, в котором будут проводиться документы. Для установки периода следует выбрать вариант стандартного периода или выбрать Произвольный период и установить период вручную. Если в окне задания произвольного периода очистить обе границы интервала, то проведение будет выполняться без ограничения периода, о чем будет свидетельствовать соответствующая надпись справа от поля выбора периода. Окно диалога содержит список видов документов, которые могут проводиться. В список доступных документов попадают только те виды документов, для которых у текущего пользователя имеется право Интерактивное проведение. Список выбранных документов, которые следует проводить, редактируется двойным щелчком мыши или с помощью кнопок Добавить > (доступно множественное выделение) и Добавить все >> и обратно, < Исключить (доступно множественное выделение) и << Исключить все. Над списком типов документов расположено поле Режим проведения, в котором следует выбрать, какие документы будут проводиться: проведенные, непроведенные или и те и другие. После установки всех необходимых параметров для выполнения проведения следует нажать кнопку Провести. Перед проведением определяется дата первого и последнего проводимого документа (исходя из режима проведения и списка проводимых документов). При групповом проведении документы, помеченные на удаление, не проводятся, даже если они подходят по условиям, выбранным в системном диалоге группового проведения. Если в процессе проведения документа возникла ошибка, то поведение системы зависит от значения флажка Прекращать проведение при возникновении ошибки. Если флажок установлен, то проведение будет завершено. Если флажок снят (значение по умолчанию), то проведение будет продолжено, а документы, проведение которых было выполнено с ошибками, будут сохранены. 281 После завершения процесса проведения будет выведена информация о количестве проведенных документов. Если в процессе проведения были обнаружены ошибки, то будет открыта форма, содержащая список документов с ошибками. Рисунок 6.108 – Документы с ошибками проведения Если в списке ошибок присутствует только одна строка Ошибка проведения документа, то это означает, что во время проведения документа произошла ошибка, но при этом документ не сформировал собственных сообщений об ошибке. Двойной щелчок по строке с именем документа приведет к его открытию для просмотра. Во время процесса проведения в панель состояния выводится информация о реальном интервале проведения документов, текущей дате проведения и общем количестве проведенных документов. Прервать процесс проведения документов можно с помощью комбинации Ctrl + Break. 6.4.13.5.2. Восстановление последовательностей Все документы в системе «1С:Предприятие» образуют единую хронологическую последовательность. Для этого каждый документ имеет дату и время. Даже если два документа имеют одинаковую дату и одинаковое время, они все равно располагаются в определенной последовательности, определяемой порядком их ввода в систему. Дата и время документа могут быть изменены. Таким образом, независимо от порядка ввода документы могут быть расположены в последовательности, которая отражает реальный порядок событий, происходивших в хозяйственной жизни предприятия. В системе «1С:Предприятие» документ выполняет в процессе проведения некоторые действия, которые отражают данный документ в различных механизмах учета, поддерживаемых «1С:Предприятием». Алгоритм проведения документа, как правило, отражает в учете данные, записанные в самом документе (в его реквизитах). Однако в некоторых случаях алгоритм проведения документа анализирует также и текущие итоги, используя их при проведении. Например, если документ списывает товары или материалы по средней себестоимости, то для определения суммы списания алгоритм проведения будет анализировать остатки товаров (материалов) на момент документа. Если списание выполняется по методу LIFO или FIFO, то алгоритм проведения будет анализировать существующие остатки товаров (материалов) в разрезе партий на момент (позицию) документа. Очевидно, что документы, использующие при проведении данные итогов (например, в разрезе партий), должны проводиться строго последовательно. Однако на практике из-за ошибок при вводе информации и несвоевременного поступления документов часто приходится вводить или исправлять документы задним числом. 282 Разумеется, в этом случае движения регистров, сформированные всеми последующими документами (расположенными после того, который был исправлен), становятся некорректными. Например, если выяснилось, что в одной из приходных накладных, введенных в начале месяца, было неверно указано количество товара, то во всех последующих расходных накладных, списывающих имеющиеся в наличии партии, необходимо заново проанализировать остатки с учетом внесенных изменений и заново записать движения регистров. То есть все документы, анализирующие остатки, расположенные после измененного документа, должны быть проведены заново. Для автоматического контроля необходимости перепроведения документов используются последовательности документов. Каждая введенная в конфигурации последовательность документов обеспечивает контроль порядка проведения документов указанных видов. Таким образом, в системе может существовать несколько независимых последовательностей. Режим восстановления последовательностей позволяет автоматически выполнить перепроведение всех документов, относящихся к последовательности, от текущей позиции границы последовательности до указанного момента. Текущая позиция границы последовательности определяется по дате, начиная с которой последовательность проведения документов необходимо восстановить. Рисунок 6.109 – Восстановление последовательности документов В таблице отображается список существующих в конфигурации последовательностей, на которые у текущего пользователя имеется право Изменение. В колонке Граница списка для каждой последовательности выводится текущая позиция границы последовательности. Для восстановления всех последовательностей можно нажать кнопку Восстановить все. Для выполнения восстановления последовательностей следует нажать кнопку Восстановить. При этом система будет перепроводить все документы, относящиеся к выбранным последовательностям, начиная с позиции наиболее ранней границы из выбранных последовательностей и до указанной позиции включительно. Если выбраны несколько последовательностей (с помощью множественного выделения), то будут восстанавливаться выбранные последовательности в последовательности их отображения в списке. Если выбрана единственная последовательность, будет восстановлена именно она. 283 Флажок Прекращать восстановление последовательностей после ошибки определяет поведение системы в том случае, если во время восстановления последовательности будет обнаружена ошибка. Если флажок снят (значение по умолчанию), то ошибка не приведет к остановке всего процесса, т. е. будет продолжено восстановление других выбранных последовательностей. В противном случае процесс будет остановлен при обнаружении любой ошибки. Прервать процесс восстановления последовательностей можно с помощью комбинации Ctrl + Break. 6.4.13.6. Управление итогами Данный сервис предоставляет возможность выполнять необходимые регламентные действия с регистрами, имеющимися в прикладном решении. К таким действиям относятся включение и выключение использования итогов, пересчет итогов, работа с агрегатами и т. д. Вся работа с итогами делится на два набора возможностей:  Часто используемые возможности (открывается по умолчанию) – этот режим предоставляет простые средства для выполнения наиболее часто используемых действий с итогами регистров.  Полные возможности – предоставляет полный доступ к возможностям управления итогами и агрегатами прикладного решения. В список попадают только те регистры накопления и бухгалтерии, на которые у текущего пользователя имеется право Управление итогами, и для которых в текущем сеансе используются все разделители, в состав которых они входят (если разделители существуют в прикладном решении). С этим списком оперируют оба режима работы с итогами. Для переключения режима использования служит гиперссылка в правой нижней части окна. При закрытии окно запоминает, в каком режиме оно находилось в момент закрытия, и при повторном открытии откроется в запомненном режиме. Далее подробнее опишем оба режима. 6.4.13.6.1. Часто используемые возможности К списку часто используемых возможностей относятся операции по установке периода рассчитанных итогов, включению использования итогов, перестройке и заполнению агрегатов, а также операция получения оптимальных агрегатов. Рисунок 6.110 – Управление итогами – часто используемые возможности 284 Установить период рассчитанных итогов Данная операция позволяет установить период рассчитанных итогов для всех регистров накопления и бухгалтерии, у которых включены итоги. Для регистров накопления период будет установлен на дату окончания предыдущего месяца, т. к. наиболее типовым использованием регистра накопления является получение текущих остатков. Для регистра бухгалтерии период будет установлен на дату окончания текущего месяца, т. к. наиболее типовым использованием регистра бухгалтерии является получение оборотов за текущий месяц. СОВЕТ. Операцию можно использовать в начале каждого месяца для повышения производительности регистров. Включить использование итогов Данная операция позволяет включить использование для всех регистров, у которых выключено использование итогов, кроме оборотных регистров накопления, находящихся в режиме агрегатов. СОВЕТ. Операция может понадобиться, например, в том случае, если аварийно завершится операция массового изменения данных регистров, которая отключает использование итогов для ускорения работы. Перестроить и заполнить Данная операция выполняет операции перестроения и заполнения для всех оборотных регистров накопления, у которых включен режим агрегатов и установлено их использование. Подробнее о работе с агрегатами можно прочитать в книге «1С:Предприятие 8.2. Руководство разработчика». СОВЕТ. Операцию можно использовать в качестве регламентной операции при использовании агрегатов. Получить оптимальные агрегаты Выполняет расчет оптимальных агрегатов для всех оборотных регистров накопления, у которых в конфигураторе заданы агрегаты. СОВЕТ. Операцию можно использовать как перед включением использования агрегатов, так и в процессе эксплуатации системы. 6.4.13.6.2. Полные возможности Режим полных возможностей позволяет получить полный доступ ко всем инструментам работы с итогами (закладка Итоги) и агрегатами (закладка Агрегаты) регистров накопления и регистров бухгалтерии. Работа с итогами На закладке Итоги представлен список доступных данному пользователю регистров накопления и бухгалтерии. 285 Рисунок 6.111 – Полные возможности управления итогами Список показывает текущее состояние регистров системы. Галочками отмечены те режимы, которые в данный момент включены для каждого регистра:  Итоги – состояние использования итогов;  Текущие итоги – состояние использования текущих итогов;  Период итогов – текущая дата актуальности итогов;  Разделение итогов – состояние режима разделения итогов;  Агрегаты/итоги – текущий режим использования агрегатов или итогов для оборотных регистров накопления, для которых в конфигураторе заданы агрегаты. Серым цветом отмечены те режимы, которые невозможно изменить при текущем состоянии системы. Так, например, серый цвет в колонке Разделение итогов означает, что для выбранного регистра в конфигураторе запрещено разделение итогов. Используя необходимые команды, можно включать или выключать соответствующий режим или выполнять расчет тех или иных итогов. При выполнении всех команд доступен режим множественного выделения. Т. е. исполняемая команда будет выполнена для всех выделенных регистров. Если во время выполнения команды будет обнаружена ошибка, то дальнейшее поведение системы зависит от состоянии флажка Прерывать обработку после ошибки с одним регистром. Если флажок снят (значение по умолчанию), то исполнение команды не будет прервано (в случае обнаружения ошибки) и будут обработаны все выделенные регистры, в противном случае обработка будет прервана. Если у регистра есть возможность работать в режиме агрегатов, то двойной щелчок по содержимому колонки Агрегаты/Итоги приведет к переходу на закладку Агрегаты и установке курсора на регистр с тем же именем, что и на закладке Итоги. Работа с агрегатами Инструменты, собранные на закладке Агрегаты, предназначены для управления агрегатами оборотных регистров накопления (подробнее об агрегатах можно прочитать в книге «1С:Предприятие 8.2. Руководство разработчика»). 286 Рисунок 6.112 – Полные возможности управления агрегатами Верхний список содержит перечень оборотных регистров накопления текущей конфигурации, для которых в конфигураторе заданы агрегаты. Нижний список (Агрегаты регистра...:) содержит перечень агрегатов, заданных для регистра, признак использования того или иного агрегата и статистическую информацию об агрегате. Имеется возможность переключать режим использования регистра, изменять признак использования агрегатов и выполнять основные операции с агрегатами. При расчете оптимальных агрегатов будет запрошен каталог, в который будет помещен файл со списком оптимальных агрегатов для выбранного регистра. Регистр будет отмечен полужирным шрифтом, если рекомендуется заменить существующие в системе агрегаты на рассчитанный список оптимальных агрегатов. При сохранении оптимальных агрегатов имя файла будет сформировано следующим образом: ИмяАгрегата.xml. Так, для регистра Продажи на рисунке 6.112 имя файла оптимальных агрегатов будет иметь вид Продажи.xml. 6.4.13.7. Управление полнотекстовым поиском Система «1С:Предприятие» предоставляет возможность организации полнотекстового поиска по данным. Возможность поиска, формы для ввода условий поиска проектируются при создании конфигурации. Система предоставляет возможности для управления полнотекстовым поиском. Рисунок 6.113 – Режим управления полнотекстовым поиском 287 При нажатии кнопки Настройка... открывается диалог настройки полнотекстового поиска. Если в этом диалоге установлен флажок Разрешить полнотекстовый поиск, то программа использует индексирование данных для организации поиска. Для включения или выключения полнотекстового поиска требуется монопольный доступ к информационной базе. Это означает, что включить (выключить) полнотекстовый поиск можно только тогда, когда с информационной базой работает только один пользователь. Индекс поиска формируется системой после нажатия кнопки Обновить индекс. Для оптимизации процесса формирования индекса используется основной индекс и дополнительный. Дополнительный индекс формируется при вводе данных и содержит информацию по данным, введенным после последнего обновления основного индекса. Очистка индексов (запускается нажатием кнопки Очистить индекс) нужна для того, чтобы удалить индекс, например, чтобы освободить дисковое пространство, занятое файлами с индексом. После очистки индекса нужно выполнить индексирование (если требуется). Кнопки в диалоге доступны только в том случае, если пользователь имеет право Административные функции. В поле Дата актуальности индекса указывается дата начала последнего выполнения индексирования. В верхней части диалога указывается необходимость обновления индекса. 288
«Производственные информационные системы» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Автор(ы) В.Г. Матвейкин, Б.С. Дмитриевский, К.А. Садов
Смотреть все 493 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot