gifts2017

Установка даты запрета изменения данных без монопольного режима

Опубликовал Андрей Кузнецов (ASUAndy) в раздел Администрирование - Защита, права, пароли

Обработка позволяет изменить дату запрета изменения данных без перехода в монопольный режим.

Это несколько модифицированная обработка из Бухгалтерии 2.0.

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

Возникла проблема, что иногда кто-то из пользователей забывал закрыть программу на ночь и тогда период не закрывался. (BackUp не так кретично, а период нужно обязательно закрывать.)

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

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

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

 

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

Эту обработку можно запускать из скрипта или добавить в регламентные задания.

Коммандная строка для запуска:

"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"Сервер:1641\База" /nПользователь /p"Пароль" /WA- /AU- /DisableStartupMessages /RunModeOrdinaryApplication /AppAutoCheckMode /AppAutoCheckVersion /Execute"C:\Program Files\nnCron\bat\ЗакрытьПериод.epf"

 

UpDate: Для того чтобы пользователю не нужно было перезаходить в базу, нужно по таймеру или какому-либо событию выполнять комману у пользователя:

ПолныеПрава.УстановитьПараметрГраницыЗапретаИзмененияДанных();

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Установка даты запрета изменения данных
.epf 16,36Kb
19.01.12
196
.epf 16,36Kb 196 Скачать
Пример обработки установка даты запрета изменения данных из скрипта
.epf 8,05Kb
19.01.12
39
.epf 8,05Kb 39 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Антон Чарушкин (hulio) 20.01.12 09:24
данная обработка - всего лишь интерфейс для редактирования регистра сведений "Граница запрета изменения данных". Данный регистр можно открыть через меню "Операции --> регистры сведений" и отредактировать без использования обработки. В таком случае проверки на монопольный режим не будет.
Но ключевая фраза - "применятся ограничения только при новом входе пользователя". То есть, даже с использованием обработки автора пользователей все равно нужно выгонять, чтобы их параметры сеансов обновились.
В общем, не ставлю ни плюс, ни минус :)
RodinMax; svilsa; Alex_E; Dimkasan; +4 Ответить
2. Андрей Кузнецов (ASUAndy) 20.01.12 09:53
Ну да, это всего лишь интерфейс... Кстати документы - это тоже всего лишь интерфейс к регистрам :)
Выгонять надо. Но если изменения затрагивают только одного пользователя, то нужно выгнать только его. А это проще чем 20-30-50 пользователей...
Кстати, если воспользоваться обработкой из конфигурации, которая требует монопольного доступа и изменить границу для пользователя который её меняет, то изменения вступят в силу ТОЛЬКО при его следующем входе. Так что монопольный доступ ничего не даёт.
3. Дмитрий Трифонов (Dimkasan) 20.01.12 11:24
hulio, спасибо :) я не задумывался, что можно просто регистр сведений отредактировать. Часто бывает, что нужно дату запрета поставить, что бы с завтрашнего дня запрет вступил в силу, а в течении сегодняшнего дня работу пользователей, как правило, прерывать нельзя. Поэтому приходилось дожидаться окончания рабочего дня :)
4. coollerok (Coollerok) 20.01.12 17:23
Спасибо! а то надоело всех разгонять для установки даты запрета))
5. Владимир Шатохин (vovkakursk) 20.01.12 17:56
6. Светлана Калугина (nu_fguz_buh) 25.01.12 03:21
Спасибо! Хоть у нас и не много пользователей и разгонять всех не так трудно как у других, но все равно ОЧЕНЬ УДОБНО.
7. Гость 27.01.12 11:38
как резюме. Получается что пользователей можно не выгонять, но и обработка особо не нужна. Достаточно только регистр "Граница запрета изменения данных" отредактировать, "перезайти" нужному пользователю и для него применится новая граница? или только когда все выполнят повторный вход в систему?
8. Андрей Кузнецов (ASUAndy) 27.01.12 11:49
(7) Валера, в принципе обработка - это "оболочка" для редактирования регистра сведений. Можно и регистр править без обработки. А ограничения вступят в силу при ВХОДЕ того пользователя, которого они касаются. Т.е. даже если пользователь из базы не выйдет, а войдёт ещё раз под тем же именем, то при втором входе ограничения уже будут действовать. Всем выходить не нужно.
Т.е. Граница запрета изменения данных "считывается" при входе пользователя.
9. Гость 27.01.12 12:38
Спасибо. вот теперь все понятно:)
10. Сергей (sstar90) 29.01.12 10:15
Вообще то пользователя, для которого изменили дату запрета изменения данных, можно и не выгонять.
Например, в Бухгалтерии можно воспользоваться, в полном интерфейсе, "Сервис" -> "Служебные" -> "Обновить служебную информацию"
Alex_E; RodinMax; sergiobargio1; Scukosan; ASUAndy; +5 Ответить 1
11. Андрей Кузнецов (ASUAndy) 30.01.12 10:59
(10) sstar90, Спасибо! Про обновление служебной информации не знал... Мне это не нужно, но если кому-то надо, то могу доделать обработку, чтобы она применяла ограничения всем пользователям без перелогина.
12. Андрей Кузнецов (ASUAndy) 02.02.12 14:17
(11) Из обработки применить ГраницуЗапретаИзмененияДанных для всех пользователей не получилось, так как доступ к ПараметрамСеанса пользователя есть только из сеанса пользователя. Но по таймеру или событию можно применить ГраницуЗапрела без перелогина. Смотрите публикацию, в низу под словом UpDate я описал как.
13. Дмитрий Ташланов (Necytij) 08.02.12 22:24
(12) ASUAndy,
Ну кто же так делает, уважаемый? Насоветуете тут... И вот сидят 150 пользователей в базе, у которых каждые 5 секунд вызывается установить границы изменений... не солидно как то. Может лучше флаг хоть какой организовать, а?
14. Андрей Кузнецов (ASUAndy) 09.02.12 06:30
(13) Necytij, ну про таймер это я для охвата всех возможных вариантов :)
Понятно что таймер не хорошая идея, а под "событием" я и имел в виду использование флагов, открытие журнала или ещё что-то.
15. coollerok (Coollerok) 21.02.12 13:52
Спасиюо за обработку. Пригодилось! а то уже надоело постоянно чтобы поставить дату выгонять всех пользователей
16. Валерий Кучин (qux) 21.02.12 16:22
Спасибо хорошая обработка.
17. Александр Удалов (higs) 31.07.12 08:21
И ведь вот знаю про регистр сведений, но несколько надоедает по нему ходить и править. Пусть будет обработка, спасибо!
18. Галина Галина (a4a) 22.08.13 10:52
Дата запрета редактирования не монопольно - вопрос, который неожиданно всплыл в самый неподходящий момент и срочнее некуда. И всего лишь маленький нюанс, связанный с оперативным обновлением системной информации через меню "Сервис" снимает кучу проблем, связанных с отключением пользователей. Спасибо автору за поднятие актуальной темы. Плюс.
19. andrey (c_andrey) 25.02.15 22:06
Добрый вечер.
Очень помогла ваша обработка. Но возникла необходимость использовать её для нескольких пользователей или на нескольких групп пользователей.

