Лунтик
19.06.18
✎
15:55
Если поставить в конфигураторе в свойствах ПоляВвода >»Отбор.Производитель(Элементы.Товары.Текущие данные.Производитель)»
, то работает.
А если программно ПриСозданииНаСервере — то не работает
>МассивПараметров = Новый Массив;
>МассивПараметров.Добавить(Новый ПараметрВыбора («Отбор.Производитель», «Элементы.Товары.ТекущиеДанные.Производитель»));
>Элементы.ТоварыНоменклатура.СвязиПараметровВыбора = Новый ФиксированныйМассив (МассивПараметров);
Ошибка
Ошибка при установке значения атрибута контекста (СвязиПараметровВыбора)
Элементы.ТоварыНоменклатура.СвязиПараметровВыбора = Новый ФиксированныйМассив(МассивПараметров);
по причине:
Недопустимое значение
Как поправить?
Лунтик
19.06.18
✎
16:17
так некрасиво получилось.. как здесь цитаты оформляются?
ам794123
19.06.18
✎
16:26
СвязьПараметраВыбора (ChoiceParameterLink)
Имя (Name)
Использование:
Только чтение.
Описание:
Тип: Строка.
Имя параметра связи. Должно отвечать требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ «_», может содержать одну точку (не начальный и не конечный символ)).
Правильные значения:
«Отбор.Владелец», «ПользовательскийПараметр».
НеправильныеЗначения: «Отбор.», «Отбор.Владелец.Наименование».
ам794123
19.06.18
✎
16:27
«Элементы.Товары.ТекущиеДанные.Производитель» — 2 точки
perester
19.06.18
✎
16:29
как то делал обработку с программным формированием тз, у меня тип такого получилось
НоваяКолонка = Элементы.Добавить(«ТЗХарактеристика», Тип(«ПолеФормы»), Элементы.ТаблицаЗначений);
НоваяКолонка.Заголовок = «Характеристика»;
НоваяКолонка.ПутьКДанным = «ТаблицаЗначений.Характеристика»;
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;
НоваяКолонка.СвязиПараметровВыбора = Новый ФиксированныйМассив(Новый массив);
НоваяСвязь = Новый СвязьПараметраВыбора(«Отбор.Владелец», «элементы.таблицазначений.ТекущиеДанные.Номенклатура»);
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НоваяСвязь);
НоваяКолонка.СвязиПараметровВыбора = Новый ФиксированныйМассив(НовыйМассив);
Лунтик
19.06.18
✎
16:38
(4) Может суть в том, что у вас сначала связиПараметровВыбора обнуляются? Сейчас попробую.
Как оно вообще может не работать, если тупо скопировано из конфигуратора???
perester
19.06.18
✎
16:42
(5) кажется так и было
hhhh
19.06.18
✎
17:00
(5) побуквенное сравнение показывает:
у вас Новый ПараметрВыбора
у него Новый СвязьПараметраВыбора
Лунтик
19.06.18
✎
17:24
(7) Точно! Точно! Точно! Как вы увидели с полувзгляда?? Спасибо огромное)
Если таблица на форме. При начале выбора в одной из колонок срабатывает следующее событие Почему-то вылетает на строке пишет «{Обработка.ЗагрузкаДанныхИзТабличногоДокумента.Форма.Форма.Форма(1270)}: Ошибка при установке значения атрибута контекста (СвязиПараметровВыбора) Элементы.ТаблицаЗагружаемыхРеквизитов.ТекущийЭлемент.СвязиПараметровВыбора = НовМассив; по причине: Хотя в самом массиве все нормально вроде. В чем может заключаться ошибка?
Понял свою ошибку, переписал по-другому &НаСервере
Но все равно — ошибка та же Как установить значение по владельцу из ЗначениеПоУмолчанию из другой строки в таблице?
ап Знатоки управляемых форм, если кто сталкивался — подскажите — возможно ли в таблице формы установить связь параметров выбора в текущей ячейке по владельцу с ячейкой (полем формы)таблицы формы другой строки?
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Ошибка при установке значения атрибута контекста (СписокВыбора)
Данная ошибка возникает при попытке установить полю с типом «СписокЗначений» значение неподходящего типа. Например: Неопределено.
Полная ошибка
Ошибка при установке значения атрибута контекста (СписокВыбора)
ЭлементыФормы.Поставщик.СписокВыбора = КЭШируемые.СписокПоставщиков(Контрагент);
по причине:
Несоответствие типов
Скриншот:
Причина: В функции, которая формировала данный список (КЭШируемые.СписокПоставщиков()) отсутствовал возврат значения.
В экспериментальных целях:
передал значение с типом «Массив» — текст ошибки не поменялся.
В итоге переписал на более универсальный метод ЗагрузитьЗначения() самого элемента диалога:
ЭлементыФормы.Поставщик.СписокВыбора.ЗагрузитьЗначения(КЭШируемые.СписокПоставщиков(Контрагент));
Нулевую рекламную идею можно помножить на миллион долларов – все равно получится нуль.