ДОВІДНИК ПраваРасчетчіка

Реквізити та властивості довідника задаються відповідно до рис 87, а опис реквізитів см в табл 81

Рис 87 Властивості та реквізити довідника ПраваРасчетчіка

Таблиця 81

Реквізити довідника ПраваРасчетчіка

Реквізит

Опис

Примітка

імяПользователя

Імя, з яким розраховувач входить

в систему Здається в конфігурації

Рядок довжиною в 15 символів

підрозділ

Підрозділ, з яким може працювати розраховувач Вводиться як група довідника Сотруднікі_2

Має різновид типу СправочнікСотруднікі_2

Правами введення і редагування даних довідника володіє тільки адміністратор системи

Редагування даних здійснюється у формі списку, і після заповнення довідник буде містити відображені на рис 8 8 Відомості

Рис 88 Імена користувачів підприємства і обслуговуються ними підрозділи

Щоб у довіднику Сотруднікі_2 можна було вибирати групи (підрозділу), в модуль форми ФормаДляВибора ми додали наступний код:

/ / Зумовлена ​​процедура прочинене процедура відкриття ()

ВиборГруппи (1) КонецПроцедури / / прочинене-

Самі ж імена користувачів визначимо в конфігурації відповідно до рис 89, задавши їм однакові права, інтерфейс і робочий каталог

Рис 89 Завдання імен користувачів і їх прав в конфігурації системи

824 МЕНЮ І ПРАВА КОРИСТУВАЧІВ

У меню користувача Учень додамо можливість виклику новоствореного довідника ПраваРасчетчіка, залишивши інші пункти меню без змін Для працівника, який відповідає за кадри, створимо інтерфейс Кадри, меню якого побудуємо відповідно до рис 810

Рис 810 Меню для обличчя, реєструючого кадрові зміни

Також працівникові відділу кадрів доступний довідник Діти, підпорядкований довіднику Сотруднікі_2 Відносно вказаних в меню обєктів користувач під імям Кадри має повні права

Розраховувач зможе працювати з обєктами, показаними на рис 811

Рис 811 Меню розраховувача

Причому довідник Сотруднікі_2 доступний розраховувачеві тільки в режимі читання

Зауваження  Колонка Операції меню системи відключається в обох створюваних користувальницьких меню Порядок її відключення ілюструє рис 14

Інші введені нами операції, такі, як видалення помічених обєктів, модифікація констант, редагування довідників ПраваРасчетчіка, господарських операцій та ХозОпДляВР, управління календарями і святами, покладемо на особу, яка виконує функції адміністрування системи Для цих цілей у нас є інтерфейс Учень У той же час необхідно обмежити права цієї особи по відношенню до даними, створюваним у відділі кадрів і розрахунковому відділі Ці дані повинні бути доступні йому тільки в режимі перегляду

Суть внесених змін відображена в розд 851 Однак, перш ніж зайнятися кодуванням, кілька слів доведеться сказати про зміни інтерфейсу ЖЗ Поперше, якщо працює розраховувач, то потрібно відключити можливість виведення ЖЗ із застосуванням закладок відбору 01/1, 01/2, 01/3, 02 Цех і 03 Цех (див рис 726) Справа втому, що обмежити доступ до закладення відбору вбудованими засобами 1С можна Це зясовується, коли намагаєшся застосувати зумовлену процедуру модуля форми ПріВибореЗакладкі: вона працює лише з атрибутом форми Закладки, які мають тип Список значень Метод ЗакладкіОтбора цей атрибут не змінює Так, після застосування методу

ЗакладкіОтбора (Батько)

формуючого у разі ЖЗ вищеперелічені закладки відбору, процедура Повідомити (ТіпЗначенія (Форма Закладки))

надрукує у вікні повідомлень 0 число, що видається вбудованою функцією ТіпЗначенія для невизначеного типу даних

По-друге, потрібно подбати про те, щоб не змінилися функції радіокнопок з ідентифікатором хто групи Режим розрахунку

Таким чином, змінна закл при вході розраховувача повинна дорівнювати одиниці, але закладки відбору відображатися не повинні і, звичайно ж, повинні бути у відповідності з довідником ПраваРасчетчіка введені обмеження на робоче про-

странство розраховувача Якщо в систему входить користувач з правами Учня, то її функціонування повинно відповідати звичної, викладеної в розд 743 схемою

Озвучені зміни підтримуються наступним кодом:

/ / Визначаємо сПраваРасч, расч, значеніеОтбора і флагРасч як змінні модуля перем сПраваРасч, расч, значеніеОтбора, флагРасч

/ / Слід вже наявний в модулі код (розд 7441)

/ / Зумовлена ​​процедура модуля форми ЖР

/ / Ця процедура додається в модуль форми списку ЖЗ Зарплата_2

/ / Інтерактивно відбір управляється іконками

