Универсальная подсистема «Дополнительные права для документов» v 1.1

26.07.10

Разработка - Инструментарий разработчика

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

Используются внешние компоненты:
1С++: http://www.1cpp.ru
FormEx: http://www.dorex.ru

Использование класса "Перехватчик" компоненты 1С++ позволяет минимизировать изменения конфигурации при установке надстройки. По сути, объединить конфигурации, добавить несколько строк в глобальном модуле в процедуре "ПриНачалеРаботыСистемы" для версии 1.1. Подробнее по установке в файле "setup.doc" в архиве.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ConfExtRightsDocs_v1.1.zip
.zip 744,29Kb
187
187 Скачать (1 SM) Купить за 1 850 руб.
ConfExtRightsDocs_v1.0.zip
.zip 744,25Kb
168
168 Скачать (1 SM) Купить за 1 850 руб.

В архиве лежит демо конфа, в которой есть все необходимое, чтобы ознакомиться с надстройкой и посмотреть ее в действии, пару простеньких видов документов (приход, расход товаров), общий журнал доков, регистр и отчетик по остаткам товаров, справочники товаров и пользователей, а также данная подсистема доп. прав. Все в главном меню "Наше меню". Также md'шка этой конфы Вам понадобится при установке. И в архиве лежат файлы описания подсистемы - "readme.txt", и порядка установки этой подсистемы в другую конфигурацию – "setup.doc".

Просмотр и настройка дополнительных прав производится в специальной одноименной обработке. См. скриншот. Слева в дереве двойным щелчком левой кнопкой мышки выбираем вид документа некоторого автора, после чего справа в списках пользователей будет отображено, каким пользователям запрещено изменять данный вид документа данного автора, а каким разрешено. Настройка осуществляется переносом пользователей из списка запрещенных в список разрешенных и обратно. Перенос можно производить, как двойным нажатием левой кнопкой мышки на пользователе в списке разрешенных или запрещенных, таким образом он будет перемещен в противоположный список. Или кнопками переноса всех или выделенного пользователя между списками. Кнопки со стрелочками, указывающими направление переноса, расположены между этими списками.
В случае, если добавлен новый пользователь в 1С, то, чтобы он появился в списке пользователей (как авторов документов, так и в списках запрещенных/разрешенных), нужно, чтобы он зашел (достаточно одного раза) под собой в базу 1С в режиме предприятия.

 

Дальнейшее развитие этой подсистемы идет тут:

Подсистема "Фабрика событий"

//infostart.ru/public/71084/


См. также

Инструментарий разработчика Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Консоль запросов к базе SQL, не требующая внешних компонент

10 стартмани

29.04.2015    22282    57    Gvozdod    8    

16

Инструментарий разработчика Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    168357    1882    Alexoniq    1596    

499

Инструментарий разработчика Программист Платформа 1С v7.7 Платформа 1С v8.3 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    33408    61    O-Planet    78    

49

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема. Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы. Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме. Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.

1 стартмани

13.08.2013    21801    Reptile    5    

35

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Встала недавно задача для одной организации, которая все еще на 1С 7.7 немного автоматизировать работу отдела продаж. А именно уйти от ручного заполнения договоров, сделанных юристами в MS Word. Договора от разных фирм и разного назначения отличались. Переводить их в таблицы 1С очень не хотелось и нашел способ прямо в файлах Word сделать небольшие дополнения, чтобы можно было печатать, используя именно эти заготовки юристов.

1 стартмани

14.07.2013    27643    56    adamx    11    

14

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    18345    36    MarSeN    14    

17

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    36349    51    venger    7    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. venger 2124 07.09.09 23:44 Сейчас в теме
(0) Результат, так сказать, ознакомления с перехватчиком в 1С++ и Дерево+Таблица в FormEx:-))) Все простенько, по минимуму...
12. 1Снег 11 11.09.09 13:26 Сейчас в теме
(1) Это так 1С++ некорректно выгружается на Висте/Windows 7
13. venger 2124 11.09.09 23:10 Сейчас в теме
(1),(12) А что если в Висте 1С'ку 7.7 запустить в режиме совместимости с XP? Свойства ярлыка запуска проги 1С, вкладка совместимость...
14. larisab 160 11.09.09 23:12 Сейчас в теме
2. larisab 160 08.09.09 00:01 Сейчас в теме
При закрытии: Прекращена работа 1c:v7 starter program
Имя события проблемы: APPCRASH
Имя приложения: 1cv7s.exe
Версия приложения: 7.70.0.25
Штамп времени приложения: 41c01f3a
Имя модуля с ошибкой: ntdll.dll
Из-за версии 25 или у всех так?
4. venger 2124 08.09.09 00:18 Сейчас в теме
(2) У меня 23-й релиз, проблем не было ни на 98-й винде, ни на XP, ни на Win Server 2003.... Файловый вариант базы... Версии dll'ек, что у меня были загружены 1С++ v: 2.5.0.5 Nightly build 2007-11-12, FormEx v: 2.0.5.82 beta...
8. Арчибальд 2709 08.09.09 09:23 Сейчас в теме
(4) А почему релиз 23?
(7) Виста маст дай ;))
10. venger 2124 08.09.09 13:15 Сейчас в теме
(8) > А почему релиз 23?

Так уж получилось;) Я ожидал скорее, откуда 98-е форточки;) Да, есть и машина с 98-й под боком;)
11. Арчибальд 2709 08.09.09 14:03 Сейчас в теме
(10) Ну, 98 все надежнее Линолеума. На старых машинешках только и держать...
А вот 23 - это все же головняк. С таблицами.
3. larisab 160 08.09.09 00:01 Сейчас в теме
5. larisab 160 08.09.09 00:49 Сейчас в теме
Виста, 1С++ v:3.0.1.23, FormEx v: 2.0.5.92 лежат в BINe, 77 файловый.
Nightly build 2007-11-12 - это что?
9. venger 2124 08.09.09 13:12 Сейчас в теме
(5) > Nightly build 2007-11-12 - это что?

Видимо дата ночной сборки... Но понял - дело в Висте;)
6. larisab 160 08.09.09 00:57 Сейчас в теме
ntdll.dll? я его не нашла, где взять и куда положить?
7. larisab 160 08.09.09 01:46 Сейчас в теме
15. Ёпрст 1065 14.09.09 14:45 Сейчас в теме
Еще не смотрел.. Но как-то не стыкуется описание:
>>>Использование класса "Перехватчик"
>>>добавить парупару строк во всех модулях документов в процедуре "ПриОткрытии"

Зафига делать второе, при наличии первого???
16. venger 2124 14.09.09 15:24 Сейчас в теме
(15) Метод ПерехватитьСобытияГК:
http://www.1cpp.ru/docum/html/Hooker.html#hookeventsofgroupcontext

В модулях форм документов в процедуре при открытии добавляются такие строчки:
ОбъектПерехватчикСобытийГК = СоздатьОбъект("КлассПерехватСобытий");
глПерехватчик.ПерехватитьСобытияГК(Контекст,ОбъектПерехватчикСобытийГК);

Реализация пользовательского «КлассПерехватСобытий» лежит в обработке «КлассПерехватСобытийРеализация».

Так вот, пробовал передать групповой контекст формы дока, из глобального модуля в процедуре «ПослеОткрытия», примерно так:

Процедура ПослеОткрытия(Конт) Экспорт
ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.УстановитьФорму(Конт.Форма);
Если ФормаРасш.ТипОбъекта()="Документ" Тогда
// Глобальная переменная глобального модуля,
// инициализируется в процедуре ПриНачалеРаботыСистемы:
// ОбъектПерехватчикСобытийГК = СоздатьОбъект("КлассПерехватСобытий");
// А тут, собственно, включаем перехват событий открытой формы дока:
глПерехватчик.ПерехватитьСобытияГК(Конт,ОбъектПерехватчикСобытийГК);
КонецЕсли;
КонецПроцедуры

Все бы ничего, но если передавать из глобального модуля в процедуре «ПослеОткрытия», то возникает проблема в пользовательском классе, в котором определены обработчики событий контекста формы, в функции-обработчике «Функция Событие_ПриЗаписи() Экспорт», получить контекст окружения, например так:

КонтОбъекта = GetThis(Контекст).ПолучитьКонтекстОкружения();

Где функция «GetThis», выглядит так: Функция GetThis(Конт) Возврат Конт; КонецФункции

Чтобы потом определить из формы какого вида документов вызвано событие, проверить доступность по правам:
Попытка
Док = КонтОбъекта.ТекущийДокумент();
Исключение
Перехватчик = СоздатьОбъект("Перехватчик");
Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтОбъекта,"ПриЗаписи");
Возврат Рез;
КонецПопытки;
Рез=МожноРедактироватьДок(Док);

