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
сообщений

Добрый день,
После подключения расширения4.89
e (и то же самое для 4.91e), при наличии в конфигурации БСП версии 2.4.6.78, при попыткевхода любого пользователя без административных прав возникает ошибка:

Платформа: 1С:Предприятие 8.3 (8.3.12.1685)

Ошибки:
———————————————————————————
26.04.2019 10:21:38
{Справочник.ВерсииРасширений.МодульМенеджера(130)}: Ошибка
при получении значения атрибута контекста (ВерсияРасширений)
ВерсияРасширений
= ПараметрыСеанса.ВерсияРасширений;
по причине:
{Справочник.ВерсииРасширений.МодульМенеджера(458)}: Ошибка
при вызове метода контекста (Записать)
Объект.Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{Справочник.ИдентификаторыОбъектовРасширений.МодульМенеджера(107)}:
Ошибка при получении значения атрибута контекста (ВерсияРасширений)
Запрос.УстановитьПараметр(«ВерсияРасширений»,
ПараметрыСеанса.ВерсияРасширений);
по причине:
Попытка получения неинициализированного значения параметра
сеанса

Под полными правами вбазу заходит. Но при попытке открыть любой элемент справочника возникает ошибка:
{Справочник.ИдентификаторыОбъектовРасширений.МодульМенеджера(107)}:
Ошибка при получении значения атрибута контекста (ВерсияРасширений)
Запрос.УстановитьПараметр(«ВерсияРасширений»,
ПараметрыСеанса.ВерсияРасширений);
по причине:
{Справочник.ВерсииРасширений.МодульМенеджера(458)}: Ошибка
при вызове метода контекста (Записать)
Объект.Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{Справочник.ИдентификаторыОбъектовРасширений.МодульМенеджера(107)}:
Ошибка при получении значения атрибута контекста (ВерсияРасширений)
Запрос.УстановитьПараметр(«ВерсияРасширений»,
ПараметрыСеанса.ВерсияРасширений);
по причине:
Попытка получения неинициализированного значения параметра
сеанса

Пришлось пока что отключатьрасширение через конфигуратор. Дальше попробовал удалить записи справочника
Версии расширений и РС Идентификаторы объектов версий расширений, после чего
запустить базу с параметром /С ЗапуститьОбновлениеИнформационнойБазы. Теперь в
базу заходит, но при попытке открыть элемент справочника следующая ошибка:

Ошибки:
———————————————————————————
26.04.2019 11:46:37
Переполнение стека встроенного языка на сервере
по причине:

Справочник.нсиКонтрагенты.Форма.ФормаЭлемента.Форма : 26 :
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ОбщийМодуль.ВерсионированиеОбъектов.Модуль : 106 : Объект =
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяМетаданных);
ОбщийМодуль.ОбщегоНазначения.Модуль : 3181 : Возврат
Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных);
Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера
: 612 : Возврат
СтандартныеПодсистемыПовтИсп.ИдентификаторОбъектаМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
Инфо:

Платформа: 8.3.12.1685
Режим БД: клиент-серверный
Конфигурация. Название: 1С:MDM Управление нормативно справочной информацией, редакция 2.0 (2.0.4.1)
Конфигурация. Основной режим запуска: Управляемое приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим совместимости: Версия8_3_10
Конфигурация. Версия БСП: 2.4.6.78
Инструменты разработчика. Версия: Портативные 4.89p
Инструменты разработчика. Объекты на сервере: Да
Инструменты разработчика. Серверный модуль: Да
Клиент. ОС: Windows x86 Microsoft Windows 7 version 6.1 Service Pack 1 (Build 7601)
Клиент. Приложение: Обычное приложение 32б
Клиент. От имени администратора Windows: Нет
Клиент. Текущий язык системы: ru
Сервер. ОС: Windows x86-64 Microsoft Windows 8.1 version 6.3  (Build 9600)

Добавлено (26.04.2019, 12:01)
———————————————
В общем, похоже, что несколько запусков обработки БСП ОбновлениеВспомогательныхДанных.epf помогло. Если ещё возникнут проблемы, напишу.

Коллеги, добрый день. Прошу помощи!

Жили были две базы УТ и БП.

В УТ в расширении доработан «план обмена через универсальный формат», добавлена ТЧ с кассами и изменена форма настройки.

Теперь при попытке удалить в БП существовавший ранее план обмена,  с установленной галкой «Удалить настройку так же и в программе Управление торговлей», выдаёт ошибку.

https://yadi.sk/i/cQW7hhS-OsktOQ

А при снятии галки и выполнении первого обмена, тоже ошибка.

https://yadi.sk/i/17jlMEq7zLk_yw

Коллега пошутил «Может в БП тоже надо расширение», но теперь я тоже думаю, может и в БП надо расширение?

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Здравствуйте. 1С:Предприятие 8.3 (8.3.12.1790), Комплексная автоматизация 2 (2.4.10.75)
При установке расширения по вашей инструкции, при попытке запуска 1С в режиме предприятия выходит такая ошибка:

«
{Справочник.ВерсииРасширений.МодульМенеджера(151)}: Ошибка при получении значения атрибута контекста (ВерсияРасширений)
ВерсияРасширений = ПараметрыСеанса.ВерсияРасширений;
по причине:
Ошибка инициализации модуля: ОбщийМодуль.УправлениеДоступомСлужебный.Модуль
по причине:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(15466,11)}: Процедура или функция с указанным именем не определена (ПроверитьБит)
Если <<?>>ПроверитьБит(БлокЧастиНомера, НомерБита) Тогда
«

Если встраиваю в конфигурацию не через расширение, тогда после отработки мастера настройки в режиме предприятия выходит ошибка:

«
Поле объекта не обнаружено (документ_ТелефонныйЗвонок)
«

Подскажите куда копать?
Спасибо.

Изменено: vovhik2011@gmail.com06.03.2020 07:36:41

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

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

Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Пользователь = ПараметрыСеанса.ТекущийПользователь;
по причине:
Попытка получения неинициализированного значения параметра сеансаКод 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

Пожалуйста )

Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .

Понравилась статья? Поделить с друзьями:
  • 1с ошибка при печати этикеток
  • 1с ошибка при печати недостаточно памяти
  • 1с ошибка при обновлении риб
  • 1с ошибка при обновлении недопустимое состояние объекта
  • 1с ошибка при обновлении метод объекта не обнаружен