/ / Лежачими на панелі управління ЖЗ

процедура ПріУстановкеОтбора (графаОтбора, значеніеОтбора)

якщо флагРасч = 0 тоді

//

Якщо працює не розраховувач, то

повернення

//

контроль прав не здійснюється

КонецЕсли

/ / Простим перебором встановлюємо, чи можна розраховувачеві расч працювати

/ / З інтерактивно вибираним їм підрозділом сПраваРасчВыбратьЭлементы ()

поки сПраваРасчПолучитьЭлемент () = 1 цикл

якщо (розр = СокрЛП (сПраваРасчИмяПользователя)) і (сПраваРасчПодразделеніе = значеніеОтбора) тоді

СтатусВозврата (1) / / Працювати можна повернення / / Вихід з процедури

КонецЕсли конецЦікла / / Поки

СтатусВозврата (0) / / Працювати не можна Попередження (Це не Ваш підрозділ”)

КонецПроцедури / / ПріУстановкеОтбора

процедура Прі6ткритіі () / / Зумовлена ​​процедура перем реж, значРеж

/ / Відновлюємо з диска значення змінних діалогу заклі хто

// для поточного сеансу роботи

закл = ВосстановітьЗначеніе (ЗакладкіВЗарплате)

якщо ТіпЗначенія (закл) = 0 тоді / / Якщо значення змінної закл не відновлене закл = 1

хто = 1 інакше

хто = ВосстановітьЗначеніе (КтоВЗарплате) КонецЕсли

ктоСтар = хто ПоЦехам ()

якщо флагРасч = 0 тоді / / Додана рядок коду якщо закл = 1 тоді

значОтбора = ВосстановітьЗначеніе (ЗначеніеОтбора) ЗакладкіОтбора (Батько, значОтбора)

КонецЕсли

інакше / /

Ще 5 доданих рядків коду

ФормаЗаклВідімость (0)

//

Елемент діалогу закл розраховувачеві не потрібен

/ / Встановимо дозволений для розраховувача расч відбір

УстановітьОтбор (Батько, значеніеОтбора) КонецЕсли

реж = ВосстановітьЗначеніе (РежімПредставленія)

значРеж = ВосстановітьЗначеніе (ЗначеніеПредставленія) якщо реж = 1 тоді

УстановітьПредставленіе (1) інакше

УстановітьПредставленіе (реж, значРеж) КонецЕсли

нтп = НачалоТекущегоПеріода () КонецПроцедури / / прочинене

/ / Включає / відключає режим виведення по цехах Якщо закл = 0, то встановлює

// хто = 1 і робить недоступними радиокнопки групи Режим розрахунку процедура ПоЦехам ()

/ / Ці 3 рядки додаються в колишню процедуру ПоЦехам (розд 7441) якщо флагРасч = 1 тоді / / Початок додається коду

повернення

КонецЕсли / / Кінець додається коду

якщо закл = 1 тоді / / Якщо використовуються закладки відбору ЗакладкіОтбора (Батько)

хто = ктоСтар ФормаКтоДоступность (1) ФормаКто2Доступность (1)

інакше

ЗакладкіОтбора (“) хто = 1 ФормаКтоДоступность (0) ФормаКто2Доступность (0)

КонецЕсли

КонецПроцедури / / ПоЦехам ()

/ / А це оператор основної програми модуля форми списку ЖЗ

/ / Змінна модуля флагРасч одержить значення 1, якщо в системі розраховувач,

/ / Або О-в іншому випадку Функція ЕстьЛіРасчетчік включена в глобальний модуль флагРасч = ЕстьЛіРасчетчік (расч, сПраваРасч, значеніеОтбора)

Зауваження:

1 Функція ЕстьЛіРасчетчік включається в глобальний модуль Це доцільно, тому що перевірка наявності розраховувача в системі виконується неодноразово Можна було б піти далі включити в глобальний модуль змінну флагРасч, дати їй атрибут Експорт і обчислювати її значення при завантаженні системи, викликаючи функцію ЕстьЛіРасчетчік в зумовленою процедурі глобального модуля ПріНачалеРаботиСістеми, але ми зупинимося на першому варіанті Функція ЕстьЛіРасчетчік має наступний код:

/ / А це функція, яку ми включаємо в глобальний модуль

/ / Слід після всіх його програмних компонентів

функція ЕстьЛіРасчетчік (расч, сПраваРасч, значеніеОтбора) експорт

/ / Цей користувач працює в системі і відкриває форму списку ЖЗ Зарплата 2 розр = ІмяПользователя ()

сПраваРасч = СоздатьОбект (СправочникПраваРасчетчика)

/ / Дивимося, чи є цей користувачем розраховувачем Якщо так, то флагРасч отримає

/ / Значення 1, або 0 в іншому випадку Перевірку здійснюємо простим перебором сПраваРасчВыбратьЭлементы ()

