Данная обработка позволяет вместо общей даты запрета редактирования установить дату запрета редактирования для каждого пользователя.
Бесплатные
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе
Инфостарт БЕСПЛАТНО
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Для этого нужно:
1. В справочник Пользователи добавить реквизит ДатаЗапрета типа "ДАТА"
2. В глобальном модуле изменить все вхождения строки Константа.ДатаЗапретаРедактирования на глПользователь.ДатаЗапрета
3. Перед каждым вхождение глПользователь.ДатаЗапрета написать глОбновитьПользователя();
4. Добавить в глобальный модуль функцию:
Функция глОбновитьПользователя()
// установка текущего пользователя
Спр=СоздатьОбъект("Справочник.Пользователи");
Если ПустоеЗначение(ИмяПользователя())=0 Тогда
Если Спр.НайтиПоКоду(ИмяПользователя())=0 Тогда
КонецЕсли;
КонецЕсли;
глПользователь=Спр.ТекущийЭлемент();
КонецФункции
При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.
Инструмент для наглядного анализа и сравнения наборов прав доступа в 1С 7.7
Работает в любых конфигурациях. В одной из обслуживаемых мной баз 40 наборов прав пользователей (120 пользователей).
Этим отчетом очень наглядно выходит анализировать разницу в правах и просто описывать права пользователей в документации.
Обновлено:
- В новой версии отчета добавил сравнение двух разных баз и анализ внешней БД.
- объекты метаданных представлены в виде дерева (объект "Дерево-Таблица значений" FormEx)
Если вы обслуживаете Торговлю и Склад 7.7 и устали менять права на документы и справочники по заданию руководства и список Наборов прав стал просто нечитаемым, то вам сюда.
Установка даты запрета редактирования документов индивидуально для каждого пользователя,а также предоставление в индивидуальном порядке разрешения изменения конкретных документов в определенные периоды или в конкретные дни.Срок действия установок устанавливается вами. Вы можете спокойно настроить и уехать в отпуск.
Система управления правами доступа "на лету" для конфигураций на платформе 1С:Предприятие 7.7.
- Онлайн :: Не требует выхода пользователей.
- Умная :: Позволяет управлять доступом хоть к каждой кнопке на форме.
- Универсальная :: Встраивается в любую конфигурацию за 1 минуту!
- Преемственная :: Сохраняет настройки существующих наборов прав.
А цель оправдывает средства? В смысле, убытки от ухудшеня сопровождаемости + затраты на переустановку дат для каждого пользователя будут меньше предотвращенных потерь от недисциплинированности пользователей?
Согласен с (1) в свое время тоже нужно было СРОЧНО сделать такую вещь.
Обощелся малой кровью.
Дополнительный каталог в базе данных с текстовым файлом.
Внешней обработкой туда - пользователь и дата
а при проверке даты запрета ! проверка пользователя в этом файле и сверка даты.
+ не нужно менять структуру справочника
- все равно немножко код нужно править (но если слетит при обновлении- не такая уж и беда - Общая дата запрета как работала так и будет работать)
(0) ИМХО было бы правильней пункты 2) и 3) инструкции объединить, а в 4) прописать чуть другую функцию:
2+3) в глобальном модуле изменить все вхождения строки Константа.ДатаЗапретаРедактирования на вызов функции глПолучитьДатуЗапретаПользователя()
4) Функция глПолучитьДатуЗапретаПользователя() Экспорт
// установка текущего пользователя
Спр=СоздатьОбъект("Справочник.Пользователи");
Если ПустоеЗначение(ИмяПользователя())=0 Тогда
Если Спр.НайтиПоКоду(ИмяПользователя())=0 Тогда
КонецЕсли;
КонецЕсли;
глПользователь=Спр.ТекущийЭлемент();
Возврат ?(ПустоеЗначение(Спр.ДатаЗапрета)=0,Спр.ДатаЗапрета,Константа.ДатаЗапретаРедактирования);
КонецФункции
А еще нужно при смене значения константы ДатаЗапретаРедактирования (Процедура ПриЗаписиКонстанты()) проверять и предупреждать о пользователях, у которых дата запрета становиться меньше нового значения...
По моему опыту, можно использовать данный механизм если мало пользователей..... Что-то похожее внедрили в новые 1С8 УПП/УТП/... Но моему главному бухгалтеру лень каждый раз назначать "ролям" пользователей ограничивающие пределы на редактирования. В итоге был сделан механизм работающий от текущей даты. Смысл= операторы могут редактировать документы в пределе 7-10 последних дней, но если главный бухгалтер закрывает предыдущий месяц за который сделаны отчеты, то пользователям там делать нечего. Исключение - гл.бухгалтер и администраторы. Но и администраторы могут залезть в закрытый период и что-то испортить. Для этого надо выводить информацию "проведено в закрытом периоде" или даже спрашивать "Вы уверены что хотите провести в закрытом периоде". 4 года назад для работы в комплексной 77 я применил простой механизм защиты от перепроведения документов в закрытом периоде. Во все "контролируемые" документы вставил в процедуру "определения видимости обьектов документа" вызов особой функции которая "гасила" доступность кнопки "ОК"(сохранит/провести) в случае попадания в закрытый период. Этот метод не давал перепроводить документы без ведома главного бухгалтера и администратора. Ну а при внедрении другой процедуры в процедуру "проведения" главный бухгалтер документа получал запрос на перепроведение документа в закрытом периоде = "А вы уверены, что хотите...". Так что вариантов реализации.
(9)Сделали? в ГМ примерно так:
глПользователь=Спр.ТекущийЭлемент();
Константа.ДатаЗапретаРедактирования=ТекущаяДата()-1;
// Если пустое значение Константа.НомерРелиза, то это первый запуск конфигурации