Расширенная настройка прав пользователей

22.07.09

Администрирование - Информационная безопасность

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

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

Наименование Файл Версия Размер
-
.1243311325 40,47Kb
806
.1243311325 40,47Kb 806 Скачать

Наиболее подходящая по идеологии оказалась эта разработка: //infostart.ru/projects/1034 (за что спасибо ее автору!)

Для доработки используемой вами конфигурации необходимо использовать выложенную здесь демо-конфигурацию. Демо-конфигурация сделана на базе типовой бухгалтерии 77, но легко внедряется в любые другие типовые и нетиповые конфигурации.

Порядок внедрения:

1) добавьте в используемую конфигурацию справочник Пользователи (рекомендуется его добавить через режим объединение конфигурации с моей демкой, чтобы импортировать картинки кнопок)

2) добавьте константу ПраваПользователяПоУмолчанию (можно копи-пастом)

3) Добавьте общие реквизиты документов Автор и ДатаСоздания. Внимание! После добавления переставьте имеющиеся общие реквизиты типа Строка неогр. длины (напр., "Комментарий") в конец списка общих реквизитов - это критично, если база SQL.

4) в глобальном модуле добавьте (измените, если уже существуют) следующие функции и процедуры (возьмите их из глоб. модуля моей демки):

глУстановкаТекущегоПользователя,
глНаборПравОбъекта,
глПолучитьПраво,
ПравоИзмененияДокумента,
глМожноЗаписатьЭлемент,
ПриУдаленииЭлемента,
глМожноПроводить,
ПриИзмененииВремениДокумента,
ДатаЗапретаРедактирования,
глПроверкаРазрешенияРедактирования,
глМожноЗаписатьДокумент,
ПриУдаленииДокумента,
ПриОтменеПроведенияДокумента,
ПриВыклВклПроводокОперации,
ПриЗаписиКонстанты,
ПриЗаписиИстории,
глДействия.

5) проверьте, что во всех документах есть процедуры ПриОткрытии и ПриЗаписи, в которых содержится следующий код (в типовой бух 77 он есть обязательно), в качестве примера см. документ Новый1 в моей демке:

Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1);
глПроверкаРазрешенияРедактирования(Контекст); //<- используется с целью проверки Прав доступа

Если Форма.ТолькоПросмотр() = 1 Тогда
Форма.КнопкаОК.Доступность(0);
КонецЕсли;
//...
КонецПроцедуры

//_____________________________________________________________________________
Процедура ПриЗаписи() //предопределенная
Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда //<- используется с целью проверки Прав доступа
СтатусВозврата(0);
Возврат;
КонецЕсли;

//....
КонецПроцедуры

6) в форме документа Операция измените процедуры ПриЗаписи и ПриОткрытии, руководствуясь примером документа Операция моей демки

7) в интерфейсе пользователей предусмотрите вызов справочника Пользователи

В принципе, это всё, что необходимо для минимальной доработки конфигурации, чтобы запустить Расширенную настройку прав доступа. Но при этом будет недоступна настройка некоторых прав, а именно:
для справочников: Ввод нового, Редактирование, Перенос в другую группу;
для документов: Проведение
(В коде модуля формы списка справочника Пользователи эти права у меня отмечены: //*)

Для того чтобы эти права стали доступными необходимо произвести более глубокие изменения конфигурации:

8) во всех формах списков всех справочников добавить (изменить) предопределенные процедуры ПриЗаписи и ПриПереносеВДругуюГруппу (в качестве примера см. в моей демке справочники Пользователи и Банки):

Процедура ПриЗаписи() //<- добавлено с целью проверки Прав доступа
Если глМожноЗаписатьЭлемент(Контекст) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецПроцедуры

Процедура ПриПереносеЭлементаВДругуюГруппу(Элем, Группа) //<- добавлено с целью проверки Прав доступа
Если глМожноЗаписатьЭлемент(Контекст,"ПереносВДругуюГруппу") = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецПроцедуры

9) во всех формах элемента и группы всех справочников добавить (изменить) процедуры ПриЗаписи (тот же пример в моей демке)