флагРасч = 0 / / Первісне припущення поки сПраваРасчПолучитьЭлемент () = 1 цикл

якщо розр = СокрЛП (сПраваРасчимяПользователя) тоді флагРасч = 1 / / В системі розраховувач значеніеОтбора = сПраваРасчПодразделеніе

перервати / / Перериваємо цикл

КонецЕсли конецЦікла / / Поки повернення флагРасч

КонецФункции / / ЕстьЛіРасчетчік

2 Якби ми хотіли уникнути переборних операцій при пошуку користувача або підрозділу в довіднику ПраваРасчетчіка, то нам довелося б задати властивість Сортування відповідним реквізитами довідника Однак використовуваний перебір внаслідок незначного обсягу переглядаються значень не приведе до уповільнення обчислень, тому потреби в завданні позначеного властивості немає

3 Нагадаємо, що можливі відбори відображаються і стають доступними після вибору іконки в наведеному на рис 812 фрагменті діалогу Відбір записів

Рис 812 Фрагмент діалогу Відбір записів: можливі відбори ЖЗ Зарплата_2

Детальніше про управління відборами см в розд 591

Аналогічні доповнення слід зробити в модулях форм списку і для вибору довідника Сотруднікі_2 Наше завдання в тому, щоб заборонити розраховувачеві перехід

в режим перегляду списку всіх співробітників, а також не допускати проникнення в заборонені для нього підрозділу На відміну від ЖЗ використовуваний в довіднику Сотруднікі_2 відбір з реквізиту Освіта відключати не треба, оскільки відбір здійснюється в межах вибраного батька (Нагадаємо, що розраховувачеві довідник Сотруднікі_2 доступний тільки в режимі читання)

I// ВизначаємосПраваРасч, расч, батько і флагРасч як змінні модуля перем сПраваРасч, расч, батько, флагРасч

/ / Слід вже наявний в модулі код (розд 5126)

/ / Зумовлена ​​процедура модуля форми довідника

/ / Ця процедура додається в модулі форм списку

/ / (Основний і для вибору) довідника Сотруднікі_2 процедура ПріВибореРодітеля (батько)

КонецЕсли

/ / Простим перебором встановлюємо, чи можна розраховувачеві расч працювати

/ / З інтерактивно вибираним їм підрозділом сПраваРасчВыбратьЭлементы ()

поки сПраваРасчПолучитьЭлемент () = 1 цикл

якщо (розр = СокрЛП (сПраваРасчИмяПользователя)) і (сПраваРасчПодразделеніе = батько) тоді

СтатусВозврата (1) / / Можна міняти батька повернення / / Вихід з процедури

КонецЕсли

конецЦікла / / Поки

СтатусВозврата (0) / / Батька міняти не можна Попередження (Це не Ваш підрозділ”)

КонецПроцедури / / ПріВибореРодітеля

/ / Зумовлена ​​процедура модуля форми довідника

/ / Ця процедура додається в модулі форм списку

/ / (Основний і для вибору) довідника Сотруднікі_2 процедура ПріСменеІерархіі (ієрарх)

Попередження (Доступ до списку всіх співробітників неможливий”) КонецПроцедури / / ПріСменеІерархіі

процедура відкриття () / / Зумовлена ​​процедура

/ / Цей оператор потрібен у формі списку для вибору (розд 852)

/ / В основній формі списку його потрібно опустити ВиборГруппи (1)

/ / Якщо працює розраховувач, то відображаємо довідник Сотруднікі_2

/ / У вигляді ієрархічного списку якщо флагРасч = 1 тоді

ІерархіческійСпісок (1)

/ / Позиціонуємо в першому дозволеної для розраховувача / АСЧ групі ІспользоватьРодітеля (батько)

КонецЕсли

КонецПроцедури / / прочинене

/ / А це оператор основної програми модуля форми списку довідника

/ / Змінна модуля флагРасч одержить значення 1, якщо в системі розраховувач,

/ / Або О-в іншому випадку Функція ЕстьЛіРасчетчік включена в глобальний модуль флагРасч = ЕстьЛіРасчетчік (расч, сПраваРасч, батько)

Зауваження   Процедуру ПріСменеІерархіі краще вилучити з коду, а в зумовленою процедурі прочинене метод ІерархіческійСпісок викликати наступним чином:

якщо флагРасч = 1 тоді

//

Не можна міняти режим відображення

ІерархіческійСпісок (1, 0)

/ / Довідника Сотруднікі_2

/ / Позиціонуємо в першому дозволеної для розраховувача расч групі

ІспользоватьРодітеля (батько) інакше

ІерархіческійСпісок (1, 1) / / Можна міняти режим відображення КонецЕсли

Коли другий параметр методу ІерархіческійСпісок дорівнює нулю, зміна режиму відображення довідника (в нашому випадку перехід до неієрархічні списку) неможлива

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*