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

Проекты и консалтинг. Внедрение и доработка. Сопровождение 1С. Обучение.

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Сегодня многие компании стали поглядывать в сторону использования операционных систем отличной от Майкрософта.

Почему же так? Ведь старый добрый Виндоуз давно изучен и чего еще нам искать.

Ответ прост — свободное, бесплатное распространение и повышенная популярность дистрибутива Ubuntu в связке с Postgre SQL.

Эта сборка ядра на базе Linux одной из первых получила поддержку со стороны «Фирмы 1С». Линекс системы менее требовательны к железу, меньше подвержены взлому и вторжениям вирусных программ. Графические оболочки пользовательских систем имеют сейчас больше разнообразия и выглядят очень достойно. Установка дистрибутива Ubuntu проходит гораздо быстрее проще чем Windows. В этой публикации мы рассмотрим насколько сложно провести обновление серверной части дистрибутива 1С:Предприятие с версии 8.3.14.1565 на релиз 8.3.14.1694.

Для легального доступа к дистрибутивам и обновлениям платформы и конфигураций 1С у вас должен быть действующий договор ИТС.

Мы можем помочь проверить его наличие и продлить. Ознакомиться с вариантами и ценами вы можете на нашем сайте в специальном разделе ИТС.

Если все условия соблюдены входим на страничку с обновлениями https://releases.1c.ru/total

входим на страничку с обновлениями 1С Предприятие 8

входим на страничку с обновлениями 1С Предприятие 8

входим на страничку с обновлениями 1С Предприятие 8

входим на страничку с обновлениями 1С Предприятие 8

Будет предложено скачать файл архива нужного нам дистрибутива: deb64_8_3_14_1694.tar.gz. Переносим его не сервер в отдельную папку пользователя, например «~/1cdistr» и распаковываем содержимое.

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

Далее запускаем терминал с правами суперпользователя, переходим в папку с дистрибами и одной командой устанавливаем сразу все пакеты 1С:Предприятие Сервер x64 Linux Debian / Ubuntu  поверх уже установленных:

sudo dpkg -i *.deb

одной командой устанавливаем сразу все пакеты 1С Предприятие Сервер x64 Linux Debian/Ubuntu

Проверяем и восстанавливаем зависимость пакетов:

apt-get install -f -y

Проверяем и восстанавливаем зависимость пакетов

Делаем рестарт сервера 1С Предриятие 8.3 и проверяем его статус:

service srv1cv83 restart
service srv1cv83 status

Делаем рестарт сервера 1С Предриятие 8.3 Linux Ubuntu

Если получаем состояние как на картинке выше «active«, то всё получилось по плану. Если получили что-то другое, то можно повторить всю процедура сначала, либо вы можете всегда обратиться к нам за помощью.

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

П.С. После обновления платформы 1С и проверки баз данных одна из них выдала вот такое неожиданное сообщение:

{Справочник ВерсииРзсширений МодупьМенеджера(113)} Ошибка при получении значения атрибута контекста (ВерсияРасширений)
ВерсияРасширений = ПараметрыСеанса ВерсияРасширений. по причине:
{Справочник ВерсииРэсширений МодупьМенеджера(26)}: Ошибка при установке значения атрибута контекста (ВерсияРасширений)
ПараметрыСеанса ВерсияРасширений = ВерсияРасширений(). по причине:
Несоответствие типов

Ошибка после обновления платформы 1С Предприятие 8.3 в конфигурации ЗУП 3.1

Хотя при этом никаких расширений в данной базе ЗУП не установлено, решается это чисткой кеша на рабочем месте пользователя. Как почистить кеш 1С вы можете прочитать в нашей отдельной публикации.

Для обновления и установки 1С Предприятие версии 8.3.18 читайте отдельную публикацию.

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Yakovin

Дата регистрации: 19.02.2007
Сообщений: 49

«Всем, здравствуйте!!! После обновления конфы с 1.6.25.6 до 1.6.25.9 с одного компьютера не получается открыть бухгалтерию, при этом появляется ошибка:<br><br>{ОбщийМодуль.ПолныеПрава(16)}: Ошибка при установке значения атрибута контекста (ТекущийПользователь): Несоответствие типов<br>ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь; по причине:<br>Несоответствие типов<br><br>Данная ошибка появляется при попытке войти под любым пользователем. Причем с любого другого компьютера и под любым пользователем данная база ОТКРЫВАЕТСЯ без проблем.<br><br>Я пробовал переустанавливать платформу, пробовал заново накатывать обновления, но ничего не помогает. База находится в корне сетевого диска. После повторной переустановки обновлений, базу также сохранил и в папке BACKUP, и в неё войти удалось. Т.е. на диске 2 одинаковые базы, одна в корне, другая в папке BACKUP, с проблемного компьютера удаётся войти только во вторую.<br><br>Платформа 8.1.15.14<br><br>Очень нужна Ваша помощь!!! Заранее всем огромное спасибо! «

BelikovS

Дата регистрации: 05.03.2007
Сообщений: 1701

Удалите базу из списка и добавьте снова или почистите кэш …:Documents and Settings…Local SettingsApplication Data1C1Cv81

Yakovin

Дата регистрации: 19.02.2007
Сообщений: 49

Показывать по
10
20
40
сообщений

Ошибка при получении значения атрибута контекста (ТекущийПользователь)

bless18
06.04.2010 09:32 Прочитано: 50070

Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Пользователь = ПараметрыСеанса.ТекущийПользователь;
по причине:
Попытка получения неинициализированного значения параметра сеансаКод 1C v 8.х

 Процедура ПриНачалеРаботыСистемы()
Пользователь = ПараметрыСеанса.ТекущийПользователь;
Если обЗначениеНеЗаполнено(Пользователь.Сотрудник) Тогда
ИмяПользователя = СокрЛП(Пользователь.Наименование);
Иначе
ИмяПользователя = СокрЛП(Пользователь.Сотрудник.Наименование);
КонецЕсли;
Предупреждение("Здравствуйте уважаемый пользователь """+ИмяПользователя+"""
|Система готова к работе.", 3);
КонецПроцедуры

Где происходит их инициализация?

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
06.04.2010 09:48 Ответ № 1

Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
так же в процедуре ПриНачалеРаботыСистемы пишешь что то типо:
Код 1C v 8.х

 ИмяПользователя = ИмяПользователя();
Если Не ПустаяСтрока(ИмяПользователя) Тогда
ТекущийПользователь = Справочники.Пользователи.НайтиПоКоду(ИмяПользователя);
КонецЕсли;
ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;

Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код

bless18
06.04.2010 09:56 Ответ № 2

А если не совпадают, можно как-нибудб привязать пользователя к сотруднику?

E_Migachev
06.04.2010 09:57 Ответ № 3

А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса)

В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают:

Код 1C v 8.х

 Процедура УстановкаПараметровСеанса()
Спр = Справочники.Сотрудники;
ПараметрыСеанса.ТекущийПользователь=Спр.НайтиПоРеквизиту("Пользователь1С", ИмяПользователя());
КонецПроцедуры
//где Пользователь1С, это реквизит справочника сотрудники, и именем как вбито в конфигураторе

Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы.

Ну а дальше подставлять сопоставленное значение при создании соответствующего документа:

Код 1C v 8.х

  Док.Пользователь=ПараметрыСеанса.Пользователь;   

События модуля сеанса:
Глобальный контекст
УстановкаПараметровСеанса (SessionParametersSetting)
Синтаксис:
УстановкаПараметровСеанса(<Требуемые параметры>)
Параметры:
<Требуемые параметры>
Тип: Массив; Неопределено. Массив устанавливаемых идентификаторов параметров сеанса, которые нужно инициализировать, если обработчик вызывается перед использованием неинициализированных параметров сеанса.
Неопределено, если обработчик события вызывается системой при начале сеанса или при захвате соединения из пула.
Описание:
Событие предназначено для инициализации параметров сеанса.
Вызывается системой:
при установке соединения с информационной базой или при захвате соединения с информационной базой из пула до вызова всех остальных обработчиков. Значение параметра «Параметры сеанса» — Неопределено;
перед фактическим использованием значений параметров сеанса, которые не были инициализированы ранее. В этом случае значением параметра «Параметры сеанса» является массив идентификаторов неинициализированных параметров сеанса, значения которых используются. Если после выполнения обработчика хотя бы один из перечисленных параметров сеанса остается неинициализированным, то возникает исключение.

bless18
06.04.2010 12:13 Ответ № 4

Спасибо вам огромное! Вы мне очень помогли!

bless18
06.04.2010 12:15 Ответ № 5

Спасибо вам огромное! Вы мне очень помогли!

E_Migachev
06.04.2010 15:44 Ответ № 6

Пожалуйста )

Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!

Понравилась статья? Поделить с друзьями:
  • Ошибка при установке значения атрибута контекста value
  • Ошибка при установке значения атрибута контекста 1с xdto
  • Ошибка при установке защищенного соединения firefox как исправить
  • Ошибка при установке загрузчика ubuntu
  • Ошибка при установке если у вас прошивка на базе miui lucky patcher