Ошибка при получении значения атрибута контекста результат

Содержание:

1.       Ошибка при установке значения атрибута контекста

2.       Ошибка при получении значения атрибута контекста

Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.  

1.    Ошибка при установке значения атрибута контекста

Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута. 

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

2.    Ошибка при получении значения атрибута контекста

Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.

При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).  

Специалист компании «Кодерлайн»

Александр Суворов

0

LeoKeyn

26.12.22

13:28

Добрый день.

Подскажите, пожалуйста, делаю заполнение ТЧ обработки через ПостроительОтчетов и получаю ошибку Ошибка при получении значения атрибута контекста (Результат).Ожидается выражение «ВЫБРАТЬ».

Причем в одной обработке работает, в другой эта ошибка, не могу понять где допустил ошибку.

В построителе текст запроса есть

ПередОткрытиемФормы

ТекстЗапроса = «ВЫБРАТЬ

                   |    ПродажиОбороты.Контрагент,

                   |    ПродажиОбороты.Контрагент.ИНН КАК ИНН,

                   |    ПродажиОбороты.Номенклатура,

                   |    ПродажиОбороты.Номенклатура.АЭ_ИдентификаторНаСайте КАК Идентификатор,

                   |    ПродажиОбороты.ЗаказПокупателя КАК Заказ,

                   |    ПродажиОбороты.ЗаказПокупателя.ДатаОтгрузки КАК ДатаНачала,

                   |    ВЫБОР

                   |        КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.ЗаказПокупателя) = ТИП(Документ.ЗаказПокупателя)

                   |            ТОГДА ПродажиОбороты.ЗаказПокупателя.ДатаЗакрытияЗаказа

                   |        ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

                   |    КОНЕЦ КАК ДатаКонца,

                   |    ПродажиОбороты.Номенклатура.Наименование,

                   |    ПродажиОбороты.Контрагент.Наименование

                   |{ВЫБРАТЬ

                   |    Контрагент.*,

                   |    ИНН,

                   |    Номенклатура.*,

                   |    Идентификатор,

                   |    Заказ.*,

                   |    ДатаНачала,

                   |    ДатаКонца,

                   |    НоменклатураНаименование,

                   |    КонтрагентНаименование}

                   |ИЗ

                   |    РегистрНакопления.Продажи.Обороты(&ДатаС, &ДатаПо, День, ) КАК ПродажиОбороты

                   |{ГДЕ

                   |    ПродажиОбороты.Контрагент.*,

                   |    ПродажиОбороты.Контрагент.ИНН КАК ИНН,

                   |    ПродажиОбороты.Номенклатура.*,

                   |    ПродажиОбороты.Номенклатура.АЭ_ИдентификаторНаСайте КАК ИдентификаторНаСайте,

                   |    ПродажиОбороты.ЗаказПокупателя.ДатаОтгрузки КАК ДатаОтгрузки,

                   |    (ВЫБОР

                   |            КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.ЗаказПокупателя) = ТИП(Документ.ЗаказПокупателя)

                   |                ТОГДА ПродажиОбороты.ЗаказПокупателя.ДатаЗакрытияЗаказа

                   |            ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

                   |        КОНЕЦ) КАК ДатаКонца,

                   |    ПродажиОбороты.ЗаказПокупателя.*}»;

        
    // Заполним настройки построителя на основании запроса

    ПостроительОтчета.Текст = ТекстЗапроса;    

    ПостроительОтчета.ЗаполнитьНастройки();

Далее делаю:

ПостроительОтчета.Параметры.Вставить(«ДатаС»,НачалоДня(ДатаС));

    ПостроительОтчета.Параметры.Вставить(«ДатаПо»,КонецДня(ДатаПо));

    ПостроительОтчета.Выполнить();

        
    Выгрузка = ПостроительОтчета.Результат.Выгрузить();

    Данные.Загрузить(Выгрузка);

Ошибка вылетает на этом моменте: Выгрузка = ПостроительОтчета.Результат.Выгрузить();

1

LeoKeyn

26.12.22

13:55

Вопрос закрыт. Зачищал выбранные поля нечаянно при открытии документа

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

1

27.06.2011, 15:22. Показов 3878. Ответов 7


Студворк — интернет-сервис помощи студентам

{Отчет.РасчетныеЛисткиОрганизаций(691)}: Ошибка при получении значения атрибута контекста (Результат)
ТаблицаРезультатаЗапроса = ПостроительОтчетов.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИер архией);
по причине:

по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: ‘AccumulationRegister.НДФЛКЗачету(РегистрНакопления.НДФЛКЗачету)’; право: ‘Чтение’
{(42, 126)}: Поле не найдено «ФизическиеЛица.ГруппаФизическихЛиц»
НастройкиПравДоступаПользователей.ОбъектДоступа =ФизическиеЛица.<<?>>ГруппаФизическихЛиц
по причине:
{(42, 126)}: Поле не найдено «ФизическиеЛица.ГруппаФизическихЛиц»
НастройкиПравДоступаПользователей.ОбъектДоступа = ФизическиеЛица.<<?>>ГруппаФизическихЛиц

после перехода с 8.1 на 8.2 выдает такую ошибку что делать подскажите



0



0 / 0 / 0

Регистрация: 09.11.2010

Сообщений: 29

27.06.2011, 15:55

2

Тут телепатов нет, какая конфигурация?
На каком этапе выдаёт ошибку?



0



0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

27.06.2011, 16:07

 [ТС]

3

конфигурация зарплата и управление персоналом

ТаблицаРезультатаЗапроса = ПостроительОтчетов.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИер архией);

СведенияОВидахРасчета = Новый Соответствие;

указывает что тут ошибка

Добавлено через 47 секунд
ошибка при формировании расчетных листов



0



0 / 0 / 0

Регистрация: 09.11.2010

Сообщений: 29

27.06.2011, 16:08

4

А релиз какой? Может стоит обновиться?



0



0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

27.06.2011, 16:18

 [ТС]

5

1С:Предприятие 8.2 (8.2.13.219)

Добавлено через 3 минуты
релиз свежий



0



309 / 309 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

27.06.2011, 16:30

6

Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.

ясно же пишет



0



0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

27.06.2011, 16:35

 [ТС]

7

права полные



0



309 / 309 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

27.06.2011, 16:40

8

я верю только своим глазам



0



Использую обработку ВыгрузкаЗагрузкаДанныхXML82.epf все документы выгружаються нормально,а на одном при попытке выгрузить выдает ошибку {ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта}: Ошибка при получении значения атрибута контекста (Результат)    РезультатЗапроса = ПостроительОтчета.Результат; по причине: по причине: вот что выдает Сообщить( ПостроительОтчета.Текст); » ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыЭК КАК _ » Откуда в ошибка берет «<<?>>В КАК В,»?

Потому что «*». З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь

З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь а я тут причем я обработку скачал «ВыгрузкаЗагрузкаДанныхXML82.epf»

я думаю, что не стоило называть реквизит «В»

а в чем * виновата то? другие документы же выгружает к примеру с таким запросом ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыМЭКСМО КАК _

да нашел в табличной части документа один реквезит так и называеться только вот теперь вопрос как нибудь можно это обойти? саму конфу изменить не могу, есть причины

написать запрос ручками, со своими алиасами полей

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Ошибка в 1С 8. Ошибка при получении значения атрибута контекста (ОсновнаяРоль), Недопустимо использование свойства ОсновнаяРоль

Описание ошибки:
Проблема стала возникать после того, как в серверную базу УТ 10.3 был добавлен функционал Библиотеки МДЛП. Ошибка не проявляла себя явно при работе в режиме 1С: Предприятие, но негативно влияла на выполнение некоторых регламентных заданий, так что они аварийно прерывались.

Найденные решения:

{ОбщийМодуль.Пользователи.Модуль(116)}: Ошибка при получении значения атрибута контекста (ОсновнаяРоль)
по причине:
Недопустимо использование свойства «ОсновнаяРоль»

Проблема стала заметна случайно лишь тогда, когда в частности регламентное фоновое задание «Наличие новых ЭД» стало прерываться в процессе своего выполнения из за ошибки.

1С 8 как исправить ошибку при получении значения атрибута контекста ОсновнаяРоль
Рис. 1. Пример ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» в регламентном задании «Наличие новых эд в сервисе ЭДО« 

Так же и в другом регламентном задании стала проявляться ошибка «Ошибка при получении значения атрибута контекста (ОсновнаяРоль) по причине: Недопустимо использование свойства «ОсновнаяРоль».


Рис. 2. Пример ошибки «Недопустимо использование свойства «ОсновнаяРоль» в регламентном задании «Выполнение обмена по сценарию…»

Удивителен тот факт, что код «Метаданные.ОсновнаяРоль» вполне нормальный. Т.е. конструкция вызывается в конфигураторе при конфигурировании как свойство объекта «Метаданные». Так же не возникает ошибок при проверка кода при сохранении изменений конфигурации. 

Нажатие на изображении увеличит его

Рис. 3. Причина ошибки в коде, конструкция «Метаданные.ОсновнаяРоль = Неопределено».

Релиз используемой платформы 1С в базе, в которой возникла проблема — 8.3.18.1741


Рис. 4. Сведения о конфигурации, версии платформы и параметры конфигурации.

Удивительно, что описание данного свойства «ОсновнаяРоль» отсутствует в Синтакс-помощнике. Хотя, как уже было коротко упомянуто, свойство «ОсновнаяРоль» глобального свойства «Метеданные» используется в библиотеке МДЛП. Исходно основное назначение библиотеки — для конфигураций, работающих в режиме управляемого приложения. Конфигурация 1С: Управление торговлей 10.3 работает в другом режиме — обычного приложения. Поэтому получается, что конструкция кода эксплуатируется в редко используемой библиотеке и ее работоспособность не совсем понятна в текущем релизе платформы.

В сети оказалось достаточно мало вспомогательной информации об этой ошибке. Из найденного, что может кому-то помочь — это обсуждение на форуме forum.1c.ru «После обновления на 2.0.15.8 выпадает ошибка: Недопустимо использование свойства «ОсновнаяРоль».

Поэтому возможно, но это только неподтвержденное предположение, что метод работает только в конфигурациях, работающих в режиме управляемого приложения, т.к. о нем отсутствует какая-либо информация в официальной методике — «Синтакс-помощнике». Поскольку упоминание проблемы с «ОсновнаяРоль» и ее актуальное решение по приведенной выше ссылке действует для конфигурации 1С: Деньги, которая работает исключительно в режиме обычного приложения (интерфейса).

1С 8 свойство метода метаданные конфигурации ОсновнаяРоль
Рис. 5. Отсутствие в «Синтакс-помощнике» описания метода «ОсновнаяРоль»

Поэтому решением данной проблемы стало изменение кода на конструкцию: Метаданные.ОсновныеРоли.Количество()

Нажатие на изображении увеличит его

Рис. 6. Устранение ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» заменой текста кода.

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

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

21-07-2022

Журавлев А.С.
(Сайт azhur-c.ru)

Понравилась статья? Поделить с друзьями:
  • Ошибка при подключении к хосту аккаунт google com
  • Ошибка при получении значения атрибута контекста параметрыклиентанасервере
  • Ошибка при подключении к серверам rocket league
  • Ошибка при получении кадра premiere pro 2020
  • Ошибка при переносе файла на флешку