Ошибка «Задано неправильное имя атрибута структуры»
Ошибка возникает при попытке добавления элемента в структуру с некорректным идентификатором.
Согласно описания метода Структура.Вставить(), идентификатор может содержать только буквы, цифры, а также символ подчеркивания. Но первым символом ключа обязательно должна быть буква или символ подчеркивания.
Вероятно, в строку идентификатора попал недопустимый символ: точка (.), тире (-) и т.п. Проверьте значение идентификатора в отладчике, либо используя метод Сообщить()
Задано неправильное имя атрибута структуры при проведении документа.
Конкретно, чем она записывается в этой строке, а там уже решайте что делать.
- Скопировать ссылку
- Перейти
то ошибка будет всегда , при попытке обратится к недобавленному свойству?
Может я не прав?
- Скопировать ссылку
- Перейти
к ошибке не приводит
а этот
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(5) А раньше могло работать если выполнялось только это
А сейчсас ушло в ИНАЧЕ
А там пустая структура без единого ключа ПредДанные
И ясно что выскакивает ошибка при попытке обратиться к несуществующим ключам структуры
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Вы сами писали этот код?
Что-то мне подсказывает что нет, раз вы не видите вот этого
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(17) Вы поставить точку остановки и посмотрите какое значение передается в переменной Назв. Скорее всего у вас или не определено или наименование, например с тире или другим каким то не допустимым символов
Вот тут отладку сделаейте
: Ошибка при вызове метода контекста (Свойство)
Если ПредДанные.Свойство(Назв) Тогда
по причине:
Задано неправильное имя атрибута структуры
Задано неправильное имя атрибута структуры
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Погорячился насчет совсем.
В отладке посмотрите что в этой строке имеете в Назв
Задано неправильное имя атрибута структуры: почему не запускается
Дорогие читатели Мир Доступа! Вместе — мы сила! Вместе — мы легион! Если каждый из Нас переведет хотя бы один рубль мы сможем оплатить услуги корректора и хостинг на год вперед! Мы также сможем поднять зарплату нашим постоянным авторам и эффективнее поощрять их работу! Мы высоко ценим труд наших авторов!
Мы хотим радовать Вас и дальше! Благодаря Вам наш проект продолжает оставаться независимым и полезным. Без Ваших пожертвований мы бы никогда не справились. Спасибо Вам и низкий поклон!
С Уважением, главный редактор Мир Доступа
Сообщение задано неправильное имя атрибута структуры часто возникает при попытке добавить элемент в структуру с неверным идентификатором.
В соответствии с описанием по методу «Структура — Insert ()»,идентификатор должен включать в себя в своё уникальное содержание, допускается наличие исключительно букв/цифр/подчеркивания.
Следует помнить о том, что всегда первым символом ключа, непременно, должна быть либо буква, либо знак подчеркивания
Вполне возможно, что строка имеет недопустимые символы, тогда стоит их найти самостоятельно либо при помощи инструмента «Report ()» (Сообщить). Скорее всего проблема задано неправильное имя атрибута структуры будет решена.
Приведем пример ключа с применением метода «Insert ()»:
Следует рассмотреть и найти требуемое место с помощью идентификатора, который используется для настройки работоспособности.
Отладчик — это дополнительный механизм-инструмент, упрощающий создание и разработку модульной программной системы «1С:Предприятие». В процессе мониторинга отладчик в режиме «Остановка произошла по ошибке сразу отобразит проблемную строку с найденной ошибкой
Таким образом, ответ почему появляется ошибка задано неправильное имя атрибута структуры найден.
Ошибка задано неправильное имя атрибута структуры 1с 8.3: полезные советы
Переключаться между конфигурациями нужно только используя стабильные версии сборок.
Поэтому, в первую очередь, прежде чем углубляться в полную отладку, необходимо перейти на версию 3.1.10 и только после неё попробовать перейти на новую сборку.
Ошибки 1с 8.3 — неправильное имя атрибута
Ошибки в правилах действительно могут возникнуть — дело в том, что оболочка находилась в ZUP старых версий, а после на 3.1.10 никаких ошибок и нареканий не поступало.
Сравнивая правила с различными номерами версий на 3.1.10, скорее всего, разработчики, таким образом, просто решили исправить погрешности, которые незначительно отличались от предыдущих версий. Вполне возможно, что версия 3.1.11 содержит больше ошибок чем версия 3.1.10
В некоторых случаях можно перенести другую (даже постороннюю) базу данных в ZUP, к примеру — до версии 3.1.71.77. Сообщение задано неправильное имя атрибута структуры 1с 8.3 в этих случаях также может возникнуть.
Следует помнить, что в заголовках и тексте символы не допускаются. Примечание: всегда решаем задачу с учётом специфики программы. Например — требуется вставить 1/4 ставки. В этом случае необходимо написать строчными буквами «ЧЕТВЕРТЬ СТАВКИ»
Кроме того, в данном случае нужно иметь в виду, что в бухгалтерском расчете нет понятия 1/4 ставка — есть лишь конкретные (уже установленные) ставки заработной платы и фиксированные размеры, а также повышающие коэффициенты.
Что-то сломалось или не работает? Расскажите нам о своей проблеме с ТВ, смартфоном, приложением или другим устройством и мы решим её — пишите свой вопрос в комментариях к этой статье, либо — на электронную почту capatob.homep@gmail.com — мы обязательно ответим на Ваш вопрос и решим его в течении одной недели. Для наших постоянных читателей скоро будем проводить блиц с необычными призами — следите за сайтом каждый день.
Понравилась статья? Поддержите наш IT-журнал любым удобным способом! Пока что мы держимся на чистом энтузиазме, но зато не делаем заказных обзоров 🙂
|
|
|
|||
| bdrag
30.06.06 — 11:18 |
Пишу примерно такой код: МояСтруктура = Новый Структура; При выполнении Если восьмерка ругается: Ошибка при вызове метода контекста (Свойство): Задано неправильное имя атрибута структуры. В отладчике проверил, вроде все сходится с требованиями синтаксиса.Кто-нибудь сталкивался с подобным? Как можно вылечить? |
||
| Волшебник
1 — 30.06.06 — 11:19 |
Пробелов быть не должно. Ключ структуры должен являться идентификатором. |
||
| bdrag
2 — 30.06.06 — 11:20 |
(1) ну, я для примера так написал… пробелов там нет. а что имеется ввиду под «Ключ структуры должен являться идентификатором»? |
||
| Волшебник
3 — 30.06.06 — 11:20 |
(2) Значит он не должен начинаться с цифры. Как имя переменной. |
||
| bdrag
4 — 30.06.06 — 11:21 |
(3) точно, в этом и косяк. спасибо |
||
|
Волшебник 5 — 30.06.06 — 11:23 |
(4) Партизан. В следующий раз приводи РЕАЛЬНЫЙ код, чтобы не испытывать наши телепатические способности. |
TurboConf — расширение возможностей Конфигуратора 1С
В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.
Исправляем ситуацию
Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.
Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| ";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.
Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа ";
НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
КонецЦикла;

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

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

Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.
при обмене через КД выходит ошибка: Ошибка при вызове метода контекста (Свойство): Задано неправильное имя атрибута структуры Для Каждого ЭлементПоиска Из ДанныеПоискаПоТЧ.ПоляПоискаТЧ Цикл Может кто-нибудь знает чем может быть вызвана данная ошибка?
Я думаю, что задано неправильное имя атрибута структуры
Логично. Возникает вопрос, что подразумевается под «правильным» именем?
В ДанныеПоискаПоТЧ.ПоляПоискаТЧ не тип Строка попадается
Обработка «Универсальный обмен данными в формате XML»
ДанныеПоискаПоТЧ.ПоляПоискаТЧ — массив. В нем только тип строка
ЭлементПоиска «Номенклатура,СтавкаНДС,Сумма,СуммаНДС,Цена,СуммаНеоблагаемая» Строка
Тэги:
Комментарии доступны только авторизированным пользователям




