Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
bless18 |
|
||
---|---|---|---|
|
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Где происходит их инициализация? |
Yandex |
|
||
---|---|---|---|
|
E_Migachev |
|
||
---|---|---|---|
|
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код |
bless18 |
|
||
---|---|---|---|
|
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику? |
E_Migachev |
|
||
---|---|---|---|
|
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса) В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают: Код 1C v 8.х
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы. Ну а дальше подставлять сопоставленное значение при создании соответствующего документа: Код 1C v 8.х
События модуля сеанса: |
bless18 |
|
||
---|---|---|---|
|
Спасибо вам огромное! Вы мне очень помогли! |
bless18 |
|
||
---|---|---|---|
|
Спасибо вам огромное! Вы мне очень помогли! |
E_Migachev |
|
||
---|---|---|---|
|
Пожалуйста |
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку |
Ошибка в 1С 8. Ошибка при получении значения атрибута контекста (ОсновнаяРоль), Недопустимо использование свойства ОсновнаяРоль
Описание ошибки:
Проблема стала возникать после того, как в серверную базу УТ 10.3 был добавлен функционал Библиотеки МДЛП. Ошибка не проявляла себя явно при работе в режиме 1С: Предприятие, но негативно влияла на выполнение некоторых регламентных заданий, так что они аварийно прерывались.
Найденные решения:
{ОбщийМодуль.Пользователи.Модуль(116)}: Ошибка при получении значения атрибута контекста (ОсновнаяРоль)
по причине:
Недопустимо использование свойства «ОсновнаяРоль»
Проблема стала заметна случайно лишь тогда, когда в частности регламентное фоновое задание «Наличие новых ЭД» стало прерываться в процессе своего выполнения из за ошибки.
Рис. 1. Пример ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» в регламентном задании «Наличие новых эд в сервисе ЭДО«
Так же и в другом регламентном задании стала проявляться ошибка «Ошибка при получении значения атрибута контекста (ОсновнаяРоль) по причине: Недопустимо использование свойства «ОсновнаяРоль».
Рис. 2. Пример ошибки «Недопустимо использование свойства «ОсновнаяРоль» в регламентном задании «Выполнение обмена по сценарию…»
Удивителен тот факт, что код «Метаданные.ОсновнаяРоль» вполне нормальный. Т.е. конструкция вызывается в конфигураторе при конфигурировании как свойство объекта «Метаданные». Так же не возникает ошибок при проверка кода при сохранении изменений конфигурации.
Нажатие на изображении увеличит его
Рис. 3. Причина ошибки в коде, конструкция «Метаданные.ОсновнаяРоль = Неопределено».
Релиз используемой платформы 1С в базе, в которой возникла проблема — 8.3.18.1741
Рис. 4. Сведения о конфигурации, версии платформы и параметры конфигурации.
Удивительно, что описание данного свойства «ОсновнаяРоль» отсутствует в Синтакс-помощнике. Хотя, как уже было коротко упомянуто, свойство «ОсновнаяРоль» глобального свойства «Метеданные» используется в библиотеке МДЛП. Исходно основное назначение библиотеки — для конфигураций, работающих в режиме управляемого приложения. Конфигурация 1С: Управление торговлей 10.3 работает в другом режиме — обычного приложения. Поэтому получается, что конструкция кода эксплуатируется в редко используемой библиотеке и ее работоспособность не совсем понятна в текущем релизе платформы.
В сети оказалось достаточно мало вспомогательной информации об этой ошибке. Из найденного, что может кому-то помочь — это обсуждение на форуме forum.1c.ru «После обновления на 2.0.15.8 выпадает ошибка: Недопустимо использование свойства «ОсновнаяРоль».
Поэтому возможно, но это только неподтвержденное предположение, что метод работает только в конфигурациях, работающих в режиме управляемого приложения, т.к. о нем отсутствует какая-либо информация в официальной методике — «Синтакс-помощнике». Поскольку упоминание проблемы с «ОсновнаяРоль» и ее актуальное решение по приведенной выше ссылке действует для конфигурации 1С: Деньги, которая работает исключительно в режиме обычного приложения (интерфейса).
Рис. 5. Отсутствие в «Синтакс-помощнике» описания метода «ОсновнаяРоль»
Поэтому решением данной проблемы стало изменение кода на конструкцию: Метаданные.ОсновныеРоли.Количество()
Нажатие на изображении увеличит его
Рис. 6. Устранение ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» заменой текста кода.
Таким образом код стал актуальным для исполнения и в дальнейшем не вызывал ошибку.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
21-07-2022
Журавлев А.С.
(Сайт azhur-c.ru)
LeoKeyn
26.12.22 — 13:28
Добрый день.
Подскажите, пожалуйста, делаю заполнение ТЧ обработки через ПостроительОтчетов и получаю ошибку Ошибка при получении значения атрибута контекста (Результат).Ожидается выражение «ВЫБРАТЬ».
Причем в одной обработке работает, в другой эта ошибка, не могу понять где допустил ошибку.
В построителе текст запроса есть
ПередОткрытиемФормы
ТекстЗапроса = «ВЫБРАТЬ
| ПродажиОбороты.Контрагент,
| ПродажиОбороты.Контрагент.ИНН КАК ИНН,
| ПродажиОбороты.Номенклатура,
| ПродажиОбороты.Номенклатура.АЭ_ИдентификаторНаСайте КАК Идентификатор,
| ПродажиОбороты.ЗаказПокупателя КАК Заказ,
| ПродажиОбороты.ЗаказПокупателя.ДатаОтгрузки КАК ДатаНачала,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.ЗаказПокупателя) = ТИП(Документ.ЗаказПокупателя)
| ТОГДА ПродажиОбороты.ЗаказПокупателя.ДатаЗакрытияЗаказа
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| КОНЕЦ КАК ДатаКонца,
| ПродажиОбороты.Номенклатура.Наименование,
| ПродажиОбороты.Контрагент.Наименование
|{ВЫБРАТЬ
| Контрагент.*,
| ИНН,
| Номенклатура.*,
| Идентификатор,
| Заказ.*,
| ДатаНачала,
| ДатаКонца,
| НоменклатураНаименование,
| КонтрагентНаименование}
|ИЗ
| РегистрНакопления.Продажи.Обороты(&ДатаС, &ДатаПо, День, ) КАК ПродажиОбороты
|{ГДЕ
| ПродажиОбороты.Контрагент.*,
| ПродажиОбороты.Контрагент.ИНН КАК ИНН,
| ПродажиОбороты.Номенклатура.*,
| ПродажиОбороты.Номенклатура.АЭ_ИдентификаторНаСайте КАК ИдентификаторНаСайте,
| ПродажиОбороты.ЗаказПокупателя.ДатаОтгрузки КАК ДатаОтгрузки,
| (ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.ЗаказПокупателя) = ТИП(Документ.ЗаказПокупателя)
| ТОГДА ПродажиОбороты.ЗаказПокупателя.ДатаЗакрытияЗаказа
| ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| КОНЕЦ) КАК ДатаКонца,
| ПродажиОбороты.ЗаказПокупателя.*}»;
// Заполним настройки построителя на основании запроса
ПостроительОтчета.Текст = ТекстЗапроса;
ПостроительОтчета.ЗаполнитьНастройки();
Далее делаю:
ПостроительОтчета.Параметры.Вставить(«ДатаС»,НачалоДня(ДатаС));
ПостроительОтчета.Параметры.Вставить(«ДатаПо»,КонецДня(ДатаПо));
ПостроительОтчета.Выполнить();
Выгрузка = ПостроительОтчета.Результат.Выгрузить();
Данные.Загрузить(Выгрузка);
Ошибка вылетает на этом моменте: Выгрузка = ПостроительОтчета.Результат.Выгрузить();
Konstantan 1 / 1 / 1 Регистрация: 11.05.2015 Сообщений: 74 |
||||
1 |
||||
Ошибка при получении атрибута значения контекста (Номенклатура)11.10.2018, 12:33. Показов 5662. Ответов 3 Метки нет (Все метки)
Сначала выполняется удалет строки из первого документа потом на втором документе вылетает ошибка,что это значит помогите плиииз ничего не пойму
__________________ 0 |
Тест 383 / 162 / 56 Регистрация: 26.02.2010 Сообщений: 1,241 |
|
11.10.2018, 12:44 |
2 |
В каком месте то ошибка происходит? 0 |
856 / 655 / 111 Регистрация: 01.11.2012 Сообщений: 2,410 |
|
11.10.2018, 13:36 |
3 |
Полный текст ошибки выложите 0 |
841 / 604 / 211 Регистрация: 24.07.2013 Сообщений: 2,101 |
|
11.10.2018, 20:10 |
4 |
РешениеKonstantan, МассивТоваров не очищается перед обработкой следующего документа. 2 |
Андрей Павлов Заглянувший Сообщений: 13 |
При тестировании обработки столкнулись с ошибкой «Нарушение прав доступа». Ошибка чаще всего возникает при использовании обработки в первые 15 минут после запуска клиента (тонкий/толстый). по причине: по причине: |
Добрый день! |
|
Андрей Павлов Заглянувший Сообщений: 13 |
Добрый день! |
Мария Измайлова Посетитель Сообщений: 1177 |
#4
01.10.2014 11:22:47
Спасибо.Передала разработчику. Еще уточнение-Вы её запускаете под полными правами или нет? Открываете через Главное меню-Файл-Открыть? |
||
Андрей Павлов Заглянувший Сообщений: 13 |
Обработку загружаю в базу как внешнюю, и пользователи запускают ее через свой интерфейс. |
Мария Измайлова Посетитель Сообщений: 1177 |
#6
01.10.2014 11:44:55
Передам разработчику. Если есть возможность обновитесь до релиза 2.0.8.6 и проверьте в нём тоже. |
||
Разработчик просил уточнить знаете ли Вы почему в обработке идет обращение к Обновлению в информационной базе? Вы писали обработку? Т.к. самая вероятная причина-это то,что у менеджера нет прав на выполнение обновления информационной базы, это право есть только у Администратора. |
|
Андрей Павлов Заглянувший Сообщений: 13 |
В обработке вообще нет обращений к модулям конфигурации, Единственное что делает обработка так это создает документ событие(звонок) и на его основании задание (личное). При записи задания и выскакивает ошибка с правами. В коде обработки я комментарий метку оставил. |
Мария Измайлова Посетитель Сообщений: 1177 |
#9
01.10.2014 13:20:13
Хорошо, спасибо за ответ. Передам разработчику. Изменено: Мария Измайлова — 01.10.2014 13:20:32 |
||
Андрей Павлов Заглянувший Сообщений: 13 |
#10
08.10.2014 08:39:52 Мария, вы можете сообщить хотя бы примерные сроки решение проблемы? |
Мария Измайлова Посетитель Сообщений: 1177 |
#11
08.10.2014 10:13:10
Добрый день! |
||
#12
08.10.2014 11:25:01 Ответ разработчика: ошибка не воспроизводится , необходима копия Вашей базы (файл .dt). Вышлите письмо на crm@rarus.ru с пометкой для Хотлайн, передать Кучерову Андрею ( в письме указываете ссылку на тему в форуме, а также ссылку на скачивание базы и данные для входа под тем пользователем,под которым появляется ошибка). |
|
Андрей Павлов Заглянувший Сообщений: 13 |
#13
08.10.2014 15:14:00 Я сомневаюсь что начальство даст разрешение отправить базу в 7 GB со всеми нашими данными. |
Наталья Полубенская Посетитель Сообщений: 698 |
#14
09.10.2014 20:49:22 Добрый день, Андрей!
Мы бы рекомендовали Вам обратиться к разработчику данной внешней обработки. Или написать письмо на линию консультаций crm@raus.ru с описанием Вашей проблемы и ссылкой на ветку форума. |
||
Андрей Павлов Заглянувший Сообщений: 13 |
#15
13.10.2014 09:54:16 Добрый день, Наталья! Разработчиком данной обработки являюсь я. |
Алексей Чаплыгин Посетитель Сообщений: 1018 |
#16
13.10.2014 10:05:43 Добрый день, Андрей! Разница в том, что на данном форуме не ведется техническая поддержка пользователей решений 1С:CRM. Техническая поддержка пользователей ведется, согласно правилам поддержки решений 1С:CRM, по специализированным для этих целей каналам связи, а именно указанный выше адрес технической поддержки. Если у вас возникают сложности в использовании решения — постараемся помочь в их решении. Спасибо за понимание! |
Использую обработку ВыгрузкаЗагрузкаДанныхXML82.epf все документы выгружаються нормально,а на одном при попытке выгрузить выдает ошибку {ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта}: Ошибка при получении значения атрибута контекста (Результат) РезультатЗапроса = ПостроительОтчета.Результат; по причине: по причине: вот что выдает Сообщить( ПостроительОтчета.Текст); » ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыЭК КАК _ » Откуда в ошибка берет «<<?>>В КАК В,»?
Потому что «*». З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь
З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь а я тут причем я обработку скачал «ВыгрузкаЗагрузкаДанныхXML82.epf»
я думаю, что не стоило называть реквизит «В»
а в чем * виновата то? другие документы же выгружает к примеру с таким запросом ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыМЭКСМО КАК _
да нашел в табличной части документа один реквезит так и называеться только вот теперь вопрос как нибудь можно это обойти? саму конфу изменить не могу, есть причины
написать запрос ручками, со своими алиасами полей
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
В чем проблема выполнять элементарные операции |
Я |
11.01.12 — 09:35
Помогите понять по какой причине пользователь не может выполнять элементарные вычислении в базе.
Есть такая функция:
Функция СтеретьПервыеНули(Номер)
рабСтрока = СокрЛП(Строка(Номер));
ДлинаСтроки = СтрДлина(СокрЛП(Номер));
Счетчик = 1;
Пока Счетчик < ДлинаСтроки Цикл
Если Лев(рабСтрока,1) = «0» Тогда
рабСтрока = Прав(РабСтрока, СтрДлина(рабСтрока)-1);
Счетчик = Счетчик +1;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Возврат рабСтрока;
КонецФункции
{Форма.ФормаОтчета.Форма(471)}: Ошибка при получении значения атрибута контекста (Номер)
рабСтрока = СокрЛП(Строка(Номер));
по причине:
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.
Наверное даже у пользователя с праввами «Пользователь» это код будет выполнятся.
1 — 11.01.12 — 09:36
переименуй параметр
2 — 11.01.12 — 09:37
Какие права у пользователя? Самописные или типовые?
3 — 11.01.12 — 09:39
(1)да переименовал. было парСтрока стало Номер
(2)УПП типовая. права менеджера
Это во внешнем отчете. и еще как отладить под этим пользователем если ему не положено открыть внешние обработки/отчеты.
4 — 11.01.12 — 09:42
Кэп говорит, что в параметр «Номер» передается какая-то ссылка.
5 — 11.01.12 — 09:44
сейчас перепроверю слова Кэпа.
6 — 11.01.12 — 09:46
отлаживаю под моим именем. там действительно передается Номер документа.
7 — 11.01.12 — 09:49
(6) А зачем ты его в строку преобразовываешь?
8 — 11.01.12 — 09:51
СтеретьПервыеНули(Знач Номер)?
9 — 11.01.12 — 09:53
(8) не понял
(7) привык. можно без, сейчас проверю.
10 — 11.01.12 — 09:54
(9) Передавай пареметр по значению (если функция самописная)
11 — 11.01.12 — 10:05
(10) делаем успехи ))) тепери понятнее стало. Пользователь не может прочесть номер дока.
{Форма.ФормаОтчета.Форма(231)}: Ошибка при получении значения атрибута контекста (Номер)
новаяСтрока.Номер = СтеретьПервыеНули(Строка.Регистратор.Номер);
по причине:
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.
12 — 11.01.12 — 10:31
получается что в коде обращаясь к Строка.Регистратор.Номер выдавало ошибку о недостаточных прав. понятие не имею почему, может обясните?
Сделал по другому …. получаю номер в запросе и потом вызываю мою функцию. Сработало.
13 — 11.01.12 — 10:31
(12) А права-то на чтение документа есть?
14 — 11.01.12 — 10:43
(13) конечно
15 — 11.01.12 — 10:44
(14) А на регистр?
16 — 11.01.12 — 10:44
потому что Строка.Регистратор. читает все — аналогично
ВЫБРАТЬ * ИЗ …
17 — 11.01.12 — 10:45
а у тебя еще и две точки — т.е. весь регистр, а там еще и составной тип наверное у регистратора …
18 — 11.01.12 — 10:46
если это внешняя обработка, то ему нужно выставить право администрирование внешних обработок или что-то типа того…
zippygrill
19 — 11.01.12 — 11:09
(15) я думаю ответ в (17)
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
bless18 |
|
||
---|---|---|---|
|
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Пользователь = ПараметрыСеанса.ТекущийПользователь; по причине: Попытка получения неинициализированного значения параметра сеансаКод 1C v 8.х
Где происходит их инициализация? |
Yandex |
|
||
---|---|---|---|
|
E_Migachev |
|
||
---|---|---|---|
|
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
так же в процедуре ПриНачалеРаботыСистемы пишешь что то типо: Код 1C v 8.х
Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код |
bless18 |
|
||
---|---|---|---|
|
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику? |
E_Migachev |
|
||
---|---|---|---|
|
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса)
В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают: Код 1C v 8.х
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы. Ну а дальше подставлять сопоставленное значение при создании соответствующего документа: Код 1C v 8.х
События модуля сеанса: |
bless18 |
|
||
---|---|---|---|
|
Спасибо вам огромное! Вы мне очень помогли! |
bless18 |
|
||
---|---|---|---|
|
Спасибо вам огромное! Вы мне очень помогли! |
E_Migachev |
|
||
---|---|---|---|
|
Пожалуйста |
Подсказка: Для быстрого поиска ответов — используйте ‘Поиск’ |
Ошибка в 1С 8. Ошибка при получении значения атрибута контекста (ОсновнаяРоль), Недопустимо использование свойства ОсновнаяРоль
Описание ошибки:
Проблема стала возникать после того, как в серверную базу УТ 10.3 был добавлен функционал Библиотеки МДЛП. Ошибка не проявляла себя явно при работе в режиме 1С: Предприятие, но негативно влияла на выполнение некоторых регламентных заданий, так что они аварийно прерывались.
Найденные решения:
{ОбщийМодуль.Пользователи.Модуль(116)}: Ошибка при получении значения атрибута контекста (ОсновнаяРоль)
по причине:
Недопустимо использование свойства «ОсновнаяРоль»
Проблема стала заметна случайно лишь тогда, когда в частности регламентное фоновое задание «Наличие новых ЭД» стало прерываться в процессе своего выполнения из за ошибки.
Рис. 1. Пример ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» в регламентном задании «Наличие новых эд в сервисе ЭДО«
Так же и в другом регламентном задании стала проявляться ошибка «Ошибка при получении значения атрибута контекста (ОсновнаяРоль) по причине: Недопустимо использование свойства «ОсновнаяРоль».
Рис. 2. Пример ошибки «Недопустимо использование свойства «ОсновнаяРоль» в регламентном задании «Выполнение обмена по сценарию…»
Удивителен тот факт, что код «Метаданные.ОсновнаяРоль» вполне нормальный. Т.е. конструкция вызывается в конфигураторе при конфигурировании как свойство объекта «Метаданные». Так же не возникает ошибок при проверка кода при сохранении изменений конфигурации.
Нажатие на изображении увеличит его
Рис. 3. Причина ошибки в коде, конструкция «Метаданные.ОсновнаяРоль = Неопределено».
Релиз используемой платформы 1С в базе, в которой возникла проблема — 8.3.18.1741
Рис. 4. Сведения о конфигурации, версии платформы и параметры конфигурации.
Удивительно, что описание данного свойства «ОсновнаяРоль» отсутствует в Синтакс-помощнике. Хотя, как уже было коротко упомянуто, свойство «ОсновнаяРоль» глобального свойства «Метеданные» используется в библиотеке МДЛП. Исходно основное назначение библиотеки — для конфигураций, работающих в режиме управляемого приложения. Конфигурация 1С: Управление торговлей 10.3 работает в другом режиме — обычного приложения. Поэтому получается, что конструкция кода эксплуатируется в редко используемой библиотеке и ее работоспособность не совсем понятна в текущем релизе платформы.
В сети оказалось достаточно мало вспомогательной информации об этой ошибке. Из найденного, что может кому-то помочь — это обсуждение на форуме forum.1c.ru «После обновления на 2.0.15.8 выпадает ошибка: Недопустимо использование свойства «ОсновнаяРоль».
Поэтому возможно, но это только неподтвержденное предположение, что метод работает только в конфигурациях, работающих в режиме управляемого приложения, т.к. о нем отсутствует какая-либо информация в официальной методике — «Синтакс-помощнике». Поскольку упоминание проблемы с «ОсновнаяРоль» и ее актуальное решение по приведенной выше ссылке действует для конфигурации 1С: Деньги, которая работает исключительно в режиме обычного приложения (интерфейса).
Рис. 5. Отсутствие в «Синтакс-помощнике» описания метода «ОсновнаяРоль»
Поэтому решением данной проблемы стало изменение кода на конструкцию: Метаданные.ОсновныеРоли.Количество()
Нажатие на изображении увеличит его
Рис. 6. Устранение ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» заменой текста кода.
Таким образом код стал актуальным для исполнения и в дальнейшем не вызывал ошибку.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
21-07-2022
Журавлев А.С.
(Сайт azhur-c.ru)