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

Цитата: SGIRG от 29 авг 2016, 14:24

Цитата: Mro от 29 авг 2016, 13:25
Я так понимаю, что основная соль в том, что теперь это не поля табличной части,а поля формы.

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

У меня есть некий документ в котором две формы :1-я форма документа (с табличной частью), вторая — произвольная без табличной части, которая используется для заполнения каждой строки табличной части формы документа. Не спрашивайте, зачем это нужно.)))

Так вот. Я хочу организовать это условие доступности реквизита именно в форме добавления элемента (ФормаЭлемента), в которой все реквизиты — это реквизиты формы.

Добавлено: 29 авг 2016, 15:06


Написал вот так:

&НаКлиенте
Процедура АнтенаНаличиеПриИзменении(Элемент)
если
   АнтенаНаличие
Тогда
   Элементы.Антена.Доступность = Истина
Иначе
   Элементы.Антена.Доступность = ПредопределенноеЗначение(«Справочник.Антена.ПустаяСсылка»);
   Элементы.Антена.Доступность = Ложь;
конецесли;
КонецПроцедуры

Вылетает в части «Иначе» с ошибкой

{Документ.Тестовый.Форма.ФормаЭлемента.Форма(8)}: Ошибка при установке значения атрибута контекста (Доступность)
   Элементы.Антена.Доступность = «Справочник.Антена.ПустаяСсылка»;
по причине:
Несоответствие типов

Добавлено: 29 авг 2016, 15:14


Изменил код на такой:

&НаКлиенте
Процедура АнтенаНаличиеПриИзменении(Элемент)
   Элементы.Антена.Доступность=АнтенаНаличие;
   Если НЕ Элементы.Антена.Доступность=АнтенаНаличие тогда
          Элементы.Антена = Неопределено;
         конецесли;

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

Управление доступностью работает, но когда снимаешь галочку — значение не затирается

Добавлено: 29 авг 2016, 15:35


С таким кодом тоже не затирает.(

&НаКлиенте
Процедура АнтенаНаличиеПриИзменении(Элемент)
   Элементы.Антена.Доступность=АнтенаНаличие;
   Если НЕ
      Элементы.Антена.Доступность=АнтенаНаличие
   Тогда
    Элементы.Антена=ПредопределенноеЗначение(«Справочник.Антена.ПустаяСсылка»);
   Элементы.Антена.Доступность=Ложь;

КонецЕсли;

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

Добавлено: 29 авг 2016, 15:47


еще один вариант)))

&НаКлиенте
Процедура АнтенаНаличиеПриИзменении(Элемент)
   Элементы.Антена.Доступность=АнтенаНаличие;
   Если НЕ
   АнтенаНаличие
   Тогда
    Элементы.Антена=ПредопределенноеЗначение(«Справочник.Антена.ПустаяСсылка»);

КонецЕсли;

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

Ошибка — {Документ.Тестовый.Форма.ФормаЭлемента.Форма(7)}: Поле объекта недоступно для записи (Антена)
    Элементы.Антена=ПредопределенноеЗначение(«Справочник.Антена.ПустаяСсылка»);

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Как создать элемент формы переключатель программно на обычных формах

Я

  

1c_pro_fun

19.04.18 — 23:10

Доброй ночи! Создавал ли кто-нибудь программно переключатель на обычных формах?

При попытке установить ВыбираемоеЗначение для создаваемого программно элемента формы получаю такое сообщение об ошибке:

«Ошибка при установке значения атрибута контекста (ВыбираемоеЗначение)»

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

В гугле не забанили — в инете по этому поводу один единственный вопрос на форуме Инфостарт и тот без ответа:

https://forum.infostart.ru/forum9/topic113043/

Одни только предположения что это глюк платформы и советы аля почистите кэш/обновите версию платформы.

Но тому посту 4 года а значит с версией платформы это не связано. Или это у них вообще никогда не работало?

Вот код:

ЭУ = ЭлементыФормы.Добавить(Тип(«Переключатель»), «Переключатель1», Истина);

        

    ЭУ.Заголовок            = «Истина»;

    ЭУ.Данные                = «БулевыйРеквизит»;

    ЭУ.Лево                    = 10;

    ЭУ.Верх                    = 32;

    ЭУ.Ширина                = 50;

    ЭУ.Высота                = 19;

    ЭУ.ПервыйВГруппе        = Истина;

    ЭУ.ВыбираемоеЗначение    = Истина;

    
    ЭУ = ЭлементыФормы.Добавить(Тип(«Переключатель»), «Переключатель2», Истина);

        

    ЭУ.Заголовок            = «Ложь»;

    ЭУ.Данные                = «БулевыйРеквизит»;

    ЭУ.Лево                    = 65;

    ЭУ.Верх                    = 32;

    ЭУ.Ширина                = 50;

    ЭУ.Высота                = 19;

    ЭУ.ВыбираемоеЗначение    = Ложь;

ЧТО МОЖЕТ БЫТЬ ДОБРЫЕ ЛЮДИ?

  

1c_pro_fun

1 — 19.04.18 — 23:15

И да безусловно в отладчике смотрел. До присвоения:

ЭУ.Данные                = «БулевыйРеквизит»;

ЭУ.ТипЗначения равен ОписаниеТипов с пустым значением.

После выполнения этой строки кода — Описание типов со значением Булево.

  

Connect

2 — 19.04.18 — 23:21

Чем Видимость/Доступность не устраивает?

  

1c_pro_fun

3 — 19.04.18 — 23:27

(2) А при чем тут Видимость/Доступность? Вопрос заключается в том что при клике в любой из группы переключателей значение переменной, связанной с этим переключателем должно меняться. Оно должно стать равным тому, что указано как Выбираемое значение. Моя проблема заключается в том что я создаю элемент формы программно и при попытке присвоения ВыбираемомуЗначению какого-либо значения (в моем конкретном случае это значения Истина/Ложь) вылетает ошибка:

«Ошибка при установке значения атрибута контекста (ВыбираемоеЗначение)»

Поэтому совершенно не понимаю к чему Вы про Видимость/Доступность. Но спасибо за участие ;)

  

hhhh

4 — 20.04.18 — 00:20

(3) «значение переменной, связанной с этим переключателем должно меняться» — значение переменной не должно меняться.Это же описание поля, оно не меняет значение.

  

1c_pro_fun

5 — 20.04.18 — 00:28

(4) Или у меня после полуночи мозг не соображает или лыжи не едут. Как значение не должно меняться. РАДИОБАТН — в него для чего мышкой тыкают? Чтобы выбрать одно из значений возможных. Все переключатели связаны с одним из реквизитов формы (в моем посте (3) ошибочно написал переменной имел в виду реквизит формы). При клике ДОЛЖНО изменяться значение реквизита в соответствии с тем что у конкретного Переключателя указано в ВыбираемоеЗначение. Вроде все логично :) Трабл в том что присвоить не могу это самое выбираемое значение если речь идет о реквизите с типом Булево. Выяснилось что если сделать реквизит с типом число то работает. Что не так с Булево?

  

1c_pro_fun

6 — 20.04.18 — 00:42

Мне кажется что у ОдноЭса это нифига и не работало никогда по человечески. Бьюсь об заклад. В качестве доказательства могу привести вот что:

УТ 10.3 (под рукой релиз 35.1)

Есть отчет «Отчет по кредитной линии» с реквизитом «ВидКредитныхЛиний» типа число длина 1… понимаете да… логика еще с клюшек видать осталась. И далее если поставить точку останова на отчет «Универсальный отчет» в модуле объекта на строке 6272 то не трудно заметить что виды кредитных линий принимают значение 0 и 1. И обусловлено это похоже тем что они сами не смогли сделать это через Булево. Кстати во всей УТ 10.3 только в двух отчетах используется программное добавление элемента формы типа Переключатель. В описанном мною случае не вижу никакого смысла в использовании числового реквизита (при двух-то значениях). Во втором «Задолженность по контрагентам» действительно была необходимость т.к. переключатель принимал 3 значения и Булево не хватило бы.

P.S. если я все же не прав и программно создать элемент формы с типом Переключатель привязанный к реквизиту форму типа Булево мне не дает не платформа, а мои кривые руки ткните носом как же это можно сделать :)

  

marvak

7 — 20.04.18 — 00:54

Переключатель по-моему всегда какое-то целочисленное значение у них принимает, а не булево.

Чисто так, по воспоминаниям.

Первый, второй, третий

попробуй

выбираемое значение = 1

  

1c_pro_fun

9 — 20.04.18 — 01:27

(7) В моем посте (5) в конце пишу что с реквизитом типа число работает.

  

1c_pro_fun

10 — 20.04.18 — 01:29

Не знаю троит Мисту или что (куда-то ведь делся мой пост под номером 8) но там я писал что кроме числовых типов переключатель поддерживает Строку, Дату, Булево и все ссылочные типы. Но это только если ручками в конфигураторе видимо. Программно никак.

  

marvak

11 — 20.04.18 — 02:24

(9)

ну если с числом работает, и задача решена, то в чем трабл то?

  

hhhh

12 — 20.04.18 — 05:22

(10) попробуй повнимательнее отладчиком посмотреть при открытии формы какие там поля у переключателя, при обычном создании и при программном. Что=то у тебя слишком мало полей, там гораздо больше вроде.

  

catena

13 — 20.04.18 — 06:58

Прикольно, но оказалось, как в отборах, важна последовательность свойств. По крайней мере, у меня заработало:

ЭУ.ПервыйВГруппе        = Истина;

ЭУ.Данные                = «БулевыйРеквизит»;

ЭУ.ВыбираемоеЗначение    = Истина;

  

Сияющий в темноте

14 — 20.04.18 — 09:09

Ну а если не ставить первый в группе,а на форме есть еще радиобаттоны,то ведь фигня получается

Ermak
24.04.2012 16:30 Прочитано: 5248

Пытаю разграничить права в форме списка справочника НоменклатураКод 1C v 8.х

 
Спр = Справочники.Номенклатура;
Если ПараметрыСеанса.ТекущийПользователь.Наименование = "Иван" Тогда
ЭтаФормы.Отбор.Наименование.Значение = Спр.НайтиПоНаименованию("Папирус")
ЭтаФормы.Отбор.Наименование.Использование = Истина;
КонецЕсли;
ЭлементыФормы.Список.НастройкаОтбора.Наименование.Доступность = Ложь;

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

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
24.04.2012 20:29 Ответ № 1

(0) Ermak, это отбор чего ты хочешь установить? что на форме?

Ermak
25.04.2012 08:17 Ответ № 2

Отбор хочу сделать по наименованию, чтобы пользователи могли открывать только свою группу

Ermak
25.04.2012 08:19 Ответ № 3

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

E_Migachev
25.04.2012 08:29 Ответ № 4

как-то так *09
Код 1C v 8.х

  СправочникСписок.Отбор.Сбросить();
СправочникСписок.Отбор.Наименование.ВидСравнения=ВидСравнения.ВИерархии;
СправочникСписок.Отбор.Наименование.Значение= Спр.НайтиПоНаименованию("Папирус");
СправочникСписок.Отбор.Наименование.Установить();
Ermak
25.04.2012 13:57 Ответ № 5

Код 1C v 8.х

 Процедура ПриОткрытии()

Спр = Справочники.Номенклатура;
Если ПараметрыСеанса.ТекущийПользователь.Наименование = "Иван" Тогда

Список.Отбор.Сбросить();
Список.Отбор.Наименование.ВидСравнения = ВидСравнения.ВИерархии;
Список.Отбор.Наименование.Значение = Спр.НайтиПоНаименованию("Папирус");
Список.Отбор.Наименование.Установить();
КонецЕсли;
ЭлементыФормы.Список.НастройкаОтбора.Наименование.Доступность = Ложь;
КонецПроцедуры

Выдает ошибук:

{Справочник.Номенклатура.Форма.ФормаСписка.Форма(19)}: Ошибка при установке значения атрибута контекста (ВидСравнения)
Список.Отбор.Наименование.ВидСравнения = ВидСравнения.ВИерархии;


Изменено 25.04.12 13:57:57

Ermak
27.04.2012 15:14 Ответ № 6

подскажите!

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



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
сообщений

Gectar

0 / 0 / 0

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

Сообщений: 18