И далее в зависимости от результата метода «МожноРедактироватьДок», либо выдать предупреждение и отменить действие, возвратив 0 из функции обработчика события «ПриЗаписи», либо выполнить оригинальное событие и возвратить 1…

Так вот из глобального модуля не пашет, вернее заставить не удалось, а хотелось очень, ибо понятно, что тогда было бы еще проще встраивать в конфу, вот и пришлось вызывать обработчик событий из локального модуля формы документа таким вот образом в процедуре «ПриОткрытии»:

Процедура ПриОткрытии()
ОбъектПерехватчикСобытийГК = СоздатьОбъект("КлассПерехватСобытий");
глПерехватчик.ПерехватитьСобытияГК(Контекст,ОбъектПерехватчикСобытийГК);
...

Если есть какие-то способы сделать это проще, то буду очень признателен, если озвучишь. Так как хотелось бы уйти от необходимости вставлять во все формы доков, хоть и пару строк, но все же...
17. Ёпрст 1065 14.09.09 19:39 Сейчас в теме
(16) Конечно есть!
Перехватчик был специально создан, чтоб вообще не нужно было править код во всех формах...!
Перехватчик сам перехватывает ВСЕ предопределенные события формы, в том числе формекса.
ЗЫ: Смотри реализацию у меня в профиле, в Undo или в Редактор формы..
Там всё есть ...
18. venger 2124 17.09.09 15:10 Сейчас в теме
(17) Сенкс, гляну на днях. Надо бы еще и на прямые запросы (из 1С++) переписать, чтоб быстрее летало....
19. jorjy 27.09.09 02:25 Сейчас в теме
larisab
Используйте vkloader - внешняя компонента для 1С-Предприятия 7.7, которая может загружаться без ее регистрации в реестре.
20. venger 2124 05.10.09 15:48 Сейчас в теме
(0) Обновил, в версии 1.1, дописал класс 1С++ для перехвата событий так, чтобы внедрение подсистемы в другую конфу ограничивалось только объединением md'шки и добавлением нескольких строк в глобальный модуль, по совету Ёпрст'а.
22. artbear 1563 05.10.09 16:08 Сейчас в теме
(20) Ага, я Перехватчик в 1С++ именно для этого и сделал, чтобы минимизировать изменение конфы и упростить добавление универсальных механизмов.
Рад, что у тебя получилось целая система контроля прав.

Как автор, Рекомендую юзать последнюю версию 1С++ 3.Х для исключения различных глюков в реализации Перехватчика и исключения неожиданных тонких эффектов

ЗЫ Кстати, одна из задач, ради которой мной проектировался Перехватчик - задача контроля доступа.
Но я так до ее решения и не дошел :)
21. Altair777 645 05.10.09 15:52 Сейчас в теме
24. venger 2124 31.05.10 01:19 Сейчас в теме
(21),(22),(23) Дальнейшее развитие этой подсистемы идет тут:
Подсистема "Фабрика событий"
http://infostart.ru/public/71084/
23. artbear 1563 05.10.09 16:11 Сейчас в теме
(22+) Ну и соответственно, ФормЕкс также желателен последний, т.к. в последних версиях ФормЕкс мы с Алексеем фиксили многие баги, в т.ч. и баги взаимодействия 1С++ и ФормЕкс.
Говорю уже как разработчик и 1С++, и ФормЕкс :)
25. gucci76 366 21.07.10 13:37 Сейчас в теме
В обработке КлассПерехватСобытийРеализация есть
Функция Событие_ПриЗаписи() Экспорт
При записи документа она должна срабатывать.
Она не срабатывает. Почему?
26. venger 2124 26.07.10 12:12 Сейчас в теме
(0) Поправил вызов оригинальных событий...
27. SPonomareff 94 21.04.11 09:58 Сейчас в теме
Доброго времени суток. Давно скачивал эту разработку. Все отлично! Спасибо. Единственное что у меня не работает- это не показывается список пользователей кому разрешено. То есть с самого начала показывается, а потом при повторном просмотре прав на документ список пропадает. Но это мелочи жизни.
28. PochekutovOleg 15.11.11 14:39 Сейчас в теме
Можно решить и штатными способами
29. fixin 4273 27.02.12 18:59 Сейчас в теме
как то не алле.
Каждому пользователю прописывать права на каждый документ?
Это долго и не модно. Где регистры правил?
Воздержусь от плюса.
Оставьте свое сообщение