Записать данные в сообщение 1 страница

Т


Интерфейс, роль, список


пользовате


 


Создадим новый объект конфигурации Роль с именем «Администратор». Откроется окно редактирования прав:


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

Теперь нам останется лишь пройти по видам объектов конфигурации и установить для них права «Чтение», «Просмотр» и «Использование». Вторая роль нашей конфигурации готова.

Следующая роль, которую мы создадим, будет роль «Мастер». Снова создадим новый объект конфигурации Роль с именем «Мастер» и снимем все права в окне редактирования прав. После этого, Выполним команду Действия | Установить по подсистемами выберем подсистему «УчетМатериаловИУслуг». В результате будут установлены все права на объекты конфигурации, относящиеся к данной подсистеме.


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

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


380



Использование основных объектов конфигурации


Интерфейс, роль, список пользователей


 


Если теперь установить фильтр объектов по подсистем «УчетМатериаловИУслуг», то можно, при необходимости, внести уточнения в установленные права:

Установим фильтр по подсистеме...


В заключение нам с вами осталось создать две роли: «Бухгалтер» и «Расчетчик». Мы разделим права по расчету зарплаты и по ведению бухгалтерского учета. Дело в том, что в OOO «На все руки мастер» есть бухгалтер и помощник бухгалтера. Помощник бухгалтера занят, в основном, расчетом зарплаты, но иногда это делает и главный бухгалтер. Поэтому ему необходимо будет назначить обе роли, в то время как помощнику - только роль «Расчетчик».

Создадим новый объект конфигурации Роль с именем «Расчетчик». В окне редактирования прав снимем все права и затем установим их по подсистеме «РасчетЗарплаты» (и не забудем запретить интерактивное

удаление).

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

Список прав для каждой роли можно получить, выполнив в окне редактирования прав команду Действия | Вывести список.

Теперь мы можем перейти к созданию интерфейсов.


В частности, для справочника «Сотрудники» мы запретим добавление, изменение и удаление. Обратите внимание, что при запрете права «Добавление» исчезла отметка и у права «Интерактивное добавление», т.к. оно является «уточнением» права «Добавление». Точно также «уточненные» права запрещаются и при отмене прав на изменение и удаление.

Кроме этого мы снова снимем разрешения на интерактивное удаление для всех объектов базы данных.


382



Использование основных объектов конфигурации


Интерфейс, роль, список пользователей


 


           
   
 
   

Создадим новый объект конфигурации Интерфейс, и на экране появится конструктор главного меню:

Объект конфигурации Интерфейс

П

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

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

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

Создание интерфейсов

Д

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

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


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

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

Мы так и поступим. Первый интерфейс, который мы будем создавать, будет интерфейс «Бухгалтер». Поэтому выберем подсистемы «Бухгалтерия» и «РасчетЗарплаты» и нажмем «Установить». В конструкторе меню обновится список команд и используемых подменю. Нажмем «Построить» и зададим имя интерфейса - «Бухгалтер». Укажем, что этот интерфейс будет относиться к подсистемам «Бухгалтерия» и «РасчетЗарплаты».


 


384



Использование основных объектов конфигурации


Интерфейс, роль, список пользователей


 


Вместе с палитрой свойств на экране открылось окно редактст-интерфейса - остановимся на нем подробнее:


В данном случае нас все устраивает, за исключением пункта «Прочие», в котором для команды «Основной» мы дадим более понягный текст - «План счетов Основной»:


 


 
 



Изменим текст пункта подменю

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

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


Теперь создадим интерфейс «Мастер». Для него в конструкторе меню выберем подсистему «УчетУслугИМатериалов» и укажем, что сам он тоже будет относиться к подсистеме «УчетУслугИМатериалов».

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


А при создании меню интерфейса «Администратор» мы не будем выбирать никаких подсистем, а сразу построим меню. Обратите внимание, что в этом случае система включила в меню пункты стандартных действий: «Файл», «Операции», «Сервис», «Окна» и


386



Использование основных объектов конфигурации


Интерфейс, роль, список пользоват<


 


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

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


Администрирование работы пользователей

Д

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

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

т.д.

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

После того, как обновление произведено, выполним команду
Администрирование | Пользователи.Откроется список

пользователей системы.

Пока что он пуст, поэтому добавим нового пользователя (Действия| Добавить):


 



 


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


388



Использование основных объектов конфигурации


Интерфейс, роль, список пользователей


 


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

Следующие две области окна посвящены способам аутентификации пользователя.

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

Аутентификация Windows подразумевает, что при запуске системы 1С:Предприятие от пользователя не требуется никакой дополнительной информации. Система 1С:Предприятие определяет под каким пользователем запущена операционная система Windows (имеет смысл использовать для NT-подобных операционных систем: NT, 2000, XP), и затем обращается к своему списку пользователей. Если она находит в нем пользователя, которому поставлен в соответствие текущий пользователь Windows, система открывается с правами и интерфейсом, которые указаны для этого пользователя.

Зададим имя пользователя «Администратор», полное имя тоже «Администратор». Перейдем на закладку «Прочие».


Отметим роль «Администратор», основным интерфейсом укажем «Администратор» и язык конфигурации выберем «Русский».

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

Обратите внимание, что главному бухгалтеру Назаровой поставлены в соответствие две роли: «Расчетчик» и «Бухгалтер», поскольку она должна иметь возможность не только вести бухгалтерский учет, но и рассчитывать зарплату.

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

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


 



 


 


390



Использование основных объектов конфигурации


Что нового мы узнали

- для чего предназначен объект конфигурации Роль - как создать роль, используя подсистемы конфигурации - для чего предназначен объект конфигурации Интерфейс - как создать интерфейс, используя подсистемы

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

их права

- чем аутентификация средствами 1С:Предприятия отличается от аутентификации Windows


Глава 13. Обмен данными

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


 


392



Использование основных объектов конфигурации


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


 


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

С

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

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

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

• Планы обмена,

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

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

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

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


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

XML-сериализация позволяет преобразовать объект

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

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

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

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

Объект конфигурации ПланОбмена

Д

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

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

узел,

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

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


 


394



Использование основных объектов конфигурации


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


 


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

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

• Константа.МенеджерЗначения<имя>,

• СправочникОбъект.<имя>,

• ДокументОбъект.<имя>,

• ПоследовательностьНаборЗаписей<имя>,

• ПланВидовХарактеристикОбъект<имя>,

• ПланСчетовОбъект.<имя>,

• ПланВидовРасчетаОбъект<имя>,

• РегистрСведенийНаборЗаписей.<имя>,

• РегистрНакопленияНаборЗаписей<имя>,

• РегистрБухгалтерииНаборЗаписей.<имя>,

• РегистрРасчетаНаборЗаписей.<имя>,

• ПерерасчетНаборЗаписей.<имя>,

• БизнесПроцессОбъект.<имя>,

• ЗадачаОбъект.<имя>,

• УдалениеОбъекта.

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

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

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

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


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

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

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


 


396



Использование основных объектов конфигурации


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


 


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

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

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

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

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

Т

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

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


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

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