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

Содержание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я

  

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 — тоже ничего

Тэги:

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

Не работает с 1с 8.2 Бухгалтерия

Модераторы: Дмитрий Юхтимовский, Лысиков Денис

Не работает с 1с 8.2 Бухгалтерия

Не работает с 1с 8.2 Бухгалтерия Версия 3.0, а 2.0 работает. После объедения выдает ошибку {ОбщийМодуль.ПользователиКлиентСервер.Модуль(22)}: Ошибка при получении значения атрибута контекста (ТекущийПользователь)
Возврат ?(ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь),
по причине:
Попытка получения неинициализированного значения параметров

tanksod
 
Сообщений: 9
Зарегистрирован: 24 фев 2014, 12:38

Re: Не работает с 1с 8.2 Бухгалтерия

Сообщение Лысиков Денис » 27 фев 2014, 13:16

Здравствуйте! Проверьте каким образом Вы объединили модуль сеанса. Не удалили ли Вы оттуда типовые процедуры по инициализации параметров сеансов.

Лысиков Денис
 
Сообщений: 86
Зарегистрирован: 11 фев 2013, 21:46

Re: Не работает с 1с 8.2 Бухгалтерия

Сообщение tanksod » 27 фев 2014, 14:42

теперь вышла ошибка.
МодульСеанса(11,7)}: Переменная не определена (ТребуемыеПараметры)
Если <<?>>ТребуемыеПараметры = Неопределено ИЛИ ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда (Проверка: Сервер)
{МодульСеанса(11,45)}: Переменная не определена (ТребуемыеПараметры)
Если ТребуемыеПараметры = Неопределено ИЛИ <<?>>ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда (Проверка: Сервер)
сам модуль сеанса
// СтандартныеПодсистемы
СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса);
// Конец СтандартныеПодсистемы
// АПДЕКС

Если ТребуемыеПараметры = Неопределено ИЛИ ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда
ХранилищеЗначения = Новый ХранилищеЗначения(Новый Соответствие);
ПараметрыСеанса.APDEX_ТекущийЗамерВремени = ХранилищеЗначения;

APDEX_Настройки = APDEX_ОценкаПроизводительностиСерверВызовСервера.ПолучитьНастройки();
APDEX_НастройкиЗамеров = Новый Структура;
APDEX_НастройкиЗамеров.Вставить(«APDEX_ОтключитьЗамер»,APDEX_Настройки.APDEX_ОтключитьЗамер);
APDEX_НастройкиЗамеров.Вставить(«APDEX_МинимальноеВремяЗамера»,APDEX_Настройки.APDEX_МинимальноеВремяЗамера);
APDEX_НастройкиЗамеров.Вставить(«APDEX_ИдентификаторБазыAPDEX»,APDEX_Настройки.APDEX_ИдентификаторБазыAPDEX);
APDEX_НастройкиЗамеров.Вставить(«APDEX_СпособЗаписиЗамеров»,APDEX_Настройки.APDEX_СпособЗаписиЗамеров);

ПараметрыСеанса.APDEX_НастройкиЗамеров = Новый ФиксированнаяСтруктура(APDEX_НастройкиЗамеров);
КонецЕсли;

tanksod
 
Сообщений: 9
Зарегистрирован: 24 фев 2014, 12:38

Re: Не работает с 1с 8.2 Бухгалтерия

Сообщение Лысиков Денис » 28 фев 2014, 09:11

Если в типовой процедуре модуля сеансов не используется переменная ТребуемыеПараметры. тогда вообще удалите условие «Если ТребуемыеПараметры = Неопределено ИЛИ ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда» оставьте только следующий код:

ХранилищеЗначения = Новый ХранилищеЗначения(Новый Соответствие);
ПараметрыСеанса.APDEX_ТекущийЗамерВремени = ХранилищеЗначения;

APDEX_Настройки = APDEX_ОценкаПроизводительностиСерверВызовСервера.ПолучитьНастройки();
APDEX_НастройкиЗамеров = Новый Структура;
APDEX_НастройкиЗамеров.Вставить(«APDEX_ОтключитьЗамер»,APDEX_Настройки.APDEX_ОтключитьЗамер);
APDEX_НастройкиЗамеров.Вставить(«APDEX_МинимальноеВремяЗамера»,APDEX_Настройки.APDEX_МинимальноеВремяЗамера);
APDEX_НастройкиЗамеров.Вставить(«APDEX_ИдентификаторБазыAPDEX»,APDEX_Настройки.APDEX_ИдентификаторБазыAPDEX);
APDEX_НастройкиЗамеров.Вставить(«APDEX_СпособЗаписиЗамеров»,APDEX_Настройки.APDEX_СпособЗаписиЗамеров);

ПараметрыСеанса.APDEX_НастройкиЗамеров = Новый ФиксированнаяСтруктура(APDEX_НастройкиЗамеров);

Лысиков Денис
 
Сообщений: 86
Зарегистрирован: 11 фев 2013, 21:46

Re: Не работает с 1с 8.2 Бухгалтерия

Сообщение tanksod » 03 мар 2014, 09:46

спасибо большое. помагло :)

tanksod
 
Сообщений: 9
Зарегистрирован: 24 фев 2014, 12:38


Вернуться в APDEX — статистика длительности операций

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Содержание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Описание ошибки:
Проблема стала возникать после того, как в серверную базу УТ 10.3 был добавлен функционал Библиотеки МДЛП. Ошибка не проявляла себя явно при работе в режиме 1С: Предприятие, но негативно влияла на выполнение некоторых регламентных заданий, так что они аварийно прерывались.

Найденные решения:

{ОбщийМодуль.Пользователи.Модуль(116)}: Ошибка при получении значения атрибута контекста (ОсновнаяРоль)
по причине:
Недопустимо использование свойства «ОсновнаяРоль»

Проблема стала заметна случайно лишь тогда, когда в частности регламентное фоновое задание «Наличие новых ЭД» стало прерываться в процессе своего выполнения из за ошибки.

1С 8 как исправить ошибку при получении значения атрибута контекста ОсновнаяРоль
Рис. 1. Пример ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» в регламентном задании «Наличие новых эд в сервисе ЭДО« 

Так же и в другом регламентном задании стала проявляться ошибка «Ошибка при получении значения атрибута контекста (ОсновнаяРоль) по причине: Недопустимо использование свойства «ОсновнаяРоль».


Рис. 2. Пример ошибки «Недопустимо использование свойства «ОсновнаяРоль» в регламентном задании «Выполнение обмена по сценарию…»

Удивителен тот факт, что код «Метаданные.ОсновнаяРоль» вполне нормальный. Т.е. конструкция вызывается в конфигураторе при конфигурировании как свойство объекта «Метаданные». Так же не возникает ошибок при проверка кода при сохранении изменений конфигурации. 

Нажатие на изображении увеличит его

Рис. 3. Причина ошибки в коде, конструкция «Метаданные.ОсновнаяРоль = Неопределено».

Релиз используемой платформы 1С в базе, в которой возникла проблема — 8.3.18.1741


Рис. 4. Сведения о конфигурации, версии платформы и параметры конфигурации.

Удивительно, что описание данного свойства «ОсновнаяРоль» отсутствует в Синтакс-помощнике. Хотя, как уже было коротко упомянуто, свойство «ОсновнаяРоль» глобального свойства «Метеданные» используется в библиотеке МДЛП. Исходно основное назначение библиотеки — для конфигураций, работающих в режиме управляемого приложения. Конфигурация 1С: Управление торговлей 10.3 работает в другом режиме — обычного приложения. Поэтому получается, что конструкция кода эксплуатируется в редко используемой библиотеке и ее работоспособность не совсем понятна в текущем релизе платформы.

В сети оказалось достаточно мало вспомогательной информации об этой ошибке. Из найденного, что может кому-то помочь — это обсуждение на форуме forum.1c.ru «После обновления на 2.0.15.8 выпадает ошибка: Недопустимо использование свойства «ОсновнаяРоль».

Поэтому возможно, но это только неподтвержденное предположение, что метод работает только в конфигурациях, работающих в режиме управляемого приложения, т.к. о нем отсутствует какая-либо информация в официальной методике — «Синтакс-помощнике». Поскольку упоминание проблемы с «ОсновнаяРоль» и ее актуальное решение по приведенной выше ссылке действует для конфигурации 1С: Деньги, которая работает исключительно в режиме обычного приложения (интерфейса).

1С 8 свойство метода метаданные конфигурации ОсновнаяРоль
Рис. 5. Отсутствие в «Синтакс-помощнике» описания метода «ОсновнаяРоль»

Поэтому решением данной проблемы стало изменение кода на конструкцию: Метаданные.ОсновныеРоли.Количество()

Нажатие на изображении увеличит его

Рис. 6. Устранение ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» заменой текста кода.

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

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

21-07-2022

Журавлев А.С.
(Сайт azhur-c.ru)

  

LeoKeyn

26.12.22 — 13:28

Добрый день.

Подскажите, пожалуйста, делаю заполнение ТЧ обработки через ПостроительОтчетов и получаю ошибку Ошибка при получении значения атрибута контекста (Результат).Ожидается выражение «ВЫБРАТЬ».

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

В построителе текст запроса есть

ПередОткрытиемФормы

ТекстЗапроса = «ВЫБРАТЬ

                   |    ПродажиОбороты.Контрагент,

                   |    ПродажиОбороты.Контрагент.ИНН КАК ИНН,

                   |    ПродажиОбороты.Номенклатура,

                   |    ПродажиОбороты.Номенклатура.АЭ_ИдентификаторНаСайте КАК Идентификатор,

                   |    ПродажиОбороты.ЗаказПокупателя КАК Заказ,

                   |    ПродажиОбороты.ЗаказПокупателя.ДатаОтгрузки КАК ДатаНачала,

                   |    ВЫБОР

                   |        КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.ЗаказПокупателя) = ТИП(Документ.ЗаказПокупателя)

                   |            ТОГДА ПродажиОбороты.ЗаказПокупателя.ДатаЗакрытияЗаказа

                   |        ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

                   |    КОНЕЦ КАК ДатаКонца,

                   |    ПродажиОбороты.Номенклатура.Наименование,

                   |    ПродажиОбороты.Контрагент.Наименование

                   |{ВЫБРАТЬ

                   |    Контрагент.*,

                   |    ИНН,

                   |    Номенклатура.*,

                   |    Идентификатор,

                   |    Заказ.*,

                   |    ДатаНачала,

                   |    ДатаКонца,

                   |    НоменклатураНаименование,

                   |    КонтрагентНаименование}

                   |ИЗ

                   |    РегистрНакопления.Продажи.Обороты(&ДатаС, &ДатаПо, День, ) КАК ПродажиОбороты

                   |{ГДЕ

                   |    ПродажиОбороты.Контрагент.*,

                   |    ПродажиОбороты.Контрагент.ИНН КАК ИНН,

                   |    ПродажиОбороты.Номенклатура.*,

                   |    ПродажиОбороты.Номенклатура.АЭ_ИдентификаторНаСайте КАК ИдентификаторНаСайте,

                   |    ПродажиОбороты.ЗаказПокупателя.ДатаОтгрузки КАК ДатаОтгрузки,

                   |    (ВЫБОР

                   |            КОГДА ТИПЗНАЧЕНИЯ(ПродажиОбороты.ЗаказПокупателя) = ТИП(Документ.ЗаказПокупателя)

                   |                ТОГДА ПродажиОбороты.ЗаказПокупателя.ДатаЗакрытияЗаказа

                   |            ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

                   |        КОНЕЦ) КАК ДатаКонца,

                   |    ПродажиОбороты.ЗаказПокупателя.*}»;

        

    // Заполним настройки построителя на основании запроса

    ПостроительОтчета.Текст = ТекстЗапроса;    

    ПостроительОтчета.ЗаполнитьНастройки();

Далее делаю:

ПостроительОтчета.Параметры.Вставить(«ДатаС»,НачалоДня(ДатаС));

    ПостроительОтчета.Параметры.Вставить(«ДатаПо»,КонецДня(ДатаПо));

    ПостроительОтчета.Выполнить();

        

    Выгрузка = ПостроительОтчета.Результат.Выгрузить();

    Данные.Загрузить(Выгрузка);

Ошибка вылетает на этом моменте: Выгрузка = ПостроительОтчета.Результат.Выгрузить();

Konstantan

1 / 1 / 1

Регистрация: 11.05.2015

Сообщений: 74

1

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

11.10.2018, 12:33. Показов 5662. Ответов 3

Метки нет (Все метки)


1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Процедура УдалениеСтрокНажатие(Элемент)
    
    Запрос = Новый Запрос;  
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    Запрос.Текст =
    "ВЫБРАТЬ
    |   РеализацияТоваровУслугТовары.Ссылка
    |ИЗ
    |   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    |   РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура";
    
    Выборка = Запрос.Выполнить();
    МассивТоваров=новый Массив; 
    Значения= Выборка.Выбрать();
    Пока Значения.Следующий() Цикл
        ссылка = Значения.ссылка ;
        ДокументОбъект = ссылка.ПолучитьОбъект();
        i=0;
        Для каждого ТекСтрока Из ДокументОбъект.Товары Цикл
            Если ТекСтрока.Номенклатура = Номенклатура Тогда
                МассивТоваров.Добавить(ТекСтрока);
                Сообщить("Значение: "+ ТекСтрока.Номенклатура +" подходит!"); 
                i=i+1
            Иначе
                Сообщить("Значение: "+ТекСтрока.Номенклатура+ " не подходит!");
            КонецЕсли
        КонецЦикла;
        Для  каждого ТекСтрокаМас Из    МассивТоваров Цикл
            Если Вопрос("Удалить строку со значением  " + ТекСтрокаМас.Номенклатура + "?" ,РежимДиалогаВопрос.ДаНет,15)=КодВозвратаДиалога.Да Тогда
                
                
                ДокументОбъект.Товары.Удалить(ТекСтрокаМас);
                
                
                Сообщить("Строка удалена!");
            Иначе
                Сообщить("Отмена удаления!");
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    
    
КонецПроцедуры

Сначала выполняется удалет строки из первого документа потом на втором документе вылетает ошибка,что это значит помогите плиииз ничего не пойму

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

11.10.2018, 12:44

2

В каком месте то ошибка происходит?

0

856 / 655 / 111

Регистрация: 01.11.2012

Сообщений: 2,410

11.10.2018, 13:36

3

Полный текст ошибки выложите

0

Эксперт 1С

841 / 604 / 211

Регистрация: 24.07.2013

Сообщений: 2,101

11.10.2018, 20:10

4

Лучший ответ Сообщение было отмечено GreenkA как решение

Решение

Konstantan, МассивТоваров не очищается перед обработкой следующего документа.

2

 

Андрей Павлов

Заглянувший

Сообщений: 13
Авторитет:

0

Регистрация: 24.09.2014

При тестировании обработки столкнулись с ошибкой  «Нарушение прав доступа». Ошибка чаще всего возникает при использовании обработки в первые 15 минут после запуска клиента (тонкий/толстый).  
Обработка на основании даты регистрации партнера создает событие (звонок) и задачу к нему, исключение выпадает при попытке записи задачи созданной на основании события.
Тестирование выполнял на учетной записи с профилем стандартной роли «Менеджер по продажам»+ Mobile monitor. Под данной учетной записью в интерактивном режиме без проблем создавались как события так и задачи.
Версия:   1C:CRM, редакция 2.0 (2.0.8.4)
Сообщение ошибки:

по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
{ОбщийМодуль.ОбновлениеИнформационнойБазы.Модуль(20)}: Ошибка при получении значения атрибута контекста (ПараметрыКлиентаНаСервере)

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

 

Добрый день!
В какой момент появляется ошибка и если есть возможность пришлите обработку, которой Вы пользуетесь.

 

Андрей Павлов

Заглянувший

Сообщений: 13
Авторитет:

0

Регистрация: 24.09.2014

Добрый день!
Как вы просили, выкладываю файл с обработкой.

 

Мария Измайлова

Посетитель

Сообщений: 1177
Авторитет:

135

Регистрация: 09.11.2012

#4



0


01.10.2014 11:22:47

Цитата
Андрей Павлов пишет:
Добрый день!
Как вы просили, выкладываю файл с обработкой.

Спасибо.Передала разработчику.  Еще уточнение-Вы её запускаете под полными правами или нет?  Открываете через Главное меню-Файл-Открыть?

 

Андрей Павлов

Заглянувший

Сообщений: 13
Авторитет:

0

Регистрация: 24.09.2014

Обработку загружаю в базу как внешнюю, и пользователи запускают ее через свой интерфейс.
у пользователей права с шаблона «менеджер по продажам»

 

Мария Измайлова

Посетитель

Сообщений: 1177
Авторитет:

135

Регистрация: 09.11.2012

#6



0


01.10.2014 11:44:55

Цитата
Андрей Павлов пишет:
Обработку загружаю в базу как внешнюю, и пользователи запускают ее через свой интерфейс.
у пользователей права с шаблона «менеджер по продажам»

Передам разработчику. Если есть возможность обновитесь до релиза 2.0.8.6 и проверьте  в нём тоже.

 

Разработчик просил уточнить знаете ли Вы почему в обработке идет обращение к Обновлению в информационной базе? Вы писали обработку? Т.к. самая вероятная причина-это то,что у менеджера нет прав на выполнение обновления информационной базы, это право есть только у Администратора.

 

Андрей Павлов

Заглянувший

Сообщений: 13
Авторитет:

0

Регистрация: 24.09.2014

В обработке вообще нет обращений к модулям конфигурации, Единственное что делает обработка так это создает документ событие(звонок) и на его основании задание (личное). При записи задания и выскакивает ошибка с правами. В коде обработки я комментарий метку оставил.

 

Мария Измайлова

Посетитель

Сообщений: 1177
Авторитет:

135

Регистрация: 09.11.2012

#9



0


01.10.2014 13:20:13

Цитата
Андрей Павлов пишет:
В обработке вообще нет обращений к модулям конфигурации, Единственное что делает обработка так это создает документ событие(звонок) и на его основании задание (личное). При записи задания и выскакивает ошибка с правами. В коде обработки я комментарий метку оставил.

Хорошо, спасибо за ответ. Передам разработчику.

Изменено: Мария Измайлова01.10.2014 13:20:32

 

Андрей Павлов

Заглянувший

Сообщений: 13
Авторитет:

0

Регистрация: 24.09.2014

#10



0


08.10.2014 08:39:52

Мария, вы можете сообщить хотя бы примерные сроки решение проблемы?

 

Мария Измайлова

Посетитель

Сообщений: 1177
Авторитет:

135

Регистрация: 09.11.2012

#11



0


08.10.2014 10:13:10

Цитата
Андрей Павлов пишет:
Мария, вы можете сообщить хотя бы примерные сроки решение проблемы?

Добрый день!
Разработчик был очень занят, но сейчас занимается только Вашим вопросом. Как будет результат сразу Вам отпишется.

 

#12



0


08.10.2014 11:25:01

Ответ разработчика: ошибка не воспроизводится , необходима копия Вашей базы (файл .dt). Вышлите письмо на crm@rarus.ru с пометкой для Хотлайн, передать Кучерову Андрею ( в письме указываете ссылку на тему в форуме, а также ссылку на скачивание базы и данные для входа под тем пользователем,под которым появляется ошибка).

 

Андрей Павлов

Заглянувший

Сообщений: 13
Авторитет:

0

Регистрация: 24.09.2014

#13



0


08.10.2014 15:14:00

Я сомневаюсь что начальство даст разрешение отправить базу в 7 GB со всеми нашими данными.
Возможно ли решение проблемы без отсылки базы7

 

Наталья Полубенская

Посетитель

Сообщений: 698
Авторитет:

85

Регистрация: 30.01.2014

#14



0


09.10.2014 20:49:22