1

1C 8.x (тонкий)

Ошибка при указании ПутьКДанным в программно созданной таблице

10.08.2016, 13:34. Показов 32629. Ответов 7

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


Переделываю форму документа КорректировкаЗаписейРегистров под управляемое приложение. Если вручную из реквизитов на форму документа перетащить нужное движение по регистру никаких проблем не возникает: создается таблица, добавляются колонки. Для таблицы регистра бухгалтерии Хозрасчетный свойство ПутьКДанным заполняется значением «Объект.Движения.Хозрасчетный». Но если я программно создаю таблицу и пытаюсь присвоить этому свойству это же значение,

1C
1
2
НоваяТЧ = Элементы.Добавить("Таблица"+СтрокаТаблицыРегистров.Имя,Тип("ТаблицаФормы"), НоваяСтраница); //НоваяСтраница - элем. формы на котором создаю таблицу
НоваяТЧ.ПутьКДанным = "Объект.Движения.Хозрасчетный";

то выскакивает «ошибка при установке значения атрибута контекста (ПутьКДанным)» по причине Недопустимое значение. Из-за чего тут ошибка?

Пробовал привязывать к созданной таблице табличную часть документа ТаблицаРегистровНакопления — свойству ПутьКДанным присвоил значение «Объект.ТаблицаРегистровНакопления», потом программно же создал колонки таблице, указал ПутьКДанным для них и все отработало без нареканий.

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

0

Dethmontt

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

11.08.2016, 01:57

2

По моему Движения это свойство типа ДокументОбъект и оно не конвертируется на клиента

Добавлено через 13 минут
И программно получить доступ на форме к свойству движения не получиться ибо они ни где не хранятся.

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

Добавлено через 58 секунд
Примерчик

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
&НаСервере
Процедура СоздатьРеквизитыФормыНаборовЗаписейРегистров()
 
    ДобавляемыеРеквизиты = Новый Массив;
    УдаляемыеРеквизиты   = Новый Массив;
    
    Для каждого СтрокаРегистра Из СписокРегистров Цикл
        
        ИмяРеквизита = СтрокаРегистра.ИмяРегистра + "НаборЗаписей";
        ТипРеквизита  = Новый ОписаниеТипов(СтрокаРегистра.ВидРегистра + "НаборЗаписей." + СтрокаРегистра.ИмяРегистра);
        НовыйРеквизит = Новый РеквизитФормы(ИмяРеквизита, ТипРеквизита, , , Истина);
        ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
        
    КонецЦикла;
    
    Если ДобавляемыеРеквизиты.Количество() > 0 Тогда
        ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);
    КонецЕсли;
 
КонецПроцедуры
 
&НаСервере
Процедура АктивироватьНаборыЗаписей()
    Для Каждого СтрокаРегистра Из СписокРегистров Цикл 
        ИмяРеквизита = СтрокаРегистра.ИмяРегистра + "НаборЗаписей";
        НаборЗаписей = РеквизитФормыВЗначение(ИмяРеквизита);
        НаборЗаписей.Отбор.Регистратор.Установить(Документ);
        НаборЗаписей.Прочитать();
        ЗначениеВРеквизитФормы(НаборЗаписей, ИмяРеквизита);
    КонецЦикла;
КонецПроцедуры

0

0 / 0 / 0

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

Сообщений: 18

11.08.2016, 10:56

 [ТС]

3

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

Движения это свойство типа ДокументОбъект и оно не конвертируется на клиента

Это так, но я же не с этим свойством связываю таблицу. Тип свойства Движения — КоллекцияДвижений. Содержит эта коллекция наборы записей регистров. С одним из таких наборов я и пытаюсь связать таблицу, ведь наборы вполне себе конвертируются на клиенте.

Добавлено через 7 минут

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

Нужно создавать свой НаборЗаписей (реквизит формы) устанавливать отбор и к нему привязывать ТаблицуФормы

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

Добавлено через 19 минут

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

И программно получить доступ на форме к свойству движения не получиться ибо они ни где не хранятся.

Вот тут я может и не до конца понял вашу мысль, но движения по конкретной номенклатуре хранятся в документе, форму которого я и пытаюсь открыть.

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

11.08.2016, 11:01

4

Gectar, форма и документ это разные сущности!

Добавлено через 2 минуты
Как появляется реквизит ОБЪЕКТ в форме документа

1. На сервере происходит чтение из БД документа (ДокументОбъект)
2. Свойства ДокументОбъект,а копируются в реквизит Объект формы
3. ДокументОбъект уничтожается

Добавлено через 49 секунд

Цитата
Сообщение от Gectar
Посмотреть сообщение

Как вариант я тоже думал так сделать, но хотелось бы как-то напрямую к данным, чтобы потом не заморачиваться с обработкой добавления/удаления/изменения записей.

Придется именно так и сохранение тоже придется делать самому

1

0 / 0 / 0

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

Сообщений: 18

11.08.2016, 11:11

 [ТС]

5

Я может сейчас и ступлю с этим вопросом, но почему же тогда все работает при ручном перетаскивании того же самого набора записей регистра из движений на форму — таблица создается, колонки добавляются, ПутьКДанным прописывается, работет все чин чинарем и не нужно никаких промежуточных реквизитов?

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

11.08.2016, 11:25

6

Цитата
Сообщение от Gectar
Посмотреть сообщение

работет все чин чинарем и не нужно никаких промежуточных реквизитов?

потому что платформа все делает за НАС многе оскрывая от наших глазок =)))

0

0 / 0 / 0

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

Сообщений: 18

25.08.2016, 17:38

 [ТС]

7

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

Миниатюры

Ошибка при указании ПутьКДанным в программно созданной таблице
 

0

0 / 0 / 0

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

Сообщений: 18

25.08.2016, 17:40

 [ТС]

8

Тогда приведенный в самом начале код работает без проблем.

0

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Ошибка при установке значения атрибута контекста (СписокВыбора)

Данная ошибка возникает при попытке установить полю с типом «СписокЗначений» значение неподходящего типа. Например: Неопределено. 

Полная ошибка

Ошибка при установке значения атрибута контекста (СписокВыбора)
ЭлементыФормы.Поставщик.СписокВыбора = КЭШируемые.СписокПоставщиков(Контрагент);
по причине:
Несоответствие типов

Скриншот:oshibka-ustanovki-spiska-vybora

Причина: В функции, которая формировала данный список (КЭШируемые.СписокПоставщиков()) отсутствовал возврат значения.


В экспериментальных целях:

передал значение с типом «Массив»  — текст ошибки не поменялся.

В итоге переписал на более универсальный метод ЗагрузитьЗначения() самого элемента диалога:

ЭлементыФормы.Поставщик.СписокВыбора.ЗагрузитьЗначения(КЭШируемые.СписокПоставщиков(Контрагент));

Любые издержки на рекламную кампанию:
— больше, чем может позволить себе клиент;
— меньше, чем ожидали люди из творческого отдела;
— примерно такие, которых с ужасом опасались бухгалтеры.

>
8.2 Проблема с временной таблицей в постоителе

  • Подписаться на тему
  • Сообщить другу
  • Скачать/распечатать тему



Сообщ.
#1

,
16.08.12, 06:55

    Делаю запрос для построителя:

    ExpandedWrap disabled

      ТаблицаПервичныхДанных = Новый ТаблицаЗначений;

      ТаблицаПервичныхДанных.Колонки.Добавить(«ДатаВизитаМесяцСтрокой», Новый ОписаниеТипов(«Строка»));

      УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить(«ТаблицаПервичныхДанных», ТаблицаПервичныхДанных);

      ТекстЗапроса = «

      |ВЫБРАТЬ

      |   *

      |ПОМЕСТИТЬ

      |   ПервичнаяТаблица

      |ИЗ

      |   &ТаблицаПервичныхДанных КАК ТаблицаПервичныхДанныхВрем

      |;

      |

      |…….»;

      УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;

    Вываливается сообщение:
    Ошибка при установке значения атрибута контекста (Текст)
    УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
    по причине:
    {(7, 2)}: Неверные параметры «ТаблицаПервичныхДанных»
    <<?>>&ТаблицаПервичныхДанных КАК ТаблицаПервичныхДанныхВрем

    Что делать не соображу, нужно поместить данные в первичную таблицу из таблицы значений для выполнения запроса, как это ещё можно сделать?


    Outlander



    Сообщ.
    #2

    ,
    22.08.12, 14:25

      Таблица Первичных данных должна быть жестко типизирована


      lastlogic



      Сообщ.
      #3

      ,
      23.08.12, 11:03

        Цитата Outlander @ 22.08.12, 14:25

        должна быть жестко типизирована

        Сделал так:

        ExpandedWrap disabled

          КС = Новый КвалификаторыСтроки(10);

          Массив = Новый Массив;

          Массив.Добавить(Тип(«Строка»));

          ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);

          ТаблицаПервичныхДанных = Новый ТаблицаЗначений;

          ТаблицаПервичныхДанных.Колонки.Добавить(«ДатаВизитаМесяцСтрокой», ОписаниеТиповС, «ДатаВизитаМесяцСтрокой», 10);

        Не помогло, также ошибка.


        Outlander



        Сообщ.
        #4

        ,
        24.08.12, 07:12

          Выбрать * в этом случае тоже не катит :( надо явно именовать поля

          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

          0 пользователей:

          • Предыдущая тема
          • 1С: Проблемы и решения
          • Следующая тема

          [ Script execution time: 0,0208 ]   [ 15 queries used ]   [ Generated: 12.04.23, 04:37 GMT ]  



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

          Дано

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

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

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

          по причине:

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

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

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

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

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

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

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

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

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

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

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

          Решение

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

          Дополнено 2017.04.10

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

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

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

          Я

            

          Jamiq

          06.09.12 — 09:13

          Утро доброе. Установил 1с на новый компьютер, захожу под любым пользователем, выдает такую ошибку:

          {МодульПриложения(182)}: Ошибка при установке значения атрибута

          контекста (***): Несоответствие типов

          ПараметрыСеанса.*** = Компьютер;

          В инете, нашел подобную проблему, только, приравнивание идет к ТекущийПользователь. Там проблема решается чисткой профиля в windows.

          А как решить, данную, проблему?

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

            

          Рэйв

          1 — 06.09.12 — 09:15

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

            

          Jamiq

          2 — 06.09.12 — 09:16

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

          Неопределенность смотреть в том же модуле?

            

          Рэйв

          3 — 06.09.12 — 09:18

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

            

          Jamiq

          4 — 06.09.12 — 10:11

          Переменная Компьютер берется из запроса.

          Вот кусок кода:

          Если РольДоступна(«смсПользователь»)  Тогда

             
                 Если ПараметрыСеанса.смсТекущийКонтакт = Неопределено ИЛИ ПараметрыСеанса.смсТекущийКонтакт = NULL ИЛИ ПараметрыСеанса.смсТекущийКонтакт = Справочники.смсКонтактЛист.ПустаяСсылка() Тогда

             

                         ПодключитьОбработчикОжидания(«смсПроверитьСообщения»        , 10);

                         ПодключитьОбработчикОжидания(«смсВыполнитьКомандуИзОчереди»    , 20);

                         

                         Запрос = Новый Запрос;

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

                         |    смсКомпьютеры.Ссылка

                         |ИЗ

                         |    Справочник.смсКомпьютеры КАК смсКомпьютеры

                         |ГДЕ

                         |    смсКомпьютеры.Наименование = &Наименование»;

                         
                         Запрос.УстановитьПараметр(«Наименование»,ИмяКомпьютера() );

                         

                         Результат = Запрос.Выполнить();

                         Выборка = Результат.Выбрать();

                         
                         Если Выборка.Следующий() Тогда

                         
                              Компьютер  = Выборка.Ссылка;

                         
                         КонецЕсли;

                         

                         
                         Запрос = Новый Запрос;

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

                                        |    смсКонтактЛист.Ссылка

                                        |ИЗ

                                        |    Справочник.смсКонтактЛист КАК смсКонтактЛист

                                        |ГДЕ

                                        |    смсКонтактЛист.Код = &Код»;

                         
                         Запрос.УстановитьПараметр(«Код»,ИмяПользователя() );

                         

                         Результат = Запрос.Выполнить();

                         Выборка = Результат.Выбрать();

                         
                         Если Выборка.Следующий() Тогда

                         
                              Контакт  = Выборка.Ссылка;

                         
                         КонецЕсли;

                         

                               
                         РегСв                                =    РегистрыСведений.смсСтатусыКонтактов.СоздатьМенеджерЗаписи();

                         РегСв.Контакт                      =    Контакт;

                         РегСв.СтатусКонтакта                =    Перечисления.смсСтатусыКонтактов.Активен;

                         РегСв.СостояниеСотрудника          =    Справочники.смсСостоянияСотрудника.Работает;

                         РегСв.ЦелыйДень                        =    Истина;

                         РегСв.Период                        =    ТекущаяДата();

                         РегСв.Компьютер                        =    Компьютер;

                         РегСв.Записать();

                         

                         ПараметрыСеанса.смсТекущийКомпьютер                    =    Компьютер;

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

                         ПараметрыСеанса.смсРегистрироватьОбрабатыватьСобытия    =    Истина;

                         ПараметрыСеанса.смсРегистрироватьСобытия                =    Истина;

                         ПараметрыСеанса.смсИнтервалМеждуЗагрузками                =    60;

                         ПараметрыСеанса.смсИнтервалМеждуОперациями                =    60;

                             

                         ФормаСпр    =    Справочники.смсКонтактЛист.ПолучитьФорму(«ФормаКонтактЛист»);

                         ФормаСпр.Открыть();

                         
                     КонецЕсли;

             
             КонецЕсли;

            

          ssh2006

          5 — 06.09.12 — 10:19

          (4)        Если Выборка.Следующий() Тогда

                              Компьютер  = Выборка.Ссылка;

                    КонецЕсли;

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

            

          Jamiq

          6 — 06.09.12 — 10:34

          На моем компе, ни чего не меняется =)

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

            

          ssh2006

          7 — 06.09.12 — 10:36

          (6) что насчет (5)?

            

          Jamiq

          8 — 06.09.12 — 10:42

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

          У себя изменил, в тестовой, все работает.

            

          ssh2006

          9 — 06.09.12 — 10:44

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

            

          Jamiq

          10 — 06.09.12 — 10:45

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

            

          ssh2006

          11 — 06.09.12 — 10:47

          (10) куда?

            

          Jamiq

          12 — 06.09.12 — 10:47

          в справочник

            

          ssh2006

          13 — 06.09.12 — 10:48

          (12) должна добавлять?

            

          Jamiq

          14 — 06.09.12 — 10:52

          А как, по другому, имя компьютера там появится? =)

          Перед этим, устанавливал на другие компьютеры 1с, делал все тоже самое — все работает.

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

            

          ssh2006

          15 — 06.09.12 — 10:56

          (14) [А как, по другому, имя компьютера там появится? =)]

          Например, пользователь руками создаст элемент справочника. Для это нужно запустить приложение в режиме 1с:Предприятие.

            

          Jamiq

          16 — 06.09.12 — 10:59

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

            

          Jamiq

          17 — 06.09.12 — 11:18

          http://s2.ipicture.ru/uploads/20120906/4hJSVglF.png

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

          Таки думаю, что с правами косяк.

            

          ssh2006

          18 — 06.09.12 — 12:11

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

            

          Jamiq

          19 — 06.09.12 — 14:15

          В справочнике нет наименования.

          Зашел в другую базу, с этого же сервера — все работает (правда не создавал нового пользователя в этой базе, зашел под админом).

          Зашел в другую базу, с другого сервера — аналогично, все работает.

          Не работает одна единственная база, хотя, базы, у которых идентичный код, с неработающей и находящиеся на том же сервере, так же работают.

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

            

          Jamiq

          20 — 06.09.12 — 14:58

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

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

            

          ssh2006

          21 — 06.09.12 — 15:12

          (20) [Помогло добавление справочника.]

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

            

          Jamiq

          22 — 06.09.12 — 15:25

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

          Пишу на сервере:

          КлючУникальности = Новый УникальныйИдентификатор;

          получаю ошибку:

          {Обработка.мояОбработак.Форма.Форма.Форма(944)}: Ошибка при установке значения атрибута контекста (КлючУникальности)

                          КлючУникальности = Новый УникальныйИдентификатор;

          по причине:

          Свойство недоступно на сервере

          почему так? СП говорит:

          УникальныйИдентификатор (UUID)

          Конструкторы:

          Из строки

          По умолчанию

          Описание:

          Предназначен для создания и хранения глобального уникального идентификатора GUID.

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

          Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).

          Ermak
          24.04.2012 16:30 Прочитано: 5309

          Пытаю разграничить права в форме списка справочника НоменклатураКод 1C v 8.х

           
          Спр = Справочники.Номенклатура;
          Если ПараметрыСеанса.ТекущийПользователь.Наименование = "Иван" Тогда
          ЭтаФормы.Отбор.Наименование.Значение = Спр.НайтиПоНаименованию("Папирус")
          ЭтаФормы.Отбор.Наименование.Использование = Истина;
          КонецЕсли;
          ЭлементыФормы.Список.НастройкаОтбора.Наименование.Доступность = Ложь;

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

          Yandex
          Возможно, вас также заинтересует

          Реклама на портале

          E_Migachev
          24.04.2012 20:29 Ответ № 1

          (0) Ermak, это отбор чего ты хочешь установить? что на форме?

          Ermak
          25.04.2012 08:17 Ответ № 2

          Отбор хочу сделать по наименованию, чтобы пользователи могли открывать только свою группу

          Ermak
          25.04.2012 08:19 Ответ № 3

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

          E_Migachev
          25.04.2012 08:29 Ответ № 4

          как-то так *09
          Код 1C v 8.х

            СправочникСписок.Отбор.Сбросить();
          СправочникСписок.Отбор.Наименование.ВидСравнения=ВидСравнения.ВИерархии;
          СправочникСписок.Отбор.Наименование.Значение= Спр.НайтиПоНаименованию("Папирус");
          СправочникСписок.Отбор.Наименование.Установить();
          Ermak
          25.04.2012 13:57 Ответ № 5

          Код 1C v 8.х

           Процедура ПриОткрытии()

          Спр = Справочники.Номенклатура;
          Если ПараметрыСеанса.ТекущийПользователь.Наименование = "Иван" Тогда

          Список.Отбор.Сбросить();
          Список.Отбор.Наименование.ВидСравнения = ВидСравнения.ВИерархии;
          Список.Отбор.Наименование.Значение = Спр.НайтиПоНаименованию("Папирус");
          Список.Отбор.Наименование.Установить();
          КонецЕсли;
          ЭлементыФормы.Список.НастройкаОтбора.Наименование.Доступность = Ложь;
          КонецПроцедуры

          Выдает ошибук:

          {Справочник.Номенклатура.Форма.ФормаСписка.Форма(19)}: Ошибка при установке значения атрибута контекста (ВидСравнения)
          Список.Отбор.Наименование.ВидСравнения = ВидСравнения.ВИерархии;


          Изменено 25.04.12 13:57:57

          Ermak
          27.04.2012 15:14 Ответ № 6

          подскажите!

          Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.



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

          Дано

          • 1С конфигурация бухгалтерия предприятия 2.0
          • Ошибка печати ПКО (приходный кассовый ордер):
          {ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста
             ЭлементыФормы.ПолеДокумента.ПолеСверху
          по причине:
          Несоответствие типов

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

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

          • в конфигураторе видно, что система пытается выполнить строчку кода:
          ЭлементыФормы.ПолеДокумента.ПолеСверху          = ПечатныйДокумент.ПолеСверху;
          • в отладке видно, что обе переменные типа “Число”,
          • синтакс-помощник говорит что:
          ТабличныйДокумент (SpreadsheetDocument)
          ПолеСверху (TopMargin)
          Использование:
          
          Чтение и запись.

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

          Решение

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

          Дополнено 2017.04.10

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

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

          Понравилась статья? Поделить с друзьями:
        • Ошибка при установке значения атрибута контекста данные
        • Ошибка при установке дискорда installation has failed
        • Ошибка при установке дискорда dll kernel32 dll
        • Ошибка при установке дискорда a fatal javascript
        • Ошибка при установке дискорд на виндовс 7