Подскажите как её изменить для этой цели.?

Зарание Спасибо.
20. Андрей Кузнецов (ASUAndy) 02.03.15 13:11
(19) c_andrey, её не надо менять - это я на скриншоте показал для одного пользователя, а так там есть кнопка добавить и можно добавлять сколько надо пользователей и групп.
21. Алексей Ермилов (Alex_E) 02.03.15 13:24
Что самое интересное, что после редактирования границы запрета выгонять пользователей совсем необязательно, изменения вступят в силу без монопольного режима, нужно просто через Сервис - Служебные - Обновить системную информацию и перезапускать программу пользователю не понадобится....
22. Андрей Кузнецов (ASUAndy) 03.03.15 12:26
(21) Alex_E, про это написано в самом первом "Лучшем комментарии"...
23. Алексей Ермилов (Alex_E) 03.03.15 12:46
(22) ASUAndy, Круто! Простите, не заметил... Плюсанул :-)
24. andrey (c_andrey) 05.03.15 22:24
Все верно. Добавляем Петю Васю и Сережу.
А в вашей обработке- в коде участвует одна запись (В самом начале кода).
Т.е если я завожу в обработке троих "в начале кода" то сменится дата только у последнего Сережи.
Потому что мы по очереди присваиваем имена одной и той же строчке.
В чем и суть у меня, что я не могу сразу троим одинаковую дату присвоить
25. Андрей Кузнецов (ASUAndy) 09.03.15 19:03
(24) c_andrey, Понял, проверю... если действительно так, то исправлю и выложу новую версию...
26. Андрей Кузнецов (ASUAndy) 11.03.15 22:51
(24) c_andrey, Обновил "Пример обработки установка даты запрета изменения данных из скрипта" теперь там пользователи задаются в таблице значений и для каждого можно указать свою дату запрета. Пользователи задаются непосредственно в обработке, так как это всего лишь пример - если нужно, то можно хранить их в регистре сведений, файле, базе данных или ещё где придумаете...
p.s. Не знаю как правильно менять файл в публикации, поэтому дата у файла не изменилась, но файл точно новый - я проверил :)
27. andrey (c_andrey) 31.03.15 13:52
(26) ASUAndy, Спасибо
Качаю сейчас проверю.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа