Использование подсистемы "Управление доступом" из состава БСП версии 2.2+

Публикация № 313468

Разработка - Практика программирования

RLS права доступ ограничения доступа

В статье описана последовательность манипуляций с подсистемой "Управление доступом" из библиотеки стандартных подсистем "1С" (БСП), результатом которых является реализация возможности настройки ограничения доступа к данным на уровне записей таблиц базы данных (RLS), применяя в качестве разграничителя доступа (критерия ограничения) любой из справочников конфигурации. Данная статья полезна для разработчиков, которые имеют дело либо с одной из типовых конфигураций "1С" (таких как "Бухгалтерия предприятие 3.0" или "Управление торговлей 11"), либо собираются внедрять (или дорабатывать) указанную выше подсистему в какую-либо другую конфигурацию.

Теоретическая часть

В подсистеме "Управление доступом", входящую в состав БСП, настройка доступа к данным на уровне записей таблиц базы данных (RLS) осуществляется с использованием двух справочников - "Профили групп доступа" и "Группы доступа". Настройка ролей пользователей производится через первый справочник, в то время как настройка RLS может осуществляться через оба упомянутых выше справочника - на выбор администратора БД.

Хочется отметить то, что в подсистеме имеется возможность разграничения доступа к данным как по элементно, так и по совокупности элементов, объединенных вместе по какому-либо признаку. В качестве примера возьмем справочник "Физические лица", возможность настройки RLS к которому имеется практически во всех типовых конфигурациях, и производится с использованием специального справочника "Группы доступа физических лиц". Для каждого элемента справочника "Физические лица" имеется возможность указать в его реквизите "Группа доступа" соответствующий ему элемент из справочника "Группы доступа физических лиц", после чего для каждого пользователя (или группы пользователей) указывается соответствующая ему (им) доступная для работы группа доступа физ. лиц. Т.о. справочник "Физические лица" выступает в качестве предмета ограничения доступа (в качестве такового может выступать практически любой объект системы), а справочник "Группы доступа физических лиц" в качестве средства (инструмента) разграничения доступа к предмету.

Теперь перейдем к тому, что допустим, нам потребовалось организовать разграничение доступа к какому-либо объекту конфигурации по определенному критерию, но возможность настройки такого разграничения в программе отсутствует. В качестве примера для рассмотрения возьмем типовую конфигурацию "Бухгалтерия предприятия 3.0" (БП), включающую в себя подсистему "Управление доступом", и в которой отсутствует возможность настройки RLS по справочнику "Контрагенты". Перед внесением изменений в конфигурацию хотелось бы также сделать оговорку - вносимые изменения зависят от версии БСП, используемой в конфигурации, но принцип остается тем же самым. В рассматриваемой статье используется версия БСП 2.2.2.44.

Практическая часть

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

  1. Отфильтровать дерево метаданных конфигурации по подсистеме "Стандартные подсистемы" - "Управление доступом"
  2. Через настройку поддержки конфигурации (в случае использования механизма поддержки) включить возможность изменения следующих объектов конфигурации:
    • Корень конфигурации.
    • Справочник "Контрагенты".
    • Определяемый тип "ЗначениеДоступа".
    • Подписка на событие "ОбновитьГруппыЗначенийДоступа".
    • Общий модуль "УправлениеДоступомПереопределяемый". 
  3. Добавить в конфигурацию новый справочник "Группы доступа контрагентов".
  4. Добавить в справочник "Конрагенты" новый реквизит "ГруппаДоступа" ссылочного типа на наш новый справочник.
  5. Для определяемого типа "ЗначениеДоступа" в составной тип включить ссылки на справочники "Контрагенты" и "Группы доступа контрагентов".
  6. Для подписки на событие "ОбновитьГруппыЗначенийДоступа" в качестве источника также указать справочник "Контрагенты".
  7. Открыть общий модуль "УправлениеДоступомПереопределяемый" и вставить в три его процедуры фрагменты кода, приведенные ниже.
  8. Из роли "ИзменениеУчастниковГруппДоступа" скопировать в необходимую вам роль (или роли, определяющие доступ к справочнику) шаблоны RLS с именами "ПоЗначениям" и "ПоЗначениямРасширенный". Установить в своих ролях использование одного из шаблонов по требуемому праву (например, "Чтение"), как показано на скрине ниже.  
  9. Запустить конфигурацию в режиме "Предприятия" с параметром запуска "ЗапуститьОбновлениеИнформационнойБазы" (или же вызвать экспортную процедуру "ОбновитьПараметрыОграниченияДоступа" общего модуля подсистемы "УправлениеДоступомСлужебный"). 

Обратим внимание на довольно важный момент: в последнюю процедуру возможно потребуется добавить большее количество строк кода, если вы планируете ограничение доступа не только к справочнику "Контрагенты", но также и к каким-либо другим объектам конфигурации, связанных с этим справочником, например, разграничить доступ к документам "Реализация товаров и услуг" по реквизиту "Контрагент" - в этом случае предметов ограничения доступа выступает документ, а справочник "Контрагенты" является критерием ограничения доступа к предмету при помощи инструмента-разграничителя справочника "Группы доступа контрагентов". 

Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт
	
	ЗарплатаКадры.УправлениеДоступомЗаполнитьСвойстваВидаДоступа(ВидыДоступа);
	
	// +Наша вставка
	ВидДоступа = ВидыДоступа.Добавить();
	ВидДоступа.Имя = "ГруппыКонтрагентов"; // имя вида доступа (используется в ролях для RLS)
	ВидДоступа.Представление    = НСтр("ru = 'Группы контрагентов'");
	ВидДоступа.ТипЗначений      = Тип("СправочникСсылка.Контрагенты"); // критерий ограничения доступа
	ВидДоступа.ТипГруппЗначений = Тип("СправочникСсылка.ГруппыДоступаКонтрагентов"); // средство ограничения доступа
	// -Наша вставка
	
КонецПроцедуры

Процедура ПриЗаполненииИспользованияВидаДоступа(ИмяВидаДоступа, Использование) Экспорт
	
	ЗарплатаКадры.УправлениеДоступомЗаполнитьИспользованиеВидаДоступа(ИмяВидаДоступа, Использование);
	
	// +Наша вставка	
	Если ИмяВидаДоступа = "ГруппыКонтрагентов" Тогда
	    Использование = Истина;
	КонецЕсли;
	// -Наша вставка
	
КонецПроцедуры
Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт
    
    // +Наша вставка
    // указание прав объектов метаданных, на которые распространяется RLS 
    Описание = Описание + "
    |Справочник.Контрагенты.Чтение.ГруппыКонтрагентов
    |Справочник.Контрагенты.Изменение.ГруппыКонтрагентов
    |";
    // -Наша вставка
    
КонецПроцедуры

Шаблон RLS по контрагентам в роли

После завершения обновления ИБ в программе необходимо проделать следующие действия:

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

Настройка RLS по контрагентам

Резюме

Использование подсистемы "Управление доступом" из состава БСП дает возможность управлять RLS по любым объектам конфигурации, оперируя при этом минимум двумя стандартными справочниками "Профили групп доступа" и "Группы доступа". Расширение возможностей настройки RLS дается с минимальным внесением изменений в подсистему. В случае, если критерий (или предмет) ограничения прав доступа имеет большой объем и постоянно расширяется (например, справочник "Контрагенты"), то имеется возможность через свой дополнительный справочник (средство разграничения) разделить критерий (или предмет) доступа на определенные области (в нашем случае через "Группы доступа контрагентов"), в противном случае в качестве разграничителя доступа можно использовать (и имеет смысл) сами элементы справочника (например, в справочнике "Организации"). Неоспоримым плюсом использования подсистемы также является унификация администрирования прав доступа в информационной базе.

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. AlX0id 18.11.14 10:52 Сейчас в теме
Спасибо за труд - будет очень кстати :)
2. Yashazz 3199 18.11.14 13:04 Сейчас в теме
Знаю, как тяжело раскопать это всё в БСП, поэтому очень плюсую и респектую!
Fator26; user705522_constantin_h; user603532_fan_club_chelsea; RSConsulting; Stim213; +5 Ответить
3. vandalsvq 1147 18.11.14 14:56 Сейчас в теме
Помню как в свое время копал БСП-шную систему RLS, внимательно читал их шаблоны. Понравилось, хороший труд у них получился. Единственное что не нравится, что управление в основном через администратора, хотя можно и допилить (впрочем ты об этом написал).

(0) можно еще описать параметры RLS. В шаблонах конечно описание норм, но блин, пока до конца поймешь :))))

Однозначный плюс.
4. AlX0id 18.11.14 15:28 Сейчас в теме
ЗЫ. Очень надеюсь, что в очередной версии БСП все не перевернут с ног на голову..
5. Поручик 4397 18.11.14 16:18 Сейчас в теме
(0) Очень хорошо. В начале осени занимался доводкой нашей конфигурации в части прав доступа. До всего дощупывался сам.
6. Поручик 4397 18.11.14 16:34 Сейчас в теме
(0) Забыли про процедуру ПриЗаполненииВидовОграниченийПравОбъектовМетаданных в модуле УправлениеДоступомПереопределяемый

Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт
	
	// +Наша вставка
	//
	Описание = Описание + "
	|Справочник.ФизическиеЛица.Чтение.ГруппыФизическихЛиц
	|Справочник.ФизическиеЛица.Изменение.ГруппыФизическихЛиц
	|";
	// +Наша вставка
	
КонецПроцедуры
Показать

Bassgood; +1 Ответить
7. Bassgood 1009 18.11.14 22:23 Сейчас в теме
(6) Поручик, спасибо за подсказку, внес в публикацию необходимые исправления.
8. Поручик 4397 19.11.14 08:01 Сейчас в теме
(7) Строка

     |Справочник.Контрагенты.Добавление.ГруппыКонтрагентов


лишняя. Смотрите типовые конфигурации и описание к процедуре.
10. Bassgood 1009 19.11.14 11:25 Сейчас в теме
(8) Поручик, Исправил, еще раз спасибо за внимательность! =)
79. KAV2 97 05.11.18 11:25 Сейчас в теме
(6) А как бы понять на что влияет эта процедура? Чего мы лишимся если здесь ничего не указать? Ведь шаблоны RLS все равно сработают если они заданы в роли?
9. Stim213 385 19.11.14 10:34 Сейчас в теме
я бы не трогал типовой модуль. Отдельная подписка, отдельный модуль - и меньше проблем при последующих обновлениях
RodinMax; Bassgood; +2 Ответить
11. Bassgood 1009 19.11.14 11:37 Сейчас в теме
(9) Stim213, модуль "УправлениеДоступомПереопределяемый" все равно придется трогать, а вот подписку, да, вместо типовой можно создать свою, она обращается к модулю "УправлениеДоступомСлужебный" (в этот модуль мы и не вносили изменений). Учел ваше замечание.
RodinMax; +1 Ответить
20. Поручик 4397 27.11.14 13:36 Сейчас в теме
(11)
>>> г. Подписка на событие "ОбновитьГруппыЗначенийДоступа" (вместо этого можно также создать свою собственную подписку).

Создать свою подписку можно, но при обновлении конфигурации программа завершится с ошибкой. Вчера обжёгся сам, поэтому пришлось удалить свою подписку и назначить обработку своих объектов на штатную.
Skimen; Bassgood; +2 Ответить
22. Bassgood 1009 27.11.14 14:46 Сейчас в теме
(20) Поручик, а как такое может быть, если штатная и наша собственная подписки вызывают одну и ту же процедуру по одному и тому же событию "Перед записью" элемента справочника (конечно, как вариант, в какой-нибудь процедуре штатной подписки идет обращение к ее метаданным и уже на основании состава ее источников выполняется обновление)? Причину ошибки обновления получилось выяснить? Если ошибка точно из-за собственной подписки - то уберу из статьи касающейся этой проблемы текст.
p.s. Я сам не пробовал делать это с собственной подпиской, я изначально правил штатную подписку.
23. Поручик 4397 28.11.14 10:16 Сейчас в теме
(22) Ошибка из-за того, что в программе при обновлении используется именно штатная ОбновитьГруппыЗначенийДоступа. Свою подписку использовать можно, но до первого обновления.
24. Поручик 4397 28.11.14 10:27 Сейчас в теме
(22) Вот именно так - в модуле менеджера какой-то константы идет обращение к метаданным "ОбновитьГруппыЗначенийДоступа" и уже на основании состава ее источников выполняется обновление.

Ну воссоздавать вчерашнюю ситуации лениво.
25. Bassgood 1009 28.11.14 11:21 Сейчас в теме
(24) Поручик, убрал из статьи касающийся этой проблемы текст, еще раз спасибо за корректировку публикации! =)
21. Поручик 4397 27.11.14 13:38 Сейчас в теме
(11)
>>> г. Подписка на событие "ОбновитьГруппыЗначенийДоступа" (вместо этого можно также создать свою собственную подписку).

Создать свою подписку можно, но при обновлении конфигурации программа завершится с ошибкой. Вчера обжёгся сам, поэтому пришлось удалить свою подписку и назначить обработку своих объектов на штатную.
12. Поручик 4397 19.11.14 13:23 Сейчас в теме
(9) Модули с суффиксом Переопределяемый предусмотрены для того, чтобы их трогали в определённых местах. Этакая пародия на абстрактные методы эмуляция абстрактных методов классов в 1С Предприятии.
13. plus1s_a 19.11.14 15:05 Сейчас в теме
14. glassman 142 19.11.14 16:16 Сейчас в теме
Не так давно все это раскапывать пришлось самому. Была мысль подобный пост написать :) Вы меня опередили и описали все очень даже сжато и хорошо!
15. Поручик 4397 19.11.14 16:28 Сейчас в теме
(14) У меня тоже было намерение, но не хватало времени и писательских способностей, поэтому забил.
16. aleksey.kubovtsov 85 20.11.14 19:47 Сейчас в теме
спасибо за статью. будет полезна
17. V_V_V 22.11.14 23:54 Сейчас в теме
А сколько еще всего осталось за кадром... Но спасибо за проделанную работу.
18. alina0587 26.11.14 17:06 Сейчас в теме
Было бы здорово, если бы расписали, как пользоваться другими БСП-шными шаблонами, не только #ПоЗначениям))
19. Bassgood 1009 26.11.14 17:34 Сейчас в теме
(18) alina0587, это уже совсем другая история =) В этой статье в общем то не описываются возможности использования БСП-шных шаблонов, в ней описано использование БСП-шной подсистемы, в которой применяются эти шаблоны (сами шаблоны независимо от подсистемы применять не получится), использование части возможностей одного из шаблонов, я думаю, из статьи понятно, но описание всех возможностей этих шаблонов - это уже отдельная статья.
26. ASZub 04.03.15 12:48 Сейчас в теме
Подскажите, сделал все как указанно, но в виды доступа не добавляется "группы номенклатуры". При этом у пользователя, которому назначена указанная роль, ограничен доступ ко всем контрагентам
buy_sale; kasper076; +2 Ответить
27. Bassgood 1009 04.03.15 15:54 Сейчас в теме
(26) ASZub, честно говоря, не видя картины в живую, сложно что-то сказать что сделано не так, могу лишь посоветовать попробовать еще раз пройтись внимательно по всем пунктам публикации и проверить у себя в конфигурации все ли эти пункты были выполнены.
Как вариант - проверьте правильно ли заполнена процедура "ПриЗаполненииВидовДоступа".
28. necropunk 7 16.04.15 15:17 Сейчас в теме
Да, статья помогла, спасибо. По документации БСП не очень просто разобраться, плюс в ней есть ошибки, что затрудняет разработку...
29. kasper076 59 17.04.15 09:31 Сейчас в теме
На БСП 2.2.5.30 не получилось добиться результата..
30. necropunk 7 17.04.15 09:34 Сейчас в теме
(29) kasper076, А что именно не получилось? Делал все по статье, со своими нюансами, изредка подглядывая в шаблоны ERP - все заработало.
32. kasper076 59 17.04.15 10:31 Сейчас в теме
(30) necropunk, Создал новую конфу со справочником "Контрагенты", далее все делал по статье. Справочник "Профили пользователей" имеет несколько другой вид. В итоге пользователь вообще не видит справочник "Контрагенты".
(31) Поручик, на счет рук спорить не буду. Возможно, что именно в них причина.

Какой источник указать для Подписки "ЗаписатьНаборыЗначенийДоступа"?

В демо-базе БСП 2.2.5.30 новые "ВидыДоступа" являются предопределенными элементами ПВХ ВидыДоступа.
31. Поручик 4397 17.04.15 10:04 Сейчас в теме
(29) Или руки не там вставлены, или в БСП 2.2.5 есть различия от предыдущей 2.2.4. Не думаю, чтобы отличия были большими.
47. buy_sale 220 21.07.15 17:54 Сейчас в теме
(29) kasper076, +1
Не работает на 3.0.40.38 БСП 2.2.5.35
Не выводит список контрагентов вообще, все сделано по инструкции. Проверено,что все сделано по инструкции еще 5 раз.
48. Bassgood 1009 21.07.15 18:59 Сейчас в теме
(47) buy_sale, возможно, что в БСП 2.2.5 присутствуют какие-нибудь не глобальные изменения по отношению к предыдущим версиям библиотеки, значит нужно копать глубже.
33. МимохожийОднако 130 24.04.15 07:27 Сейчас в теме
Есть какая-нибудь таблица соответствия версии БСП с последним релизом типовой конфигурации?
34. Поручик 4397 24.04.15 12:26 Сейчас в теме
(33) Какой именно типовой? Их целая куча типовых, открою тебе секрет. Только никому не говори.
35. МимохожийОднако 130 25.04.15 07:10 Сейчас в теме
(34) Поручик, спасибо за секрет )) Например, УТ11, БП3, Розница, ЗУП3. В этих конфигурациях разные или одинаковые БСП?
36. user_2010 473 12.05.15 12:30 Сейчас в теме
Разбираюсь с БСП. Вижу, что в моей конфигурации есть СтандартныеПодсистемы, нужная мне подсистема ПрисоединенныеФайлы - тоже есть.
Как узнать - какая версия этих подсистем?
Ведь для каждой версии по-своему настраивается работа...
37. Поручик 4397 12.05.15 12:50 Сейчас в теме
(36) СтандартныеПодсистемыСервер

// Возвращает номер версии Библиотеки стандартных подсистем.
//
Функция ВерсияБиблиотеки() Экспорт

Возврат "1.2.1.15";

КонецФункции
38. Bassgood 1009 12.05.15 17:09 Сейчас в теме
(36) user_2010, Версию БСП можно просмотреть в регистре сведений "Версии подсистем".
39. user_2010 473 13.05.15 10:42 Сейчас в теме
40. user_2010 473 13.05.15 11:30 Сейчас в теме
Еще вопрос: имеем нетиповую конфигурацию на 8.2. В ней есть некоторые подсистемы из БСП. Версия Стандартных подсистем 2.1.3.50.
Подсистема "Присоединенные файлы" есть. Начинаю настраивать и вижу, что недостает РегистраСведений.ПрисоединенныеФайлы...? Т.е. внедрили подсистему "Присоединенные файлы" не полностью?
На сайте обновлений такой версии БСП 2.1.3.50 нет (хотела посмотреть - может в этой версии еще не было РегистраСведений.ПрисоединенныеФайлы). На сайте обновлений есть 2.1.3.51, в ней этот регистр сведений есть.
Значит мне нужно обновить нужные мне подсистемы БСП?
Или просто добавить недостающие объекты?
Можно ли обновлять сразу на самую последнюю версию? Или нужно последовательно ставить все обновления?
41. Bassgood 1009 13.05.15 12:09 Сейчас в теме
(40) user_2010, честно говоря от себя не могу что-то посоветовать, боюсь ошибиться, но я бы просто обновил БСП через сравнение/объединение с 2.1.3.51, т.к. она ближе всего к версии текущей вашей БСП, с последующей проверкой основных функций подсистемы "Присоединенные файлы".
42. user_2010 473 13.05.15 12:18 Сейчас в теме
Понятно! Спасибо!
Кажется поняла почему подсистема "Присоединенные файлы" загружена не полностью.
В Регистре сведений "Версии подсистем" указаны:
БиблиотекаЭлектронныхДокументов 1.1.17.6
СтандартныеПодсистемы 2.1.3.50

Почитала про БиблиотекаЭлектронныхДокументов - она содержит в себе функциональность "Присоединенные файлы"... может быть грузили именно ее, а присоединенные файлы попали прицепом... и болтаются там необновленные...
43. user_2010 473 14.05.15 12:08 Сейчас в теме
Выяснилось, что это в типовой 1С.БухгалтерияПредприятия.2.0 - так странно загружены подсистемы БСП...
Никто не пытался использовать БСП в 1С.Бухгалтерии.2.0?
44. chirinna 18.05.15 16:58 Сейчас в теме
Отличная статья - сильно помогла! Может посоветует кто - у меня ограничение "все разрешены, кроме ..." замечательно работают. А вот "все разрешены, кроме ..." не отрабатывает - пустой справочник показывает. Причем можно создать элемент с разрешенной группой, и этот элемент виден в справочнике. Пока не понял, в чем дело...
buy_sale; +1 Ответить
45. Jimkaaa 31.05.15 19:36 Сейчас в теме
Добрый день. БСП 2.2.5.33
Пытаюсь реализовать доступ к документу _ДемоПоступлениеТоваров с ограничением по статусам.
Создал Справочник ДоступПоСтатусам
Добавил реквизит "СтатусДоступа" в документ _ДемоПоступлениеТоваров
Дальше добавил в УправлениеДоступомПереопределяемый строки кода

Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт
	
	// _Демо начало примера
	_ДемоСтандартныеПодсистемы.ПриЗаполненииВидовДоступа(ВидыДоступа);
	// _Демо конец примера
	

	ВидДоступа = ВидыДоступа.Добавить();
	ВидДоступа.Имя = "ДоступПоСтатусам";
	ВидДоступа.Представление    = НСтр("ru = 'Доступ по статусам'"); 
	ВидДоступа.ТипЗначений = Тип("СправочникСсылка.ДоступПоСтатусам"); 
	
КонецПроцедуры


Процедура ПриЗаполненииИспользованияВидаДоступа(ИмяВидаДоступа, Использование) Экспорт
	
	// _Демо начало примера
	_ДемоСтандартныеПодсистемы.ПриЗаполненииИспользованияВидаДоступа(ИмяВидаДоступа, Использование);
	// _Демо конец примера

	Если ИмяВидаДоступа = "ДоступПоСтатусам" Тогда
	Использование = Истина;
	КонецЕсли;
	
КонецПроцедуры

Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт
	
	// _Демо начало примера
	_ДемоСтандартныеПодсистемы.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание);
	// _Демо конец примера
	
	Описание = Описание + "
	|Документ._ДемоПоступлениеТоваров.Чтение.СтатусДоступа
	|Документ._ДемоПоступлениеТоваров.Изменение.СтатусДоступа
	|";
	
КонецПроцедуры
Показать


При запуске обработки ИнструментыРазработчикаОбновлениеВспомогательныхДанных выдаёт ошибку:

{Константа.ПараметрыОграниченияДоступа.МодульМенеджераЗначения(461)}: Ошибка в процедуре ЗаполнитьСвойстваВидаДоступа
общего модуля УправлениеДоступомПереопределяемый.

Тип значений доступа "Доступ по статусам" вида доступа "ДоступПоСтатусам"
не указан в определяемом типе "Значение доступа".
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(


Подскажите пожалуйста, что не так делаю?
46. Jimkaaa 31.05.15 22:38 Сейчас в теме
Всё разобрался. Забыл добавить в Определяемые типы - ЗначенияДоступа справочник СтатусыДоступа.
49. утюгчеловек 9 27.09.15 15:12 Сейчас в теме
БСП 2.3.1.79

Инфа из статьи (из ИТС, кстати, тоже) не помогла. Мой справочник для целевого пользователя оказался пуст. Одолжите выпрямитель рук:

1. Включил подсистему в конфу сравнением/объединением
2. Планируется использовать шаблон "ПоЗначениям". Добавил вид доступа, писал необходимые процедуры:
Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт
	
	// +
    ВидДоступа = ВидыДоступа.Добавить();
    ВидДоступа.Имя = "ГруппыДоступаПодразделений"; // имя вида доступа (используется в ролях для RLS)
    ВидДоступа.Представление    = НСтр("ru = 'Группы доступа подразделений'");
    ВидДоступа.ТипЗначений      = Тип("СправочникСсылка.Подразделения"); // критерий ограничения доступа
    ВидДоступа.ТипГруппЗначений = Тип("СправочникСсылка.ГруппыДоступаПодразделений"); // средство ограничения доступа
    // -
	
КонецПроцедуры

Процедура ПриЗаполненииИспользованияВидаДоступа(ВидДоступа, Использование) Экспорт
	
	// +    
    Если ВидДоступа = "ГруппыДоступаПодразделений" Тогда
        Использование = Истина;
    КонецЕсли;
    // -
	
КонецПроцедуры

Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт
	
	// + 
    // указание прав объектов метаданных, на которые распространяется RLS 
    Описание = Описание + "
    |Справочник.Подразделения.Чтение.ГруппыДоступаПодразделений
    |Справочник.Подразделения.Изменение.ГруппыДоступаПодразделений
    |";
    // -
	
КонецПроцедуры
Показать


3. Включил шаблон для Роли ЧтениеПодразделений на право Чтение: #ПоЗначениям("Справочник.Подразделения", "", "", "ГруппыДоступаПодразделений", "ГруппаДоступа", "", "", "","","","","","","","","","","","","","","","","","","","","","","","","","","","").
Реквизит справочника Подразделения типа СправочникСсылка.ГруппыДоступаПодразделений называется "ГруппаДоступа"

4. Запустил базу с параметром /C ЗапуститьОбновлениеИнформационнойБазы

5. Добавил пользователя в группу ОбычныйПользователь. Группа связана с профилем ОсновнойПрофильПользователя, для которого установлен вид доступа. В группе ОбычныйПользователь назначил резрешенные подразделения.

Админ всё видит. Пользователь не видит. ЧЯНТД?

Вчитываюсь в текст шаблона. Сравниваю с текстом запроса, полученным из ТЖ... Пока не разобрался.
50. утюгчеловек 9 27.09.15 22:25 Сейчас в теме
(49) Покурил демобазу БСП. Обнаружил нюансы, о которых не прочитал в статье:

1. Проблема вылечилась изменением параметров в шаблоне доступа:
БЫЛО: #ПоЗначениям("Справочник.Подразделения", "", "", "ГруппыДоступаПодразделений", "ГруппаДоступа"...
СТАЛО: #ПоЗначениям("Справочник.Подразделения", "", "", "ГруппыДоступаПодразделений", "Ссылка"...

2. В демобазе в модуле объекта справочника, группирующего ограничения, тоже установлен реквизит. В моем случае для справочника ГруппыДоступаПодразделений я добавил реквизит ГруппаДоступа типа СправочникСсылка.ГруппыДоступаПодразделений. И поставил RLS с шаблоном:
#ПоЗначениям("Справочник.ГруппыДоступаПодразделений", "", "", "ГруппыДоступаПодразделений", "Ссылка"..

3. В демобазе на справочник групп доступа навешивается обработчик ПередЗаписью. Где автоматически заполняется реквизит ГруппаДоступа.

Возможно я не докурил подсистему, и ляпнул что-то лишнего. Но с учетом всего вышесказанного у меня справочник заработал.

Буду разбираться с другими шаблонами.
denmon88; SirYozha; UPSoft; Bassgood; +4 Ответить
51. dkxtitan 04.05.16 11:36 Сейчас в теме
Очень полезная статья, спасибо!
От себя хочу добавить, что в инструкцию можно добавить ещё один пункт:
В константу "ПараметрыОграниченияДоступа" в процедуру "ЗаполнитьЗначенияДоступаСГруппами" нужно добавить:

Если Свойства.Имя = "ГруппыКонтрагентов" Тогда
		ДобавитьВМассив(Свойства.ТипыВыбираемыхЗначений, Тип("СправочникСсылка.Контрагенты"));
		ДобавитьВМассив(Свойства.ТипыВыбираемыхЗначений, Тип("СправочникСсылка.ГруппыДоступаКонтрагентов"));
		Возврат;
	КонецЕсли;


Если что - я не программист и даже не знаю что этот код означает, но без него не проходило обновление базы.
Skimen; Bassgood; +2 Ответить
52. portfleet 31.05.16 17:50 Сейчас в теме
51. dkxtitan
Спасибо! После этой врезки обновление прошло
53. vlan76 13 17.08.16 14:30 Сейчас в теме
Люди Добрые помогите
Пытаюсь по тексту статьи сделать ограничение доступа по складам.
1.Создал справочник ГруппыДоступаСклады
2. В справочнике Склады добавил реквизит ГруппаДоступаПоСкладу
3. Для подписки на событие "ОбновитьГруппыЗначенийДоступа" в качестве источника также указал справочник "Склады".
4. В общий модуль "УправлениеДоступомПереопределяемый" и вставил в три его процедуры фрагменты кода, приведенные ниже.

ВидДоступа = ВидыДоступа.Добавить();
    ВидДоступа.Имя = "ГруппыДоступаСклады"; // имя вида доступа (используется в ролях для RLS)
    ВидДоступа.Представление    = НСтр("ru = 'Группы Доступа Склады'");
    ВидДоступа.ТипЗначений      = Тип("СправочникСсылка.Склады"); // критерий ограничения доступа
    ВидДоступа.ТипГруппЗначений = Тип("СправочникСсылка.ГруппыДоступаСклады"); // средство ограничения доступа
	//Константы.ИспользоватьГруппыДоступаСклады="Истина";
	//Сообщить("33333",СтатусСообщения.БезСтатуса);
	// -Наша вставка
	Для каждого ВидДоступа Из ВидыДоступа Цикл
	Сообщить(ВидДоступа,СтатусСообщения.БезСтатуса);

ИначеЕсли ВидДоступа="ГруппыДоступаСклады" Тогда
		Сообщить(видДоступа,СтатусСообщения.БезСтатуса);
		Использование = Истина;
	иначе
		Сообщить("цццц",СтатусСообщения.БезСтатуса);
	КонецЕсли;


Описание = Описание + "
    |Справочник.Склады.Чтение.ГруппыДоступаПоСкладу
    |Справочник.Склады.Изменение.ГруппыДоступаПоСкладу
    |";
Показать

После всего этого захожу в 1с УТ11.1 В настройки пользователей и ролей в ограничения данные о Группе доступа склады не добавляются
Подскажите где ошибаюсь
54. UsachevDima 31.10.16 02:38 Сейчас в теме
Протестил этот метод в конф. БГУ2 - все норм, все работает. Спасибо!

Подскажите плиз кто знает как сделать ограничение к справочнику, к примеру по значениям самого справочника?
Т.е. не привязывать элементы справочника к группам доступа а в настройках групп сразу указывать в качестве значения ограничения - элементы справочника (указать в настройках доступа конкретных контрагентов).
55. ostapchenko.alexandr 19 31.03.17 10:25 Сейчас в теме
Подскажите, пожалуйста, зачем нужна фунция
ПриЗаполненииВидовОграниченийПравОбъектовМетаданных
?

Я вроде пустой её оставил, и ограничение прав работает как надо.
56. Vass429 02.06.17 12:35 Сейчас в теме
Здравствуйте, есть вопросик. Все сделал, как у Вас. Все заработало. Делал для справочника "Номенклатура", в нем реквизит "ГруппаДоступа", а вид доступа называется "ГруппыНоменклатуры". В справочнике номенклатура все верно ограничивается. Хотел бы ещё это применить для связанного справочника "ХарактеристикиНоменклатуры". У характеристики, соответственно, номенклатура в поле владелец. У Вас написано,что необходимо в процедуре добавить:

// +Наша вставка
	// указание прав объектов метаданных, на которые распространяется RLS 
	Описание = Описание + "
	|Справочник.Номенклатура.Чтение.ГруппыНоменклатуры
	|Справочник.Номенклатура.Добавление.ГруппыНоменклатуры
	|Справочник.Номенклатура.Изменение.ГруппыНоменклатуры
	|Справочник.ХарактеристикиНоменклатуры.Владелец.Чтение.ГруппыНоменклатуры            - это добавил
	|Справочник.ХарактеристикиНоменклатуры.Владелец.Добавление.ГруппыНоменклатуры   - это добавил 
	|Справочник.ХарактеристикиНоменклатуры.Владелец.Изменение.ГруппыНоменклатуры     - это добавил
	|";
	// -Наша вставка
Показать

Но в списке справочника "ХарактеристикиНоменклатуры" остались записи с владельцем "Объект не найден". Ограничение не сработало, что ещё необходимо добавить?
57. Bassgood 1009 02.06.17 13:18 Сейчас в теме
(56) Скорее всего у пользователя есть роли, которые предоставляют ему право на чтение данных из справочника характеристик без использования ваших RLS, поэтому он видит все характеристики, но вот прочитать их владельцев он не может, т.к. на справочник номенклатуры успешно отрабатывает RLS.
Возможно Вы забыли добавить в имеющиеся роли, которые предоставляют право на чтение справочника характеристик, ваш шаблон RLS вида: #ПоЗначениям("Справочник.ХарактеристикиНоменклатуры", "Чтение", "ГруппыНоменклатуры", "Владелец")
58. Vass429 02.06.17 15:41 Сейчас в теме
(57) Добавил, у меня получился пустой список "Характеристик". А тут я правильно добавил:

// +Наша вставка
	// указание прав объектов метаданных, на которые распространяется RLS 
	Описание = Описание + "
	|Справочник.Номенклатура.Чтение.ГруппыНоменклатуры
	|Справочник.Номенклатура.Добавление.ГруппыНоменклатуры
	|Справочник.Номенклатура.Изменение.ГруппыНоменклатуры
	|Справочник.ХарактеристикиНоменклатуры.Владелец.Чтение.ГруппыНоменклатуры
	|Справочник.ХарактеристикиНоменклатуры.Владелец.Добавление.ГруппыНоменклатуры
	|Справочник.ХарактеристикиНоменклатуры.Владелец.Изменение.ГруппыНоменклатуры
	|";
	// -Наша вставка
Показать
59. Bassgood 1009 02.06.17 15:58 Сейчас в теме
(58) Что-то мне подсказывает, что вместо
Справочник.ХарактеристикиНоменклатуры.Владелец.Чтение.ГруппыНоменклатуры

следует указать
Справочник.ХарактеристикиНоменклатуры.Чтение.ГруппыНоменклатуры

т.е. данный запрос указывает подсистеме, что:
1. "Справочник.ХарактеристикиНоменклатуры" - в этом справочнике
2. "Чтение" - следует ограничить доступ на чтение
3. "ГруппыНоменклатуры" - при помощи этого вида доступа
Реквизит же (в данном случае "Владелец"), по которому уже следует ограничить доступ к объекту, указывается в шаблоне RLS - #ПоЗначениям("Справочник.ХарактеристикиНоменклатуры", "Чтение", "ГруппыНоменклатуры", "Владелец"), т.е. в шаблоне фактически указана та же самая информация, что и в запросе, за исключением уточнения реквизита, по которому следует ограничить доступ к объекту.
Попробуйте, уверен, все должно получиться!
60. Vass429 02.06.17 16:37 Сейчас в теме
Попробовал, все равно пустой список, к сожалению. Для наглядности - это в процедуре:

 // +Наша вставка
	// указание прав объектов метаданных, на которые распространяется RLS 
	Описание = Описание + "
	|Справочник.Номенклатура.Чтение.ГруппыНоменклатуры
	|Справочник.Номенклатура.Добавление.ГруппыНоменклатуры
	|Справочник.Номенклатура.Изменение.ГруппыНоменклатуры
	|Справочник.ХарактеристикиНоменклатуры.Чтение.ГруппыНоменклатуры
	|Справочник.ХарактеристикиНоменклатуры.Добавление.ГруппыНоменклатуры
	|Справочник.ХарактеристикиНоменклатуры.Изменение.ГруппыНоменклатуры
	|";
	// -Наша вставка
Показать


Это в ограничениях доступа к данным в роли для справочника ХарактеристикиНоменклатуры:

#ПоЗначениям("Справочник.ХарактеристикиНоменклатуры", "Чтение", "",
"ГруппыНоменклатуры", "Владелец",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","")
61. Bassgood 1009 02.06.17 16:58 Сейчас в теме
(60) Обратите внимание еще на пункты 5 и 6, возможно справочник характеристик следует включить в состав определяемого типа и в подписку на событие, и запустить конфигурацию в режиме обновления ИБ (пункт 9), попробуйте, других вариантов мне пока в голову больше не приходит.
62. Vass429 02.06.17 17:16 Сейчас в теме
(61) Реализовал пункты 5 и 6, произвел обновление, но все равно список остался пустым. Возникла ещё мысль по этому поводу. А в процедуру "ПриЗаполненииВидовДоступа" не нужно добавлять характеристики?
63. Bassgood 1009 03.06.17 01:28 Сейчас в теме
(62) По идее нет, но чем черт не шутит, поэкспериментировать не навредит ;)
64. Vass429 05.06.17 10:01 Сейчас в теме
(63) Последнюю вещь даже не стал пробовать, которую сам предложил, какая то всё-таки она не логичная... Вернул всё как было, что отображались в итоге и элементы справочника характеристик с "объект не найден". Можно будет просто у пользователя отбор настроить... А в общем спасибо за статью, рабочая, можно пользоваться!!!
Bassgood; +1 Ответить
65. sergik_nsk 143 28.07.17 12:42 Сейчас в теме
Не очень понял зачем
Для подписки на событие "ОбновитьГруппыЗначенийДоступа" в качестве источника также указать справочник "Контрагенты".


источником для данной подписки является только ОпределяемыйТип.ЗначениеДоступаСГруппамиЗначенийДоступаОбъект

а для него соответствует только одно значение
СправочникОбъект.ИдентификаторыОбъектовМетаданных

у меня версия 2.4.3.61, нет 2.2 что бы сравнить, разбираюсь сам, еще в процессе, вот наткнулся на статью, теперь вопросы
66. Bassgood 1009 28.07.17 14:40 Сейчас в теме
(65) Возможно в БСП 2.4 принцип настройки механизма немного изменился (надеюсь, не кардинально) и включать интересующий справочник в определяемый тип требуется (хотя я сомневаюсь что это так), в версии 2.2, на сколько помню, такого определяемого типа не было. Я бы на вашем месте с этим вопросом просто поэкспериментировал - сначала как есть, если желаемого результата не будет, то включить справочник в определяемый тип.
67. Team leader 9 11.11.17 20:30 Сейчас в теме
Пункт 9. Запустить конфигурацию в режиме "Предприятия" с параметром запуска "ЗапуститьОбновлениеИнформационнойБазы":

- Если вам потребовалось обновить идентификаторы объектов метаданных в 1С, то сапое простое это запустить базу с ключом:

/c ЗапуститьОбновлениеИнформационнойБазы
68. Bassgood 1009 12.11.17 14:40 Сейчас в теме
(67) Это дополнение к п.9 или замечание к нему? :)
69. Team leader 9 12.11.17 15:26 Сейчас в теме
дополнение) потратил время на поиск данного нюанса, если включюте в публикацию будет замечательно
70. Bassgood 1009 12.11.17 16:16 Сейчас в теме
(69) Это уже относится к использованию БСП в целом, а не к конкретной подсистеме, данный параметр запуска системы не только обновляет данные в справочнике идентификаторов объектов, но также инициирует запуск ряда других обработчиков, необходимых для полноценного обновления ИБ, поэтому я не стал в данной статье расшифровывать назначение данного параметра, а просто прописал это как инструкцию к выполнению.
71. sergik_nsk 143 14.11.17 14:23 Сейчас в теме
Теперь вопрос на засыпку, что если необходимо ограничить доступ к справочнику не только по группам, но еще и по элементам, как реализовать такую возможность?

На данный момент получилось сделать либо по элементам, либо по группам

Приведу пример зачем это нужно, один пользователь входит в базу - внешний клиент - ему доступно видеть только свои контрагенты от 1 до 5 шт, другой пользователь - менеджер ему доступны контрагенты у которых установлена группа контрагентов - "регион север", причем внешник может попадать в группу "регион север".

Думаю единственный способ ставить группу доступа как табличную часть и в ней настраивать две группы контрагентов списком - "регион север" и "клиент№15". Или есть какой то более продвинутый способ.
72. wkr 06.12.17 10:43 Сейчас в теме
Спасибо, очень помогло для понимания :-)
73. pavel_pss 264 27.12.17 11:13 Сейчас в теме
Спасибо, за статью. Очень помогла.

Дополнение от меня.

Если вы назначаете пользователю несколько ролей, работающих с одним и тем же документом или справочником, то нужно прописать ограничение во всех ролях где используется документ или справочник.

У меня ограничение выглядит вот так:
#ПоЗначениям("Документ.уатСливГСМ", "чтение", "", "Организации", "Организация", "Подразделения", "Подразделение", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","")

Иначе, если укажите только в одной роли а в другой не укажите, то документ НЕ скроется, а скроются только подразделение - будет написано что объект не найден. см. картинку.
Прикрепленные файлы:
mi1man; Bassgood; +2 Ответить
74. Bassgood 1009 27.12.17 11:50 Сейчас в теме
(73) Да, верно, так и есть, именно так и работает платформенный механизм ограничения прав на уровне записей таблиц (RLS) и настройка доступа через роли - если право предоставлено одной из ролей, то запреты других ролей игнорируются.
75. pavel_pss 264 27.12.17 11:53 Сейчас в теме
(74) я думаю тебе стоит это указать в статье, т.к. я это не сразу сообразил, уже хотел здоровый комент писать.
82. Shecurok 20.11.19 17:29 Сейчас в теме
(74) Извиняюсь, что обращаюсь, но может подскажите.
Тут суть такая: делал всё строго по инструкции, вид доступа добавился.
Создал нового пользователя с минимальным кол-ом ролей.

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

Роли все проверял - везде всё ограничено, но вполне возможно, как то не верно настроил ограничения.

Какие варианты могут быть?
83. Shecurok 21.11.19 09:52 Сейчас в теме
(74)в частности меня интересует данный пункт:

После завершения обновления ИБ в программе необходимо проделать следующие действия:

Заполнить только что добавленный в систему справочник "Группы доступа контрагентов".
У элементов справочника "Контрагенты" заполнить необходимым образом реквизит "Группа доступа".


Как данный реквизит необходимо заполнить?
76. bsbbur 27.01.18 20:05 Сейчас в теме
Большое спасибо, очень полезная инфо!
Благодаря этой публикации, когда-то, легко применил новые требуемые виды доступа в УНФ 1.6.7.43. На днях апнул её до актуальной на сегодня 1.6.13.48, БСП в ней 2.4.4.124 - по прежнему всё прекрасно робит!
(шаблоны, правда, поменялись с тех пор - пришлось переписать свои ограничения)
Bassgood; +1 Ответить
77. feel063 13 11.04.18 08:57 Сейчас в теме
Скажите пожаааалуйста..а если задача состоит в том, чтобы привязать к одному партнеру НЕСКОЛЬКО групп доступа партнеров, а не одну. Как быть? Создаю табличную часть в справочнике Партнеры: ГруппыДоступа, в которой есть реквизит "ГруппаДоступа" с типом "СправочникСсылка.ГруппыДоступаПартнеров". Как в этом случае построить ограничение доступа?
78. karapuzzzz 63 07.08.18 16:52 Сейчас в теме
(77)Все так же. Только необходимо ещё добавить в определяемый тип ЗначениеДоступаСГруппамиЗначенийДоступаОбъект справочник Партнеры. А в процедуре "ПриЗаполненииВидовДоступа" модуля "УправлениеДоступомПереопределяемый" добавить строку ВидДоступа.НесколькоГруппЗначений = Истина;
Bassgood; +1 Ответить
80. FesenkoA 44 29.11.18 19:14 Сейчас в теме
Искал по РЛС что то так долго, в итоге сам разобрался и сделал статью, а тут вашу нашел, и тут именно то же самое))) от блин, аж стыдно теперь)))
81. Mx00 225 06.08.19 01:09 Сейчас в теме
А может кто пробовал без изменения конфигурации, а только используя Расширение?
84. BelikovSA 27 18.12.19 13:15 Сейчас в теме
(81)
Расширение не позволяет менять ОпределяемыеТипы, а здесь все крутиться вокруг них. Вот если бы они сделали это справочником...
Оставьте свое сообщение

См. также

3 онлайн-курса по 1С-программированию: обмен данными, расчетные задачи и бухгалтерские задачи с 12 мая по 8 июля 2020 г. Промо

Практика программирования v8 Бесплатно (free)

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

22.04.2020    3154    23    infostart    2    

Полезные функции БСП (Часть 2)

БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Бесплатно (free)

Список полезных функций из состава Библиотеки стандартных подсистем 3.1.

10.03.2020    8544    0    user5300    15    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    14879    0    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    15492    0    John_d    22    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    34135    0    unichkin    45    

Последовательности событий. Шпаргалка

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    10655    0    kuzyara    33    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    12709    0    YPermitin    72    

Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм

Печать БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

10.10.2019    13507    0    John_d    14    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    26118    0    tormozit    100    

Типичные ошибки при разработке прав доступа

Роли и права v8 v8::Права Бесплатно (free)

Рассмотрим самые распространенные ошибки в разработке прав доступа.

02.10.2019    16425    0    YPermitin    57    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    25264    0    Yashazz    44    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    34611    0    rpgshnik    59    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012    73630    0    tormozit    129    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    36766    0    ids79    52    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    21524    0    YPermitin    24    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    21789    0    YPermitin    80    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    44710    0    tormozit    38    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    25640    0    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    55631    0    ids79    37    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

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

02.08.2019    26326    0    avalakh    21    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    40471    0    tormozit    72    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    17086    0    json    12    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    42203    0    ids79    11    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    28431    0    ids79    27    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    14138    0    m-rv    2    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    21410    0    YPermitin    13    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    16448    0    SeiOkami    50    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    42150    0    ids79    17    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

... и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019    17731    0    m-rv    17    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    21365    0    dmurk    144    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    34210    0    YPermitin    52    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    35319    0    YPermitin    30    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    27392    0    m-rv    21    

Выполнение внешней обработки в фоновом задании

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    24167    0    Eret1k    23    

О расширениях замолвите слово...

Практика программирования Разработка v8 Бесплатно (free)

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    29205    0    ellavs    126    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования Разработка v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    23008    0    ellavs    86    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    25704    0    itriot11    34    

Трюки с внешними источниками данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    26366    0    YPermitin    53    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

Практика программирования Разработка v8 Россия Бесплатно (free)

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019    18295    0    Vladimir Litvinenko    27    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    31278    0    ids79    9    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    70973    0    Serginio    108    

EnterpriseData – часть 2. Процесс выгрузки данных

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    22778    0    ids79    31    

Новый подход к обмену данными EnterpriseData

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    35022    0    ids79    72    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    30533    0    ids79    40    

EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации

Практика программирования Обмен через XML v8 v8::УФ БП3.0 УТ11 Россия Бесплатно (free)

В статье подробно описан реальный пример доработки обмена данными через EnterpriseData (универсальный формат обмена) между конфигурациями УТ 11.4 и Бухгалтерия 3.0

16.11.2018    31642    0    ids79    32    

Программное заполнение пользовательских параметров и отборов СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.11.2018    37260    0    Unk92    20    

Произвольный код в фоновом режиме

Практика программирования v8 1cv8.cf Бесплатно (free)

Задача: реализовать выполнение произвольного кода в фоновом режиме без изменения конфигурации, т.е. во внешней обработке.

03.09.2018    23862    0    nikita0832    42    

Тестер: частые вопросы Промо

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    26216    0    grumagargler    26    

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C

Математика и алгоритмы Практика программирования v8 Россия Бесплатно (free)

У многих начинающих 1С программистов часто возникают вопросы про клиент-серверное взаимодействие в 1С и чтобы разобраться в непростых механизмах платформы, необходимо понять, что же такое контекст, для чего предназначены директивы компиляции, что представляют собой контекстные/внеконтекстные вызовы и как наиболее оптимально описывать прикладные задачи в модулях управляемых форм.

23.08.2018    34777    0    Rain88    46    

Работаем с дополнительными реквизитами на форме

Практика программирования v8 Бесплатно (free)

Пара полезных процедур для работы с дополнительными реквизитами на форме. Далее в статье: 1. Как называются дополнительные реквизиты на форме и в какой момент они появляются на форме? 2. Как проверить до записи корректность заполнения пользователем дополнительного реквизита? 3. Как заполнить значение дополнительного реквизита по другому событию и обновить данные на форме? 4. Как расположить дополнительный реквизит в указанном месте на форме?

15.07.2018    29263    0    papche    37    

Повышаем эффективность разработки правил обмена

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    26096    0    olegtymko    47    

Введение в механизм представлений в ЗУП ред. 3

Практика программирования v8 v8::СПР ЗУП3.x Бесплатно (free)

В нашей организации на первом же телефонном собеседовании на должность разработчика по ЗУП ред. 3 вас обязательно спросят о том, что такое "Представления".

04.06.2018    34046    0    xrrg    82