Процедура ПриЗаписи()
Если глМожноЗаписатьЭлемент(Контекст) = 0 Тогда //<- добавлено с целью проверки Прав доступа
СтатусВозврата(0); //<- добавлено с целью проверки Прав доступа
Возврат; //<- добавлено с целью проверки Прав доступа
КонецЕсли; //<- добавлено с целью проверки Прав доступа
КонецПроцедуры // ПриЗаписи()

10) В модулях проведения всех документов в начале процедуры ОбработкаПроведения() добавить код (см. документ Новый1 в моей демке):

Если глМожноПроводить(Контекст) = 0 Тогда //<- добавлено с целью проверки Прав доступа
СтатусВозврата(0);
Возврат;
КонецЕсли;

11) Для большей красивости можно во всех журналах документов добавить графу Автор (см. пример Журналы документов - Общий), а на форме всех документов добавить надпись Автор (см. диалог формы документов Новый1 и Операция)

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

 НаборПрав = глНаборПравОбъекта(глПользователь,"Справочник."+ТекущийОбъект.Вид());//начало //<- добавлено с целью проверки Прав доступа
 Если глПолучитьПраво(НаборПрав,"Редактирование")="-" тогда //запрещено
  Предупреждение("Нет прав редактировать это значение!");
  СтатусВозврата(0);
  Возврат  
 КонецЕсли; //конец //<- добавлено с целью проверки Прав доступа

Порядок использования:

Настройка прав пользователей осуществляется через вызов справочника Пользователи. При первом входе в систему создается новый элемент справочника, реквизиты Код и Наименование которого заполняются именем пользователя, заданным в конфигураторе. При этом если задана константа ПраваПользователяПоУмолчанию, то ему присваивается набор прав, заданных пользователю в этой константе.

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

Для каждого пользователя (группы пользователей) задан список объектов и права этих объектов.
Список объектов:
Общие, Константа, Справочник, Документ.

Объекту Общие соответствует только одно право (пока): Редактирование прав пользователей. Оно определяет, может ли данный пользователь системы заниматься установкой и редактированием прав пользователей (себя и других)

Объекту Константа соответствует право: Редактирование. Оно определяет право доступа сразу ко всем константам. Для того чтобы, это право установить для конкретных констант, надо развернуть объект Константа и кнопкой "+" добавить нужные имена констант. Т.о. права можно устанавливать в целом на объект и на виды данного объекта.

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

Также как и для констант, можно задавать права и для конкретных видов справочников, добавляя их кнопкой "+". Установка этих прав для справочника Пользователи, по сути, дублирует право "Общие.РедактированиеПравПользователей".

Объекту Документ соответствуют права:
Дата запрета редакт.
Дней доступа
Доступ к чужим документам (автором которых Вы не являетесь)
Ввод нового
Редактирование проведенного
Редактирование непроведенного
Изменение времени
Проведение документа //*
Отмена проведения документа
Пометка на удаление
Снятие пометки на удаление.

Также как и для справочников, можно задавать права и для конкретных видов документов, добавляя их кнопкой "+".

Установка всех прав (кроме "Дата запрета редакт." и "Дней доступа") сводится к установке одного из трех значений "+", "-" и "пусто".
"+" - разрешено данное действие (если оно конечно не запрещено правами на уровне конфигуратора);
"-" - запрещено данное действие;
"пусто" - действие не определено, оно будет определяться правом, заданном для данного действия на других уровнях иерархии прав (права объектов/видов, права пользователей/групп пользователей).

Приоритет имеют права, заданные для конкретных видов, перед правами, заданными в целом на объект.
Права, определенные для конкретного пользователя имеют приоритет над правами, заданными для группы пользователей.
В случае если на объект действуют несколько противоречащих прав, то в итоге действовать будет наиболее запрещающее.
Отдельно стоит отметить о действии даты запрета редактирования документов. Для конкретного вида документа она вычисляется с использованием трех параметров:
1) Константа.ДатаЗапретаРедактирования
2) право "Дата запрета редакт."
3) право "Дней доступа".
Права "Дата запрета редакт." и "Дней доступа" имеют приоритет перед значением константы ДатаЗапретаРедактирования, даже если ее значение более запрещающее.
Если на объект не заданы никакие права, то действует права, заданные в конфигураторе (Говоря другими словами, расширенная настройка прав пользователей может лишь ограничить права, заданные в конфигураторе, но никак не может их расширить).

В форме списка Пользователей существует возможность:
1) очистить набор прав пользователей;
2) задать набор прав пользователей, используя в качестве образца права другого пользователя (группы пользователей) - скопировать
3) распечатать полный набор прав с учетом иерархии, действующий на выделенного пользователя (группу пользователей)

В форме журналов документов и в самих документах в типовых конфигурациях есть кнопка Действия. В список действий добавлен новый пункт "Автор документа". Выбор этого пункта покажет автора текущего документа, дату создания документа и набор прав, действующих на данный вид документов для этого автора.

-----------------------------------------------------------------------------------
Более подробно опишу систему правил позже, сейчас нет времени.

Планы доработок на будущее:
1) избежать сильного изменения конфигурации при внедрении системы прав (видимо, буду использовать ВК 1С++);
2) расширить иерархию прав доступа (например, создавая произвольные группы, объединяющие список справочников, документов);
3) увеличить объекты прав, добавив права на действия над счетами ПланаСчетов, права на запуск встроенных Отчетов, Обработок;
4) добавить возможность установки прав на изменение конкретных реквизитов объектов (справочников, документов);
5) создать менеджер внешних отчетов, настраивающий права использования внешних отчетов (заменив Сервис - Дополнительные возможности).

 

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14395    22    32    

33

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    2592    PROSTO-1C    9    

29

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1616    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Продукты на основе решений 1С уверенной поступью захватывают рынок учётных систем в стране. Широкое распространение программ всегда порождает большой интерес к ним со стороны злоумышленников, а пользователь 1С это одна из дверей в защищённый информационный контур предприятия. Обработка позволяет быстро и комплексно оценить настройки безопасности конкретной базы и возможности пользователя этой базы на сервере. Также можно оценить некоторые аспекты сетевой безопасности предприятия со стороны сервера 1С.

5 стартмани

24.04.2023    5437    14    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    5964    32    Silenser    12    

23

История одного взлома или проверьте вашу систему на безопасность

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9242    Tavalik    46    

113
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Romarius 15 26.05.09 10:34 Сейчас в теме
2. Свой 164 26.05.09 12:17 Сейчас в теме
Спасибо за разработку, если можно, задам вопросы по внедрению этой системы:
1. кто значально был постановщиком задачи ? (руководство, отдельный ответственный работник), в каком виде ставлась задача - кратком или подробном?
2. как восприняли работу системы те, кого ограничивают - операторы, менеджеры?
3. сложно ли осваивалась система руководством, настраивают ли они сами доступы ?
4. каков уровень удовлетворенности заказчиков этой системы в вашем случае ?
3. victuan 4232 26.05.09 13:45 Сейчас в теме
(2):
1) По совместительству на этом предприятии я не только программист, но и постановщик учета. Задачу поставил я.
2) Пока об этом говорить рано. Разработка системы началась 22.05.09 (4 дня назад), закончена сегодня и внедрена на предприятии (т.е. это бета-версия). Поэтому никто еще ничего не почувствовал. Следующим шагом будет тотальное ужесточение всех прав, чтобы методом проб и ошибок вычислить оптимальный набор прав пользователей (принип прост, если пользователю дать лишние права изначально, он промолчит, если забрать, он прибежит и начнет их (права) качать)
3) инструкцию по настройке я отдал сегодня гл. бухгалтеру, время покажет как она справится
4) об этом говорить еще рано. Но думаю результат удовлетворит многих: и постановщика учета и потребителей системы.
Stеls; Свой; +2 Ответить
4. Shaman342 26.05.09 13:58 Сейчас в теме
(3) можно ли инструкцию по настройке в студию? ... чтобы не изобретать велосипед ;)
6. victuan 4232 26.05.09 14:02 Сейчас в теме
(4) Инструкция по настройке в описании сабжа (начиная со слов "Настройка прав пользователей осуществляется через вызов справочника Пользователи...").
Другой пока нет ;)
5. artbear 1448 26.05.09 14:02 Сейчас в теме
>>Планы доработок на будущее:
>>1) избежать сильного изменения конфигурации при внедрении системы прав
>>(видимо, буду использовать ВК (формекс?))
Рекомендую юзать ВК 1С++.

В этой ВК я специально для подобных задач реализовал класс Перехватчик - универсальный перехват практически любых событий 1С и различных ВК без переписывания кучи кода в конфигурации.

Читай доку на 1С++ 3.0.1.ХХХ и форум компоненты на 1cpp.ru

ЗЫ я специально делал этот объект, потому что надоело для каждого метаданного прописывать спец.код в модуле формы и модуле документа.

Очень рекомендую.
8. victuan 4232 26.05.09 14:04 Сейчас в теме
(5) Спасибо за рекомендации, наверное, я так и сделаю. И даже, наверное, класс ВыполняемыйМодуль задействую, чтобы можно было задавать в пользовательском режиме произвольное условие на право доступа.
9. artbear 1448 26.05.09 15:13 Сейчас в теме
(8) Да, для произвольных условий ВМ весьма удобен.
14. artbear 1448 27.05.09 09:05 Сейчас в теме
15. victuan 4232 27.05.09 09:13 Сейчас в теме
(14) Попозже посмотрю. Блиц-вопрос по перехватчику: он позволяет перехватить метода объекта, выполнить код, а затем продолжить выполнение перехваченного метода?
16. Ёпрст 1063 27.05.09 09:14 Сейчас в теме
18. victuan 4232 27.05.09 09:22 Сейчас в теме
(14) Посмотрел доку, что-то лениво разбираться, примерчик бы живой.
19. Ёпрст 1063 27.05.09 09:25 Сейчас в теме
(18) смотри Undo в моём профиле, например.
21. artbear 1448 27.05.09 10:09 Сейчас в теме
(18) Или юзай поиск в форуме 1cpp.ru по слову Перехватчик, примеров там море + ! разбор ошибок использования Перехватчика ! :)
7. artbear 1448 26.05.09 14:04 Сейчас в теме
(5+) Перехватчик как раз позволяет избежать "идиотского" для подобных задач встраивания спец.кода во все формы :(
10. alexk-is 6533 26.05.09 18:59 Сейчас в теме
(0) Может быть текст процедур раскрасить?
11. victuan 4232 27.05.09 05:58 Сейчас в теме
(11) В описании разработки? Раскрасил.
12. Ёпрст 1063 27.05.09 08:57 Сейчас в теме
13. victuan 4232 27.05.09 09:03 Сейчас в теме
(12) Набор прав пользователя: [Вася]:*
Звездочка (*) дает мне право утверждать, что набор прав не записан для текущего пользователя, следовательно, не действует.
Для того, чтобы записать изменения набора прав нужно нажать кнопку с изображением дискеты.
20. victuan 4232 27.05.09 09:59 Сейчас в теме
А перехватчик умеет перехватывать события, не объявленные в форме объекта (напр., проц. ПриЗаписи используется не во всех справочниках, а интерактивную запись нужно перехватывать везде)
23. Ёпрст 1063 27.05.09 10:15 Сейчас в теме
(20) Конечно! Перехватывает не их, но еще и все события формекса...
25. artbear 1448 27.05.09 10:17 Сейчас в теме
(20) Да, в этом вся прелесть/фича Перехватчика - что для нормальной работы универсальной механизмов совершенно не нужно прописывать обработчики событий в каждой форме, а достаточно определить их на верхнем уровне.
Любое перехваченное событие в Перехватчике можно отменить, не пропустив на следующий уровень, например, в модуль конкретной формы - т.е. полное управление на разработчике.
22. artbear 1448 27.05.09 10:11 Сейчас в теме
(0) Кстати, на этом сайте уже вроде выкладывался пример работы с правами для 77 на базе Перехватчика.
Правда, ссылку не помню.
На форуме 1С++ в разделе Репозитарий точно есть.
24. Ёпрст 1063 27.05.09 10:16 Сейчас в теме
26. artbear 1448 27.05.09 10:19 Сейчас в теме
(23+) Перехватчик перехватывает не только штатные события 1С, как форм, так и глобальника, но и все события ФормЕкс, а также события других ВК, реализованные аналогично событиям 1С и ФормЕкс - например, события ВК RIK_SQL, RWidjets.
Причем код классов перехватчиков совершенно не зависит от этих ВК, все универсально.
27. Alex1c 29 27.05.09 10:35 Сейчас в теме
"5) создать менеджер внешних отчетов, настраивающий права использования внешних отчетов (заменив Сервис - Дополнительные возможности)."
Рекомендую ознакомиться с http://www.infostart.ru/profile/1723/projects/615/
использую уже давно, полностью устраивает. Решение весьма продумано и оригинально
29. victuan 4232 27.05.09 10:43 Сейчас в теме
(27) Спасибо за ссылку! Вещь, судя по описанию, хорошая!
Я же хотел просто интегрировать нечто подобное с моим справочником пользователей.
28. artbear 1448 27.05.09 10:41 Сейчас в теме
(27+) Ага, Навигатор рулит, очень удобно.
30. victuan 4232 28.05.09 05:17 Сейчас в теме
Обновил демо-конфигурацию: исправил ошибки:
1) не учитывались мгновенно изменения прав пользователя при переносе в другую группу
2) При создании нового пользователя он автоматически помещается в группу пользователя Константа.ПраваПользователяПоУмолчанию
31. victuan 4232 29.05.09 08:10 Сейчас в теме
Обновил демо-конфигурацию: исправил ошибку:
3) При вводе нового документа копированием неверно устанавливались Автор и Дата создания документа
32. victuan 4232 01.06.09 08:03 Сейчас в теме
Обновил демо-конфигурацию: исправил ошибки:
4) глюки интерфейса (ошибки отображения при редактировании дерева набора прав)
5) при удалении проведенного документа проверяется дополнительно право "ОтменаПроведения"
33. victuan 4232 24.06.09 06:11 Сейчас в теме
Обновил демо-конфигурацию: исправил ошибку:
6) для новых документов не проверялось право "Дата запрета редактирования".

ЗЫ: как видите на практике обработка активно используется. Но руки прикрутить 1с++ пока не доросли, т.к. в моей деятельности достаточно уже имеющегося функционала.
34. DeepDiver 5 29.07.09 17:56 Сейчас в теме
Рарус Администратор не смотрели?
35. victuan 4232 30.07.09 09:39 Сейчас в теме
(34) Нет, и почему-то не хочется что-либо от Раруса смотреть.
36. DeepDiver 5 30.07.09 14:35 Сейчас в теме
А зря! Отличная администрилка для 77 не защищённая никакими ключами...
37. rosalin 13.10.09 22:37 Сейчас в теме
Спасибо! Отличная обработка давно ищу что то подобное , возможно ли доработать что бы можно было выставлять ограничение прав на группу или строку справочника :?:

38. anig99 2843 13.10.09 23:49 Сейчас в теме
(37) перейдите на 8.1 Там есть RLS (;
39. rosalin 14.10.09 09:10 Сейчас в теме
(38) Спасибо конечно но ищу более радикальное решение на 8.1 нет технической возможности перейти
40. victuan 4232 27.10.09 16:42 Сейчас в теме
(37) Да, у меня в планах стоит контроль прав с точностью до групп и элементов справочника, а также с точностью до реквизитов объектов.
Вопрос в том, когда руки найдут свободное время это реализовать.
41. yanis 28.10.10 13:59 Сейчас в теме
(40) Эту идею удалось реализовать? Если да - то можете выложить?
42. victuan 4232 28.10.10 16:31 Сейчас в теме
(41) Пока не реализовал. Возможно займусь этим в межотчетное время.
43. Timson1234 17.01.12 17:20 Сейчас в теме
Спасибо большое, очень помогло)
44. пользователь 29.01.12 23:09
Сообщение было скрыто модератором.
...
45. victuan 4232 30.01.12 04:28 Сейчас в теме
(44)Это что? Клоны тупым копипастом моих сообщений набирают себе балы? Модераторов прошу обратить внимание!
46. das58 19.11.13 12:31 Сейчас в теме
Отлично! Еще бы инсталлятор к ней, чтоб прописывал все эти процедуры сам. Где-то недавно попадалась разработка, которая во внешние отчеты засовывает необходимый код.
47. JuliettT 9 21.07.15 08:39 Сейчас в теме
Нужен такой же для 8.2 Ут, может есть у кого на сайте?
48. victuan 4232 12.01.22 20:11 Сейчас в теме
(0) Кстати, в форме списка справочника Пользователи, в функции ДобавитьПозицию() - ошибка.
Правильный вариант должен быть таким:

