|   |   | 
| 
 | Ограничить редактирование/поиск в отборе отчета | ☑ | ||
|---|---|---|---|---|
| 0
    
        Mr_Boogie 26.03.24✎ 17:53 | 
        Всех приветствую. Подскажите пжлст, может сталкивался кто. 1с КА 2.4, платформа 8.3. Как в настройках отчета ограничить программно поле ввода для значения? чтобы не было возможности поиска/редактирования/создания, а чтоб пользователь мог только провалится получается в форму выбора. Два дня уже голову ломаю. https://ibb.co/j5yNYgD     | |||
| 1
    
        spiller26 26.03.24✎ 20:34 | 
        (0) Формируй свой список и передавай в СКД     | |||
| 2
    
        spiller26 27.03.24✎ 10:57 | 
        (0) Если хотите ограничить штатными, то делайте расширение.
 В требуемом справочнике в модуле менеджера ограничивайте список. &После("ОбработкаПолученияДанныхВыбора")
Процедура РасшОграничениеФизЛиц_ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	Если НЕ РольДоступна("ПолныеПрава") Тогда
		ДанныеВыбора = Новый СписокЗначений;
		
		Если СтрДлина(Параметры.СтрокаПоиска) > 2 Тогда
			СписокФизЛиц = РасшОграничениеФизЛиц_ДополнительноНаСервере.РасшОграничениеФизЛиц_ДоступныеФизЛицаПользователяСписком(СокрЛП(Параметры.СтрокаПоиска));
			Для Каждого ФизЛицо Из СписокФизЛиц Цикл
				Структура = Новый Структура("Значение", ФизЛицо.Значение);
				Элемент = ДанныеВыбора.Добавить();
				Элемент.Значение = Структура;
				Элемент.Представление = ФизЛицо.Представление;
			КонецЦикла; 
		Иначе	
			СтандартнаяОбработка = Ложь; 
		КонецЕсли;
		
	КонецЕсли;
КонецПроцедуры
А в самих формах выбора в расширении примерно так. 
&НаСервере
Процедура РасшОграничениеФизЛиц_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Если НЕ РольДоступна("ПолныеПрава") Тогда
		
		МассивФизЛиц = РасшОграничениеФизЛиц_ДополнительноНаСервере.РасшОграничениеФизЛиц_ДоступныеФизЛицаПользователя();	
		
		Если МассивФизЛиц.Количество() > 0 Тогда
			ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
				Список,
				"Ссылка",
				МассивФизЛиц,
				ВидСравненияКомпоновкиДанных.ВСписке,
				НСтр("ru = 'Физ.лица только организации'"),
				Истина,
				РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный,
				Неопределено); 
		КонецЕсли;			
	КонецЕсли;			
КонецПроцедуры | |||
| 3
    
        youalex 27.03.24✎ 11:12 | 
        (0) исходная задача в чем? 
 Если нужно ограничить список - можно использовать Параметры редактирования/Параметры выбора или Тип значения + Доступные значения (всё на закладке Наборы данных редактора СКД) | |||
| 4
    
        Mr_Boogie 27.03.24✎ 16:01 | 
        (2) Огромнейшее спасибо, почитал ещё оф документацию и доработал как нужно)     | |||
| 5
    
        Волшебник 27.03.24✎ 16:08 | 
        (4) Покажите, что получилось     | |||
| 6
    
        Mr_Boogie 27.03.24✎ 16:52 | 
        (5) &После("ОбработкаПолученияДанныхВыбора")
 Процедура TSS_ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Если НЕ УправлениеДоступом.ЕстьРоль("ПолныеПрава") Тогда СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | TSS_ДоступКДДС.СтатьяДДС КАК СтатьяДДС |ИЗ | РегистрСведений.TSS_ДоступКДДС КАК TSS_ДоступКДДС |ГДЕ | TSS_ДоступКДДС.Пользователь = &Пользователь | И TSS_ДоступКДДС.СтатьяДДС.Наименование ПОДОБНО &СтрокаПоиска"; Запрос.УстановитьПараметр("Пользователь", ПользователиКлиентСервер.ТекущийПользователь()); Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%"); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Список = Новый СписокЗначений; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Список.Добавить(ВыборкаДетальныеЗаписи.СтатьяДДС); КонецЦикла; ДанныеВыбора = Список; КонецЕсли; КонецПроцедуры | |||
| 7
    
        Волшебник 27.03.24✎ 16:57 | 
        (6) Ага, потом ждите заявок типа: "Не могу выбрать статью" и "Пропали статьи ДДС". И совершенно другой программист наткнётся на Ваш код, чертыхнётся... А потом будет муторное согласование доступа и наконец торжественное внесение данных в регистр сведений. И всё ради того, чтобы пользователь случайно не выбрал плохую статью     | |||
| 8
    
        Mr_Boogie 27.03.24✎ 17:05 | 
        (7) "Не могу выбрать статью" - По сути это и есть главное требование у начальства, чтобы "не нужные глаза" не видели/не могли выбрать, то что им не нужно. Сам регистр вынесен на форму элемента справочника "Статей ддс" отдельной вкладкой. Где по кнопке "добавить", у кого есть админ права, заносит запись в регистр, тем самым предоставляет доступ к нужной статьи и далее пользователь может её выбирать в документах/редактировать/просматривать в отчетах и тд..     | |||
| 9
    
        Волшебник 27.03.24✎ 17:06 | 
        (8) Админ же не будет это делать просто так, ему нужно основание в виде утверждённой карточки доступа сотрудника. Маршрут согласования доступа уже имеется?     | |||
| 10
    
        Mr_Boogie 27.03.24✎ 17:15 | 
        (9) Да, это будет делать более высокопоставленное руководство, наподобие ген. дира и гл. буха, у которых имеются админ права     | |||
| 11
    
        Волшебник 27.03.24✎ 18:54 | 
        (10) Заберите у них админские права, а то они вам базу испортят     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |