Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ограничить возможность редактирования документов задним числом  (Прочитано 26016 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Anton
Участник

md
Offline Offline
Пол: Мужской

« : 07-02-2011 09:03 » new

Как сделать, чтобы пользователи с определёнными правами(например "Менеджер") не могли изменять документы заднего числа?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 07-02-2011 09:20 » 

Можно по-разному - конкретизируй задачу: тебе нужен общий случай (для написания своей конфы) или установить ограничения с типовой конфигурации (какой?) ?
Записан
Anton
Участник

md
Offline Offline
Пол: Мужской

« Ответ #2 : 07-02-2011 10:03 » 

Использую готовую конфу, Управление торговлей, редакция 11 (1С 8.2)
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 07-02-2011 10:12 » 

Тогда там по идее должна быть возможность создания группы пользователей (не путать с группой справочника пользователей) - в твоем случае Менеджеры. Далее - всем менеджерам указать вхождение в эту группу и ограничить для нее дату. Вот так это выглядит в УПП (Полный интерфейс: Сервис - Установка даты запрета изменения данных):

* 1cv8_mem_user_gr_date.png (9.55 Кб - загружено 7377 раз.)
Записан
Anton
Участник

md
Offline Offline
Пол: Мужской

« Ответ #4 : 07-02-2011 11:17 » 

Искал и в конфигураторе и в клиенте, ничего подобного не нашел, к тому же мне кажется что так вручную устанавливаются даты, мне же нужно чтобы автоматическая проверка была. допустим если документ был закрыт 5-го, то 6-го менеджер его уже не может править.
Есть ли другие способы сделать подобное?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 07-02-2011 11:27 » 

Ты можешь настроить любые придуманные тобою ограничения используя механизм шаблонов ограничения доступа, но это достаточно сложно:
http://v8.1c.ru/overview/Term_000000651.htm#1
http://v8.1c.ru/overview/Term_000000579.htm

ИМХО для твоей задачи достаточно создать регламентное задание, которое ночью просто автоматически сдвинет установленные даты запрета.
Записан
Anton
Участник

md
Offline Offline
Пол: Мужской

« Ответ #6 : 07-02-2011 13:18 » 

Твоё предложение по поводу установки даты запрета довольно интересно!
Нашел следующее:

Код:
Процедура УстановитьПараметрГраницыЗапретаИзмененияДанных() Экспорт

Попытка
СоответствиеГраницЗапрета = ПараметрыСеанса.ГраницыЗапретаИзмененияДанных.Получить(); //здесь ошибку выбает мол нет такого "ГраницыЗапретаИзмененияДанных"
ГраницаПериода = СоответствиеГраницЗапрета["ОбщаяДатаЗапретаРедактирования"];
Вчера = НачалоДня(НачалоДня(ТекущаяДата())-1);
ПозаВчера = НачалоДня(НачалоДня(Вчера)-1);
Если ГраницаПериода < ПозаВчера Тогда
Рег = РегистрыСведений.ГраницыЗапретаИзмененияДанных;
Набор = Рег.СоздатьНаборЗаписей();
ТекущиеДанные = Рег.Выбрать();
Пока ТекущиеДанные.Следующий() Цикл
Если ЗначениеЗаполнено(ТекущиеДанные.Организация) Тогда
Продолжить;
КонецЕсли;
Запись = Набор.Добавить();
Запись.Организация = ТекущиеДанные.Организация;
Запись.Пользователь = ТекущиеДанные.Пользователь;
Запись.ГраницаЗапретаИзменений = ПозаВчера;
КонецЦикла;
Набор.Записать();
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

...

Установление даты запрета вручную, я так же не нашел  Здесь была моя ладья... как быть?


* upp.png (27.24 Кб - загружено 1163 раз.)
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 07-02-2011 13:33 » 

Попробуй посмотреть какие есть подобные Параметры сеанса.
Попробуй проверить подписки на события Перед записью документов.
Записан
Anton
Участник

md
Offline Offline
Пол: Мужской

« Ответ #8 : 08-02-2011 11:00 » 

Сделал по другому, просто в процедуру Изменить(Команда) вставил условие мол если дата документа меньше чем сегодня, то отменить изменение. Спасибо за помощь
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 08-02-2011 11:19 » 

Жестко. ИМХО - лучше через подписку на события идти - создавая новую подписку на событие ПередЗаписью документа ты не нарушишь режим обновления конфигурации на поддержке. А при твоем решении - каждый раз при обновлении нужно будет вспоминать что ты менял.
Записан
Ul4ik
Новенький

ru
Offline Offline

« Ответ #10 : 12-04-2011 11:30 » 

Как сделать, чтобы была возможность редактировать конкретный документ за любой период, если установлена общая дата запрета изменения данных  и у пользователя не установлены полные права? (Конфигурация ЗУП 2.5.31)
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 12-04-2011 12:11 » 

"конкретный документ" - это конкретный документ-объект или все документы конкретного вида?
Записан
Ul4ik
Новенький

ru
Offline Offline

« Ответ #12 : 12-04-2011 12:24 » 

Да, конкретный документ-объект

Добавлено через 5 минут и 36 секунд:
Да, конкретный документ-объект
[/quote
неправильно ответила, все документы конкретного вида, а именно все "Отпуска по уходу за ребенком"
« Последнее редактирование: 12-04-2011 12:30 от Ul4ik » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 12-04-2011 13:17 » 

1. В УПП (думаю в ЗУП аналогично) в общем модуле НастройкаПравДоступа есть функция ЗаполнитьПараметрыПроверкиПоВидуДокумента (Функция возвращает структуру параметров проверки документа для нетиповых случаев). По идее ее и нужно доработать (в ней закомментирован шаблон для подобных случаев).
2. Можно просто указанный вид документов убрать из подписки на события ПередЗаписьюДокументаДатаЗапретаРедактирования - но это отразится для всех пользователей.

Но вообще-то советую еще раз подумать над задачей: т.к. неконтролируемое изменение документа, который влияет на последующие начисления может привести к трудноуловимым ошибкам: Отправили мать в отпуск, начислили за первый месяц денег, потом задним числом поменяли дату отправки в отпуск - и в следующем месяце начисления будут ошибочными.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines