Вопрос № 95684: Здравствуйте.
Есть в 1с возможность запрета внесения изменений задним числом. Только вот проблема, число это можно сместить только для всех пользователей сразу. А можно ли сделать это для определенного пользователя (или нескольких выбранных), воз...
Вопрос № 95.684
Здравствуйте.
Есть в 1с возможность запрета внесения изменений задним числом. Только вот проблема, число это можно сместить только для всех пользователей сразу. А можно ли сделать это для определенного пользователя (или нескольких выбранных), возможно временно убиралсь проверка и он (они) получали доступ бе ограничения даты вообще? А все остальные в это время что бы так и ограничивались граничной датой.
Заранее всем благодарен.
Отправлен: 19.07.2007, 14:37
Вопрос задал: Sandy (статус: 8-ой класс)
Всего ответов: 8 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Dmitry Stashenko
Здравствуйте, Sandy!
Например, создай (а может он у тебя и есть) Справочник.Пользователи, в котором заведи для каждого ДатуЗапретаРедактирования, и проверке даты смотри не на константу, а узнавай, кто пользователь, и смотри на дату в справочнике для него ( а если дата пустая, соответственно ограничения нет). Ну а при изменении константы можно устанавливать все даты в справочнике (типа обновлять).
Удачи.
Ответ отправил: Dmitry Stashenko (статус: 7-ой класс)
Ответ отправлен: 19.07.2007, 14:46 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Strawberry
Здравствуйте, Sandy!
а чеж нельзя можно конечно, привяжи дату запрета редактирования к справочнику пользователи (сотрудники) ну и модуль проверки подправь.
Только смыс в этом ??? если нельзя то всем ....... если хоть одному можно, то считай что его остальные уболтают.
--------- Мальчик-извращенец прочел деду Морозу с табуретки всего Пастернака!
Ответ отправил: Strawberry (статус: 8-ой класс)
Ответ отправлен: 19.07.2007, 14:50 Оценка за ответ: 5 Комментарий оценки: Спасибо. Этот один - главный бухгалтер. Коли её уболтают - моя ли это проблема?
Отвечает: Андрей Тимофеев
Здравствуйте, Sandy!
Конечно можно.
Вы можете сделать разграничение, например, по правам достпута, т.е. при открытии документа у вас проверяется его дата и сравнивается с константой запрета в эту проверку вы можете добавить доп. проверку по правам доступа:
Если НазваниеПравДоступа() = "Администратор" ТОгда
...//Разрешить доступ
Возврат 1;
КонецЕсли;
Ответ отправил: Андрей Тимофеев (статус: 5-ый класс)
Ответ отправлен: 19.07.2007, 15:21 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Sandy!
Эта возможность даты запрета редактирования реализована программно, и, вероятнее всего, в глобальном модуле. У меня, например, это процедура глПроверкаДатыДок. Там у меня есть справочник, в котором записаны виды документов. И нет никаких проблем, чтобы начисление зарплаты закрыть маем, а налоговые накладные апрелем. Ели Вы сделаете у себя что-то похожее, только в справочнике будете хранить не только виды документов, но и пользователей, то будет Вам счастье. В моем модуле даже разные даты запрета перепроведения
(обработками) и интерактивного изменениясперепроведением. Мой глобальный модуль лежит здесь
ftp://82.207.94.32/globalniymodul.txt
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Практикант)
Ответ отправлен: 19.07.2007, 15:34 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: IUnknown
Здравствуйте, Sandy!
Убираешь галку на документах у нужного интерфейса запрет изменений документов задним числом. Далее в справочник пользователей добавляешь числовой реквизит типа СколькоДнейНазад. В глобальный модуль добавляешь, а если есть изменяешь, процедуру глПроверкаРедактирования. Ну и соотвествено вызов данной функции прописываешь во всех документах в процедуру ПриОткрытии.
в документах
процедру ПриОткрытии()
глПроверкаРедактирования(контекст);
если Форма.Доступность() = 1 тогда
// ну и тут блокируешь кнопки, списки и прочие атрибуты формы не являющиеся реквизитами формы
Форма.КнопкаОК.Доступность(0);
конецесли;
...
...
конецпроцедуры
// в глобальном модуле
процедура глПроверкаРедактирования(конФормы)
если конФормы.ДатаДок > (рабочаядата() - глПользователь.СколькоДнейНазад) тогда
// делаем только просмотр
конФормы.Форма.ТолькоПросмотр(1);
конецесли;
...
...
конецпроцедуры
--------- я не специалист
Ответ отправил: IUnknown (статус: Студент)
Ответ отправлен: 19.07.2007, 15:52 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Владимир Лазурко
Здравствуйте, Sandy!
В дополнение.
В справочнике Пользователи кроме реквитзита ДатаЗапрета можно добавить еще один ИнтервалЗапрета - он будет сме6щаться в зависимости от текущей или рабочей датры, например, на 5 дней. Каждому пользователю прописать соответствующие значения. Дату запрета из этого справочника можно использовать параллельно с константой ДатаЗапретаРедактирования, например, закрыли период и Константу ДатаЗапретаРедактирования изменили, а в справочнике Пользователи нет (упустили из виду). Тогда если ДатаЗапрета из справочника Пользователи
< Константа.ДатаЗапретаРедактирования выходит, что пользователь сможет редактировать документы. Необходимо производить и такую проверку.
Ответ отправил: Владимир Лазурко (статус: 10-ый класс)
Ответ отправлен: 19.07.2007, 19:04 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Vlad Skorochod
Здравствуйте, Sandy!
Данную возможность можно реализовать только запрограммировав ее.
Заносим еще одну константу даты. и в глобальном модуле ищем
Константа.ДатаЗапретаРедактирования и соответственно там прописываем дополнительные условия проверки. Имя пользователя в системе можно определить
функцией: ИмяПользователя()
Ответ отправил: Vlad Skorochod (статус: 5-ый класс)
Ответ отправлен: 20.07.2007, 09:07 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Ромашов Евгений Николаевич
Здравствуйте, Sandy!
дополнительный справочник, где настраивается такая политика
Ответ отправил: Ромашов Евгений Николаевич (статус: 3-ий класс)
Ответ отправлен: 20.07.2007, 09:35 Оценка за ответ: 4 Комментарий оценки: Спасибо.