Имя: Пароль:
1C
 
Ошибка выполнения кода при отсутствии полных прав
0 Black1708
 
13.05.26
08:33
Всем доброго дня, уважаемые.

Прошу помощи разобраться с ошибкой. Есть пользователь с максимально ограниченными правами. Он успешно создает договор с контрагентом, загружает туда файл doc или txt, все это сохраняет без каких либо ошибок. Но есть открывает созданный ранее договор, и на закладке Файлы редактирует прикрепленный им файл, и в момент нажатия "Закончить редактирование", на следующим блоке

Если ЗначениеЗаполнено(Параметр) И Параметр.Свойство("Событие") И Параметр.Событие = "ВерсияСохранена"
            И ЭтотОбъект.ПараметрыОбменаСКонтрагентами.ДанныеСостоянияЭДОТекущие <> Неопределено
            И ЭтотОбъект.ПараметрыОбменаСКонтрагентами.ДанныеСостоянияЭДОТекущие.СуществуетАктуальныйДокумент Тогда

получаю ошибку: {<Неизвестный модуль>(1)}: Поле объекта не обнаружено (ПараметрыОбменаСКонтрагентами)


В отладчике этот блок срабатывает 3 раза.

Первый раз результат всего условия = Ложь, при этом последние два условия каждое по отдельности = {<Неизвестный модуль>(1)}: Поле объекта не обнаружено (ПараметрыОбменаСКонтрагентами) и ошибки нет

Второй раз результат всего условия = Ложь
при этом последние два условия каждое по отдельности = {<Неизвестный модуль>(1)}: Поле объекта не обнаружено (ПараметрыОбменаСКонтрагентами) и ошибки нет

Третий раз результат всего условия = {<Неизвестный модуль>(1)}: Поле объекта не обнаружено (ПараметрыОбменаСКонтрагентами)
и последние два условия все так же каждое по отдельности = {<Неизвестный модуль>(1)}: Поле объекта не обнаружено (ПараметрыОбменаСКонтрагентами)

Ищу в Справочник ДоговорыКонтрагентов.ФормаЭлемента поле ПараметрыОбменаСКонтрагентами в разделе Объект, такого поля вообще нет.

При этом, у пользователя с полными правами ошибок не возникает. Очевидно что не хватает каких то прав.
Подскажите как устранить ошибку?

Заранее всем премного благодарен! С уважением.
1 Гипервизор
 
13.05.26
08:37
Посмотрите ошибку в журнале регистрации.
2 Black1708
 
13.05.26
08:45
Поле объекта не обнаружено (ПараметрыОбменаСКонтрагентами)
{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(5008)}:Если ЗначениеЗаполнено(Параметр) И Параметр.Свойство("Событие") И Параметр.Событие = "ВерсияСохранена"
{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(367)}:РаботаСФайламиОбработкаОповещения(ИмяСобытия, Параметр, Источник);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(7628)}:Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла("ВерсияСохранена"), ПараметрыВыполнения.ПараметрКоманды);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(10758)}:ВыполнитьОбработкуОповещения(Обработчик, Результат);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(2641)}:ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Истина);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(2629)}:ЗакончитьРедактированиеСРасширениемПослеПоказаОповещения(-1, ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(2581)}:ЗакончитьРедактированиеСРасширениемПослеУдаленияФайлаИзРабочегоКаталога(-1, ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(2474)}:ЗакончитьРедактированиеСРасширениемПослеПроверкиЗашифрован(ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(2427)}:ЗакончитьРедактированиеСРасширениемПослеПроверкиНовойВерсии(ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(2308)}:ЗакончитьРедактированиеСРасширением(ПараметрыВыполнения);
{ОбщийМодуль.ФайловаяСистемаСлужебныйКлиент.Модуль(1286)}:ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, РасширениеПодключено);
{ОбщийМодуль.ФайловаяСистемаКлиент.Модуль(812)}:ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗавершение, "ПодключениеНеТребуется");
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(523)}:ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботы1СПредприятия(ОписаниеОповещения);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(2299)}:ПоказатьВопросОбУстановкеРасширения1СПредприятия(Обработчик);
{ОбщийМодуль.РаботаСФайламиСлужебныйКлиент.Модуль(625)}:ЗакончитьРедактирование(ПараметрыОбработчика);
{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(2071)}:РаботаСФайламиСлужебныйКлиент.ЗакончитьРедактированиеСОповещением(ПараметрыОбновленияФайла);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]


{<Неизвестный модуль>(1)}: Поле объекта не обнаружено (ПараметрыОбменаСКонтрагентами)
3 toypaul
 
гуру
13.05.26
08:51
Похоже на глюкодром под названием ЕРПУХ. Отладчик в зубы и смотрим где у ЭтотОбъект теряется ПараметрыОбменаСКонтрагентами.

Вряд ли тут кто-то прям на стол выложит причину или название роли.
4 RVN
 
13.05.26
08:55
Судя по названию параметров не хватает прав на ЭДО.
Либо добавлять типовые права на ЭДО
Либо городить свою роль с правами на чтение нужных объектов ЭДО
Либо исправить код
5 ass1c
 
13.05.26
10:41
(0). Идет программное добавление "ПараметрыОбменаСКонтрагентами"...

Сильно в подробности не лез, но попробуй дать право на чтение для документа: Метаданные.Документы.СообщениеЭДО

// Возвращает признак наличия прав на чтение электронных документов.
// 
// Возвращаемое значение:
// 	Булево - признак наличия прав на чтение электронных документов.
Функция ЕстьПравоЧтенияДокументов() Экспорт
	
	Если Пользователи.ЭтоПолноправныйПользователь() Тогда
		Возврат Истина;
	КонецЕсли; 
	
	ЕстьПраво = Истина;
		
	// Основные объекты метаданных, доступ к которым определяет доступ к элементарной функции.
	ОбъектыЭлементарнойФункции = Новый Массив;
	ОбъектыЭлементарнойФункции.Добавить(Метаданные.Документы.СообщениеЭДО);
	
	Для каждого Объект Из ОбъектыЭлементарнойФункции Цикл
		
		Если Не ПравоДоступа("Чтение", Объект) Тогда
			ЕстьПраво = Ложь;
			Прервать;
		КонецЕсли;
		
	КонецЦикла;
		
	Возврат ЕстьПраво;
	
КонецФункции
6 ass1c
 
13.05.26
10:41
(5) Роли:
Добавление и изменение электронных документов
Чтение электронных документов
7 Black1708
 
13.05.26
11:03
(5) Методом перебора нашел что ошибка возникает при отсутствии роли Чтение электронных документов.
Затем уже в конфигурации нашел Справочники.СообщенияЭДОПрикрепленные файлы, и как раз для доступа к этому объекту нужна роль Чтение электронных документов.
Спасибо всем огромное!
8 Black1708
 
13.05.26
11:04
(6) Да именно так!
Ошибка? Это не ошибка, это системная функция.