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

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

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

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

Пожалуйста )

Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку
   julia_rostov

29.01.13 — 11:05

Всем привет, при обновлении бух база рухнула, восстановили, теперь ситуация не лучше. Копирую ее в другую папку, тупо делаю копию.Копия не открывается!! Несоответствие типов. Буду рада если поможете или подскажете

   Aleksey

1 — 29.01.13 — 11:06

взять бекап, который делала перед обновлением

   Aleksey

2 — 29.01.13 — 11:07

Подсказываю

ВСЕГДА (!) делай бекапы, даже если ты «всего лишь добавил одну строку»

   julia_rostov

3 — 29.01.13 — 11:08

Да спасибо.Бекап не сохранился, согласна что глупо с моей стороны. Ну вот так.Вот такая ошибка{ОбщийМодуль.ПолныеПрава.Модуль(16)}: Ошибка при установке значения атрибута контекста (ТекущийПользователь)

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

по причине:

Несоответствие типов

   aka AMIGO

4 — 29.01.13 — 11:09

(0) движок какой?

   julia_rostov

5 — 29.01.13 — 11:10

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

Бухгалтерия предприятия, редакция 2.0 (2.0.44.7)

   Aleksey

6 — 29.01.13 — 11:10

(3) кэш чисти

   Случайный прохожий

7 — 29.01.13 — 11:10

Ничего страшного, все поправимо. Конфа типовая?

   julia_rostov

8 — 29.01.13 — 11:11

расскажите пожалуйста как почистить кэш

   julia_rostov

9 — 29.01.13 — 11:11

Да типовая

   Sammo

10 — 29.01.13 — 11:13

(8) В поиск. КЛючевые слова «динамическое обновление» «почистить кэш»

Кстати, а Текущийпользователь как находится?

   ИС-2

11 — 29.01.13 — 11:16

конфигуратор запускается? Тестировани и исправление прогоните.

Для очистки кэша достаточно просто удалить и вновь добавить базу в список

   julia_rostov

12 — 29.01.13 — 11:21

удаляла и добаляла в список заново.Не помогло. Конфигуратор запускаеться. буду пробовать тестирование иисправление

   Aleksey

13 — 29.01.13 — 11:21

если база не большая , то закомментируй все ошибки

И тупо типовой обработкой перенести все данные в чистую базу

   Случайный прохожий

14 — 29.01.13 — 11:24

А что за пользователь под которым заходишь? Попробуй под новым. Не мешало бы отладчиком проверить значение переменной «ТекущийПользователь». Скорей всего там тип «Неопределено», а должен быть СправочникСсылка.

   julia_rostov

15 — 29.01.13 — 11:24

Пока база вроде бы тестируеться и исправляеться какие еще способы и предложения есть???

   julia_rostov

16 — 29.01.13 — 11:28

тестирование и исправление копии прервано. копия не запускаеться