Добрый день, Андрей!

Цитата
Андрей Павлов пишет:
Я сомневаюсь что начальство даст разрешение отправить базу в 7 GB со всеми нашими данными.
Возможно ли решение проблемы без отсылки базы7

Мы бы рекомендовали Вам обратиться к разработчику данной внешней обработки. Или написать письмо на линию консультаций crm@raus.ru с описанием Вашей проблемы и ссылкой на ветку форума.

 

Андрей Павлов

Заглянувший

Сообщений: 13
Авторитет:

0

Регистрация: 24.09.2014

#15



0


13.10.2014 09:54:16

Добрый день, Наталья!

Разработчиком данной обработки являюсь я.
А в чем разница обращения через форум или почту?

 

Алексей Чаплыгин

Посетитель

Сообщений: 1018
Авторитет:

155

Регистрация: 19.02.2010

#16



0


13.10.2014 10:05:43

Добрый день, Андрей!

Разница в том, что на данном форуме не ведется техническая поддержка пользователей решений 1С:CRM.  Техническая поддержка пользователей ведется, согласно правилам поддержки решений 1С:CRM, по специализированным для этих целей каналам связи, а именно указанный выше адрес технической поддержки. Если у вас возникают сложности в использовании решения — постараемся помочь в их решении.

Спасибо за понимание!

Использую обработку ВыгрузкаЗагрузкаДанныхXML82.epf все документы выгружаються нормально,а на одном при попытке выгрузить выдает ошибку {ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта}: Ошибка при получении значения атрибута контекста (Результат)    РезультатЗапроса = ПостроительОтчета.Результат; по причине: по причине: вот что выдает Сообщить( ПостроительОтчета.Текст); » ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыЭК КАК _ » Откуда в ошибка берет «<<?>>В КАК В,»?

Потому что «*». З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь

З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь а я тут причем я обработку скачал «ВыгрузкаЗагрузкаДанныхXML82.epf»

я думаю, что не стоило называть реквизит «В»

а в чем * виновата то? другие документы же выгружает к примеру с таким запросом ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыМЭКСМО КАК _

да нашел в табличной части документа один реквезит так и называеться только вот теперь вопрос как нибудь можно это обойти? саму конфу изменить не могу, есть причины

написать запрос ручками, со своими алиасами полей

Тэги: 1С 8

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

В чем проблема выполнять элементарные операции

Я

  

zippygrill

11.01.12 — 09:35

Помогите понять по какой причине пользователь не может выполнять элементарные вычислении в базе.

Есть такая функция:

Функция СтеретьПервыеНули(Номер)

   рабСтрока = СокрЛП(Строка(Номер));

   ДлинаСтроки = СтрДлина(СокрЛП(Номер));

   Счетчик = 1;

   Пока Счетчик < ДлинаСтроки Цикл

       Если Лев(рабСтрока,1) = «0» Тогда

           рабСтрока = Прав(РабСтрока, СтрДлина(рабСтрока)-1);

           Счетчик = Счетчик +1;

       Иначе

           Прервать;

       КонецЕсли;    

   КонецЦикла;    

   Возврат рабСтрока;

КонецФункции    

{Форма.ФормаОтчета.Форма(471)}: Ошибка при получении значения атрибута контекста (Номер)

   рабСтрока = СокрЛП(Строка(Номер));

по причине:

по причине:

У пользователя недостаточно прав на исполнение операции над базой данных.

Наверное даже у пользователя с праввами «Пользователь» это код будет выполнятся.

  

Wobland

1 — 11.01.12 — 09:36

переименуй параметр

  

wladimir90

2 — 11.01.12 — 09:37

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

  

zippygrill

3 — 11.01.12 — 09:39

(1)да переименовал. было парСтрока стало Номер :)

(2)УПП типовая. права менеджера

Это во внешнем отчете. и еще как отладить под этим пользователем если ему не положено открыть внешние обработки/отчеты.

  

Defender aka LINN

4 — 11.01.12 — 09:42

Кэп говорит, что в параметр «Номер» передается какая-то ссылка.

  

zippygrill

5 — 11.01.12 — 09:44

сейчас перепроверю слова Кэпа.

  

zippygrill

6 — 11.01.12 — 09:46

отлаживаю под моим именем. там действительно передается Номер документа.

  

Defender aka LINN

7 — 11.01.12 — 09:49

(6) А зачем ты его в строку преобразовываешь?

  

YF

8 — 11.01.12 — 09:51

СтеретьПервыеНули(Знач Номер)?

  

zippygrill

9 — 11.01.12 — 09:53

(8) не понял

(7) привык. можно без, сейчас проверю.

  

YF

10 — 11.01.12 — 09:54

(9) Передавай пареметр по значению (если функция самописная)

  

zippygrill

11 — 11.01.12 — 10:05

(10) делаем успехи ))) тепери понятнее стало. Пользователь не может прочесть номер дока.

{Форма.ФормаОтчета.Форма(231)}: Ошибка при получении значения атрибута контекста (Номер)

           новаяСтрока.Номер = СтеретьПервыеНули(Строка.Регистратор.Номер);        

по причине:

по причине:

У пользователя недостаточно прав на исполнение операции над базой данных.

  

zippygrill

12 — 11.01.12 — 10:31

получается что в коде обращаясь к Строка.Регистратор.Номер выдавало ошибку о недостаточных прав. понятие не имею почему, может обясните?

Сделал по другому …. получаю номер в запросе и потом вызываю мою функцию. Сработало.

  

YF

13 — 11.01.12 — 10:31

(12) А права-то на чтение документа есть?

  

zippygrill

14 — 11.01.12 — 10:43

(13) конечно

  

YF

15 — 11.01.12 — 10:44

(14) А на регистр?

  

RomaH

16 — 11.01.12 — 10:44

потому что Строка.Регистратор. читает все — аналогично

ВЫБРАТЬ * ИЗ …

  

RomaH

17 — 11.01.12 — 10:45

а у тебя еще и две точки — т.е. весь регистр, а там еще и составной тип наверное у регистратора …

  

katerinaUniv

18 — 11.01.12 — 10:46

если это внешняя обработка, то ему нужно выставить право администрирование внешних обработок или что-то типа того…

  

zippygrill

19 — 11.01.12 — 11:09

(15) я думаю ответ в (17)

Использую обработку ВыгрузкаЗагрузкаДанныхXML82.epf все документы выгружаються нормально,а на одном при попытке выгрузить выдает ошибку {ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта}: Ошибка при получении значения атрибута контекста (Результат)    РезультатЗапроса = ПостроительОтчета.Результат; по причине: по причине: вот что выдает Сообщить( ПостроительОтчета.Текст); » ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыЭК КАК _ » Откуда в ошибка берет «<<?>>В КАК В,»?

Потому что «*». З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь

З.Ы. Псевдоним таблицы просто клевый. Постарайся, чтобы следующий разработчик не узнал, где ты живешь а я тут причем я обработку скачал «ВыгрузкаЗагрузкаДанныхXML82.epf»

я думаю, что не стоило называть реквизит «В»

а в чем * виновата то? другие документы же выгружает к примеру с таким запросом ВЫБРАТЬ Разрешенные _.* ИЗ Документ.АктыМЭКСМО КАК _

да нашел в табличной части документа один реквезит так и называеться только вот теперь вопрос как нибудь можно это обойти? саму конфу изменить не могу, есть причины

написать запрос ручками, со своими алиасами полей

