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

Ошибка при установке значения атрибута контекста (ВладелецФормы) ☑ 0

SkillUp

10.12.18

16:51

Подскажите что не так? Элемент.ТекущаяСтрока — справочник.номенклатура (ссылка).

Парам= Новый Структура(«ТекущееЗначение»,Элемент.ТекущаяСтрока);

ЭтаФорма.ВладелецФормы = Элемент.ТекущаяСтрока;

        
        ОткрытьФорму(«ОбщаяФорма.ХарактеристикиИЦенаНоменклатуры»,Парам,ЭтаФорма.ВладелецФормы, ЭтаФорма.УникальныйИдентификатор);

ОШИБКА:

{Справочник.Номенклатура.Форма.ФормаСпискаТонкийКлиент.Форма(13)}: Ошибка при установке значения атрибута контекста (ВладелецФормы)

        ЭтаФорма.ВладелецФормы = Элемент.ТекущаяСтрока;

по причине:

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

1

Ник080808

10.12.18

16:52

(0) Форма.ВладелецФормы (Form.FormOwner)

Форма (Form)

ВладелецФормы (FormOwner)

Использование:

Чтение и запись.

Описание:

Тип: Форма; Элемент управления.

2

SkillUp

10.12.18

16:55

(1) ВладелецФормы = Элементы.Сотрудники;

ОткрытьФорму(«Справочник.СотрудникиОрганизаций.Форма», , ВладелецФормы, ЭтаФорма.УникальныйИдентификатор);

Платформа будет искать открытые окна с таким ключом уникальности. В том случае, если она их найдет, то будет активировано существующее окно. В противном – открыто новое.

3

SkillUp

10.12.18

16:59

(1) У меня формы нету…

4

SkillUp

10.12.18

17:02

(1) ОЙ, БЛИН ВСЕ ПРАВИЛЬНО… ПАРДОН.

5

SkillUp

10.12.18

17:55

Или еще так можно…

    СтандартнаяОбработка =Ложь;

    Ф = ПолучитьФорму(«ОбщаяФорма.ХарактеристикиИЦенаНоменклатуры»,,, ЭтаФорма.УникальныйИдентификатор);

    Если Ф.Открыта() Тогда

        Ф.Закрыть();

    КонецЕсли;

Ошибка при установке значения атрибута контекста (ВладелецФормы)

Я
   SkillUp

10.12.18 — 16:51

Подскажите что не так? Элемент.ТекущаяСтрока — справочник.номенклатура (ссылка).

Парам= Новый Структура(«ТекущееЗначение»,Элемент.ТекущаяСтрока);

ЭтаФорма.ВладелецФормы = Элемент.ТекущаяСтрока;

        
        ОткрытьФорму(«ОбщаяФорма.ХарактеристикиИЦенаНоменклатуры»,Парам,ЭтаФорма.ВладелецФормы, ЭтаФорма.УникальныйИдентификатор);

ОШИБКА:

{Справочник.Номенклатура.Форма.ФормаСпискаТонкийКлиент.Форма(13)}: Ошибка при установке значения атрибута контекста (ВладелецФормы)

        ЭтаФорма.ВладелецФормы = Элемент.ТекущаяСтрока;

по причине:

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

   Ник080808

1 — 10.12.18 — 16:52

(0) Форма.ВладелецФормы (Form.FormOwner)

Форма (Form)

ВладелецФормы (FormOwner)

Использование:

Чтение и запись.

Описание:

Тип: Форма; Элемент управления.

   SkillUp

2 — 10.12.18 — 16:55

(1) ВладелецФормы = Элементы.Сотрудники;

ОткрытьФорму(«Справочник.СотрудникиОрганизаций.Форма», , ВладелецФормы, ЭтаФорма.УникальныйИдентификатор);

Платформа будет искать открытые окна с таким ключом уникальности. В том случае, если она их найдет, то будет активировано существующее окно. В противном – открыто новое.

   SkillUp

3 — 10.12.18 — 16:59

(1) У меня формы нету…

   SkillUp

4 — 10.12.18 — 17:02

(1) ОЙ, БЛИН ВСЕ ПРАВИЛЬНО… ПАРДОН.

  

SkillUp

5 — 10.12.18 — 17:55

