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

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

bless18
06.04.2010 09:32 Прочитано: 31377
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Пользователь = ПараметрыСеанса.ТекущийПользователь;
по причине:
Попытка получения неинициализированного значения параметра сеанса

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

Yandex
Возможно, вас также заинтересует
E_Migachev
06.04.2010 09:48 Ответ № 1
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
так же в процедуре ПриНачалеРаботыСистемы пишешь что то типо:

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

bless18
06.04.2010 09:56 Ответ № 2
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику?
E_Migachev
06.04.2010 09:57 Ответ № 3
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса)

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

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

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

События модуля сеанса:
Глобальный контекст
УстановкаПараметровСеанса (SessionParametersSetting)
Синтаксис:
УстановкаПараметровСеанса(<Требуемые параметры>)
Параметры:
<Требуемые параметры>
Тип: Массив; Неопределено.

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

Массив устанавливаемых идентификаторов параметров сеанса, которые нужно инициализировать, если обработчик вызывается перед использованием неинициализированных параметров сеанса.
Неопределено, если обработчик события вызывается системой при начале сеанса или при захвате соединения из пула.
Описание:
Событие предназначено для инициализации параметров сеанса.
Вызывается системой:
при установке соединения с информационной базой или при захвате соединения с информационной базой из пула до вызова всех остальных обработчиков. Значение параметра "Параметры сеанса" — Неопределено;
перед фактическим использованием значений параметров сеанса, которые не были инициализированы ранее. В этом случае значением параметра "Параметры сеанса" является массив идентификаторов неинициализированных параметров сеанса, значения которых используются. Если после выполнения обработчика хотя бы один из перечисленных параметров сеанса остается неинициализированным, то возникает исключение.

bless18
06.04.2010 12:13 Ответ № 4
Спасибо вам огромное! Вы мне очень помогли!
bless18
06.04.2010 12:15 Ответ № 5
Спасибо вам огромное! Вы мне очень помогли!
Подсказка: Для быстрого поиска ответов — используйте ‘Поиск’

Несоответствие типов (параметр номер ‘1’)

Я
Sanr231 После обновления конфигурации 1с упрощенка 8 до версии 8.3.10.2580 платформы и 3.0.52.42 конфигурации при создании счета вылезла ошибка:
Несоответствие типов (параметр номер ‘1’)
в отладчике:
{ОбщийМодуль.РегламентныеЗаданияСервер.Модуль(838)}: Ошибка при вызове метода контекста (НайтиПоУникальномуИдентификатору)         РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); по причине: Несоответствие типов (параметр номер ‘1’) На этом мои познания в программировании 1с заканчиваются. Где собака закопана?
 
     Heckfy У тебя Идентификатор имеет тип НЕ УНИКАЛЬНЫЙИДЕНТИФИКАТОР.
А нужно что бы был УникальныйИдентификатор.

МенеджерРегламентныхЗаданий (ScheduledJobsManager)НайтиПоУникальномуИдентификатору (FindByUUID)
Синтаксис:

НайтиПоУникальномуИдентификатору(<Идентификатор>)
Параметры:

<Идентификатор> (обязательный) Тип: УникальныйИдентификатор.
Идентификатор регламентного задания.
Возвращаемое значение:

Тип: РегламентноеЗадание; Неопределено.
Если задание для заданного идентификатора не найдено, возвращает Неопределено.
Описание:

Осуществляет поиск регламентного задания по уникальному идентификатору. Получение регламентного задания возможно только для администратора.

Доступность:

Сервер, толстый клиент, внешнее соединение.    Sanr231

Соответственно, что мне нужно сделать?

   Heckfy

Присвоить переменной Идентификатор тип УникальныйИдентификатор. 🙂

   Sanr231

Так заводская конфигурация и модуль только для чтения.

   СамыйУмный

(4) А ну тогда все..ничего не сделать

   Sanr231 Функция ПолучитьРегламентноеЗадание(Знач Идентификатор) Экспорт          ВызватьИсключениеЕслиНетПраваАдминистрирования();          Если ТипЗнч(Идентификатор) = Тип("РегламентноеЗадание") Тогда         Идентификатор = Идентификатор.УникальныйИдентификатор;     КонецЕсли;          Если ТипЗнч(Идентификатор) = Тип("УникальныйИдентификаторИдентификатор") Тогда         Идентификатор = Новый УникальныйИдентификатор(Идентификатор);     КонецЕсли;          Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда         РегламентноеЗадание = РегламентныеЗадания.НайтиПредопределенное(Идентификатор);     Иначе         РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);     КонецЕсли;          Если РегламентноеЗадание = Неопределено Тогда         ВызватьИсключение( НСтр("ru = ‘Регламентное задание не найдено.                                       |Возможно, оно удалено другим пользователем.’") );     КонецЕсли;    Sanr231

Вот весь текст модуля. Где исправить идентификатор?

   X Leshiy

(0) Кэш чистил?

   Sanr231

Чистил

   ildary

(9) выгрузку-загрузку базы делал?

 
     h-sp

(8) тии сделай

   Sanr231

Выгрузку загрузку — не делал.
А что такое тии?

   h-sp

тестирование и исправление в конфигураторе

   X Leshiy

(12) Тааак. А как ты чистил кэш?

   Sanr231 Тестирование  и  исправление запускал.

C:\Users\1\AppData\Roaming\1C\1Cv82
C:\Users\1\AppData\Local\1C\1Cv82
Из них грохнул папки с длинными названиями Еще пробовал через \ClearCache и тонкий клиент    Sanr231

Выгрузил — загрузил. Все равно так-же.

   Heckfy

Пройдись отладчиком, что у тебя в функцию передается? ИМХО, неопределено. И проблема не на самом деле не здесь, а при создании счета.

   Sanr231 {ОбщийМодуль.РегламентныеЗаданияСервер.Модуль(838)}: Ошибка при вызове метода контекста (НайтиПоУникальномуИдентификатору)         РегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); по причине: Несоответствие типов (параметр номер ‘1’) Это в отладчике    Sanr231

Как посмотреть, что в функцию передается?

   Sanr231

Проблема была в расположении информационной базы. Перенес в корень другого диска. Все завелось))))

   h-sp

(20) это значит кэш.

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

про кэш наврал.

   mr_K

Как говАривала Алиса "все чудесатее и чудесатее")

   Heckfy

(21) Не обязательно. Скорее всего на клиенте почистил. 🙂

 

Наведи порядок в своей работе используя конфигурацию 1C "Управление IT-отделом 8"

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

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

Я
DGorgoN {ОбщийМодуль.ПолныеПрава(16)}: Ошибка при установке значения атрибута контекста (ПравилаРегистрацииОбъектов): Несоответствие типов ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь; Не понял, мне параметры сеанса менять? Впервые с таким багом сталкиваюсь.. 
     DGorgoN ИмяПользователя = ИмяПользователя(); Если ПустаяСтрока(ИмяПользователя) Тогда // пользователь не авторизовался ИмяПользователя = "НеАвторизован"; КонецЕсли; ТекущийПользователь = Справочники.Пользователи.ПустаяСсылка(); Если НЕ ПустаяСтрока(ИмяПользователя) Тогда ТекущийПользователь = Справочники.Пользователи.НайтиПоКоду(ИмяПользователя); КонецЕсли; ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;    DGorgoN

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

   bazvan

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

   DGorgoN

Релиз 1.6.25.5 на 1.6.25.6

   DGorgoN

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

   DGorgoN

Ап

   hhhh

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

   Дикообразко

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

   Дикообразко

план обмена?

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

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

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

   DGorgoN

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

   DGorgoN

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

   Дикообразко

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

   Дикообразко

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

   DGorgoN

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

   Дикообразко

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

   kitt

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

   DGorgoN Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) // инициализация параметра сеанса "ТекущийПользователь" ПолныеПрава.УстановитьПараметрСеансаТекущийПользователь(); Вот сюда вот входит и далее сваливается 🙁    DGorgoN

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

   DGorgoN

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

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

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

   Дикообразко

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

   hhhh

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

   DGorgoN

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

   DGorgoN

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

   DGorgoN

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

   DailyLookingOnSunset Это была засада.

Ошибка при получении значения атрибута контекста (Организация)

Комментарий из БП ..25.6 "" // В этом случае почитим в ""

   DGorgoN

(29) Хахаха

   DGorgoN // Процедура вызывается перед записью документа // Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; // Посчитать суммы документа и записать ее в соответствующий реквизит шапки для показа в журналах СуммаДокумента = УчетНДС.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "Товары"); // В этом случае почитим в табличных частях поля НомерГТД и СтранаПроисхождения.    DGorgoN

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

   DGorgoN

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

 
 

 

Наведи порядок в своей работе используя конфигурацию 1C "Управление IT-отделом 8"

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.