Тэги: 1С 8

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

  1. {Справочник.ПодразделенияОрганизаций.Форма.ФормаЭлемента(118)}: Ошибка при получении значения атрибута контекста (Предопределенный): У пользователя недостаточно прав на исполнение операции над базой данных.
    Если Не СпособОтражения.Предопределенный Тогда
    по причине:
    У пользователя недостаточно прав на исполнение операции над базой данных.

    Как с этой ошибкой бороться. У роли есть права на Справочник.ПодразделенияОрганизаций.

  2. Offline

    1Cnica
    Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26

    если можно, поставь полные права юзеру
    у меня такие же проблемы с юзерами возникают, задолбалась уже колупаться в этих правах/ролях :(

  3. Offline

    lazy
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29

    1Cnica, я в шоке. Полагаю, что права пользователей сделаны отнюдь не для того, чтобы мучить 1Сников, или пользователей. А для того, чтобы назначить зоны ответственности пользователей, разграничить уровни доступа к информации.

    Если всем подряд давать полные права — для маленькой организации с 3-мя сотрудниками это может быть и приемлемый вариант, то в остальных случаях — это прямой путь к полному концу обеда с вначале групповым изнасилованием 1Сника, а потом его увольнением…

  4. Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Бороться только один — внимательно настраивать права.

  5. Offline

    vitaly_mnpz
    Опытный в 1С

    Регистрация:
    15 фев 2009
    Сообщения:
    267
    Симпатии:
    0
    Баллы:
    26

    Добавьте пользователю роль «Отражение в регламентированном учете».

  6. Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Кстати да — релиз какой? В 20-ке поменялись права…

  7. Offline

    AndreyNag
    Опытный в 1С

    Регистрация:
    25 апр 2012
    Сообщения:
    134
    Симпатии:
    0
    Баллы:
    26

    После обновления в режиме слияния конфигурации УТ 10.3.2.11 до 10.3.18.4 не могу пробить чек ККМ. Ругается «ошибка при получении значения атрибута контекста ТекущийКасссир».
    Куда ему стукнуть?
    Спасибо за внимание.

    P.S. Решено загрузкой новой конфигурации без сравнения.

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

1

27.06.2011, 15:22. Показов 3763. Ответов 7


Студворк — интернет-сервис помощи студентам

{Отчет.РасчетныеЛисткиОрганизаций(691)}: Ошибка при получении значения атрибута контекста (Результат)
ТаблицаРезультатаЗапроса = ПостроительОтчетов.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИер архией);
по причине:

по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: ‘AccumulationRegister.НДФЛКЗачету(РегистрНакопления.НДФЛКЗачету)’; право: ‘Чтение’
{(42, 126)}: Поле не найдено «ФизическиеЛица.ГруппаФизическихЛиц»
НастройкиПравДоступаПользователей.ОбъектДоступа =ФизическиеЛица.<<?>>ГруппаФизическихЛиц
по причине:
{(42, 126)}: Поле не найдено «ФизическиеЛица.ГруппаФизическихЛиц»
НастройкиПравДоступаПользователей.ОбъектДоступа = ФизическиеЛица.<<?>>ГруппаФизическихЛиц

после перехода с 8.1 на 8.2 выдает такую ошибку что делать подскажите

0

0 / 0 / 0

Регистрация: 09.11.2010

Сообщений: 29

27.06.2011, 15:55

2

Тут телепатов нет, какая конфигурация?
На каком этапе выдаёт ошибку?

0

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

27.06.2011, 16:07

 [ТС]

3

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

ТаблицаРезультатаЗапроса = ПостроительОтчетов.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИер архией);

СведенияОВидахРасчета = Новый Соответствие;

указывает что тут ошибка

Добавлено через 47 секунд
ошибка при формировании расчетных листов

0

0 / 0 / 0

Регистрация: 09.11.2010

Сообщений: 29

27.06.2011, 16:08

4

А релиз какой? Может стоит обновиться?

0

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

27.06.2011, 16:18

 [ТС]

5

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

Добавлено через 3 минуты
релиз свежий

0

308 / 308 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

27.06.2011, 16:30

6

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

ясно же пишет

0

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 7

27.06.2011, 16:35

 [ТС]

7

права полные

0

308 / 308 / 1

Регистрация: 16.01.2011

Сообщений: 1,073

27.06.2011, 16:40

8

я верю только своим глазам

0

Понравилась статья? Поделить с друзьями:
  • Ошибка при получении кадра adobe premiere pro
  • Ошибка при подключении 100
  • Ошибка при получении значения атрибута контекста отражатьврегламентированномучете
  • Ошибка при переносе виндовс на ssd
  • Ошибка при подключении к интернету билайн 789