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

26.07.10

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

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

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

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

Скачать файлы

Наименование Файл Версия Размер
ConfExtRightsDocs_v1.1.zip
.zip 744,29Kb
187
.zip 744,29Kb 187 Скачать
ConfExtRightsDocs_v1.0.zip
.zip 744,25Kb
168
.zip 744,25Kb 168 Скачать

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

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

 

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

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

//infostart.ru/public/71084/


См. также

Консоль запросов

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

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

10 стартмани

29.04.2015    21559    54    Gvozdod    8    

14

StartManager 1.4 - Развитие альтернативного стартера

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

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

1 стартмани

23.04.2014    165704    1864    Alexoniq    1596    

496

Tray Informer

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

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

1 стартмани

04.09.2013    32877    61    O-Planet    78    

49

Изменение структуры баз 1С 7.7 без долгой реструктуризации. Часть 1. Справочники

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

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

1 стартмани

13.08.2013    21197    Reptile    5    

35

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7.

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

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

1 стартмани

21.02.2013    18030    35    MarSeN    14    

16

[Разработчику] Любая таблица значений в OLAP

Инструментарий разработчика Платформа 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    36103    51    venger    7    

23

Библиотека кода 1С 7.7 (накопленная за 8 лет)

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

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    34958    248    adhocprog    51    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. venger 2121 07.09.09 23:44 Сейчас в теме
(0) Результат, так сказать, ознакомления с перехватчиком в 1С++ и Дерево+Таблица в FormEx:-))) Все простенько, по минимуму...
12. 1Снег 11 11.09.09 13:26 Сейчас в теме
(1) Это так 1С++ некорректно выгружается на Висте/Windows 7
13. venger 2121 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 2121 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. Арчибальд 2706 08.09.09 09:23 Сейчас в теме
(4) А почему релиз 23?
(7) Виста маст дай ;))
10. venger 2121 08.09.09 13:15 Сейчас в теме
(8) > А почему релиз 23?

Так уж получилось;) Я ожидал скорее, откуда 98-е форточки;) Да, есть и машина с 98-й под боком;)
11. Арчибальд 2706 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 2121 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. Ёпрст 1063 14.09.09 14:45 Сейчас в теме
Еще не смотрел.. Но как-то не стыкуется описание:
>>>Использование класса "Перехватчик"
>>>добавить парупару строк во всех модулях документов в процедуре "ПриОткрытии"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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