// ----------------------------------------------------
Процедура ДобавитьПозицию()
	Если глМожноЗаписатьЭлемент(Контекст) = 0 Тогда
		Возврат;
	КонецЕсли;

	НомСтр = 0; ВыбКод = лев(ВыбКод,3)+"000000";
	Если ВремТаблица.НайтиЗначение(ВыбКод,НомСтр,"Код")=1 тогда    
		Вид = ВремТаблица.ПолучитьЗначение(НомСтр,"Название");
		НомСтр = 0; ДобТЗ = Вид_Загр_Все(Вид);
		Если ДобТЗ.ВыбратьСтроку(НомСтр)=1 тогда
			Ид = ДобТЗ.ПолучитьЗначение(НомСтр,"Идентификатор");
			НомСтр = 0;
			Если ВремТаблица.НайтиЗначение(ВыбКод, НомСтр, "Код") > 0 Тогда 
				КолвоЭлемГруппы = КоличествоЭлементовГруппы(ВремТаблица, ВыбКод, НомСтр)-1;
				//ПослКод=ВремТаблица.ПолучитьЗначение(НомСтр+КолвоЭлемГруппы,"Код" );
				СпНом = СоздатьОбъект("СписокЗначений"); //составим список задействованным номеров по порядку
				Для й = НомСтр+1 по НомСтр+КолвоЭлемГруппы Цикл
					СпНом.ДобавитьЗначение(число(Сред(ВремТаблица.ПолучитьЗначение(й,"Код"),4,3)))
				КонецЦикла;
				ПослКод = 0;
				Для й = 1 по 999 Цикл
					Если СпНом.НайтиЗначение(й) = 0 Тогда
						ПослКод = й;
						Прервать
					КонецЕсли
				КонецЦикла;
				Если ПослКод = 0 Тогда
					сообщить("Нет возможности добавить строку!");
					Возврат
				КонецЕсли;
				//НовКод = лев(ВыбКод,3)+Формат(КолвоЭлемГруппы+1,"Ч(0)3")+"000";
				НовКод = лев(ВыбКод,3)+Формат(ПослКод,"Ч(0)3")+"000";
				ВремТаблица.НоваяСтрока(НомСтр+КолвоЭлемГруппы+1);
				ВремТаблица.Код = НовКод;
				ВремТаблица.Уровень = 2;
				ВремТаблица.ЭтоГруппа = 0;
				ВремТаблица.Статус = 3;
				ВремТаблица.Название = Вид+"."+Ид;
				ВремТаблица.Параметры = ""; 
				ДобавитьСтрокуВТаблицу(НомСтр+КолвоЭлемГруппы+1); 
				НаборПрав.ТекущаяСтрока(НаборПрав.КоличествоСтрок());
				ДоступностьЭлементов();                              
				
				ТекИзм = 1;
				
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры // ДобавитьПозицию()
Показать
Оставьте свое сообщение