Задача:
Есть десять пользователей, они за день создают кучу документов (их редактируют, проводят, снова редактируют и т.д.), но после рабочего дня (+ еще несколько часов), должен возникать запрет на редактирование и проведение документов (можно, только снять проведение), то есть скажем:
Пользователь А - создал за день 10 документов, с ними что-то делал, вернулся на работу в 7-00 следующего дня, а эти документы не может отредактировать, а может снять только проведение и все.
1С крутится на сервере, пользователи все подключены к серверу. Возникает мысль создать там, фоновое задание, которое будет запускаться, скажем в 23.01 и ставить запрет.
Вообще такое возможно создать средствами 1С (без запуска 1С)?
Просто, конечно можно добавить код при запуске, но это может понизить производительность, хотя если других возможностей не найдется, придется к нему прибегнуть.
Есть десять пользователей, они за день создают кучу документов (их редактируют, проводят, снова редактируют и т.д.), но после рабочего дня (+ еще несколько часов), должен возникать запрет на редактирование и проведение документов (можно, только снять проведение), то есть скажем:
Пользователь А - создал за день 10 документов, с ними что-то делал, вернулся на работу в 7-00 следующего дня, а эти документы не может отредактировать, а может снять только проведение и все.
1С крутится на сервере, пользователи все подключены к серверу. Возникает мысль создать там, фоновое задание, которое будет запускаться, скажем в 23.01 и ставить запрет.
Вообще такое возможно создать средствами 1С (без запуска 1С)?
Просто, конечно можно добавить код при запуске, но это может понизить производительность, хотя если других возможностей не найдется, придется к нему прибегнуть.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Shining ninja,
вполне можно обойтись без фоновых заданий
с учетом вариантов (4) jims, (5) ber84,
реквизит ДатаСоздания прямо в документ. заполняется для нового, никогда больше не меняется, на форме не виден
ПриСозданииНаСервере() проверять и блокировать (ТолькоПросмотр) несегодняшние документы.
блокируем и проведенные и непроведенные доки ( иначе снял проведение - и редактируй ). если это не устраивает, и пользователи могут оставлять проведение "на завтра" - усугубляем задачу
булевый реквизит в той же шапке, который устанавливается в истина перед первым проведением и тогда запрет на редактирование несегодняшних+однажды_уже_проведенных (этот самый флажок) - чтоб не химичили с распроведением
не знаю, возможно ли менять реквизит документа именно непосредственно перед проведением (не просто запись а именно с проведением), если нет - в проведении выставляем флажок для документа в независимом (движения не должны откатываться распроведением) регистре сведений
варьируйте )
вполне можно обойтись без фоновых заданий
с учетом вариантов (4) jims, (5) ber84,
реквизит ДатаСоздания прямо в документ. заполняется для нового, никогда больше не меняется, на форме не виден
ПриСозданииНаСервере() проверять и блокировать (ТолькоПросмотр) несегодняшние документы.
блокируем и проведенные и непроведенные доки ( иначе снял проведение - и редактируй ). если это не устраивает, и пользователи могут оставлять проведение "на завтра" - усугубляем задачу
булевый реквизит в той же шапке, который устанавливается в истина перед первым проведением и тогда запрет на редактирование несегодняшних+однажды_уже_проведенных (этот самый флажок) - чтоб не химичили с распроведением
не знаю, возможно ли менять реквизит документа именно непосредственно перед проведением (не просто запись а именно с проведением), если нет - в проведении выставляем флажок для документа в независимом (движения не должны откатываться распроведением) регистре сведений
варьируйте )
Можно попробовать сделать регистр сведений, в котором хранить дату создания документов (т.к. она может отличаться от даты документа), по которой определять в подписке на событие ПередЗаписью документа - можно ли сохранять изменения.
У нас реализовано так:
в справочнике пользователи добавлен реквизит количество дней (число), далее подписка на событие проведение документа.
Пример - у пользователя стоит 0 т.е. редактирование документов только текущим днем то проверяем так текущая дата начало дня минус количество дней умноженное на количество секунд в дне и вот если дата документа меньше этой даты то отказ при проведнии документа. НО!!! дату документа надо брать обязательно надо вот так Ссылка.Дата а не Объект.Дата ОЧЕНЬ ВАЖНО!!
если брать дату из объекта то получается следующая ситуация, что берем меняем дату документа на сегодня и делаем отмену проведения документа.
И таким образом можно контролировать число дней доступа на изменение документов у всех пользователей, в том числе и с полными правами.
в справочнике пользователи добавлен реквизит количество дней (число), далее подписка на событие проведение документа.
Пример - у пользователя стоит 0 т.е. редактирование документов только текущим днем то проверяем так текущая дата начало дня минус количество дней умноженное на количество секунд в дне и вот если дата документа меньше этой даты то отказ при проведнии документа. НО!!! дату документа надо брать обязательно надо вот так Ссылка.Дата а не Объект.Дата ОЧЕНЬ ВАЖНО!!
если брать дату из объекта то получается следующая ситуация, что берем меняем дату документа на сегодня и делаем отмену проведения документа.
И таким образом можно контролировать число дней доступа на изменение документов у всех пользователей, в том числе и с полными правами.
подписки на событие "при открытии" НЕТ.Да и изменение модуля объекта влечет за собой затруднения при обновлении, а таким способом как я описал выше можно сразу много документов охватиь и меньше Гемо...я при изменении релиза.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот