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





|ИЗ
| РегистрРасчета. Начисления. ФактическийПериодДействия
| КАК НачисленияФактическийПериодДействия";
ВыборкаРезультата = Запрос. Выполнить().Выбрать(); Диаграмма = ЭлементыФормы. ДиаграммаГанта:
// Запретить обновление диаграммы Диаграмма. Обновление = Ложь;
Диаграмма. Очистить(); Диаграмма. ОтображатьЗаголовок = Ложь;
//заполнить диаграмму Пока ВыборкаРезультата. Следуюший() цикл //получить серию, точку н значение для них
ТекущаяСерия=Диаграмма. УстановитьСерию(ВыборкаРезультата. ВидРасчета,
ВыборкаРезультата. ВидРасчета); ТекущаяТочка = Диаграмма
.УстановитьТочкуСВыборкаРезультата. Сотрудник, ВыборкаРезультага. Сотрудник);
ТекущееЗначение = Диаграмма. ПолучитьЗначение(ТекущаяТочка,
ТекущаяСерия);
//создать нужные нам интервалы в значении ТекущийИнтервал = ТекущееЗначеиие. Добавить();
ТекущийИнтервал. Начало = ВыборкаРезультата. ПериодДействияНачало; ТекущийИнтервал. Конец = ВыборкаРезультата. ПериодДействияКонец; ТекущийИнтервалЛ*екст = ВыборкаРезультата. РегистраторПредставление; ТекущийИнтервал. Расшифровка = ВыборкаРезультата. Регистратор; КонецЦикла;
//раскрасить серии своими цветами Для Каждого Серия из Диаграмма. Серии цикл
Если Серия. Значение = ПланыВидовРасчета. ОсновиыеНачисления. Оклад тогда Серия. Цвет = WEBЦвета. Желтый;
иначеЕсли Серия. Значение =
ПланыВидовРасчета. ОсновныеНачисления. Премиятогда
Серия. Цвет = WEBЦвета. Зеленый;
иначеЕсли Серия. Значение =
ПланыВидовРасчета. ОсновныеНачисления. Невыходтогда
Серия. Цвет = WEBЦвета. Красный; КонецЕсли; КонецЦикла;
//разрешить обновление диаграммы Диаграмма. Обновление = Истина;
КонецПроцедуры
Сначала в переменной «Диаграмма» мы сохраняем расположенную в форме диаграмму Ганта и запрещаем обновление диаграммы на то время, пока мы будем заполнять ее данными. Это нужно для того, чтобы в процессе заполнения не выполнялись пересчеты при каждом изменении данных диаграммы. После окончания заполнения диаграммы мы разрешим обновление, и все пересчеты будут выполнены один раз.
Затем в цикле по выборке запроса мы заполняем диаграмму. Сначала, используя методы УстановитьСерию() и УстановитьТочку() мы получаем либо существующие, либо новые точку и серию. Точки и серии однозначно идентифицируются своими значениями, в качестве которых мы используем сотрудника и вид расчета из результата запроса.
После того, как точка и серия получены, с помощью метода ПолучитьЗначение() мы получаем соответствующее им значение диаграммы.
Затем мы добавляем в значение диаграммы новый интервал, задаем его начало и конец, задаем текст интервала, который будет показываться во всплывающей подсказке, и задаем расшифровку интервала, которая будет выполняться при двойном щелчке мышью на этом интервале.
После того, как все значения диаграммы сформированы, мы раскрашиваем серии своими цветами. Серии диаграммы представляют собой коллекцию значений, которую мы перебираем при помощи конструкции Для каждого... Цикл.
Запустим 1С:Предприятие в режиме отладки и посмотрим на результат работы отчета:

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


А теперь посмотрим, как выглядит механизм вытеснения По периоду действия «в действии». Откроем документ Начисления сотрудникам №3 и вместо одного прогула с 1 по 10 число зададим Гусакову два прогула: с 3 по 7 число и с 12 по 15 число.
Проведем документ и снова нажмем «Сформировать» в отчете:

