Как быть с атрибутом пользователя ПользовательОС |
Я |
11.01.07 — 18:03
Господа, помогите, я уже на пределе.
У пользователя атрибут ПользовательОС не считывается, выдает ошибку:
Ошибка при получении значения атрибута контекста (ПользовательОС), хотя в конфигураторе все нормально показывает: Неудачная попытка найти имя пользователя ОС по системному идентификатору
С другой стороны и установить я ее не могу, выдает ошибку.
А как вообще должна выглядеть строка, так: DOMENLOGIN или как?
Парюсь не-по-детски.
1 — 11.01.07 — 18:20
Зы, по ходу разобрался, дожно быть \DOMENLOGIN
2 — 12.01.07 — 10:34
Пардон, господа, разобрался не до конца.
Как получить идентификатор из реквизита ПользовательОС, т.е. там хранится ГУИД, а мне нужно типа \DOMENLOGIN
Простое считывание УЗ.ПользовательОС выдает ошибку: Неудачная попытка найти имя пользователя ОС по системному идентификатору
3 — 12.01.07 — 13:07
АутентификацияОС
А это свойство у тебя установлено?
4 — 12.01.07 — 14:25
(3) Да, установлено. Я научился устанавливать виндоус-аутентификацию, но не могу прочитать текущего пользователя (пишу конфу по назначению прав пользователям в разных базах, их у нас штук 40). Нужно прочиттаь начальное состояние.
5 — 12.01.07 — 18:05
апп
6 — 15.01.07 — 10:27
upp
7 — 15.01.07 — 10:28
а головой постучать?
8 — 15.01.07 — 10:46
(7) не помогает
9 — 15.01.07 — 17:01
Ну поможыте же кто-нибудь, придется все логины винды переписывать…
Кстатти обработка «manage users» с проклаба тоже не показывает пользователя ОС.
10 — 15.01.07 — 17:26
ну же, знатоки!
11 — 15.01.07 — 17:40
(2) хм, а я то думал SID
12 — 15.01.07 — 18:10
Использовать ВК или скрипт, смотреть MSDN на предмет функции типа FindDomainUserByXXX()
13 — 15.01.07 — 18:34
(12) а почему 1це это не умеет, это у всех не умеет (запустите обработку с проклаба «manage users», она не показывает пользователя, или только у меня на 12 релизе, при моей структуре домена???
14 — 15.01.07 — 18:37
(13) Уточни вопрос. Что нужно получить на выходе?
15 — 15.01.07 — 18:42
1С хранит ссылку на пользователя домена (или просто компьютера) в виде GUID. Это самый обычный GUID, являющийся UID пользователя в некой среде. Каждый раз, когда в списке пользователей ты обращаешься к этой ссылке, в текущей системе производится поиск имени пользователя по GUID. В случае, если ссылка разрешена, имя и домен отображаются.
Если в домене удалить юзера, либо лишить ваш компьютер доступа к домену, на пользователя которого указывала ссылка, ядро 1С не сможет разрешить ссылку и покажет GUID.
Существует множество решений на Дельфи или на С++, которые помогают вытащить ссылку на юзера по его UID (или SID).
16 — 15.01.07 — 18:44
а еще интересно, как 1С разрешает эту ссылку. Может кто посмотрит таблицу импорта 1С-ки на предмет интересных функций?
17 — 15.01.07 — 21:09
странно , у меня для локального юзера выдает \CFSexcadmin:
МассивЮзеров=ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого Юзер Из МассивЮзеров Цикл
Сообщить(Юзер.ПользовательОС);
КонецЦикла;
1С:Предприятие 8.0 (8.0.16.2)
18 — 15.01.07 — 22:03
19 — 16.01.07 — 10:06
(17) У меня на 12-м релизе не работает этот код, выдает вот такую хрень:
{Форма.Форма(7)}: Ошибка при получении значения атрибута контекста (ПользовательОС): Неудачная попытка найти имя пользователя ОС по системному идентификатору
Сообщить(Юзер.ПользовательОС);
по причине:
Неудачная попытка найти имя пользователя ОС по системному идентификатору
Модератор
20 — 16.01.07 — 10:10
(19) Почему такой древний релиз? На дворе уже 17, кажись
Гений 1С
21 — 16.01.07 — 10:11
(20) Проверил, на 8.1 работает. Релиз не от меня зависит… окей, дело именно в релизе. Вопрос исчерпан.
Как быть с атрибутом пользователя ПользовательОС |
Я |
Гений 1С
11.01.07 — 18:03
Господа, помогите, я уже на пределе.
У пользователя атрибут ПользовательОС не считывается, выдает ошибку:
Ошибка при получении значения атрибута контекста (ПользовательОС), хотя в конфигураторе все нормально показывает: Неудачная попытка найти имя пользователя ОС по системному идентификатору
С другой стороны и установить я ее не могу, выдает ошибку.
А как вообще должна выглядеть строка, так: DOMENLOGIN или как?
Парюсь не-по-детски.
Гений 1С
1 — 11.01.07 — 18:20
Зы, по ходу разобрался, дожно быть DOMENLOGIN
Гений 1С
2 — 12.01.07 — 10:34
Пардон, господа, разобрался не до конца.
Как получить идентификатор из реквизита ПользовательОС, т.е. там хранится ГУИД, а мне нужно типа DOMENLOGIN
Простое считывание УЗ.ПользовательОС выдает ошибку: Неудачная попытка найти имя пользователя ОС по системному идентификатору
ABCD
3 — 12.01.07 — 13:07
АутентификацияОС
А это свойство у тебя установлено?
Гений 1С
4 — 12.01.07 — 14:25
(3) Да, установлено. Я научился устанавливать виндоус-аутентификацию, но не могу прочитать текущего пользователя (пишу конфу по назначению прав пользователям в разных базах, их у нас штук 40). Нужно прочиттаь начальное состояние.
Гений 1С
5 — 12.01.07 — 18:05
апп
Гений 1С
6 — 15.01.07 — 10:27
upp
а лю 427
7 — 15.01.07 — 10:28
а головой постучать?
Гений 1С
8 — 15.01.07 — 10:46
(7) не помогает
Гений 1С
9 — 15.01.07 — 17:01
Ну поможыте же кто-нибудь, придется все логины винды переписывать…
Кстатти обработка «manage users» с проклаба тоже не показывает пользователя ОС.
Гений 1С
10 — 15.01.07 — 17:26
ну же, знатоки!
Terv
11 — 15.01.07 — 17:40
(2) хм, а я то думал SID
shachneff
12 — 15.01.07 — 18:10
Использовать ВК или скрипт, смотреть MSDN на предмет функции типа FindDomainUserByXXX()
Гений 1С
13 — 15.01.07 — 18:34
(12) а почему 1це это не умеет, это у всех не умеет (запустите обработку с проклаба «manage users», она не показывает пользователя, или только у меня на 12 релизе, при моей структуре домена???
shachneff
14 — 15.01.07 — 18:37
(13) Уточни вопрос. Что нужно получить на выходе?
shachneff
15 — 15.01.07 — 18:42
1С хранит ссылку на пользователя домена (или просто компьютера) в виде GUID. Это самый обычный GUID, являющийся UID пользователя в некой среде. Каждый раз, когда в списке пользователей ты обращаешься к этой ссылке, в текущей системе производится поиск имени пользователя по GUID. В случае, если ссылка разрешена, имя и домен отображаются.
Если в домене удалить юзера, либо лишить ваш компьютер доступа к домену, на пользователя которого указывала ссылка, ядро 1С не сможет разрешить ссылку и покажет GUID.
Существует множество решений на Дельфи или на С++, которые помогают вытащить ссылку на юзера по его UID (или SID).
shachneff
16 — 15.01.07 — 18:44
а еще интересно, как 1С разрешает эту ссылку. Может кто посмотрит таблицу импорта 1С-ки на предмет интересных функций?
shuhard
17 — 15.01.07 — 21:09
странно , у меня для локального юзера выдает CFSexcadmin:
МассивЮзеров=ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого Юзер Из МассивЮзеров Цикл
Сообщить(Юзер.ПользовательОС);
КонецЦикла;
1С:Предприятие 8.0 (8.0.16.2)
shuhard
18 — 15.01.07 — 22:03
Гений 1С
19 — 16.01.07 — 10:06
(17) У меня на 12-м релизе не работает этот код, выдает вот такую хрень:
{Форма.Форма(7)}: Ошибка при получении значения атрибута контекста (ПользовательОС): Неудачная попытка найти имя пользователя ОС по системному идентификатору
Сообщить(Юзер.ПользовательОС);
по причине:
Неудачная попытка найти имя пользователя ОС по системному идентификатору
Волшебник
Модератор
20 — 16.01.07 — 10:10
(19) Почему такой древний релиз? На дворе уже 17, кажись
Гений 1С
21 — 16.01.07 — 10:11
(20) Проверил, на 8.1 работает. Релиз не от меня зависит… окей, дело именно в релизе. Вопрос исчерпан.
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Создание пользователя
Автор lonselot, 21 сен 2015, 22:22
0 Пользователей и 1 гость просматривают эту тему.
Не создается новый пользователь. Учебная версия — 1С:Предприятие 8.3, учебная версия (8.3.5.1248).
Ошибка :
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{ОбщийМодуль.Пользователи.Модуль(1107)}: Ошибка при получении значения атрибута контекста (ПользовательОС)
Если Приемник[Свойство] <> ЗначениеСвойства Тогда
по причине:
Информация о пользователях операционной системы недоступна
Видимо вы его создаете с галочкой «Аутентификация операционной системы» создавайте с «Аутентификация 1С Предприятие»
Цитата: SkyNetYar от 21 сен 2015, 23:28
Видимо вы его создаете с галочкой «Аутентификация операционной системы» создавайте с «Аутентификация 1С Предприятие»
Аутентификация ОС отключена, стоит аутентификация 1с все равно ошибка.
Может в уч.версии нельзя пользователей создавать?
А ну да учебная же..
ОГРАНИЧЕНИЯ И ОСОБЕННОСТИ УЧЕБНОЙ ВЕРСИИ
ограничено количество данных:
максимальное количество записей в таблицах счетов 500;
максимальное количество записей в главных таблицах объектов 200;
количество записей в табличных частях объектов 1000;
количество записей в наборах записей 1000;
не поддерживается работа в варианте клиент-сервер;
не поддерживается работа распределенных информационных баз;
не поддерживается COM-соединение;
отсутствует возможность использования паролей и аутентификации операционной системы для пользователей;
печать и сохранение табличных документов поддерживаются только в режиме Конфигуратора;
не поддерживается копирование содержимого более чем одной ячейки табличного документа в режиме «1С:Предприятия»;
быстродействие учебной версии ниже, чем у коммерческой версии «1С:Предприятие 8.2»;
не поддерживается работа с хранилищем конфигурации;
не доступна функциональность, связанная с поставкой конфигурации;
количество одновременных сеансов работы с информационной базой ограничено одним сеансом.
Теги:
- Форум 1С
- ►
Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4 - ►
Установка и администрирование 1С Предприятие 8 - ►
Создание пользователя
Похожие темы (5)
Поиск
Господа, помогите, я уже на пределе. У пользователя атрибут ПользовательОС не считывается, выдает ошибку: Ошибка при получении значения атрибута контекста (ПользовательОС), хотя в конфигураторе все нормально показывает: Неудачная попытка найти имя пользователя ОС по системному идентификатору С другой стороны и установить я ее не могу, выдает ошибку. А как вообще должна выглядеть строка, так: DOMENLOGIN или как? Парюсь не-по-детски.
Зы, по ходу разобрался, дожно быть DOMENLOGIN
Пардон, господа, разобрался не до конца. Как получить идентификатор из реквизита ПользовательОС, т.е. там хранится ГУИД, а мне нужно типа DOMENLOGIN Простое считывание УЗ.ПользовательОС выдает ошибку: Неудачная попытка найти имя пользователя ОС по системному идентификатору
АутентификацияОС А это свойство у тебя установлено?
Да, установлено. Я научился устанавливать виндоус-аутентификацию, но не могу прочитать текущего пользователя (пишу конфу по назначению прав пользователям в разных базах, их у нас штук 40). Нужно прочиттаь начальное состояние.
Ну поможыте же кто-нибудь, придется все логины винды переписывать… Кстатти обработка «manage users» с проклаба тоже не показывает пользователя ОС.
Использовать ВК или скрипт, смотреть MSDN на предмет функции типа FindDomainUserByXXX
а почему 1це это не умеет, это у всех не умеет (запустите обработку с проклаба «manage users», она не показывает пользователя, или только у меня на 12 релизе, при моей структуре домена???
Уточни вопрос. Что нужно получить на выходе?
1С хранит ссылку на пользователя домена (или просто компьютера) в виде GUID. Это самый обычный GUID, являющийся UID пользователя в некой среде. Каждый раз, когда в списке пользователей ты обращаешься к этой ссылке, в текущей системе производится поиск имени пользователя по GUID. В случае, если ссылка разрешена, имя и домен отображаются. Если в домене удалить юзера, либо лишить ваш компьютер доступа к домену, на пользователя которого указывала ссылка, ядро 1С не сможет разрешить ссылку и покажет GUID. Существует множество решений на Дельфи или на С++, которые помогают вытащить ссылку на юзера по его UID (или SID).
а еще интересно, как 1С разрешает эту ссылку. Может кто посмотрит таблицу импорта 1С-ки на предмет интересных функций?
странно , у меня для локального юзера выдает CFSexcadmin:
и я не один такой удачливый
У меня на 12-м релизе не работает этот код, выдает вот такую хрень: {Форма.Форма}: Ошибка при получении значения атрибута контекста (ПользовательОС): Неудачная попытка найти имя пользователя ОС по системному идентификатору по причине: Неудачная попытка найти имя пользователя ОС по системному идентификатору
Почему такой древний релиз? На дворе уже 17, кажись
Проверил, на 8.1 работает. Релиз не от меня зависит… окей, дело именно в релизе. Вопрос исчерпан.
Тэги:
Комментарии доступны только авторизированным пользователям
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
bless18 |
|
||
---|---|---|---|
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Где происходит их инициализация? |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код |
bless18 |
|
||
---|---|---|---|
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику? |
E_Migachev |
|
||
---|---|---|---|
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса) В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают: Код 1C v 8.х
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы. Ну а дальше подставлять сопоставленное значение при создании соответствующего документа: Код 1C v 8.х
События модуля сеанса: |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
E_Migachev |
|
||
---|---|---|---|
Пожалуйста |
Подсказка: Вы получили ответ на свой вопрос — закройте вопрос! |
Ошибка в 1С 8. Ошибка при получении значения атрибута контекста (ОсновнаяРоль), Недопустимо использование свойства ОсновнаяРоль
Описание ошибки:
Проблема стала возникать после того, как в серверную базу УТ 10.3 был добавлен функционал Библиотеки МДЛП. Ошибка не проявляла себя явно при работе в режиме 1С: Предприятие, но негативно влияла на выполнение некоторых регламентных заданий, так что они аварийно прерывались.
Найденные решения:
{ОбщийМодуль.Пользователи.Модуль(116)}: Ошибка при получении значения атрибута контекста (ОсновнаяРоль)
по причине:
Недопустимо использование свойства «ОсновнаяРоль»
Проблема стала заметна случайно лишь тогда, когда в частности регламентное фоновое задание «Наличие новых ЭД» стало прерываться в процессе своего выполнения из за ошибки.
Рис. 1. Пример ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» в регламентном задании «Наличие новых эд в сервисе ЭДО«
Так же и в другом регламентном задании стала проявляться ошибка «Ошибка при получении значения атрибута контекста (ОсновнаяРоль) по причине: Недопустимо использование свойства «ОсновнаяРоль».
Рис. 2. Пример ошибки «Недопустимо использование свойства «ОсновнаяРоль» в регламентном задании «Выполнение обмена по сценарию…»
Удивителен тот факт, что код «Метаданные.ОсновнаяРоль» вполне нормальный. Т.е. конструкция вызывается в конфигураторе при конфигурировании как свойство объекта «Метаданные». Так же не возникает ошибок при проверка кода при сохранении изменений конфигурации.
Нажатие на изображении увеличит его
Рис. 3. Причина ошибки в коде, конструкция «Метаданные.ОсновнаяРоль = Неопределено».
Релиз используемой платформы 1С в базе, в которой возникла проблема — 8.3.18.1741
Рис. 4. Сведения о конфигурации, версии платформы и параметры конфигурации.
Удивительно, что описание данного свойства «ОсновнаяРоль» отсутствует в Синтакс-помощнике. Хотя, как уже было коротко упомянуто, свойство «ОсновнаяРоль» глобального свойства «Метеданные» используется в библиотеке МДЛП. Исходно основное назначение библиотеки — для конфигураций, работающих в режиме управляемого приложения. Конфигурация 1С: Управление торговлей 10.3 работает в другом режиме — обычного приложения. Поэтому получается, что конструкция кода эксплуатируется в редко используемой библиотеке и ее работоспособность не совсем понятна в текущем релизе платформы.
В сети оказалось достаточно мало вспомогательной информации об этой ошибке. Из найденного, что может кому-то помочь — это обсуждение на форуме forum.1c.ru «После обновления на 2.0.15.8 выпадает ошибка: Недопустимо использование свойства «ОсновнаяРоль».
Поэтому возможно, но это только неподтвержденное предположение, что метод работает только в конфигурациях, работающих в режиме управляемого приложения, т.к. о нем отсутствует какая-либо информация в официальной методике — «Синтакс-помощнике». Поскольку упоминание проблемы с «ОсновнаяРоль» и ее актуальное решение по приведенной выше ссылке действует для конфигурации 1С: Деньги, которая работает исключительно в режиме обычного приложения (интерфейса).
Рис. 5. Отсутствие в «Синтакс-помощнике» описания метода «ОсновнаяРоль»
Поэтому решением данной проблемы стало изменение кода на конструкцию: Метаданные.ОсновныеРоли.Количество()
Нажатие на изображении увеличит его
Рис. 6. Устранение ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» заменой текста кода.
Таким образом код стал актуальным для исполнения и в дальнейшем не вызывал ошибку.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
21-07-2022
Журавлев А.С.
(Сайт azhur-c.ru)
Всем привет.
Скачал учебную версию 1С 8.3 с официального сайта, поставил, развернул демо-базу «Управление небольшой фирмой», и вот что он мне выдает при запуске под пользователем «Администратор»:
Платформа: 1С:Предприятие 8.3, учебная версия (8.3.4.482)
Конфигурация: Управление небольшой фирмой (учебная), редакция 1.4 (1.4.8.7) (http://v8.1c.ru/small/)
Copyright © ООО «1C», 2012. Все права защищены
(http://www.1c.ru)
Режим: Файловый (без сжатия)
Приложение: Тонкий клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Версия 8.2
Ошибки:
———————————————————————————
21.10.2014 12:55:03
{ОбщийМодуль.Пользователи.Модуль(620)}: Ошибка при вызове метода контекста (Записать)
Пользователь.Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{ОбщийМодуль.Пользователи.Модуль(1138)}: Ошибка при получении значения атрибута контекста (ПользовательОС)
ЗначениеСвойства = Источник[Свойство];
по причине:
Информация о пользователях операционной системы недоступна
ОС: Win 8.1 Professional, x64. Запуск проводится в режиме совместимости с Win 8.
Обращение в ТП по адресу «hline@1c.ru»результатов не дало, т.к. они, по всей видимости, с частными пользователями не работают, только с организациями. Кто-нибудь сталкивался с похожей проблемой? Попытка найти решение в поисковиках дала результат «у вас битый релиз, скачайте новый», только вот где его взять, раз на официальном сайте он проблемный
При этом, демо-конфигурация «8 занятий» запускается без проблем.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Всем привет.
Скачал учебную версию 1С 8.3 с официального сайта, поставил, развернул демо-базу «Управление небольшой фирмой», и вот что он мне выдает при запуске под пользователем «Администратор»:
Платформа: 1С:Предприятие 8.3, учебная версия (8.3.4.482)
Конфигурация: Управление небольшой фирмой (учебная), редакция 1.4 (1.4.8.7) (http://v8.1c.ru/small/)
Copyright © ООО «1C», 2012. Все права защищены
(http://www.1c.ru)
Режим: Файловый (без сжатия)
Приложение: Тонкий клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Версия 8.2
Ошибки:
———————————————————————————
21.10.2014 12:55:03
{ОбщийМодуль.Пользователи.Модуль(620)}: Ошибка при вызове метода контекста (Записать)
Пользователь.Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{ОбщийМодуль.Пользователи.Модуль(1138)}: Ошибка при получении значения атрибута контекста (ПользовательОС)
ЗначениеСвойства = Источник[Свойство];
по причине:
Информация о пользователях операционной системы недоступна
ОС: Win 8.1 Professional, x64. Запуск проводится в режиме совместимости с Win 8.
Обращение в ТП по адресу «hline@1c.ru»результатов не дало, т.к. они, по всей видимости, с частными пользователями не работают, только с организациями. Кто-нибудь сталкивался с похожей проблемой? Попытка найти решение в поисковиках дала результат «у вас битый релиз, скачайте новый», только вот где его взять, раз на официальном сайте он проблемный
При этом, демо-конфигурация «8 занятий» запускается без проблем.
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
bless18 |
|
||
---|---|---|---|
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Пользователь = ПараметрыСеанса.ТекущийПользователь; по причине: Попытка получения неинициализированного значения параметра сеансаКод 1C v 8.х
Где происходит их инициализация? |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
так же в процедуре ПриНачалеРаботыСистемы пишешь что то типо: Код 1C v 8.х
Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код |
bless18 |
|
||
---|---|---|---|
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику? |
E_Migachev |
|
||
---|---|---|---|
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса)
В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают: Код 1C v 8.х
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы. Ну а дальше подставлять сопоставленное значение при создании соответствующего документа: Код 1C v 8.х
События модуля сеанса: |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
E_Migachev |
|
||
---|---|---|---|
Пожалуйста |
Подсказка: Вы получили ответ на свой вопрос — закройте вопрос! |