Автоустановка даты запрета редактирования для пользователей

07.01.15

База данных - Инструменты администратора БД

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

Скачать исходный код

Наименование Файл Версия Размер
УстановкаДатыЗапретаИзмененияДанных
.rar 285,84Kb
31
.rar 285,84Kb 31 Скачать

Для того, чтобы это работало, надо:

1. У регистра сведений "ГраницыЗапретаИзмененияДанных" нужно создать в ресурсах 2 новых:
ГраницаЗапретаИзмененийУстановлена (тип дата и время)
КоличествоДнейДоступа (тип число, длина 5, не отрицательный)

2. Общие формы "УстановкаДатыЗапретаИзмененияДанных" нужно на обе закладки добавить по 2 колонки (2 новых ресурса из регистра сведений "ГраницыЗапретаИзмененияДанных")
Модуль заменить на приложенный в файле "Модуль Общей Формы (УстановкаДатыЗапретаИзмененияДанных)". На тот случай, если есть вероятность, что модуль общей формы мог быть изменен с поставкой
то из приложенного листинга перенести все внесенные изменения, которые начинаются с "//нс+" и заканчиваются на "//нс-"

3. В модуле обычного приложения найти процедуру "ПриНачалеРаботыСистемы()" и в самый конец поместить:

//нс+ ПриНачалеРаботыСистемы() установка граници запрета редактирования
СФ_Дополнения.УстановитьГраницуПериодаРедактирования();
//нс-

5. Разместить приложенный модуль "УстановитьГраницуПериодаРедактирования", расположенный в одноименном файле в общем модуле. В данном случае поместил в созданный общий модуль "СФ_Дополнения"

6. Проверить запуск под пользователем с ролью не администратора. Для того, чтобы работал автомат по установке даты запрета входа, придется дать права на запись регистра "ГраницыЗапретаИзмененияДанных"

 

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

Работает это так:

Пользователь открывает 1С предприятие и автоматически срабатывает процедура при запуске, далее проверяется факт установки даты запрета в текущий день (фактически дату запрета сдвигает первый вошедший в БД пользователь). Если дата еще не сдвигалась\устанавливалась, то согласно прописанным в обработке количеству "дней доступа" устанавливается крайняя дата запрета. Пример на скриншоте.

дата запрета автоматически

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3617    19    1    

40

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4292    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178673    1084    0    

862

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27944    82    146    

61

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61543    91    59    

74

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11859    5    9    

7

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

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

1500 руб.

01.12.2020    14406    34    0    

49

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    11175    5    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tanis 10.01.15 00:01 Сейчас в теме
Доброй ночи!
Штука конечно интересная. Но возникают моменты когда открыть доступ одну пользователю, добавляем этого пользователя, и ему увеличивать количество дней? и сегодня он не успел, на следующий день ему еще раз прибавить количество?
Пока писал подумал, бухгалтера обычно пользуются месяцем целиком. А как показано на скриншоте, то доступ до середины июля. Может тогда стоит все таки чтоб не дни высчитывал. а полностью месяц?
Спасибо!
2. izidakg 172 10.01.15 00:15 Сейчас в теме
(1) Tanis,
если прописать конкретного пользователя, то просто будет индивидуальный срок\период редактирования.
Если определенной группе пользователей или пользователю потребовалось больше период чем по умолчанию, то можно зайти и увеличить - установить доступ к той дате и тем кому надо. И эта установка будет работать до первого входа пользователя в любые следующие сутки.
Другими словами - да если нужно больше дней и сегодня не успел этот пользователь или группа, то завтра надо еще раз установить\открыть нужную дату для избранного.
Удобство как раз в том что само выравнивается на срок доступных дней по умолчанию. Ведь не редки случаи когда открывали доступ пользователю для подчистки чего-либо и в запаре забывали закрыть.
Хотя учитывая сказанное вами появилась мысль об еще одном параметре - количество дней расширенного доступа.
Так чтобы например - установили доступ на 1.09.2014 кому либо и "количество дней расширенного доступа" равным 5
каждый день рабочий этот параметр будет уменьшаться на 1 и при равенстве нулю устанавливается срок по умолчанию, а до тех пор на установленном 01.09.2014
3. OBEH 14.01.15 11:48 Сейчас в теме
Идея здравая. Чувствуется из опыта рожденная.
Но, по моему, не стоит ради этого конфигурацию править.
Может быть, достаточно внешней обработкой править регистр сведений ГраницыЗапретаИзмененияДанных?
5. izidakg 172 14.01.15 14:56 Сейчас в теме
(3) OBEH,
по любому поводу вносить изменения в конфигурацию считаю недопустимым сам, но ситуации бывают разные
при возможности этого не делать, делаю внешними наработками.
но тут надо что работало всегда - при переносе БД также продолжало
не зависело от операционки никак.
к тому же данный модуль у 1С фактически с момента разработки не менялся, поэтому при обновлении БД тут проблем нет
4. gull22 95 14.01.15 13:06 Сейчас в теме
Есть вариант без изменения конфы http://infostart.ru/public/166600/
Реализовали у себя в УПП, работает прекрасно
6. izidakg 172 14.01.15 15:03 Сейчас в теме
(4) gull22,
выглядит неплохо и задумка с настройкой понедельно и помесячно неплохая, хотя не уверен что все пользователи без консультации поймут такую настройку. это больше инструмент для себя получается.
а запуск скриптом это лотерея. может проработать без сбоя и год, а может слетать постоянно. при переносе БД нужно заново настраивать.
с начало тоже так сделал, потом достало контролировать, все таки делал чтоб не париться с установкой даты запрета, поэтому сделал запуск внутри конфигурации
7. pro-specs 31.03.15 06:58 Сейчас в теме
8. Antimyslitel 35 01.05.16 16:37 Сейчас в теме
Ругается говорит что не может найти переменную ГраницаИзмененияДанных!!!
Ошибка ниже сделал все как указанно!
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(332,7)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
Если <<?>>ПрименятьДатуЗапретаДляПолныхПрав <> мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав Тогда (Проверка: Толстый клиент (обычное приложение))
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(333,58)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
Константы.ПрименятьДатуЗапретаДляПолныхПрав.Установить(<<?>>ПрименятьДатуЗапретаДляПолныхПрав); (Проверка: Толстый клиент (обычное приложение))
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(334,56)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав = <<?>>ПрименятьДатуЗапретаДляПолныхПрав; (Проверка: Толстый клиент (обычное приложение))
Что делать и что спасет! Никаких ранее изменений не было!
9. Antimyslitel 35 01.05.16 16:45 Сейчас в теме
Теперь ругается так:
{МодульОбычногоПриложения(247,2)}: Переменная не определена (СФ_Дополнения)
<<?>>СФ_Дополнения.УстановитьГраницуПериодаРедактирования(); (Проверка: Толстый клиент (обычное приложение))
10. Antimyslitel 35 01.05.16 16:47 Сейчас в теме
Все вроде разобрался!
11. Antimyslitel 35 01.05.16 16:51 Сейчас в теме
нет все таки такую ошибку дает:
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(331,7)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
Если <<?>>ПрименятьДатуЗапретаДляПолныхПрав <> мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав Тогда
Разработку форм рекомендуется выполнять в разрешении 96 DPI
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(332,58)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
Константы.ПрименятьДатуЗапретаДляПолныхПрав.Установить(<<?>>ПрименятьДатуЗапретаДляПолныхПрав);
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(333,56)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав = <<?>>ПрименятьДатуЗапретаДляПолныхПрав;

Достало уже! где и что могло быть не правильно?
12. Antimyslitel 35 01.05.16 16:53 Сейчас в теме
И при самом запуске клиента дает такую ошибку : Поле объекта недоступно для записи (КоличествоДнейДоступа)
А потом уже эту когда хочешь проставить дату!
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(331,7)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
Если <<?>>ПрименятьДатуЗапретаДляПолныхПрав <> мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав Тогда
Разработку форм рекомендуется выполнять в разрешении 96 DPI
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(332,58)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
Константы.ПрименятьДатуЗапретаДляПолныхПрав.Установить(<<?>>ПрименятьДатуЗапретаДляПолныхПрав);
{ОбщаяФорма.УстановкаДатыЗапретаИзмененияДанных(333,56)}: Переменная не определена (ПрименятьДатуЗапретаДляПолныхПрав)
мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав = <<?>>ПрименятьДатуЗапретаДляПолныхПрав;

Достало уже! где и что могло быть не правильно?
13. Antimyslitel 35 01.05.16 17:07 Сейчас в теме
я взял над ошибкой тупо добавил:

ПрименятьДатуЗапретаДляПолныхПрав = Константы.ПрименятьДатуЗапретаДляПолныхПрав;

Если ПрименятьДатуЗапретаДляПолныхПрав <> мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав Тогда
Константы.ПрименятьДатуЗапретаДляПолныхПрав.Установить(ПрименятьДатуЗапретаДляПолныхПрав);
мИсходноеЗначениеПрименятьДатуЗапретаДляПолныхПрав = ПрименятьДатуЗапретаДляПолныхПрав;
КонецЕсли;


Правильно ли я поступил или как?
14. izidakg 172 01.05.16 22:16 Сейчас в теме
(13) Antimyslitel,
в какую конфигурацию добавляешь?
к этой разработке давно не возвращался, хотя есть пару дополнений что можно прикрутить еще
15. chukawata 10 09.10.20 06:34 Сейчас в теме
Коллеги, есть мнение, что дата запрета редактирования (ДЗР) хранится в пользовательском кэше, поэтому его обязательно надо чистить при смене ДЗР. Иначе на пользователя, который не выходил из программы, смена ДЗР не подействует. Либо не чистить кэш, а выкидывать пользователей из базы.
Есть суждения по этому поводу?
Оставьте свое сообщение