Теперь вы наглядно видите, как записи вида расчета «Невыход» вытеснили по периоду действия запись расчета «Оклад», изменив ее фактический период действия.
Следует отметить, что существует также возможность интерактивной настройки параметров диаграммы Ганта, доступная через пункт контекстного меню «Шкала времени и масштаб...».
Что нового мы узнали
- как создать движения документа по регистру расчета
- как запросом получить записи перерасчета - как работает перерасчет - как рассчитать записи регистра расчета
- как запросом получить данные графика и базы - как выполнить перерасчет отдельных записей регистра расчета
- как получить запросом записи регистра расчета - как получить запросом фактический период действия записей регистра расчета
- для чего используется диаграмма Ганта - как устроена диаграмма Ганта
- как заполнить диаграмму Ганта данными

370
371
Подсистема

Глава 11. Подсистема
В этой главе мы познакомимся с объектом конфигурацИи Подсистема и узнаем, какие полезные возможности предоставляет разработчику использование этого объекта.
Зачем нужны подсистемы?
В |
конфигураторе 1С:Предприятия существует возможность определить логическую структуру создаваемого прикладного решения, описав ее в виде различных, по своей функциональности, частей, которые в совокупности составляют данное прикладное решение.
Для описания такой структуры существуют объекты конфигурации Подсистема. Эти объекты располагаются в ветке объектов «Общие» и позволяют строить древовидную структуру, состоящую из подсистем и подчиненных подсистем.
Большинство объектов конфигурации имеют соответствующее свойство «Подсистемы», с помощью которого объект конфигурации можно отнести к тем или иным подсистемам. Такая привязка объектов конфигурации к логической структуре прикладного решения имеет две полезных возможности использования.
Во-первых, при разработке достаточно крупных прикладных решений, зачастую возникает необходимость оперировать не всеми объектами конфигурации, а только теми, которые относятся к разрабатываемой в данный момент логической части конфигурации. В этом случае разработчик имеет возможность отфильтровать содержимое дерева конфигурации по тем подсистемам, которые интересуют его в данный момент.
Во-вторых, принадлежность объектов конфигурации к определенной подсистеме позволяет легко создавать пользовательские интерфейсы и роли, поскольку пользователи, как правило, осуществляют какой-либо определенный набор действий, который определяется некоторым набором прав.
Подсистемы позволяют описывать прикладное решение в виде иерархического дерева функциональных блоков, поскольку каждая подсистема может состоять, в свою очередь, из нескольких других подсистем.

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


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


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

374
375
Использование основных объектов конфигурации
Подсистема
Теперь, при перемещении по дереву конфигурации, в окне будет отображаться состав подсистем, в которые входит выделенный объект конфигурации:
Что нового мы узнали
![]() |
![]() |
|
Зададим принадлежность объектов конфигурации к подсистемам
- для чего используется объект конфигурации Подсистема - как описать логическую структуру конфигурации при помощи объектов Подсистема
376
377
Интерфейс, роль, список пользователей