((((((((

   le_

17 — 29.01.13 — 11:29

(16) Пригласите специалиста.

   julia_rostov

18 — 29.01.13 — 11:30

специалист сидит рядом, собственно

   Aleksey

19 — 29.01.13 — 11:30

(16) Хоть на копии делала, или опять «копировать — это время запущу так, хуже не будет»

   Aleksey

20 — 29.01.13 — 11:31

Пробуй (13)

   le_

21 — 29.01.13 — 11:31

(18) Выгоните этого самозванца и пригласите настоящего специалиста.

   julia_rostov

22 — 29.01.13 — 11:31

на копии делала. Смысл в чем, база лежит на сервере. Делаю копию с сервера, пытаюсь запустить не получается выдает ошибку (3)

   julia_rostov

23 — 29.01.13 — 11:32

Не получаеться сделать копию. Сама база работает. проблема в том что резервную копию сделать нельзя.

   ИС-2

24 — 29.01.13 — 11:32

(18) значит нет. Я думаю было так — сидели и накатывали один релиз за другим, не запуская 1C предприятие. Прав?

   julia_rostov

25 — 29.01.13 — 11:34

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

   Плот

26 — 29.01.13 — 11:34

(23) А как вы делаете копию?

   julia_rostov

27 — 29.01.13 — 11:35

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

   hhhh

28 — 29.01.13 — 11:35

(23) наверно, кто-то работает в базе. Выгоньте всех пользователей и закройте все регламентные задания.

   julia_rostov

29 — 29.01.13 — 11:37

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

   Случайный прохожий

30 — 29.01.13 — 11:40

(29) Делайте копии загрузкой-выгрузкой данных (из конфигуратора). Иначе еще не раз пожалеете. А вдруг у вас SQL база, а вы так с ней…

   Плот

31 — 29.01.13 — 11:41

(29) А как вы ее восстановили после того как она «рухнула»?

   hhhh

32 — 29.01.13 — 11:41

(29) если файловая, то копируете только файл 1CD. И пробуете. ДОлжен запуститься.

   ladalk

33 — 29.01.13 — 11:46

chdbfl пробуйте, если файловая

   ladalk

34 — 29.01.13 — 11:46

на копии конечно же

   aka AMIGO

35 — 29.01.13 — 11:49

ИМХО — не мешало-бы 17-й движок поставить..

   julia_rostov

36 — 29.01.13 — 11:52

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

   ladalk

37 — 29.01.13 — 11:53

а если скопировать на локальный комп и уже на самой новой платформе попробовать?

   julia_rostov

38 — 29.01.13 — 11:53

пробовали

   zva

39 — 29.01.13 — 11:55

(0) Если в конфигураторе нового пользователя с полными правами создать, в режиме 1С предприятия под ним заходит?

   julia_rostov

40 — 29.01.13 — 11:58

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

   GROOVY

41 — 29.01.13 — 12:03

(36) У Вас база скульная?

   julia_rostov

42 — 29.01.13 — 12:03

база типовая конфигурация

бух

   zva

43 — 29.01.13 — 12:04

(40) ну выкладывайте на файлообменник, авось помогут…

   GROOVY

44 — 29.01.13 — 12:04

В папке с базой есть файл 1cv8.1cd?

   julia_rostov

45 — 29.01.13 — 12:06

нет такой папке в копии что делать?

   Эмбеддер

46 — 29.01.13 — 12:08

(36) это кэш

   GROOVY

47 — 29.01.13 — 12:10

(45) Содержимое папки напишите. Что там у Вас?

   Эмбеддер

48 — 29.01.13 — 12:10

46+ точнее у меня такое было когда конфигурация в базе испортилась (файл уменьшился в размере при переносе на флэшке пользователями). но она могла запускаться из-за кэша. я выгрузил базу на этом компе из этого пути и загрузил (какой-то универсальной выгрузкой)

   julia_rostov

49 — 29.01.13 — 12:15

1Cv8FTxt,1Cv8Log,1Cv8,1Cv8,1Cv8.cgr,1Cv8tmp,1Cv8tmp

   Aleksey

50 — 29.01.13 — 12:15

(24) Это вообще не пределах

   Popkorm

51 — 29.01.13 — 12:15

(45) эта не папка,это файлик 1cv8,через TotalComm будит = 1cv8.1cd

   Aleksey

52 — 29.01.13 — 12:17

(49)  я бы удалил бы все файлы для начало кроме 1cv8.1cd

   El_Duke

53 — 29.01.13 — 12:21

(49) дык самого файла базы получается нет у вас

где 1cv8.1cd девали ?

   julia_rostov

54 — 29.01.13 — 12:25

Этот файлик у меня есть1cv8.1cd . Но копия базы один хрен не запускаетьтся.Только он просто называеться 1cv8 без 1СD

   Privalov

55 — 29.01.13 — 12:29

(54)Размер какой?

   Lama12

56 — 29.01.13 — 12:30

(54) У Вас отключено в проводнике отображение расширения для зарегистрированных типов.

   MrStomak

57 — 29.01.13 — 12:32

Общие/ПараметрыСеанса/ТекущийПользователь — тип должен быть СправочникСсылка.Пользователи

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

Единственное объяснение, что база работает только из 1го места — она использует в том месте кеш вместо обращений к базе, которые приводят к ошибке.

   MrStomak

58 — 29.01.13 — 12:34

Ошибка определения еткущего пользователя может быть, если установлена длина кода в 0 у справочника пользователи

   H A D G E H O G s

59 — 29.01.13 — 12:34

Все больше и больше женщин лезут в ИТ, где им не место.

(0) Может лучше к плите и борщ?

   julia_rostov

60 — 29.01.13 — 12:37

Причем тут лезут в ИТ??? Проблема случилась ищу решение.Варить борщ я умею, кстати мужчины лучшие повара в мире)))) Я просто пытаюсь разобраться разве это плохо?

   H A D G E H O G s

61 — 29.01.13 — 12:39

(60) Да, плохо. Разбираться должен патлатый очкастый скучный мальчик, у которого в трудовой написано «Программист 1С». Не женское это дело — ИТ. Морковка не даст соврать.

   Надсмотрщик

62 — 29.01.13 — 12:41

(60) «Варить борщ я умею» — так же как и ОдинЭсить?

Бедный МУЖ и дети.    :-((

   julia_rostov

63 — 29.01.13 — 12:42

MRStomak все что описали я попробовала, не помогает,,(((((

   GROOVY

Модератор

64 — 29.01.13 — 12:42

Заканчиваем флуд

   Надсмотрщик

65 — 29.01.13 — 12:43

(63) Обратись к франчу, пока не поздно!!!

   hhhh

66 — 29.01.13 — 12:44

1Cv8.cgr — это значит, конфигуратор запущен. Он у вас на самом деле запущен?

   julia_rostov

67 — 29.01.13 — 12:46

Да запущен

   GROOVY

Модератор

68 — 29.01.13 — 12:47

Базу копируете не закрывая конфигуратор?

   shachneff

69 — 29.01.13 — 12:47

Самое интересное, что утром позвонила клиентка, с базой та же симптоматика, dt выгружается битый, обрушивая конфигуратор, пр и ТИИ — несоответсвие типов и т.п. Обновлялась автоматом вчера вечером.

И да, моя клиентка и топикстартер — разные люди :)

   julia_rostov

70 — 29.01.13 — 12:47

все закрываю и копирую.

   hhhh

71 — 29.01.13 — 12:48

(68) ну если пропуская этот 1Cv8.cgr, то легко

   julia_rostov

72 — 29.01.13 — 12:48

(69) Как решили проблему с клиенткой??

   Плот

73 — 29.01.13 — 12:49

(54) Понятие расширение файла Вам знакомо?

   shachneff

74 — 29.01.13 — 12:51

(72) Восстановил из бекапа недельной давности. Привел к единой версии, документы, которые успели ввести за последние дни, перетащил через xml стандартной обработкой. Отчетность руками переделает, там не много. Заняло 2 часа.

   GROOVY

Модератор

75 — 29.01.13 — 12:51

Если хотите гляну вашу базу.

Присылайте 1cd файл.

   julia_rostov

76 — 29.01.13 — 12:52

(74)У меня тоже бэкап недельной давности есть, но если я его положу взамен другого меня просто растерзают((

   MrStomak

77 — 29.01.13 — 12:52

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

   
   ИмяПользователя = ИмяПользователя();    

   Если ПустаяСтрока(ИмяПользователя) Тогда

       // пользователь не авторизовался

       ИмяПользователя = «НеАвторизован»;        

   КонецЕсли;    

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

   
   Если НЕ ПустаяСтрока(ИмяПользователя) Тогда

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

   КонецЕсли;        

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

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

Ошибка в этой процедуре? Код именно такой?

   julia_rostov

78 — 29.01.13 — 12:53

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

пишет ошибка тут

   MrStomak

79 — 29.01.13 — 12:54

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

   
   ИмяПользователя = ИмяПользователя();    

   Если ПустаяСтрока(ИмяПользователя) Тогда

       // пользователь не авторизовался

       ИмяПользователя = «НеАвторизован»;        

   КонецЕсли;    

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

   
   Если НЕ ПустаяСтрока(ИмяПользователя) Тогда

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

   КонецЕсли;        

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

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

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

   julia_rostov

80 — 29.01.13 — 12:57

Выдает просто ошибку Windows приложение будет закрыто!! режим отладки не запускает

   Случайный прохожий

81 — 29.01.13 — 12:58

Похоже что пользователя с кодом «НеАвторизован» нет в списке пользователей. Как вариант — можно создать обработкой и попробовать запуститься.

   GROOVY

82 — 29.01.13 — 12:59

Ну нет так нет…

   julia_rostov

83 — 29.01.13 — 13:01

Конечно хочу чтоб посмотрели, просто я отвлеклась. Куда кидать?

   GROOVY

Модератор

84 — 29.01.13 — 13:02

В почту, на файлообменник, могу фтп открыть.

   zva

85 — 29.01.13 — 13:04

В почту 1СD может не докинуть…

   GROOVY

86 — 29.01.13 — 13:04

Лучше всего архив с паролем на яндекс, а пароль в почту.

   MrStomak

87 — 29.01.13 — 13:22

(80) Так ошибка Windows или ошибка времени выполнения 1с? Или ошибка Windows только при запуске из конфигуратора?

   julia_rostov

88 — 29.01.13 — 13:25

ошибка Windows только при запуске из конфигуратора, в режиме 1с вообще не запускается

   julia_rostov

89 — 30.01.13 — 09:25

ВСЕМ СПАСИБО,БАЗА ВОССТАНОВЛЕНА.

   не_1Снег

90 — 30.01.13 — 09:27

и чего там было?

   LoraJ

91 — 30.01.13 — 09:31

2.0.44.7 предназначена для использования с версией системы 1С:Предприятие не ниже 8.2.17

  

ICWiner

92 — 30.01.13 — 09:31

Там побывал добрый-добрый GROOVY

Содержание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пожалуйста )

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

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

Я

  

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

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

Показывать по
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
сообщений

September 13 2016, 22:08

Category:

  • Общество
  • Cancel

_ИнспекторПоКадрам
На основе Подсистемы Кадры / ... — Выгрузил в описание и по тем же объектом проставил права
Настроил Интерфейс — тоже на основе Подсистемы
В Пользователях выбрать Интерфейс, Права, указать режим запуска — Обычное приложение (если Обычное)
Все роли открываются: Роли / Все роли.

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

Процедура ПроверитьВозможностьРаботыПользователя(Отказ) Экспорт

Если НЕ РольДоступна(«ПолныеПрава») И НЕ РольДоступна(«Бухгалтер») Тогда
//_Отказ = Истина;
#Если Клиент Тогда
//_Предупреждение(«У текущего пользователя нет доступных ролей, для запуска информационной базы.«, 10, «Недостаточно прав доступа»);
#КонецЕсли
КонецЕсли;
КонецПроцедуры

Потом включаем объекты, какие надо (документы — по отбору нужной Подсистемы, остальные можно вообще все включить)

Вызывается из Модуль обычного приложения / ПередНачаломРаботыСистемы()
Можно закомментить или еще как-то обойти: //_ УправлениеПользователями.ПроверитьВозможностьРаботыПользователя(Отказ);
Пишут про RLS (Record Level Security) или ограничение прав на уровне записи… но пока не до того
Выдает нарушение прав доступа из-за Модуля Обычного приложения:  ПервыйЗапуск = (Константы.НомерВерсииКонфигурации.Получить()=»»);
Еще и вылетает после этого…
Поставить у константы право Просмотр (заодно и Чтение ставится)

{МодульОбычногоПриложения(100)}: Ошибка при получении значения атрибута контекста (ТекущийПользователь)
Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда
по причине:
Нарушение прав доступа!
добавить ТекущийПользователь в ПараметрыСеанса, сэр (link) — еще —
Ставим Общие  / Параметры сеанса / Текущий пользователь — все права.

{МодульОбычногоПриложения(119)}: Ошибка при вызове метода контекста (Получить)
Если Константы.ПрименяемыеСистемыНалогообложения.Получить() = Перечисления.ПрименяемыеСистемыНалогообложения.УпрощеннаяСистемаНалогообложения Тогда
по причине:
Нарушение прав доступа!
Ставим права на все Константы Просмотр-Чтение.

{ОбщийМодуль.ОбщегоНазначения.Модуль(6881)}: Ошибка при вызове метода контекста (Выполнить)РезультатЗапроса = Запрос.Выполнить();
по причине: Недостаточно прав для работы с таблицей «Справочник.ВнешниеОбработки»
Ставим права на Справочники: Внешние обработки, Организации

МенеджерЗаписи в модуле Общего приложения:
{ОбщийМодуль.УправлениеПользователями.Модуль(135)}: Ошибка при вызове метода контекста (Записать)
МенеджерЗаписи.Записать(Истина);
по причине:
Нарушение прав доступа!
Это вот: МенеджерЗаписи = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи(); Стаим права на него
Опять параметры сеанса!… в окне (роли / Все роли) ставим на все …
Планы видов характеристик … Настройки пользователей …  на
Уже при запуске …

{МодульОбычногоПриложения(569)}: Ошибка при вызове метода контекста (ПолучитьФорму)
Форма = Обработки.ДополнительнаяИнформация.ПолучитьФорму(«ФормаРабочийСтол»);
по причине:
Нарушение прав доступа!
Справочник. Внешние обработки
На все обработки ставим

{ВнешняяОбработка.ИнтернетПоддержкаПользователей.МодульОбъекта(2041)}: Ошибка при вызове метода контекста (Следующий)
Пока Выборка.Следующий() Цикл
по причине: Нарушение прав доступа!
Можно конечно, до ума довести, но…  Короче, судя по всему, надо ставить права бухгалтера а уже потом убирать не нужные

Утро доброе. Установил 1с на новый компьютер, захожу под любым пользователем, выдает такую ошибку: {МодульПриложения}: Ошибка при установке значения атрибута контекста (***): Несоответствие типов В инете, нашел подобную проблему, только, приравнивание идет к ТекущийПользователь. Там проблема решается чисткой профиля в windows. А как решить, данную, проблему? Комп находиться на расстоянии, профиль почищу, как доберусь, просто хотел узнать, может загвоздка в другом.

Компьютер=Неопределено у тебя скорее всего.

Хм, база одна на 20 компов, проблема только с этим. Неопределенность смотреть в том же модуле?

Смотри  где определяется переменная Компьютер

Переменная Компьютер берется из запроса. Вот кусок кода:

Что будет, если Выборка.Следующий = Ложь?

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

Я же написал, что не могу проверить. У себя изменил, в тестовой, все работает.

может получится так, что в справочнике смсКомпьютеры нет наименования проблемного компьютера.

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

А как, по другому, имя компьютера там появится? =) Перед этим, устанавливал на другие компьютеры 1с, делал все тоже самое — все работает. У меня есть подозрение, что не порядки с правами в винде. С админами сейчас поговорю, они как раз, в том здании, где комп.

[А как, по другому, имя компьютера там появится? =)] Например, пользователь руками создаст элемент справочника. Для это нужно запустить приложение в режиме 1с:Предприятие.

Сейчас попробую. Просто не делал ни когда такого, не требовалось.

Справочник заполняется программой. Таки думаю, что с правами косяк.

так есть в справочнике элемент с наименованием того компьютера?

В справочнике нет наименования. Зашел в другую базу, с этого же сервера — все работает (правда не создавал нового пользователя в этой базе, зашел под админом). Зашел в другую базу, с другого сервера — аналогично, все работает. Не работает одна единственная база, хотя, базы, у которых идентичный код, с неработающей и находящиеся на том же сервере, так же работают. Добавил в справочник наименование компьютера. Пойду смотреть.

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

[Помогло добавление справочника.] Ну вообще это очевидно сразу было — первым делом проверить есть ли в этом справочнике элемент с именем этого компьютера;)

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

Тэги: 1С 8

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

Показывать по
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
сообщений

Читают тему:

Утро доброе. Установил 1с на новый компьютер, захожу под любым пользователем, выдает такую ошибку: {МодульПриложения}: Ошибка при установке значения атрибута контекста (***): Несоответствие типов В инете, нашел подобную проблему, только, приравнивание идет к ТекущийПользователь. Там проблема решается чисткой профиля в windows. А как решить, данную, проблему? Комп находиться на расстоянии, профиль почищу, как доберусь, просто хотел узнать, может загвоздка в другом.

Компьютер=Неопределено у тебя скорее всего.

Хм, база одна на 20 компов, проблема только с этим. Неопределенность смотреть в том же модуле?

Смотри  где определяется переменная Компьютер

Переменная Компьютер берется из запроса. Вот кусок кода:

Что будет, если Выборка.Следующий = Ложь?

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

Я же написал, что не могу проверить. У себя изменил, в тестовой, все работает.

может получится так, что в справочнике смсКомпьютеры нет наименования проблемного компьютера.

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

А как, по другому, имя компьютера там появится? =) Перед этим, устанавливал на другие компьютеры 1с, делал все тоже самое — все работает. У меня есть подозрение, что не порядки с правами в винде. С админами сейчас поговорю, они как раз, в том здании, где комп.

[А как, по другому, имя компьютера там появится? =)] Например, пользователь руками создаст элемент справочника. Для это нужно запустить приложение в режиме 1с:Предприятие.

Сейчас попробую. Просто не делал ни когда такого, не требовалось.

Справочник заполняется программой. Таки думаю, что с правами косяк.

так есть в справочнике элемент с наименованием того компьютера?

В справочнике нет наименования. Зашел в другую базу, с этого же сервера — все работает (правда не создавал нового пользователя в этой базе, зашел под админом). Зашел в другую базу, с другого сервера — аналогично, все работает. Не работает одна единственная база, хотя, базы, у которых идентичный код, с неработающей и находящиеся на том же сервере, так же работают. Добавил в справочник наименование компьютера. Пойду смотреть.

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

[Помогло добавление справочника.] Ну вообще это очевидно сразу было — первым делом проверить есть ли в этом справочнике элемент с именем этого компьютера;)

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

Тэги: 1С 8

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



  • Дата записи



    2018/12/30

Проблема в кэше 1C.

Файлы кэша располагаются в следующих каталогах:

Для Windows 7: «C:Users*.*AppDataLocal1C1Cv82» «C:Users*.*AppDataRoaming1C1Cv82»

Для WinXP «C:Documents and Settings*.*Application Data1C1Cv82» «C:Documents and Settings*.*Local SettingsApplication Data1C1Cv82»

Для устранения проблемы можно переименовать каталоги 1Cv82 в указанных выше папках и запустить 1С.

ВНИМАНИЕ: При удалении кэша могут пропасть некоторые настройки!

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