Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
-
30.09.2011, 06:41
#1

Пришел за помощью
Ошибка внешней компоненты ПРИ ПЕЧАТИ ШТРИХ-КОДА
Доброго времени суток !
Имеется 1С:Предприятие 8.2 (8.2.13.219) Конфигурация Управление торговлей, редакция 11.0 (11.0.6.9)
Проблемы заключается в следующем: Необходимо распечатать этикетку со штрих-кодом. И при печати появляется «ошибка внешней компоненты» если кликнуть подробно то появлется сие сообщение:
{Обработка.ПечатьЭтикетокИ Ценников.МодульМенеджера(24 5)}: Ошибка при установке значения атрибута контекста (РазмерШрифта)
ВнешняяКомпонента.РазмерШ� �ифта = ПараметрыШтрихкода.Размер� �рифта;
по причине:
Ошибка внешней компонентыВот такие дела. Кто с таким сталкивался и как победил ? Заранее спасибо !
Последний раз редактировалось VDIGIT; 30.09.2011 в 06:41.
Причина: Опечатка
-
07.10.2011, 19:59
#2

Помогает людям

А компонента 1С: Печать штрихкода установлена? если нет, то такая есть на диске ИТС
-
10.10.2011, 06:33
#3

Пришел за помощью

Сообщение от AVS300
А компонента 1С: Печать штрихкода установлена? если нет, то такая есть на диске ИТС
Установлена (причем вариантов компоненты немерено было переставлено). «Ошибка» в самой конфигурации, а точнее в размере шрифта. Слегка изменил саму конфигурацию (и само формирование и печать) и все заработало как надо ! Только надо немного доделать, чтобы было на «автоматическом» уровне, а то лезть и править конфигурацию не есть гут ! как сделаю выложу !
-
29.01.2012, 19:46
#4

Гость форума

Сообщение от VDIGIT
Установлена (причем вариантов компоненты немерено было переставлено). «Ошибка» в самой конфигурации, а точнее в размере шрифта. Слегка изменил саму конфигурацию (и само формирование и печать) и все заработало как надо ! Только надо немного доделать, чтобы было на «автоматическом» уровне, а то лезть и править конфигурацию не есть гут ! как сделаю выложу !
блин! будь другом! подскажи как вышел из ситуёвины!… клинит напроч что-то…
-
09.04.2012, 06:36
#5

Гость форума
Сабж
Столкнулись с такой же проблемой: при печати созданного в 1С Розница 8.2 штрихкода выводилось сообщение: . При переходе в конфигуратор выдавалось более подробное описание:
Ошибка времени выполнения:
{Обработка.ПечатьЭтикетокИ Ценников(256)}: Ошибка при установке значения атрибута контекста (РазмерШрифта) в модуле Обработка.ПечатьЭтикетокИ� �енников, строка 256..
При этом созданная «этикетка по умолчанию», содержащая шрихкод, прекрасно выводилась на печать до тех пор пока не изменялся ее размер. Изменение параметров штрихкода-картинки («растянуть», «реальный размер», «пропорционально») никакого эффекта не давали.
Победить проблему не удалось, зато удалось ее «замаскировать»:
1. В конфигураторе был задействован режим отладки: меню Отладка Остановка по ошибке ставим галочку в пункт Останавливаться по ошибке и сохраняемся (Сделайте бекап базы и/или конфигурации на всякий пожарный случай)
2. Запускаем одновременно с конфигуратором (можно прямо из него) 1С и повторяем событие ошибки.
3. Нас перебрасывает в конфигуратор на нужную нам строку в которой как-раз и стоит параметр «размер шрифта»
4. Закомментируем (то есть «спрячем» от исполнения программой) эту строку кода: перед строкой впереди поставим два слэша — \ (строка поменяет цвет текста на зеленый)
5. Сохраняем конфигурацию и перезапускаем 1С
6. В 1Ске делаем следующее: открываем шаблон нашей этикетки и видим, что рядом с надписью: «Тип кода (выборка) EAN13» чуть правее стоит галочка в пункте «Отображать текст». Снимаем галочку.
7. Теперь сформированный штрихкод будет отображаться просто как штрихкод, без записи его значения в цифровом отображении (с размером шрифта этих цифр и происходит сбой при выводе на печать).
8. Создаем свою этикетку, правим ее, вставляем штрихкод и растягиваем его как нам нужно.
9. Если кроме штрихкода вам нужны еще и цифры составляющие его, то ниже/выше/рядом со штрихкодом вставьте еще один, но уже в текстовом виде (при вставке штриха 1С вас спросит – вставить ли его как картинку – откажитесь и получите штрихкод в цифровом символьном виде) и отредактируйте что бы оба штриха были у вас рядом и выглядели так как вам нужно.
Это конечно не решение проблемы, но это поможет вам сделать этикетку на печати нужного вам вида и размера.P.S. Для тех кто мучается с выводом текста этикетки на печать (этикетка печатается со смещением от края/ распечатывается кусками на 4-6 наклеек/ печатается криво и не позволяет менять размер шрифта и пр.): не забудьте что в 1С 8.2 есть в верхнем левом углу меню Файл Параметры страницы так же отвечающие за вывод текста на печать (а так же есть настройки отображения при печати в самом драйвере принтера – щелкните по принтеру правой клавишей мыши и настройте).
Всем удачи.
Что то наверно накосячил, помогите найти в чем косяк. Вот код: Тип поля ВрНачало — Дата, но когда запускаю вылетает с ошибкой «Ошибка при установке значения атрибута контекста (ВидСравнения): Недопустимый тип сравнения Отбор[«ВрНачала»].ВидСравнения = ВидСравнения. ИнтервалВключаяГраницы; по причине: Недопустимый тип сравнения » перепробывал все типы, работает только с типом равно. в чем косяк??
сначала установи вид сравнения, а потом границы задавай
пробывал, вид сравнения устанваливать и до и после, и просто ставить «Больше», никак не катит (
дело в «Если Отбор.Найти(«ВрНачала») = Неопределено Тогда» клянусь своей треуголкой: одно из двух — либо поля такого нет принципиально в данных СписокЗаданийНаДень, либо оно имеет тип какой-то не кошерный
В отладчике открываю отбор, там есть тип поля «Врначала» тип Дата, и по умолчанию тип сравнения стоит «Равно», если ставить такой-же то все работает. Но мне нужен другой тип сравнения. (
Попробуй перед установкой отбора Отбор[«ВрНачала»].Использование = Ложь;
СписокЗаданийДень — это кто?
потом лезь в СП и внимательно читай про отбор этого типа.
Это регистр сведений, а ВрНачала — это его измерение
Если это набор записей: Использование: Только чтение. Описание: Тип: Отбор. Содержит объект Отбор, по которому осуществляется текущая фильтрация записей при считывании или записи набора. Список свойств объекта зависит от свойств регистра: для регистров сведений, для которых в конфигураторе установлен режим записи «Подчинение регистратору», отбор возможен только по регистратору, для периодических регистров сведений отбор возможен по периоду и значениям измерений, для непериодических — только по значению измерений. Важно! Отбор может устанавливаться только на равенство.
Регистр у меня непериодический, и способ записи независимый,вот толькоинтересно почему отбор нельзя по другому выставить Спасибо
Тэги:
Комментарии доступны только авторизированным пользователям
|
Heltarion 2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
||||
|
1 |
||||
|
02.12.2011, 11:18. Показов 8369. Ответов 11 Метки нет (Все метки)
Добрый день! ТПП — «табличное поле правил», в ней уже занесены некотрые значения из XML Код процедуры:
__________________
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 |
|
СохранитьНажатие(Элемент) это событие формы В МодулеОбъекта создал функцию «Процедура СохранитьВЭксель(ТПП) Экспорт»
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 минуты Так работает, но если я поставлю Дело в том что «стр.НоменклатураБазы» — это справочник ссылка, если у нее текстовый тип то программа глотает и записывает.
0 |
|
19 / 18 / 1 Регистрация: 15.11.2011 Сообщений: 54 |
|
|
02.12.2011, 12:22 |
6 |
|
чет вы мудрено делаете.
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 |
|||
|
Рабочий код:
0 |
1 февраля, 2017
21 апреля, 2017
Дано
- 1С конфигурация бухгалтерия предприятия 2.0
- Ошибка печати ПКО (приходный кассовый ордер):
|
{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста ЭлементыФормы.ПолеДокумента.ПолеСверху по причине: Несоответствие типов |
Анализ проблемы
На первый взгляд все ужасно:
- в конфигураторе видно, что система пытается выполнить строчку кода:
|
ЭлементыФормы.ПолеДокумента.ПолеСверху = ПечатныйДокумент.ПолеСверху; |
- в отладке видно, что обе переменные типа “Число”,
- синтакс-помощник говорит что:
|
ТабличныйДокумент (SpreadsheetDocument) ПолеСверху (TopMargin) Использование: Чтение и запись. |
То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.
Решение
На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.
Дополнено 2017.04.10
Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.
Помогло создание нового пользователя с такими же правами доступа. То есть нового создаем, старого удаляем и после этого все работает.
|
После обновления модуля 4.0.0.3 {ПланОбмена.Б_ОбменССайтом.Форма.ФормаСписка.Форма(193)}: Метод объекта не обнаружен (ЗаполнитьПорядокПостроителяТоваров) Когда будет обновление модуля для 1С ? |
|
|
Администратор Сообщений: 4915 |
Посмотрю в чем дело. Если ошибка у меня воспроизведется — в новой версии будет поправлено. |
|
Администратор Сообщений: 4915 |
В версии 4.0.0.6 эта бага будет поправлена. |
|
а когда версия 4.0.0.6 — просто без этого тестить трудновато |
|
|
Александр Денисюк
Администратор Сообщений: 4915 |
#5 28.04.2014 12:27:51
Специально для вас сейчас собрал. Можете скачать по ссылке http://yadi.sk/d/49KQrpWHNUT6V |
||
|
спасибо! Будем дальше изучать . |
|
|
Александр Денисюк
Администратор Сообщений: 4915 |
#7 28.04.2014 15:29:08
Не за что. Если что — пишите. Баги исправим, замечания или предложения рассмотрим и, возможно, добавим. |
||
|
вот такая ошибка выходит например, при попытке обмена заказами: УТ 10.3.29.1 модуль обмена 4.0.0.3 и 4.0.0.6 по ссылке выше попробовали. Такая же ошибка выходила и при выгрузке товаров у html-описания товара. видимо не нравиться MaxLength. описания все удалили, обмен товарами прошел. а заказы не ходят. |
|
|
Администратор Сообщений: 4915 |
Да, есть такая проблема в XDTO… Посмотрю, что можно сделать. Придется проверять длину на данные, хотя и не хотелось бы, т.к. упадет скорость.. |
|
Александр Денисюк
Администратор Сообщений: 4915 |
#10 28.04.2014 16:05:48
С описанием товаров поправил, а вот с контрагентом не совсем понятно.Походу первоначально он пришел с сайта и у него длина Ид больше 40.. |
||
|
Пользователь 9984 Эксперт Сообщений: 303 |
#11 28.04.2014 16:23:34
Похоже что так. Спасибо! Может скомпилируете сборку на попробовать? skype: bob_kulikoff |
||
|
Александр Денисюк
Администратор Сообщений: 4915 |
#12 28.04.2014 16:37:30
Тут http://yadi.sk/d/JngBHM_3NWm5N лежит 4.0.0.7 |
||||
|
Спасибо! Теперь обмен с заказами прошел легко и непринужденно. Александр, не подскажите, не планируется ли обмен «рекомендуемых товаров», т.е. сопутки? Новый компонент для сопутки уже есть, а можно ли будет ее штатно выгружать? Пока для себя делаем с новым обменом на произвольном справочнике. |
|
|
Александр Денисюк
Администратор Сообщений: 4915 |
#14 28.04.2014 16:53:30
Пока, насколько мне известно, не планируется. Сейчас надо бы модули обмена оттестировать и выпустить адаптации. А в будущем посмотрим. |
||
|
Александр, тестируем дальше. Создали справочник c одним реквизитом и одной ТЧ. Типы данных ссылочные на номенклатуру. В выгрузке отмечаем только «обмен пользовательскими справочниками». При выгрузке сразу ошибка: {ОбщийМодуль.Б_ПроцедурыОбменаССайтом.Модуль(144 8) }: Ошибка при вызове метода контекста (Выполнить) |
|
|
Александр Денисюк
Администратор Сообщений: 4915 |
#16 29.04.2014 13:22:32
Тут есть нюанс. Если вы сами создаете свой справочник, то вам его нужно добавить в состав узла Б_ОбменССайтом. К сожалению 1С не позволяет сразу указать всевозможные справочники, поэтому по там стоят только типовые. |
||
|
Идем еще проще. Создали справочник с одним текстовым реквизитом. При записи элемента получаем сообщение: Не удалось зарегистрировать изменение для элемента 0000000001. Элемент не будет отправлен на сайт Битрикс в режиме изенений. |
|
|
Зарегистрировали в узле. Но сейчас созданный пользовательский справочник с одним текстовым реквизитом не выгружается: Выгрузка информации по пользовательским справочникам Перед этим, штатный справочник «Должности организаций» выгрузился без проблем. |
|
|
Администратор Сообщений: 4915 |
Может там есть нечитаемый символ? Ошибка как раз во время разбора XML на стороне сайта. |
|
Александр, а табличная часть справочника не выгружается, правильно? |
|
|
Александр Денисюк
Администратор Сообщений: 4915 |
#21 29.04.2014 15:05:29
Нет, не выгружается. |
||
|
кстати после интеграции Ошибка при выполнении обработчика — ‘ПриЗаписи’ |
|
|
Как я понял |
|
|
Александр Денисюк
Администратор Сообщений: 4915 |
#24 30.04.2014 10:44:40
Задумывалось, что все документы, которые влияют на заказ, должны регистрировать эти заказы. Но вообще, можно указать только заказы и отгрузки. |
||
|
Александр Денисюк
Администратор Сообщений: 4915 |
#25 30.04.2014 11:25:33
В следующей версии будет поправлено. |
||