Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1C-DevGuide83

.pdf
Скачиваний:
362
Добавлен:
14.05.2015
Размер:
46.69 Mб
Скачать

Занятие 23 701

зователю доступны разделы Бухгалтерия, Расчет зарплаты и Пред-

приятие в соответствии с правами, которые мы установили для этих ролей на предыдущем занятии.

А для пользователя Деловой (с ролью Директор) начальная страница будет выглядеть следующим образом (рис. 23.21).

Рис. 23.21. Начальная страница для пользователя с ролью «Директор»

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

Для пользователя Гусаков (с ролью Мастер) начальная страница будет выглядеть следующим образом (рис. 23.22).

Этому пользователю доступны разделы Учет материалов, Оказание услуг и Предприятие в соответствии с правами, которые мы установили для этой роли на предыдущем занятии.

702 1С:Предприятие 8.3. Практическое пособие разработчика

Рис. 23.22. Начальная страница для пользователя с ролью «Мастер»

Если теперь

мастер откроет какой-то из документов, то слева

от  заголовка

документа будет доступна кнопка Начальная

страница (с  иконкой домика) для перехода на начальную страницу

(рис. 23.23).

Рис. 23.23. Возврат на начальную страницу

Занятие 23 703

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

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

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

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

Если же какой-то пользователь решит минимизировать командный интерфейс и тем самым расширить рабочее пространство, то он может скрыть все панели прикладного решения, кроме панели инструментов, по команде главного меню Вид Скрыть все панели

(рис. 23.24).

Рис. 23.24. Минималистичный командный интерфейс приложения

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

704 1С:Предприятие 8.3. Практическое пособие разработчика

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

Контрольные вопросы

;; Как настроить командный интерфейс разделов приложения? ;; Что такое раздел «Главное»?

;; Как настроить командный интерфейс основного раздела? ;; Что такое начальная страница?

;; Как настроить начальную страницу для различных пользователей?

;; Как настроить видимость команд по ролям?

Занятие 24

Обмен данными

Продолжительность

 

Ориентировочная продолжительность занятия – 6 часов 10 минут.

 

Общие сведения об обмене данными...........................................................................

706

Что такое план обмена.............................................................................................

707

XML-сериализация....................................................................................................

710

Запись/чтение документов XML...............................................................................

711

Универсальный механизм обмена данными................................................................

711

Константа для обмена данных.................................................................................

712

Доработка объектов конфигурации, участвующих в обмене................................

713

Добавление плана обмена.......................................................................................

715

Процедуры обмена данными...................................................................................

721

Процедура записи данных....................................................................................

723

Процедура чтения данных....................................................................................

727

Проверка работы обмена данными.........................................................................

740

Запуск базы филиала...........................................................................................

743

Механизм распределенных информационных баз......................................................

748

Основные сведения..................................................................................................

748

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

750

Интерактивный обмен..............................................................................................

750

Запуск базы отделения.........................................................................................

753

Программный обмен.................................................................................................

758

Изменение структуры узлов.....................................................................................

769

Контрольные вопросы....................................................................................................

772

706 1С:Предприятие 8.3. Практическое пособие разработчика

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

Общие сведения об обмене данными

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

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

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

К механизмам обмена данными могут быть отнесены:

Планы обмена,XML-сериализация,

Средства чтения и записи документов XML.

В общем случае схема взаимодействия этих трех составляющих может быть представлена следующим образом (рис. 24.1).

Рис. 24.1. Схема взаимодействия механизмов обмена данными

Занятие 24 707

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

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

XML-сериализация позволяет преобразовать объект «1С:Предприятия» в последовательность данных, представленных в формате XML. Кроме этого, XML-сериализация выполняет и обратное преобразование – преобразует последовательность данных формата XML в объект «1С:Предприятия», при условии что имеется соответствующий тип «1С:Предприятия».

Запись и чтение документов XML обеспечивают запись/чтение документов формата XML из встроенного языка.

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

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

Что такое план обмена

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

рации План обмена.

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

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

7081С:Предприятие 8.3. Практическое пособие разработчика

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

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

Узнай больше!

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

В обмене данными могут участвовать:

объекты базы данных: элементы справочников, документы и т. д.,

необъектные данные: наборы записей регистров, последовательностей, константы,

специальный объект встроенного языка – УдалениеОбъекта.

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

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

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

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

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

Занятие 24 709

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

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

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

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

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

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

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

710 1С:Предприятие 8.3. Практическое пособие разработчика

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

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

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

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

XML-сериализация

Термином XML-сериализация обозначается механизм, позволяющий представить объект «1С:Предприятия» в виде последовательности данных в формате XML. Кроме этого, XML-сериализация позволяет выполнить и обратное преобразование – представить последовательность данных формата XML в виде объекта «1С:Предприятия», если существует подходящий тип данных.

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

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

В результате XML-сериализации вся эта совокупность данных представляется в виде последовательности соответствующих данных формата XML.