Имя: Пароль:
1C
1С v8
Реализация создания на основании в расширении
0 SORTULV_1C
 
16.03.26
00:09
Доброго времени суток, господа!
Подскажите, хочу в расширении взять типовой функционал создания на основании документа, сделать на его основании функционал.

Документ ОтчетКомитенту, нужно создать на основании расход из кассы/со счета 50% суммы, пните в направлении, куда смотреть.
Создание на основании не записывает документ, нужно сделать так же.
По идее же просто передать структуру с параметрами, а на стороне документа при открытии использовать параметры уже, разве нет?
1 2S
 
16.03.26
06:04
2 DrZombi
 
гуру
16.03.26
06:56
(0) Боюсь вас ждёт разочарования в расширениях. Не всё они позволяют :)
3 DrZombi
 
гуру
16.03.26
07:01
(1) В статье есть добавление роли в расширении.
В БСП есть маленькой казус, оно плохо дружит с ролями из расширения :)
4 2S
 
16.03.26
07:07
(3) Добавить права на команду в типовую роль "БазовыеПраваБП". Если я правильно понял посыл )
5 denk32
 
16.03.26
07:32
6 DrZombi
 
гуру
16.03.26
08:22
(4) Да. Это сработает в данном варианте.
А вот когда объект из Расширения. И надо дать права только "избранным", то тут будет казус :)
7 ZloyBrawler
 
16.03.26
09:51
(3) БСП прекрасно дружит с расширениями и ролями в нем.
У нас 92 роли добавлено и не меньше типовых изменено.
В БСП есть только пара неудобств. Первое, создавать роль с именем ххх_ПолныеПрава не стоит, а то тока админам и будет доступна роль, а назвать можно ххх_ПраваПочтиПолные (с некого релиза приходится так делать).
Другое неудобство, это то, что админу нельзя дать права накидывая еще ролей. Ну это ограничение мы прекрасно сломали этим же расширением. (И это с некого релиза приходится делать)
8 unenu
 
16.03.26
11:10
(7)
Другое неудобство, это то, что админу нельзя дать права накидывая еще ролей.


Разве? А так?

Общий модуль:
УправлениеДоступомСлужебный

Процедура ОбновитьРолиПользователей
Добавить код:

ДополнительныеРолиАдминистратора.Вставить("ххх_ПолныеПрава", Истина);
9 ZloyBrawler
 
16.03.26
21:34
(8) Этот путь вынуждает допилы каждый раз делать и эти роли как понимаю будут всегда, а нужно на уровне юзера все же убирать добавлять интерактивно, поэтому приходится ломать
10 Бертыш
 
16.03.26
21:39
Раз пошла такая пьянка приведу свой кейс из практики. Заказчик у меня есть один привередливый и кейс был не про ввод на основание а про вывод на печать, но принцип схожий. Им было в тз прописанно между какими пунктами вывода на печать должна вставиться добавляемая команда и я всю плешь себе проел пока не сообразил как корректно вмешаться в механизм БСП формирующий меню и уже в этом механизме поменять последовательность элементов меню. Команду то саму добавить тьфу. Добавил и система подцепит, а вот добавить команду чтобы была определённая последовательность команд затача не вполне тривиальная
11 Бертыш
 
16.03.26
21:40
Может кому сгодится
12 ZloyBrawler
 
16.03.26
22:07
наш костыль
ноги не сломайте!
я ничего не показывал никому

модуль УправлениеДоступомСлужебный

&ИзменениеИКонтроль("ОбновитьРолиПользователей")
Процедура Затычки_ОбновитьРолиПользователей(Знач ОписаниеПользователей, Знач ПарольПользователяСервиса, ЕстьИзменения)
    
    чЁта
        
#Удаление
        Если Администраторы[ТекущийПользователь] <> Неопределено Тогда
            ТекущиеНовыеРоли = НовыеРоли;
            НовыеРоли = ТекущиеНовыеРоли.Скопировать(Новый Массив);
            Для Каждого КлючИЗначение Из ОбязательныеРолиАдминистратора Цикл
                НовыеРоли.Добавить().РольСсылка = КлючИЗначение.Значение;
            КонецЦикла;
            Для Каждого КлючИЗначение Из ДополнительныеРолиАдминистратора Цикл
                Если ТекущиеНовыеРоли.Найти(КлючИЗначение.Значение, "РольСсылка") = Неопределено Тогда
                    Продолжить;
                КонецЕсли;
                НовыеРоли.Добавить().РольСсылка = КлючИЗначение.Значение;
            КонецЦикла;
        КонецЕсли;
#КонецУдаления
#Вставка
        // с какого-та фига 1С решила, что у админов должны быть только админские роли и все,
        // а нам та нужно чтобы были у него еще и специфические роли, например программные что-то разрешающие или запрещающие
        // поэтому чисто убедимся чтобы среди отмеченных ролей были все обязательные роли админа
        Если Администраторы[ТекущийПользователь] <> Неопределено Тогда
            Для Каждого КлючИЗначение Из ОбязательныеРолиАдминистратора Цикл
                Если НовыеРоли.Найти(КлючИЗначение.Значение, "РольСсылка") <> Неопределено Тогда
                    Продолжить;
                КонецЕсли;
                НовыеРоли.Добавить().РольСсылка = КлючИЗначение.Значение;
            КонецЦикла;
        КонецЕсли;
#КонецВставки
        
        чЁта
    
КонецПроцедуры

>специфические роли, например программные
имеется ввиду такие роли, которые не дают никаких прав на объекты, а только в коде используется проверка на их наличие или отсутствие, типа если нет такой роли, то запрещать провести документ, если в нем такого-та рода косяки...
13 banco
 
16.03.26
23:04
(10) У команды печати есть поле Порядок
Ошибка? Это не ошибка, это системная функция.