Глава 12. Интерфейс, роль, список пользователей
После того, как созданы все основные объекты конфигурации можно приступить к определению ролей пользователей и созданию интерфейсов.
До сих пор мы с вами использовали пункт меню «Операции», для того, чтобы получить доступ к тому или иному объекту конфигурации. Нам были доступны абсолютно все объекты конфигурации, и мы могли осуществлять с ними все доступные действия.
Однако при реальной работе пользователей одной из главных возможностей, которую должно обеспечивать прикладное решение, является разграничение прав доступа пользователей к той или иной информации, хранящейся в информационной базе.
Например, руководитель должен, очевидно, иметь доступ ко всей информации, которая содержится в базе данных, а вот кладовщик - напротив, должен иметь доступ только к информации, касающейся движения товаров на складах и не иметь возможности просматривать бухгалтерскую или кадровую информацию.
Кроме этого, должна существовать возможность ограничить пользователей в выполнении тех или иных действий с объектами базы данных. Например, кладовщик может создавать и изменять приходные накладные, поскольку он отвечает за учет материалов на предприятии. Мастеру может понадобиться просматривать приходные накладные для того, чтобы знать, какие материалы и когда были получены. Однако мастер не должен иметь возможности вносить какие-либо изменения в приходные накладные.
Объект конфигурации Роль
Д |
ля описания подобных разрешений используются объекты конфигурации Роль. С помощью такого объекта разработчик получает возможность описать набор прав на выполнение тех или иных действий над каждым из объектов базы данных и над всей конфигурацией в целом.
Как правило, роли создаются отдельно для каждого вида деятельности, и каждому пользователю системы ставится в соответствие одна или несколько ролей.
В случае, когда пользователю поставлено в соответствие несколько ролей, предоставление доступа будет осуществляться по следующему алгоритму:
• если хотя бы в одной роли есть разрешение, то доступ будет
открыт,
• если во всех ролях разрешение отсутствует, то доступ будет
закрыт.
Создание ролей
П |
ри создании ролей исходят, как правило, из того, какие полномочия требуются различным группам пользователей на доступ к информации. Для этого ролей мы воспользуемся подсистемами, которые значительно облегчат нашу задачу. Первая роль, которую мы создадим, будет роль «Администратор». Она должна включать в себя полные права на работу с данными информационной базы.

378
379
Использование основных объектов конфигурации
т
Интерфейс, роль, список
пользовате
![]()
Создадим новый объект конфигурации Роль с именем «Администратор». Откроется окно редактирования прав:

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

380
381
Использование основных объектов конфигурации
Интерфейс, роль, список пользователей
![]()

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

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

382
383
Использование основных объектов конфигурации
Интерфейс, роль, список пользователей
![]() |
Создадим новый объект конфигурации Интерфейс, и на экране появится конструктор главного меню: |
Объект конфигурации Интерфейс
П |
омимо того, что для каждого пользователя необходимо определить набор его прав в системе, следует также, исходя из разрешенных действий, предоставить пользователю удобный и функциональный интерфейс, не содержащий лишних элементов. Например, кладовщик должен иметь возможность принять и выдать товар, и ему совсем не нужно видеть пункты меню которые позволяют отслеживать работу мастеров или управлять заказами.
Для создания индивидуальных пользовательских интерфейсов предназначены объекты конфигурации Интерфейс. Эти объекты позволяют создавать наборы команд главного меню и панели инструментов, с которыми будет работать пользователь.
Как правило, для каждой категории пользователей создается свой интерфейс, который ставится в соответствие конкретному пользователю. В отличие от ролей, каждому пользователю можно назначить только один интерфейс по умолчанию, однако средствами встроенного языка можно управлять видимостью других интерфейсов.
Создание интерфейсов
Д |
ля того, чтобы понять, какие интерфейсы нужно создать в нашей конфигурации, следует определиться с тем, какие группы пользователей собираются работать с нашим прикладным решением.
Скорее всего, это будут руководители, мастера и бухгалтеры. В соответствии с этим мы создадим три различных интерфейса: «Руководитель», «Мастер» и «Бухгалтер». Кроме этого, следует не забыть про то, что у каждой базы данных, как правило, есть администратор - специально выделенный человек, отвечающий за непрерывное функционирование базы, сохранность и достоверность данных. Поскольку администратору нужно предоставить возможность осуществлять обслуживание базы данных - для него мы тоже создадим отдельный интерфейс - «Администратор».

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

384
385
Использование основных объектов конфигурации
Интерфейс, роль, список пользователей
Вместе с палитрой свойств на экране открылось окно редактст-интерфейса - остановимся на нем подробнее:
В данном случае нас все устраивает, за исключением пункта «Прочие», в котором для команды «Основной» мы дадим более понягный текст - «План счетов Основной»:
![]() |
|
|
Изменим текст пункта подменю |
Окно редактора интерфейса состоит из трех частей: панель инструментов, список панелей интерфейса и редактора панели. У каждого интерфейса может быть всего одна панель главного меню и несколько панелей инструментов.
Сейчас наш интерфейс «Бухгалтер» содержит только панель главного меню, пункты которого отображены в редакторе панели. При нажатии на любой пункт меню открывается список подменю, содержащий команды этого пункта.
Теперь создадим интерфейс «Мастер». Для него в конструкторе меню выберем подсистему «УчетУслугИМатериалов» и укажем, что сам он тоже будет относиться к подсистеме «УчетУслугИМатериалов».
Два последних интерфейса, будем создавать следующим образом: меню интерфейса «Руководитель» построим по всем трем подсистемам конфигурации:

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

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

«Справка». Скорее всего, они понадобятся будущему администратору информационной базы.
Разработчик, по своему усмотрению может добавлять, изменять и удалять пункты меню. Эти действия просты и не требуют специальных описаний. И поскольку создание удобного и эргономичного меню ~ задача творческая - мы лишь показали возможность быстрого создания некоей заготовки, которую разработчик может впоследствии самостоятельно доработать под нужды конкретной группы пользователей.
Администрирование работы пользователей
Д |
ля того, чтобы иметь возможность отличать друг от друга пользователей, работающих с информационной базой, в системе 1С:Предприятие существует режим ведения списка пользователей.
В этом режиме администратор базы имеет возможность создавать и удалять пользователей системы, назначать им интерфейсы и роли и
т. д.
Прежде чем мы приступим к созданию списка пользователей, необходимо выполнить обновление конфигурации базы данных, поскольку пользователю можно поставить в соответствие только тот интерфейс, и те роли, которые существуют в конфигурации базы данных.
После того, как обновление произведено, выполним команду
Администрирование | Пользователи. Откроется список
пользователей системы.
Пока что он пуст, поэтому добавим нового пользователя (Действия | Добавить):
|
Имя пользователя - это идентификатор, который будет появляться в окне выбора пользователей при запуске системы в режиме 1С:Предприятие.

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


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

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


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

Что нового мы узнали
- для чего предназначен объект конфигурации Роль - как создать роль, используя подсистемы конфигурации - для чего предназначен объект конфигурации Интерфейс - как создать интерфейс, используя подсистемы
конфигурации - как создать список пользователей системы и определить
их права
- чем аутентификация средствами 1С:Предприятия отличается от аутентификации Windows
Глава 13. Обмен данными
В этой главе мы познакомимся с механизмами обмена данными, которые содержит система 1С:Предприятие и добавим в нашу конфигурацию возможность обмена данными с удаленными филиалами и отделениями.
392
393
Использование основных объектов конфигурации
Обмен данными


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

При помощи планов обмена мы получаем информацию о том, какие элементы данных были изменены, и в какой узел обмена их необходимо передать. Это возможно благодаря тому, что планы обмена содержат механизм регистрации изменений. Информация об
измененных данных переносится с помощью сообщений, инфраструктура которых также поддерживается планами обмена.
XML-сериализация позволяет преобразовать объект
1С:Предприятия в последовательность данных, представленных в формате XML. Кроме этого, XML-сериализация выполняет и обратное преобразование - преобразует последовательность данных формата XML в объект 1С:Предприятия, при условии, что имеется соответствующий тип 1С:Предприятия.
Запись и чтение документов XML обеспечивают запись/чтение документов формата XML из встроенного языка.
При реализации алгоритма обмена данными перечисленные механизмы могут быть использованы как все вместе, так и в различной комбинации. В каждом конкретном случае разработчик решает эту задачу самостоятельно.
В примере, приведенном в этой книге, мы используем все три механизма обмена данными, поэтому прежде чем перейти непосредственно к написанию кода, познакомимся с каждым из них более подробно.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |










