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

07.01.15

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
УстановкаДатыЗапретаИзмененияДанных
.rar 285,84Kb
31 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

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

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

 

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    61166    325    160    

295

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

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

17000 руб.

10.11.2023    23810    88    42    

100

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

21960 руб.

06.12.2023    21315    74    10    

106

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

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

14640 руб.

29.04.2020    48526    129    158    

87

Инструменты администратора БД Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

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

12200 руб.

06.02.2017    35383    149    18    

54

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

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

5490 руб.

10.11.2015    65642    101    59    

83
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tanis 10.01.15 00:01 Сейчас в теме
Доброй ночи!
Штука конечно интересная. Но возникают моменты когда открыть доступ одну пользователю, добавляем этого пользователя, и ему увеличивать количество дней? и сегодня он не успел, на следующий день ему еще раз прибавить количество?
Пока писал подумал, бухгалтера обычно пользуются месяцем целиком. А как показано на скриншоте, то доступ до середины июля. Может тогда стоит все таки чтоб не дни высчитывал. а полностью месяц?
Спасибо!
2. izidakg 174 10.01.15 00:15 Сейчас в теме
(1) Tanis,
если прописать конкретного пользователя, то просто будет индивидуальный срок\период редактирования.
Если определенной группе пользователей или пользователю потребовалось больше период чем по умолчанию, то можно зайти и увеличить - установить доступ к той дате и тем кому надо. И эта установка будет работать до первого входа пользователя в любые следующие сутки.
Другими словами - да если нужно больше дней и сегодня не успел этот пользователь или группа, то завтра надо еще раз установить\открыть нужную дату для избранного.
Удобство как раз в том что само выравнивается на срок доступных дней по умолчанию. Ведь не редки случаи когда открывали доступ пользователю для подчистки чего-либо и в запаре забывали закрыть.
Хотя учитывая сказанное вами появилась мысль об еще одном параметре - количество дней расширенного доступа.
Так чтобы например - установили доступ на 1.09.2014 кому либо и "количество дней расширенного доступа" равным 5
каждый день рабочий этот параметр будет уменьшаться на 1 и при равенстве нулю устанавливается срок по умолчанию, а до тех пор на установленном 01.09.2014
3. OBEH 14.01.15 11:48 Сейчас в теме
Идея здравая. Чувствуется из опыта рожденная.
Но, по моему, не стоит ради этого конфигурацию править.
Может быть, достаточно внешней обработкой править регистр сведений ГраницыЗапретаИзмененияДанных?
5. izidakg 174 14.01.15 14:56 Сейчас в теме
(3) OBEH,
по любому поводу вносить изменения в конфигурацию считаю недопустимым сам, но ситуации бывают разные
при возможности этого не делать, делаю внешними наработками.
но тут надо что работало всегда - при переносе БД также продолжало
не зависело от операционки никак.
к тому же данный модуль у 1С фактически с момента разработки не менялся, поэтому при обновлении БД тут проблем нет
4. gull22 105 14.01.15 13:06 Сейчас в теме
Есть вариант без изменения конфы http://infostart.ru/public/166600/
Реализовали у себя в УПП, работает прекрасно
6. izidakg 174 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 174 01.05.16 22:16 Сейчас в теме
(13) Antimyslitel,
в какую конфигурацию добавляешь?
к этой разработке давно не возвращался, хотя есть пару дополнений что можно прикрутить еще
15. chukawata 10 09.10.20 06:34 Сейчас в теме
Коллеги, есть мнение, что дата запрета редактирования (ДЗР) хранится в пользовательском кэше, поэтому его обязательно надо чистить при смене ДЗР. Иначе на пользователя, который не выходил из программы, смена ДЗР не подействует. Либо не чистить кэш, а выкидывать пользователей из базы.
Есть суждения по этому поводу?
Для отправки сообщения требуется регистрация/авторизация