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

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

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

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

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

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

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

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

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

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

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

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

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

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

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Обновил БП, вылезла ошибка «Несоответствие типов»

Я

  

DGorgoN

16.07.10 — 08:52

{ОбщийМодуль.ПолныеПрава(16)}: Ошибка при установке значения атрибута контекста (ПравилаРегистрацииОбъектов): Несоответствие типов

   ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;

Не понял, мне параметры сеанса менять? Впервые с таким багом сталкиваюсь..

  

DGorgoN

1 — 16.07.10 — 08:53

ИмяПользователя = ИмяПользователя();    
   Если ПустаяСтрока(ИмяПользователя) Тогда
       // пользователь не авторизовался
       ИмяПользователя = «НеАвторизован»;        
   КонецЕсли;    

       ТекущийПользователь = Справочники.Пользователи.ПустаяСсылка();

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

       ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;

  

DGorgoN

2 — 16.07.10 — 08:53

ПараметрыСеанса.ТекущийПользователь это и есть СправочникСсылка.Пользователи

  

bazvan

3 — 16.07.10 — 08:54

что на что обновлял???

  

DGorgoN

4 — 16.07.10 — 08:55

Релиз 1.6.25.5 на 1.6.25.6

  

DGorgoN

5 — 16.07.10 — 08:56

Я сам глюк непонял — как несоответствие типов, если идет соответствие

  

DGorgoN

6 — 16.07.10 — 08:58

Ап

  

hhhh

7 — 16.07.10 — 09:00

отладчик же есть. Посмотри, чего там в этих полях.

  

Дикообразко

8 — 16.07.10 — 09:00

значения атрибута контекста (ПравилаРегистрацииОбъектов)

  

Дикообразко

9 — 16.07.10 — 09:00

план обмена?

  

DGorgoN

10 — 16.07.10 — 09:02

(8) Вот я всю ошибку написал и продедуру:

Процедура УстановитьПараметрСеансаТекущийПользователь() Экспорт

       ИмяПользователя = ИмяПользователя();    
   Если ПустаяСтрока(ИмяПользователя) Тогда
       // пользователь не авторизовался
       ИмяПользователя = «НеАвторизован»;        
   КонецЕсли;    

       ТекущийПользователь = Справочники.Пользователи.ПустаяСсылка();

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

       ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;

    КонецПроцедуры

  

Дикообразко

11 — 16.07.10 — 09:02

ПараметрыСеанса.ПравилаРегистрацииОбъектов ?

  

DGorgoN

12 — 16.07.10 — 09:02

ПараметрыСеанса.ТекущийПользователь

  

DGorgoN

13 — 16.07.10 — 09:03

Причем отладчиком смотрю — в ТекущийПользователь установлен текущий пользователь Оо

  

Дикообразко

14 — 16.07.10 — 09:03

(13) клиент-сервер?

  

Дикообразко

15 — 16.07.10 — 09:03

модуль сеанса зырь

  

DGorgoN

16 — 16.07.10 — 09:04

(15) да
(15) непонял.. (с 8-кой на вы еще пока)

  

Дикообразко

17 — 16.07.10 — 09:05

(16) вставай отладчиком и трассируй пока не вывалиться…
ибо сообщение об ошибки палевное какоето

  

kitt

18 — 16.07.10 — 09:07

Доступно и всерьез(с)

  

DGorgoN

19 — 16.07.10 — 09:07

Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)

       // инициализация параметра сеанса «ТекущийПользователь»
   ПолныеПрава.УстановитьПараметрСеансаТекущийПользователь();    

Вот сюда вот входит и далее сваливается :(

  

DGorgoN

20 — 16.07.10 — 09:09

Причем в «ПараметрыСеанса.ТекущийПользователь» — установлен именно справочник пользователь, что за песня..

  

DGorgoN

21 — 16.07.10 — 09:11

1.6.25.6 релиз у кого? Были подобные проблемы или нет?

  

Дикообразко

22 — 16.07.10 — 09:13

(21) скорее всего накосячил в обновление
либо востанови бэкап и обнови
либо выгрузи в файловый и трассирую
либо переведи сервер в режим отладки и трассируй

  

DGorgoN

23 — 16.07.10 — 09:14

Ужас на.
Полные права слетели не в полные — как страшно жить!

  

Дикообразко

24 — 16.07.10 — 09:15

а это все кривые руки виноваты

  

hhhh

25 — 16.07.10 — 09:15

(21) в 25.6 изменился только модуль персонифицированного учета. Всё остальное в точности совпадает с 25.5.

  

DGorgoN

26 — 16.07.10 — 09:16

В общем ПараметрыСеанса.ТекущийПользователь не было прав писать в данный объект, всего навсего.
Всем спасибо — тема закрыта

  

DGorgoN

27 — 16.07.10 — 09:16

(24) Так не было кривых рук, все по дефолту всегда ставилось, вообще не было изменений!

  

DGorgoN

28 — 16.07.10 — 09:16

Правда если начальник ничего не менял..

  

DailyLookingOnSunset

29 — 16.07.10 — 09:35

Это была засада. Комментарий из БП ..25.6

«»

// В этом случае почитим в

«»

  

DGorgoN

30 — 16.07.10 — 09:52

(29) Хахаха

  

DGorgoN

31 — 16.07.10 — 09:52

// Процедура вызывается перед записью документа
//
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

       Если ОбменДанными.Загрузка Тогда
       Возврат;
   КонецЕсли;

       // Посчитать суммы документа и записать ее в соответствующий реквизит шапки для показа в журналах
   СуммаДокумента = УчетНДС.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, «Товары»);

       // В этом случае почитим в табличных частях поля НомерГТД и СтранаПроисхождения.

  

DGorgoN

32 — 16.07.10 — 09:52

В 2-х местах встречаются, читеры блин..

  

DGorgoN

33 — 16.07.10 — 09:53

Реально в осадок выпал, оказалось в правах дело — ладно хоть догадался быстро

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

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

Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Пользователь = ПараметрыСеанса.ТекущийПользователь;
по причине:
Попытка получения неинициализированного значения параметра сеансаКод 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С 8.2 После обновления релиза с 2.0.65.38 на 39 не открывается база с текстом
{Общий Модуль. Полные Права. Модуль(22)}: Ошибка при установке значения атрибута контекста (ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = Константы.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей.Получить();
по причине:
Несоответствие типов
В конфигураторе открывается на строке:
Процедура УстановитьИзменяемыеПараметрыСеансаПользователя(Интерактивно = Ложь, Текст Результата = “”) Экспорт

ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = Константы.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей.Получить();
Текст Результата = Текст Результата + ” – обновлены данные прав доступа” + Символы.ПС;

Запрос = Новый Запрос;
Запрос. Установить Параметр(“Текущий Пользователь”, ПараметрыСеанса.ТекущийПользователь);

// Группы Текущего Пользователя
Запрос.Текст =
“ВЫБРАТЬ
| Справочник.ГруппыПользователей.Ссылка КАК Значение
|ИЗ
| Справочник. Группы Пользователей
|ГДЕ
| Справочник.ГруппыПользователей.ПользователиГруппы.Пользователь = &Текущий Пользователь
|”;
Массив = Запрос.Выполнить().Выгрузить().Выгрузить Колонку(“Значение”);
Массив.Добавить(Справочники.ГруппыПользователей.ВсеПользователи);
ПараметрыСеанса.ГруппыТекущегоПользователя = Новый Фиксированный Массив(Массив);
Текст Результата = Текст Результата + ” – обновлен состав групп текущего пользователя” + Символы.ПС;

УстановитьПараметрГраницыЗапретаИзмененияДанных();
Текст Результата = Текст Результата + ” – обновлены даты запрета изменения данных” + Символы.ПС;

// инициализация параметров сеанса, связанных с механизмом РИБ:
// ПрефиксУзлаРаспределеннойИнформационнойБазы, НаличиеОбменаДаннымиПоОрганизации
// Все Узлы Обмена По Организациям, СоответствиеОрганизацийИУзловОбменаПоОрганизации
// Использование РИБ
ОпределитьПараметрыСеансаДляОбменаДанными();
Текст Результата = Текст Результата + ” – обновлены параметры распределенной информационной базы” + Символы.ПС;

Параметры Сеанса. Общие Значения = Новый Хранилище Значения(Новый Структура);
Текст Результата = Текст Результата + ” – сброшен кэш значений текущего сеанса” + Символы.ПС;

УстановитьПараметрСеансаТекущиеУчетныеЗаписиНалогоплательщика();
Текст Результата = Текст Результата + ” – обновлен список учетных записей налогоплательщика, доступных текущему пользователю” + Символы.ПС;

Конец Процедуры
База ни разу не свертывалась с 2011 г. Файл .dt выгружается. Возможно ли восстановить базу в рабочее состояние?

Оцените, пожалуйста, данный вопрос:

Загрузка…

Дата публикации: Авг 5, 2016

Поставьте вашу оценку этой статье:

Загрузка…

{ОбщийМодуль.ПолныеПрава(1225)}: Ошибка при установке значения атрибута контекста (ПрефиксУзлаРаспределеннойИнформационнойБазы): Несоответствие типов    ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы = Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Получить; по причине:

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

у обоих — тип «строка», длина 3, допустимая длина «переменная», неограниченная длина «флага нет»

что выдает отладчик на Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Получить

у константы еще выбран «Автоматический режим управления блокировкой данных в транзакции по умолчанию», есть управляемый

подскажите пожалуйста, как запустить отладку, чтобы был результат? (установил «останавливаться на ошибках» — это все?)

Ошибка времени выполнения {ОбщийМодуль.ПолныеПрава(1225)}: Ошибка при установке значения атрибута контекста (ПрефиксУзлаРаспределеннойИнформационнойБазы): несоответствие типов в модуле ОбщийМодуль.ПолныеПрава, строка 1225

ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы = Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Получить;

поставить брекпоинт на эту строку (ф9 в конфигураторе) когда оно там тормознется выделить мышой Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Получить и нажать шифт ф9. если там не строка а какаято лажа то надо бы поправить ;)

стал выдавать вот-это: Ошибка СУБД: Не удалось зафиксировать таблицу для чтения ‘CONFIG’ по причине: Не удалось зафиксировать таблицу для чтения ‘CONFIG’

а вот тот же фокус с Параметром сеанса выдает: {}: Ошибка при получении значения атрибута контекста (ПрефиксУзлаРаспределеннойИнформационнойБазы): Попытка получения неинициализированного значения параметра сеанса

может это как-то связано с защитой (у меня CRM интегрирована в УПП), сверил с рабочим cf — тоже ничего

Тэги:

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

   bestuzhev

26.11.13 — 14:19

Вот решил посмотреть сабж, но не могу никак запустить. Выдает ошибку:

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

Конфигурация: Управление торговлей, редакция 11.1 (11.1.4.5) (http://v8.1c.ru/trade/)

Copyright © ООО «1C», 2003-2013. Все права защищены

(http://www.1c.ru)

Режим: Файловый (без сжатия)

Приложение: Толстый клиент

Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)

Вариант интерфейса: Версия 8.2

Ошибки:

———————————————————————————

26.11.2013 17:18:28

{ОбщийМодуль.СтандартныеПодсистемыВызовСервера.Модуль(35)}: Ошибка при получении значения атрибута контекста (ПараметрыКлиентаНаСервере)

    Если ПараметрыСеанса.ПараметрыКлиентаНаСервере.Количество() = 0 Тогда

по причине:

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

   Ерепень

1 — 26.11.13 — 14:23

ясно

   dj_serega

2 — 26.11.13 — 14:23

(1) +1

   grayshadow

3 — 26.11.13 — 14:24

афигенный релиз:)

   bestuzhev

4 — 26.11.13 — 14:29

Собственно из-за вот этого полез смотреть:

Добавлена функциональность бонусных программ лояльности.

-Бонусные программы лояльности предполагают начисление бонусных баллов, которые могут быть использованы для оплаты покупок.

-Бонусные баллы начисляются на карту лояльности клиента.

-При оплате покупки бонусные баллы пересчитываются в определенную сумму в соответствии с указанным для них курсом конвертации.

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

   grayshadow

5 — 26.11.13 — 14:34

ухтыж, сделали все-таки бонусы…

ну ради такого можно снять с поддержки и инициализировать параметр сеанса:)

   Aleksey

6 — 26.11.13 — 14:41

11.1.4.4 точно заускается

   Aleksey

7 — 26.11.13 — 15:01

Новый объект: ПланОбмена.ИнтеграцияС1СДокументооборотом

Новый объект: Документ.АктПриемкиКлиентом

Новый объект: Документ.КорректировкаНалогообложенияНДСПартийТоваров

Новый объект: Перечисление.ВариантыДействийПоРасхождениямВАктеПриемкеКлиента

Новый объект: Перечисление.СпособыОтраженияРасхожденийАктПриемкиКлиента

Новый объект: Перечисление.СтатусыАктаПриемкиКлиента

Новый объект: Константа.ИспользоватьАктыПриемкиКлиентом

Новый объект: Константа.ИспользоватьБюджетирование

Новый объект: РегистрНакопления.ПланыОплатКлиентов

Новый объект: РегистрНакопления.ПланыОплатПоставщикам

   Aleksey

8 — 26.11.13 — 15:07

Обновил до 11.1.4.5, подтверждаю, ошибка релиза

{ОбщийМодуль.СтандартныеПодсистемыВызовСервера.Модуль(35)}: Ошибка при получении значения атрибута контекста (ПараметрыКлиентаНаСервере)

    Если ПараметрыСеанса.ПараметрыКлиентаНаСервере.Количество() = 0 Тогда

по причине:

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

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

   y22-k

9 — 26.11.13 — 15:14

(0) ппц они там совсем что ли не проверяют ничего

   Aprobator

10 — 26.11.13 — 15:16

(0) не иначе от толстого клиента уже отказываются )

   dj_serega

11 — 26.11.13 — 15:17

(10) Кто-то определенно получит по шапке.

   saaken

12 — 26.11.13 — 15:28

(0) в модуль сеанса добавь одну процедуру, забыли параметры инициализировать, ничего страшного, тестовый релиз

   Aleksey

13 — 26.11.13 — 15:28

(10) так в тонком изапускаем

   saaken

14 — 26.11.13 — 15:28

(0) остальное работает

   Aleksey

15 — 26.11.13 — 15:31

(14) это вопрос или утверждение

   saaken

16 — 26.11.13 — 15:31

(0) в модуле сеанса добавь одну процедуру из прошлого релиза

   bestuzhev

17 — 26.11.13 — 16:20

(12) Ну раз уж написал, выложи для всех!

   saaken

18 — 26.11.13 — 16:31

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)

    
    // СтандартныеПодсистемы

    СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса);

    // Конец СтандартныеПодсистемы

    
КонецПроцедуры

#КонецЕсли

   Aprobator

19 — 27.11.13 — 09:52

(13) в (0) указано … Приложение: толстый клиент….

   Aleksey

20 — 27.11.13 — 13:45

(19) а прием тут это? У меня в тонком клиенте та же ошибка

   Trucker

21 — 27.11.13 — 14:37

Как утверждают разрабы, это связанно с ошибкой платформы.

   Aleksey

22 — 27.11.13 — 14:43

(21) т.е. платформа при старте похерила кусок кода?  Или в (18) были костыли для обхода бага платформы?

   hhhh

23 — 27.11.13 — 14:51

(22) похоже сравнение конфигураций криво работает. Постоянно какие-то глюки возникают, и в 8.2 тоже. А до 8.2.13 работало практически идеально.

   hhhh

24 — 27.11.13 — 14:54

(23)+ у меня вот в точности такой глюк был вчера, в 8.2, при обновлении БП. Это же: ПараметрыКлиентаНаСервере. Сравнил с конфигурацией поставщика: отличаются три модуля. Заменил, ошибка с параметрами сеанса исчезла.

   Trucker

25 — 27.11.13 — 14:59

(22) при обновлении код херится.

   Aleksey

26 — 27.11.13 — 15:29

Т.е. желательно иметь последний CF и накатывать методом загрузки конфигурации?

  

kotofeich1

27 — 29.11.13 — 11:44

(18) Большое спасибо!)

ПараметрыСеанса – ФиксированныйМассив видит только отладчик

Автор Deulin, 28 мая 2017, 08:50

0 Пользователей и 1 гость просматривают эту тему.

Чувствую себя идиотом.
Запускаю систему и при попытке прочитать уже инициализированный в прошлом сеансе ПараметрСеанса типа ФиксированныйМассив
выдаёт:
«Ошибка при получении атрибута контекста…»

Строка такая:

МассивГрупп[Индекс] = ПараметрыСеанса.ТекущиеГруппы.Получить(Индекс)

Параметр видится в отладчике, но очень хитрым способом!
Если вычислить выражение (шифт+F9) «ПараметрыСеанса.ТекущиеГруппы.Получить(Индекс)» или «ПараметрыСеанса.ТекущиеГруппы»
то получаем такую же ошибку.
(остальные параметры – не ФиксированныеМассивы – вычисляются нормально)

НО если сначала вычислить выражение (шифт+F9) «ПараметрыСеанса», то параметр заполнен и все данные верные.

Самое смешное, что после этого вычисления уже без проблем вычисляются(шифт+F9) «ПараметрыСеанса.ТекущиеГруппы.Получить(Индекс)»
и просто «ПараметрыСеанса.ТекущиеГруппы»

Вторые сутки уже пошли, весь стол в песке из глаз.
Друзья, ПАМАГИТЕ ПОЖАЛУЙСТА!

Хочешь стать профессионалом, общайся с ними.


В принципе можно при каждом запуске инициировать этот параметр и тогда он нормально читается, но «библия» подобные выходки осуждает:
https://its.1c.ru/db/metod8dev#content:3435:hdoc

Добавлено: 28 мая 2017, 12:34


ПолныеПрава тоже не дают эффекта.
Вариант работы Клиент-Сервер.
На сервере включена отладка.

Добавлено: 28 мая 2017, 12:39


Не в Модуле на сервере не в МодулеСеанса параметры сеанса типа ФиксированныйМассив получить невозможноui;;t;
Пожалуйста, если у кого-нибудь хоть раз в жизни получится прочитать ФиксированныйМассив из ПараметровСеанса, напишите сюда

Добавлено: 28 мая 2017, 12:56


УстановитьПривилегированныйРежим() тоже не помогает, если чё.

Хочешь стать профессионалом, общайся с ними.


Хочешь стать профессионалом, общайся с ними.


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