Или еще так можно…

    СтандартнаяОбработка =Ложь;

    Ф = ПолучитьФорму(«ОбщаяФорма.ХарактеристикиИЦенаНоменклатуры»,,, ЭтаФорма.УникальныйИдентификатор);

    Если Ф.Открыта() Тогда

        Ф.Закрыть();

    КонецЕсли;

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Ошибка при установке значения атрибута контекста (ВладелецФормы)

Я
   SkillUp

10.12.18 — 16:51

Подскажите что не так? Элемент.ТекущаяСтрока — справочник.номенклатура (ссылка).

Парам= Новый Структура(«ТекущееЗначение»,Элемент.ТекущаяСтрока);

ЭтаФорма.ВладелецФормы = Элемент.ТекущаяСтрока;

        
        ОткрытьФорму(«ОбщаяФорма.ХарактеристикиИЦенаНоменклатуры»,Парам,ЭтаФорма.ВладелецФормы, ЭтаФорма.УникальныйИдентификатор);

ОШИБКА:

{Справочник.Номенклатура.Форма.ФормаСпискаТонкийКлиент.Форма(13)}: Ошибка при установке значения атрибута контекста (ВладелецФормы)

        ЭтаФорма.ВладелецФормы = Элемент.ТекущаяСтрока;

по причине:

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

   Ник080808

1 — 10.12.18 — 16:52

(0) Форма.ВладелецФормы (Form.FormOwner)

Форма (Form)

ВладелецФормы (FormOwner)

Использование:

Чтение и запись.

Описание:

Тип: Форма; Элемент управления.

   SkillUp

2 — 10.12.18 — 16:55

(1) ВладелецФормы = Элементы.Сотрудники;

ОткрытьФорму(«Справочник.СотрудникиОрганизаций.Форма», , ВладелецФормы, ЭтаФорма.УникальныйИдентификатор);

Платформа будет искать открытые окна с таким ключом уникальности. В том случае, если она их найдет, то будет активировано существующее окно. В противном – открыто новое.

   SkillUp

3 — 10.12.18 — 16:59

(1) У меня формы нету…

   SkillUp

4 — 10.12.18 — 17:02

(1) ОЙ, БЛИН ВСЕ ПРАВИЛЬНО… ПАРДОН.

  

SkillUp

5 — 10.12.18 — 17:55

Или еще так можно…

    СтандартнаяОбработка =Ложь;

    Ф = ПолучитьФорму(«ОбщаяФорма.ХарактеристикиИЦенаНоменклатуры»,,, ЭтаФорма.УникальныйИдентификатор);

    Если Ф.Открыта() Тогда

        Ф.Закрыть();

    КонецЕсли;

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

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

Ошибка в 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)

September 13 2016, 22:08

Category:

  • Общество
  • Cancel

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

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

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

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

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

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

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

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

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

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

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

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

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

Нельзя изменять поле, содержащее объект данных формы

Автор trialex3, 25 ноя 2019, 17:20

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

Добрый вечер. Прошу помощи.
Есть внешний отчет с формой. У формы есть несколько реквизитов типа ТаблицаЗначений. На каждый реквизит есть функция  в модуле формы которая выгружает запрос в ТЗ и присваевает этот ТЗ реквизиту. И вот на стадии присвоения выдает ошибку:

Цитировать{Отчет.ААААААААААААААААА.Форма.ФормаОтчета.Форма(327)}: Ошибка при установке значения атрибута контекста (СписокЗаказов)
СписокЗаказов = ТЗ;
по причине:
Нельзя изменять поле, содержащее объект данных формы

Тип переменной СписокЗаказов = ТаблицаЗначений;
В чем проблема может быть?


судя по коду вы пытаетесь в реквизит формы с типом значения Таблица формы присвоить переменную с типом значения Таблица значения. Это как бы разные типы значений.

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


В лучшем случаем можно просто Загрузить то что вы хотите


Цитата: MuI_I_Ika от 25 ноя 2019, 18:29
В лучшем случаем можно просто Загрузить то что вы хотите

Да вы правы к одной переменной тип ДанныеФормыКоллекция а у второй переменной ТаблицаЗначений. Как можно присвоить переменной формы нужное значение?


Есть несколько способов. Если колонки совпадают один в один, то можно использовать метод ЗначениеВРеквизитФормы()

Если не совпадают, то можно использовать цикл.


Добавил в ТЗ строки из запроса, но ругается теперь по другому:

Цитировать{Отчет.ААААААААААААААААА.Форма.ФормаОтчета.Форма(325)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
ЗначениеВРеквизитФормы(ТЗ,СписокЗаказов);
по причине:
Несоответствие типов (параметр номер ‘2’)


параметр 2 должен быть строкой



  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Пользователям 1С Предприятие 8

  • Нельзя изменять поле, содержащее объект данных формы

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Ошибка «Выполнение операции невозможно, так как строка была удалена»

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

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

(12) Ты умеешь нормально выражать свои мысли? Я спросил в чем разница между картинкой и текстом, информативность одинаковая.

(11) В модуле объекта документа, я СОБРАЛСЯ читать документ

(0)Это происходит потому, что при вызове Прочитать() перечитываются и пересоздаются в памяти все данные документа, в том числе и ТЧ, которую перебираешь.

Комиссия премии Дарвина берет на карандашик программистов, которые пишут такой код.

Ошибка при заполнении документа «Начисление зарплаты»(«Зарплата и кадры» 1.0.45.1)

Здравствуйте!<br>При заполнении сотрудниками документа «Начисление зарплаты» («Зарплата и кадры бюджетного учреждения» 1.0.45.1)<br>появляется такая ошибка:<br>: Ошибка при получении значения атрибута контекста (ВидРасчета) Если Строка.ВидРасчета = Неопределено ИЛИ Строка.ДатаНачала > ДатаОкончания Тогдапо причине:Выполнение операции невозможно, т.к. строка была удалена.<br> <br>Причем мы заметили с помощью подбора сотрудников, что эта ошибка появляется у сотрудников принятых по внутреннему совместительству и уволенных (с внутреннего совместительства) в расчетном периоде. Проверили правильность всех документов — никаких ошибок не увидели. В чем может быть проблема. <br>Пожалуйста подскажите что не так? Спасибо.

Ошибка Обработка.НачислениеПроцентом

Добрый день!
Платформа 1С:Предприятие 8.3 (8.3.15.1830), КАМИН:Расчет заработной платы. Версия 3.0 (3.0.107.5)
проблема имеет место с Версии 3.0 (3.0.107.4)
Ошибка при заполнении документа Начисление простое, используя помощник Начисление процентом — добавление сотрудника.
«: Ошибка при получении значения атрибута контекста (Процент)
п_Стр.Сумма = Окр(п_Стр.База*п_Стр.Процент/100,ОкруглениеСуммы);
по причине:
Выполнение операции невозможно, так как строка была удалена.»

Проблема в обработке Начисление процентом модуль формы
Процедура РассчитатьТаблицу(МассивСтрок,п_ПараметрНоваяСтрока = Ложь)
строка 1857
л_Строка = МассивСтрок[0];
РассчитатьСтроку(л_Строка);

л_Строка ссылается на удаленную строку в ТаблицаОбработки. Строка удаляется в теле процедуры ОпределимБазуПоСтроке(л_Массив, МассивСтрок) ранее.

Дополнительно возможна некорректная работа модуля в Процедура ОпределимБазуПоСтроке(п_СпСотр = Неопределено,п_МассивСтрокРасчета = Неопределено)
строка 1149
Если ФлагПоДокументу Тогда
переменная ФлагПоДокументу содержит значение не булево, а цифру.

243
457

Здравствуйте,
На релизе КАМИН:Расчет заработной платы. Версия 3.0 (3.0.107.5) ошибка не воспроизводится.

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

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

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

Пожалуйста )

Подсказка:Вы можете добавить любую страничку в Социальные закладки щелкнув по значку соцсетей (в вверху)

УРБД в файловом режиме все нормально работало, а когда попытались перейдти на SQL в подчиненом узле возникла ошибка: —————————————————————- {ПланОбмена.Отделения}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘{ОбщийМодуль.НастройкаПравДоступа}: Ошибка при получении значения атрибута контекста (ГраницыЗапретаИзмененияДанных): Попытка получения неинициализированного значения параметра сеанса’ по причине: Ошибка при выполнении обработчика — ‘{ОбщийМодуль.НастройкаПравДоступа}: Ошибка при получении значения атрибута контекста (ГраницыЗапретаИзмененияДанных): Попытка получения неинициализированного значения параметра сеанса’ по причине: Ошибка при выполнении обработчика — ‘{ОбщийМодуль.НастройкаПравДоступа}: Ошибка при получении значения атрибута контекста (ГраницыЗапретаИзмененияДанных): Попытка получения неинициализированного значения параметра сеанса’ по причине: {ОбщийМодуль.НастройкаПравДоступа}: Ошибка при получении значения атрибута контекста (ГраницыЗапретаИзмененияДанных): Попытка получения неинициализированного значения параметра сеанса по причине: Попытка получения неинициализированного значения параметра сеанса —————————————————————- что не так в параметрах сеанса,что у него неинициализировано?

Попробуй задать пользователя (ПараметрыСеанса.ТекущийПользователь = НекийПользователь), от имени которого работает регламентное задание.

Это из-за того, что при старте на сервере нужный парметр сеанса не инициализируется каким-либо значением. Найди процедуру, которая присваивает значения параметрам сеанса и посмотри как расположены директивы прекомпиляции «#Если Клиент»   и  «#Если Сервер»

Чего не понял? В файловом режиме фоновое задание стартует от имени пользователя, который запустил сеанс работы. В SQL фоновое стартует на сервере, сеанса нет, пользователь не определён. Назначить фоновому заданию пользователя можно попробовать обработкой с ИТС «Консоль заданий», если не поможет — найти процедуру, которую дергает регламентное задание, и прописать пользователя прямо там.

Тэги:

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

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

Не работает с 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. {Справочник.ПодразделенияОрганизаций.Форма.ФормаЭлемента(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. Решено загрузкой новой конфигурации без сравнения.

Содержание:

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

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

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

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

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

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

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

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

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

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

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

УФ — Как в процедуре формы выбора ПриСозданииНаСервере получить ссылку на поле из которого эта форма вызвана ?

Использование: Чтение и запись. Описание: Тип: ТабличноеПоле; ПолеВвода; Форма; ПолеФормы; УправляемаяФорма; ТаблицаФормы. Содержит управляемую форму или элемент управления, который является владельцем данной формы. При помощи этого свойства устанавливается связь между формой и владельцем формы. Например, форма элемента подчиненного справочника может иметь в качестве владельца форму элемента справочника владельца, из которой она была открыта. При открытии по текущей строке табличного поля в качестве владельца устанавливается табличное поле. Доступность: Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент). Примечание: Если у формы есть владелец, то в свойстве ЗакрыватьПриЗакрытииВладельца устанавливается необходимость закрытия данной формы при закрытии формы-владельца.

ЭтаФорма.ВладелецФормы    {}: Ошибка при получении значения атрибута контекста (ВладелецФормы)

Тэги: 1С 8

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

Содержание:

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

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

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

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

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

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

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

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

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

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

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



1 февраля, 2017
21 апреля, 2017

Дано

  • 1С конфигурация бухгалтерия предприятия 2.0
  • Ошибка печати ПКО (приходный кассовый ордер):

{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста

   ЭлементыФормы.ПолеДокумента.ПолеСверху

по причине:

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

Анализ проблемы

На первый взгляд все ужасно:

  • в конфигураторе видно, что система пытается выполнить строчку кода:

ЭлементыФормы.ПолеДокумента.ПолеСверху          = ПечатныйДокумент.ПолеСверху;

  • в отладке видно, что обе переменные типа “Число”,
  • синтакс-помощник говорит что:

ТабличныйДокумент (SpreadsheetDocument)

ПолеСверху (TopMargin)

Использование:

Чтение и запись.

То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.

Решение

На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.

Дополнено 2017.04.10

Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.

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

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Михаил80

Дата регистрации: 31.01.2012
Сообщений: 3

«Ну подскажите как исправить ошибку?<br>{Документ.ИК_БезвозмездноеПолучение.Форма.ФормаДокумента(300)} : Ошибка при установке значения атрибута контекста (Видимость)<br>ЭлементыФормы.ОсновныеСредства.Колонки.АмортизационнаяГруппа.Видимость= ВестиПоАналитике;<br>по причине: Несоответствие типов»

ZhAmAn

Дата регистрации: 23.12.2010
Сообщений: 1333

«Яблоко=Апельсин;<br>Вот что у вас,а должно быть яблоко=истина;»

Михаил80

Дата регистрации: 31.01.2012
Сообщений: 3

«И где ошибка?<br> <br>Процедура ДоступностьЭлементов()<br> Если ПоступлениеМЗ Тогда<br> ЭлементыФормы.Панель1.Страницы.МатериальныеЗапасы.Видимость = Истина;<br> ЭлементыФормы.Панель1.Страницы.ОсновныеСредства.Видимость = Ложь;<br> Иначе<br> ЭлементыФормы.Панель1.Страницы.МатериальныеЗапасы.Видимость = Ложь;<br> ЭлементыФормы.Панель1.Страницы.ОсновныеСредства.Видимость = Истина;<br> Если УчетНПА Тогда<br> ЭлементыФормы.ОсновныеСредства.Колонки.ГрупповойУчет.Видимость                   = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.АмортизационнаяГруппа.Видимость       = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КодПоОКОФ.Видимость                   = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СуммаАмортизации.Видимость             = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетАмортизации.Видимость             = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаАмортизации.Видимость       = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаЗатрат.Видимость             = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.НачислятьАмортизацию.Видимость            = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ОстСрокПолезногоИспользования.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ПорядокПогашенияСтоимости.Видимость       = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СпособНачисленияАмортизации.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СрокПолезногоИспользования.Видимость      = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетУчетаЗатрат.Видимость             = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат2.Видимость            = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат3.Видимость            = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат4.Видимость            = Ложь;<br> Иначе<br> ЭлементыФормы.ОсновныеСредства.Колонки.ГрупповойУчет.Видимость                   = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.АмортизационнаяГруппа.Видимость       = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КодПоОКОФ.Видимость                   = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СрокПолезногоИспользования.Видимость      = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СуммаАмортизации.Видимость             = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетАмортизации.Видимость             = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаАмортизации.Видимость       = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ОстСрокПолезногоИспользования.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ПорядокПогашенияСтоимости.Видимость       = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СпособНачисленияАмортизации.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.НачислятьАмортизацию.Видимость            = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетУчетаЗатрат.Видимость             = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаЗатрат.Видимость             = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат2.Видимость            = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат3.Видимость            = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат4.Видимость            = НачислятьАмортизациюКазны;<br> КонецЕсли;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ДатаВводаВЭксплуатацию.Видимость       = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ФактическийСрокЭкспл.Видимость            = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ИнвНомер.Видимость                        = ВестиПоАналитике;<br> КонецЕсли;»

ZhAmAn

Дата регистрации: 23.12.2010
Сообщений: 1333

Что такое ВестиПоАналитике?отладчиком смотрел что там?

Михаил80

Дата регистрации: 31.01.2012
Сообщений: 3

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

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

ZhAmAn

Дата регистрации: 23.12.2010
Сообщений: 1333

я знаю что такое аналитика,конкретно скажи что за переменная!

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

А что это за документ такой «ИК_БезвозмездноеПолучение» и откуда он взялся в БП?

ZhAmAn

Дата регистрации: 23.12.2010
Сообщений: 1333

Показывать по
10
20
40
сообщений

Heltarion

2 / 2 / 0

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

Сообщений: 57

1

02.12.2011, 11:18. Показов 8369. Ответов 11

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


Добрый день!
Посмотрите пожалуйста. Есть в обработке таблица значений, в которую я выгружаю данные их XML, после этого я корректирую таблицу и хочу чтобы программа сохранила ее в новый документ эксель. Для этого я создал процедуру «Процедура СохранитьНажатие(Элемент) Экспорт». При сохранении выскакивает: «Ошибка при установке значения атрибута контекста (Value)». Насколько я понимаю, программе не нравится тип значения, который я передаю.
Переменные:

ТПП — «табличное поле правил», в ней уже занесены некотрые значения из XML
НоменклатураЗагрузки, НоменклатураБазы — имена столбцов ТПП
СтолбЗагр, СтолбБаз — столбцы в экселе

Код процедуры:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
СтолбЗагр = 1;
СтолбБаз = 2;
 
Если ИнициализацияЭкселя() Тогда
      Книга = Excel.WorkBooks.Add();
      Sheet = Книга.Sheets(1);
    
      Для каждого стр из ТПП Цикл
              Sheet.Cells(стр,СтолбЗагр).Value=стр.НоменклатураЗагрузки;
              Sheet.Cells(стр,СтолбБаз).Value=стр.НоменклатураБазы;
      КонецЦикла;
 
      Попытка
              Книга.SaveAs("F:1CBaseВнешнии обработкиправила.xls");
      Исключение
              Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
              Возврат;
      КонецПопытки;
КонецЕсли;
Сообщить("Готово");

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

0

308 / 308 / 1

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

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

02.12.2011, 11:32

2

СохранитьНажатие(Элемент) это событие формы
в этой процедуре пропиши вызов другой процедуры, например СохранитьВЭксель();
саму же процедуру СохранитьВЭксель() добавь в модуль объекта и сделай её экспортной. Вставь свой код представленный выше.
обращение из формы будет ЭтотОбъект.СохранитьВЭксель();

1

2 / 2 / 0

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

Сообщений: 57

02.12.2011, 11:56

 [ТС]

3

СохранитьНажатие(Элемент) это событие формы
в этой процедуре пропиши вызов другой процедуры, например СохранитьВЭксель();
саму же процедуру СохранитьВЭксель() добавь в модуль объекта и сделай её экспортной. Вставь свой код представленный выше.
обращение из формы будет ЭтотОбъект.СохранитьВЭксель();

В МодулеОбъекта создал функцию «Процедура СохранитьВЭксель(ТПП) Экспорт»
Прописал в ней тотже код, что выше. В событии формы написал: ЭтотОбъект.СохранитьВЭксель(ТПП);
Выскочила ошибка: Ошибка при вызове метода контекста (Cells)
Что я нетак сделал?

0

308 / 308 / 1

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

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

02.12.2011, 12:10

4

процедуру ИнициализацияЭкселя() тоже закинь в модуль объекта
СохранитьВЭксель(ТПП), параметр ТПП скорее всего не нужен

1

2 / 2 / 0

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

Сообщений: 57

02.12.2011, 12:19

 [ТС]

5

Да я именно так и сделал, просто забыл упомянуть, ТПП нужна в противном случае он не понимает что это за переменная

Добавлено через 4 минуты
Проблема вот в чем:
Sheet.Cells(стр,СтолбЗагр).Value=1;
Sheet.Cells(стр,СтолбБаз).Value=2;

Так работает, но если я поставлю
Sheet.Cells(стр,СтолбБаз).Value=стр.НоменклатураБа зы;
Выдает ошибку «Ошибка при установке значения атрибута контекста (Value)».

Дело в том что «стр.НоменклатураБазы» — это справочник ссылка, если у нее текстовый тип то программа глотает и записывает.

0

19 / 18 / 1

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

Сообщений: 54

02.12.2011, 12:22

6

чет вы мудрено делаете.
У вас не правильно указывается адресс ячейки в cell. Если стр — это коллекция или массив записей, то он не может нести в себе номер ячейки.
Не знаком с 1C, но програмлю в Excel и делаю выгрузки из других систем.

1

2 / 2 / 0

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

Сообщений: 57

02.12.2011, 12:28

 [ТС]

7

В данный момент ему не нравится присваемое значение к ячейке экселя (если я правильно понимаю сообщение «Ошибка при установке значения атрибута контекста (Value)» )

Причем если тип значения строка, то он его получает без вопросо, если тип значения СправочникССсылка, то он руегается на «Ошибка при установке значения атрибута контекста (Value)».

Я просто не понимаю как обратиться к такому типу переменных чтобы получить значение типа строка.

0

19 / 18 / 1

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

Сообщений: 54

02.12.2011, 12:30

8

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

1

308 / 308 / 1

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

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

02.12.2011, 12:30

9

стр.НоменклатураБазы.Наименование например

1

2 / 2 / 0

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

Сообщений: 57

02.12.2011, 12:32

 [ТС]

10

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

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

0

308 / 308 / 1

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

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

02.12.2011, 12:34

11

значение из Excel?

1

Heltarion

2 / 2 / 0

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

Сообщений: 57

02.12.2011, 12:43

 [ТС]

12

Рабочий код:

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
Функция ИнициализацияЭкселя()
 
    //Пытаемся подключиться к Excel
    Попытка
        Excel = новый COMОбъект("Excel.Application");
        Сообщить("=====> Загрузка производится через MS Excel...");
        Возврат Истина;
    Исключение
        Возврат Ложь                
    КонецПопытки;     
    
КонецФункции
 
 
Процедура СохранитьНажатие(Элемент) Экспорт
    СтолбЗагр = 1; // задаю номер столбца№1 в эксель
    СтолбБаз = 2;  // задаю номер столбца№2 в эксель
    
    Если ИнициализацияЭкселя() Тогда
        Книга = Excel.WorkBooks.Add(); // создал новый документ
        Sheet = Книга.Sheets(1);          // открыл страницу 1
   
// цикл для заполнения таблицы эксель данными из табличного поля (по двум полям)     
        Для каждого стр из ТПП Цикл
            Sheet.Cells(стр,СтолбЗагр).Value=стр.НоменклатураЗагрузки;
            Sheet.Cells(стр,СтолбБаз).Value=стр.НоменклатураБазы.Наименование;
        КонецЦикла;
 
//выполняю сохранение документа       
        Попытка
            Книга.SaveAs("F:1CBaseВнешнии обработкиправила12.xlsx");
        Исключение
            Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
            Возврат;
        КонецПопытки;
    КонецЕсли;
    Книга.Application.Quit();
    Сообщить("Готово");
КонецПроцедуры

0

Код 1C v 8.3

 // Реквизиты
ДобавляемыеРеквизиты = Новый Массив;

ИмяТаблицы = "КомандыДополнительныхОбработок";
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяТаблицы, Новый ОписаниеТипов("ТаблицаЗначений")));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ДополнительныеОтчетыИОбработки"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ВариантЗапуска", Новый ОписаниеТипов("ПеречислениеСсылка.СпособыВызоваДополнительныхОбработок"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ИмяЭлемента", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Представление", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Идентификатор", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ЭтоОтчет", Новый ОписаниеТипов("Булево"), ИмяТаблицы));

Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

//реквизит
ИмяЭлемента = "Добавлен" + ИндексЭлемента;
Реквизит = Новый РеквизитФормы(ИмяЭлемента, ОписаниеТипов);
ДобавляемыеРеквизиты.Добавить(Реквизит);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);

//команда печать
ИмяКомандыПечать = "ДобавленПечать" + ИндексЭлемента;
КомандаПечать = Команды.Добавить(ИмяКомандыПечать);
КомандаПечать.Действие = "ПечатьДокумента";
КомандаПечать.Подсказка = НСтр("ru = 'Печать документа...'");

//элемент формы
//Родитель                     = Элементы.ГруппаСформированныеДокументы;
Элемент                      = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ЭлементГруппа);
Элемент.Вид                  = ВидПоляФормы.ПолеНадписи;
Элемент.ПутьКДанным          = ИмяЭлемента;
Элемент.Гиперссылка          = Истина;
Элемент.ПоложениеЗаголовка   = ПоложениеЗаголовкаЭлементаФормы.Нет;

ЭтаФорма[ИмяЭлемента] = Документ;

//кнопка печать
ИмяЭлементаПечать = "ДобавленПечать" + ИндексЭлемента;
ЭлементПечать = Элементы.Добавить(ИмяЭлементаПечать, Тип("КнопкаФормы"), ЭлементГруппа);
ЭлементПечать.Картинка = БиблиотекаКартинок.Печать;
ЭлементПечать.Отображение = ОтображениеКнопки.Картинка;
ЭлементПечать.ИмяКоманды = ИмяКомандыПечать;

Понравилась статья? Поделить с друзьями:
  • Ошибка при подключении iphone к itunes 0xe8000068
  • Ошибка при подключении к сканеру
  • Ошибка при получении значения атрибута контекста текущиеданные
  • Ошибка при подключении к scanman7
  • Ошибка при перемещении файла на флешку