10.05.12 — 16:57
При выполнении кода:
Документ.ОбменДанными.Загрузка = Истина;
Документ.ОбменДанными.Отправитель = Отправитель;
Документ.Записать();
Выдаёт ошибку:
Ошибка при установке значения атрибута контекста (Отправитель): Несоответствие типов Документ.ОбменДанными.Отправитель=Отправитель;
Может подскажет кто где искать?
1 — 10.05.12 — 17:01
тема уже поднималась на форуме, но ответа там нет (((
v8: Планы Обмена, что за глюк
2 — 10.05.12 — 17:06
Я делал так: ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайлаОбмена);
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
Объект.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
Смотри, что передается у тебя в параметре Отправитель. Удачи
3 — 10.05.12 — 17:09
Либо ТипЗнч(Отправитель) <> Тип(«ПланОбменаСсылка»)
либо тип правильный, но объект не включен в план обмена, узел которого ты в топравителя подсунуть пытаешься
4 — 10.05.12 — 17:12
Согласна типы не совпадают.. но вот хочу узнать как мне задать тип Отправителю. В Планеобмена данный документ включен в состав..
5 — 10.05.12 — 17:14
ТипЗнч(Отправитель) неопределенно
6 — 10.05.12 — 17:17
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?
7 — 10.05.12 — 17:17
(4) надо как-то себя заставить записать в этот реквизит ссылку на узел плана обмена. Волевым решением или как-то еще, но на чудо надеется бесполезно
8 — 10.05.12 — 17:18
Ребят, не серчайте.. скорее всего напутала я ..
9 — 10.05.12 — 17:29
Нет, не получается… (((
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?
Да это узел.
Лефмихалыч, А можно немного поподробнее…плиз..
10 — 10.05.12 — 17:32
(9) Бгггг
ПланОбменаМенеджер.<Имя плана обмена> (ExchangePlanManager.<Имя плана обмена>)
ЭтотУзел (ThisNode)
Синтаксис:
ЭтотУзел()
Возвращаемое значение:
Тип: ПланОбменаСсылка.
Описание:
Получает ссылку на предопределенный узел, соответствующий данной базе данных.
11 — 10.05.12 — 17:37
fisher, спасибо за лекбез.. Вот код.
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.ОткрытьФайл(Путь + «выгрузка.xml»);
ЧтСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);
Пока ВозможностьЧтенияДанных(ЧтениеXML) Цикл
Данные = ПрочитатьДанные(ЧтениеXML);
Если РазрешениеКоллизий(Данные) Тогда
Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЕсли;
КонецЦикла;
ЧтСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
12 — 10.05.12 — 17:44
(11) Да, чего-то я не того советую… А что у тебя в ЧтСообщения.Отправитель и какого типа? Отладчиком глянь или отладочное сообщение воткни.
13 — 10.05.12 — 17:55
Если при чтении заголовка исключения не было, значит нормально считало отправителя. При УдалитьРегистрациюИзменений() Отправитель по идее еще нормальный возвращается. Попробуй его там и сохранить в промежуточную переменную.
Может, у тебя где-то в тех функциях что ты вызываешь чтение прерывается или еще что. По-хорошему, нужно отследить в какой момент он сбрасывается и по какой причине.
14 — 10.05.12 — 17:56
ЧтСообщения.Отправитель значение: Получатель Тип: ПланОбменаСсылка.НовыйОбмен
В самом объекте НовыйОбмен указала данный документ в составе.
Данные это документ РеализацияТоваровиУслуг
Данные.ОбменДанными это значение ПараметрыОбменаДанными.
Данные.ОбменДанными.Отправитель значения нет, тип неопределенно
Я не пользуюсь форумами.. но тут уже голова кругом идет.. не знаю что делать еще:((((
15 — 10.05.12 — 17:57
Спасибо, сейчас начну следить от начало создания документа…
16 — 10.05.12 — 18:02
Я подозреваю, что в этот момент —
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);
ЧтСообщения.Отправитель еще узел содержит, а в этот момент —
Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;
ЧтСообщения.Отправитель уже содержит Неопределено.
17 — 10.05.12 — 18:03
(15) похоже должен быть не этот узел, а тот откуда прочитали данные.
18 — 10.05.12 — 18:16
Документ при создании в отладчике уже имеет Документ.ОбменДанными.Отправитель неопределенно. Ребята может я какие нибудь настройки Планаобмена проморгала..???
19 — 10.05.12 — 18:18
Вот оберешься за новое.. вечно на грабли наступаешь…первый раз вожусь с этими планами обмена…
20 — 10.05.12 — 19:07
Ура!!!! Получилось!!!!
21 — 10.05.12 — 19:11
(18) Он там и должен быть Неопределено. Вопрос не в нем, а в ЧтСообщения.Отправитель
Ainura80
22 — 11.05.12 — 08:20
Нет, проблема просто в моем незнании материала, подчиненную базу я использовала из образа другого планаобмена. Создала образ по своему плану обмена, все заработало. Спасибо Fisher.
Ainura80
10.05.12 — 16:57
При выполнении кода:
Документ.ОбменДанными.Загрузка = Истина;
Документ.ОбменДанными.Отправитель = Отправитель;
Документ.Записать();
Выдаёт ошибку:
Ошибка при установке значения атрибута контекста (Отправитель): Несоответствие типов Документ.ОбменДанными.Отправитель=Отправитель;
Может подскажет кто где искать?
Ainura80
1 — 10.05.12 — 17:01
тема уже поднималась на форуме, но ответа там нет (((
v8: Планы Обмена, что за глюк
Antizdoba
2 — 10.05.12 — 17:06
Я делал так: ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайлаОбмена);
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
Объект.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
Смотри, что передается у тебя в параметре Отправитель. Удачи
Лефмихалыч
3 — 10.05.12 — 17:09
Либо ТипЗнч(Отправитель) <> Тип(«ПланОбменаСсылка»)
либо тип правильный, но объект не включен в план обмена, узел которого ты в топравителя подсунуть пытаешься
Ainura80
4 — 10.05.12 — 17:12
Согласна типы не совпадают.. но вот хочу узнать как мне задать тип Отправителю. В Планеобмена данный документ включен в состав..
Ainura80
5 — 10.05.12 — 17:14
ТипЗнч(Отправитель) неопределенно
fisher
6 — 10.05.12 — 17:17
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?
Лефмихалыч
7 — 10.05.12 — 17:17
(4) надо как-то себя заставить записать в этот реквизит ссылку на узел плана обмена. Волевым решением или как-то еще, но на чудо надеется бесполезно
Ainura80
8 — 10.05.12 — 17:18
Ребят, не серчайте.. скорее всего напутала я ..
Ainura80
9 — 10.05.12 — 17:29
Нет, не получается… (((
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?
Да это узел.
Лефмихалыч, А можно немного поподробнее…плиз..
fisher
10 — 10.05.12 — 17:32
(9) Бгггг
ПланОбменаМенеджер.<Имя плана обмена> (ExchangePlanManager.<Имя плана обмена>)
ЭтотУзел (ThisNode)
Синтаксис:
ЭтотУзел()
Возвращаемое значение:
Тип: ПланОбменаСсылка.
Описание:
Получает ссылку на предопределенный узел, соответствующий данной базе данных.
Ainura80
11 — 10.05.12 — 17:37
fisher, спасибо за лекбез.. Вот код.
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.ОткрытьФайл(Путь + «выгрузка.xml»);
ЧтСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);
Пока ВозможностьЧтенияДанных(ЧтениеXML) Цикл
Данные = ПрочитатьДанные(ЧтениеXML);
Если РазрешениеКоллизий(Данные) Тогда
Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЕсли;
КонецЦикла;
ЧтСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
fisher
12 — 10.05.12 — 17:44
(11) Да, чего-то я не того советую… А что у тебя в ЧтСообщения.Отправитель и какого типа? Отладчиком глянь или отладочное сообщение воткни.
fisher
13 — 10.05.12 — 17:55
Если при чтении заголовка исключения не было, значит нормально считало отправителя. При УдалитьРегистрациюИзменений() Отправитель по идее еще нормальный возвращается. Попробуй его там и сохранить в промежуточную переменную.
Может, у тебя где-то в тех функциях что ты вызываешь чтение прерывается или еще что. По-хорошему, нужно отследить в какой момент он сбрасывается и по какой причине.
Ainura80
14 — 10.05.12 — 17:56
ЧтСообщения.Отправитель значение: Получатель Тип: ПланОбменаСсылка.НовыйОбмен
В самом объекте НовыйОбмен указала данный документ в составе.
Данные это документ РеализацияТоваровиУслуг
Данные.ОбменДанными это значение ПараметрыОбменаДанными.
Данные.ОбменДанными.Отправитель значения нет, тип неопределенно
Я не пользуюсь форумами.. но тут уже голова кругом идет.. не знаю что делать еще:((((
Ainura80
15 — 10.05.12 — 17:57
Спасибо, сейчас начну следить от начало создания документа…
fisher
16 — 10.05.12 — 18:02
Я подозреваю, что в этот момент —
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);
ЧтСообщения.Отправитель еще узел содержит, а в этот момент —
Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;
ЧтСообщения.Отправитель уже содержит Неопределено.
hhhh
17 — 10.05.12 — 18:03
(15) похоже должен быть не этот узел, а тот откуда прочитали данные.
Ainura80
18 — 10.05.12 — 18:16
Документ при создании в отладчике уже имеет Документ.ОбменДанными.Отправитель неопределенно. Ребята может я какие нибудь настройки Планаобмена проморгала..???
Ainura80
19 — 10.05.12 — 18:18
Вот оберешься за новое.. вечно на грабли наступаешь…первый раз вожусь с этими планами обмена…
Ainura80
20 — 10.05.12 — 19:07
Ура!!!! Получилось!!!!
fisher
21 — 10.05.12 — 19:11
(18) Он там и должен быть Неопределено. Вопрос не в нем, а в ЧтСообщения.Отправитель
Ainura80
22 — 11.05.12 — 08:20
Нет, проблема просто в моем незнании материала, подчиненную базу я использовала из образа другого планаобмена. Создала образ по своему плану обмена, все заработало. Спасибо Fisher.
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Ошибку обнаружил в подсистеме.
Воспроизводится и в портативных:
{ВнешняяОбработка.ирВыгрузкаЗагрузкаДанныхЧерезФайл.МодульОбъекта(170)}: Ошибка при установке значения атрибута контекста (Отправитель)
ОбъектБД.ОбменДанными.Отправитель = УзелОтправитель;
по причине:
Свойство не доступно для плана обмена
Для воспроизведения достаточно выгрузить один узел любого плана обмена в файл (Я делал это через ДС —> Подбор и обработка объектов —> Выгрузка в файл), затем в инструменте «Выгрузка/загрузка данных через файл» попытаться загрузить данные из полученного ранее файла.
Замечу, что для свойства «ОбменДанными.Получатели», которое также недоступно для узлов планов обмена, в ирОбщий заплатка (или как это правильнее назвать?) имеется:
Код
Попытка
Получатели = ОбменДанными.Получатели;
Исключение
// Элемент плана обмена в 8.3.5+
Получатели = Неопределено;
КонецПопытки;
Я сделал по аналогии.
Было:
Код
ОбъектБД.ОбменДанными.Отправитель = УзелОтправитель;
Стало:
Код
Попытка
Отправитель = ОбъектБД.ОбменДанными.Отправитель;
Исключение
// Элемент плана обмена в 8.3.5+
Отправитель = Неопределено;
КонецПопытки;
Если Отправитель <> Неопределено Тогда
ОбъектБД.ОбменДанными.Отправитель = УзелОтправитель;
КонецЕсли;
Помогите разобраться: Участок кода в процедуре чтения файла обмена данными: {ПланОбмена.Кассы}: Ошибка при установке значения атрибута контекста (Отправитель): Несоответствие типов Данные.ОбменДанными.Отправитель=ЧтениеСообщение.Отправитель; по причине: Несоответствие типов В чем может быть проблема?
Проверял отладчиком “Данные.ОбменДанными.Отправитель” ТИП Неопределенно “ЧтениеСообщение.Отправитель” ТИП ПланыОбменаСсылка (Существуют данные)
(задумчиво) А у тебя Кассы — включены в данный план обмена? Т.е. их тебе «послали», но насколько в плане обмена где читаешь — Кассы «включены»?
Кассы -это название Плана обмена данными
ну и посмотри (поставь в конструкцию «Попытка -> Исключение -> КонецПопытки» вывод) типов «левой и правой частей».. чЁ тут гадать?
В Данные.ОбменДанными.Отправитель невозможно ничего записать, т.к. его тип — НЕОПРЕДЕЛЕНО. Отладчиком я уже все что можно пересмотрел.
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
Странно должно вроде работать — конечно если узел от которого принимаешь обмен занесен в базу
Тэги:
Комментарии доступны только авторизированным пользователям
1 февраля, 2017
21 апреля, 2017
Дано
- 1С конфигурация бухгалтерия предприятия 2.0
- Ошибка печати ПКО (приходный кассовый ордер):
{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста ЭлементыФормы.ПолеДокумента.ПолеСверху по причине: Несоответствие типов |
Анализ проблемы
На первый взгляд все ужасно:
- в конфигураторе видно, что система пытается выполнить строчку кода:
ЭлементыФормы.ПолеДокумента.ПолеСверху = ПечатныйДокумент.ПолеСверху; |
- в отладке видно, что обе переменные типа “Число”,
- синтакс-помощник говорит что:
ТабличныйДокумент (SpreadsheetDocument) ПолеСверху (TopMargin) Использование: Чтение и запись. |
То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.
Решение
На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.
Дополнено 2017.04.10
Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.
Помогло создание нового пользователя с такими же правами доступа. То есть нового создаем, старого удаляем и после этого все работает.
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Yakovin
Дата регистрации: 19.02.2007
Сообщений: 49
«Всем, здравствуйте!!! После обновления конфы с 1.6.25.6 до 1.6.25.9 с одного компьютера не получается открыть бухгалтерию, при этом появляется ошибка:<br><br>{ОбщийМодуль.ПолныеПрава(16)}: Ошибка при установке значения атрибута контекста (ТекущийПользователь): Несоответствие типов<br>ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь; по причине:<br>Несоответствие типов<br><br>Данная ошибка появляется при попытке войти под любым пользователем. Причем с любого другого компьютера и под любым пользователем данная база ОТКРЫВАЕТСЯ без проблем.<br><br>Я пробовал переустанавливать платформу, пробовал заново накатывать обновления, но ничего не помогает. База находится в корне сетевого диска. После повторной переустановки обновлений, базу также сохранил и в папке BACKUP, и в неё войти удалось. Т.е. на диске 2 одинаковые базы, одна в корне, другая в папке BACKUP, с проблемного компьютера удаётся войти только во вторую.<br><br>Платформа 8.1.15.14<br><br>Очень нужна Ваша помощь!!! Заранее всем огромное спасибо! «
BelikovS
Дата регистрации: 05.03.2007
Сообщений: 1701
Удалите базу из списка и добавьте снова или почистите кэш …:Documents and Settings…Local SettingsApplication Data1C1Cv81
Yakovin
Дата регистрации: 19.02.2007
Сообщений: 49
Показывать по
10
20
40
сообщений
-
Подскажите, пожалуйста, что за ошибка:
При создании настройки обмена во второй информационной базе возникли ошибки: {Обработка.ПомощникСозданияОбменаДанными.МодульОбъекта(861)}: Ошибка при установке значения атрибута контекста (НомерОтправленного) НовыйУзел.НомерОтправленного = 0; по причине: Свойство не может быть изменено для предопределенного узла
Я не раз настраивал синхронизацию, но такое впервые.
Как я пытался решить проблему:- Обновил базы — результат тот же;
- Заменил правила на более новые — результат тот же.
Обмен между ЗУП 3.0.25 и БП 3.0.43
-
Оказалось, что при создании обмена 1с не создавала узел, да ещё и префиксы («коды» узлов) не совпадали. Возможно, что до меня кто-то начудил.
В общем, создал узлы вручную, указал коды как префиксы ИБ (на всякий пожарный), далее воспользовался помощником создания синхронизации и всё заработало!
Закрывайте
Ainura80
10.05.12 — 16:57
При выполнении кода:
Документ.ОбменДанными.Загрузка = Истина;
Документ.ОбменДанными.Отправитель = Отправитель;
Документ.Записать();
Выдаёт ошибку:
Ошибка при установке значения атрибута контекста (Отправитель): Несоответствие типов Документ.ОбменДанными.Отправитель=Отправитель;
Может подскажет кто где искать?
Ainura80
1 — 10.05.12 — 17:01
тема уже поднималась на форуме, но ответа там нет (((
v8: Планы Обмена, что за глюк
Antizdoba
2 — 10.05.12 — 17:06
Я делал так: ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайлаОбмена);
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
Объект.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
Смотри, что передается у тебя в параметре Отправитель. Удачи
Лефмихалыч
3 — 10.05.12 — 17:09
Либо ТипЗнч(Отправитель) <> Тип(«ПланОбменаСсылка»)
либо тип правильный, но объект не включен в план обмена, узел которого ты в топравителя подсунуть пытаешься
Ainura80
4 — 10.05.12 — 17:12
Согласна типы не совпадают.. но вот хочу узнать как мне задать тип Отправителю. В Планеобмена данный документ включен в состав..
Ainura80
5 — 10.05.12 — 17:14
ТипЗнч(Отправитель) неопределенно
fisher
6 — 10.05.12 — 17:17
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?
Лефмихалыч
7 — 10.05.12 — 17:17
(4) надо как-то себя заставить записать в этот реквизит ссылку на узел плана обмена. Волевым решением или как-то еще, но на чудо надеется бесполезно
Ainura80
8 — 10.05.12 — 17:18
Ребят, не серчайте.. скорее всего напутала я ..
Ainura80
9 — 10.05.12 — 17:29
Нет, не получается… (((
Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?
Да это узел.
Лефмихалыч, А можно немного поподробнее…плиз..
fisher
10 — 10.05.12 — 17:32
(9) Бгггг
ПланОбменаМенеджер.<Имя плана обмена> (ExchangePlanManager.<Имя плана обмена>)
ЭтотУзел (ThisNode)
Синтаксис:
ЭтотУзел()
Возвращаемое значение:
Тип: ПланОбменаСсылка.
Описание:
Получает ссылку на предопределенный узел, соответствующий данной базе данных.
Ainura80
11 — 10.05.12 — 17:37
fisher, спасибо за лекбез.. Вот код.
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.ОткрытьФайл(Путь + «выгрузка.xml»);
ЧтСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтСообщения.НачатьЧтение(ЧтениеXML);
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);
Пока ВозможностьЧтенияДанных(ЧтениеXML) Цикл
Данные = ПрочитатьДанные(ЧтениеXML);
Если РазрешениеКоллизий(Данные) Тогда
Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЕсли;
КонецЦикла;
ЧтСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
fisher
12 — 10.05.12 — 17:44
(11) Да, чего-то я не того советую… А что у тебя в ЧтСообщения.Отправитель и какого типа? Отладчиком глянь или отладочное сообщение воткни.
fisher
13 — 10.05.12 — 17:55
Если при чтении заголовка исключения не было, значит нормально считало отправителя. При УдалитьРегистрациюИзменений() Отправитель по идее еще нормальный возвращается. Попробуй его там и сохранить в промежуточную переменную.
Может, у тебя где-то в тех функциях что ты вызываешь чтение прерывается или еще что. По-хорошему, нужно отследить в какой момент он сбрасывается и по какой причине.
Ainura80
14 — 10.05.12 — 17:56
ЧтСообщения.Отправитель значение: Получатель Тип: ПланОбменаСсылка.НовыйОбмен
В самом объекте НовыйОбмен указала данный документ в составе.
Данные это документ РеализацияТоваровиУслуг
Данные.ОбменДанными это значение ПараметрыОбменаДанными.
Данные.ОбменДанными.Отправитель значения нет, тип неопределенно
Я не пользуюсь форумами.. но тут уже голова кругом идет.. не знаю что делать еще:((((
Ainura80
15 — 10.05.12 — 17:57
Спасибо, сейчас начну следить от начало создания документа…
fisher
16 — 10.05.12 — 18:02
Я подозреваю, что в этот момент —
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);
ЧтСообщения.Отправитель еще узел содержит, а в этот момент —
Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;
ЧтСообщения.Отправитель уже содержит Неопределено.
hhhh
17 — 10.05.12 — 18:03
(15) похоже должен быть не этот узел, а тот откуда прочитали данные.
Ainura80
18 — 10.05.12 — 18:16
Документ при создании в отладчике уже имеет Документ.ОбменДанными.Отправитель неопределенно. Ребята может я какие нибудь настройки Планаобмена проморгала..???
Ainura80
19 — 10.05.12 — 18:18
Вот оберешься за новое.. вечно на грабли наступаешь…первый раз вожусь с этими планами обмена…
Ainura80
20 — 10.05.12 — 19:07
Ура!!!! Получилось!!!!
fisher
21 — 10.05.12 — 19:11
(18) Он там и должен быть Неопределено. Вопрос не в нем, а в ЧтСообщения.Отправитель
Ainura80
22 — 11.05.12 — 08:20
Нет, проблема просто в моем незнании материала, подчиненную базу я использовала из образа другого планаобмена. Создала образ по своему плану обмена, все заработало. Спасибо Fisher.
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Не зарегистрирован
Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.
Форум -> Интернет Магазин -> Экспорт заказов в 1С | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вопросы по настройке магазина, каталога. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Всего тем: 6660
Всего сообщений: 27849
Всего зарегистрированных пользователей: 53096
Последний зарегистрированный пользователь: densko
Сообщения, отправленные пользователем: tlvova
Индекс форума » Профиль для tlvova » Сообщения, отправленные пользователем tlvova |
Автор | Сообщение | |
---|---|---|
|
||
Добрый день.
При отказе от всего при гашении происходит ошибка {ВнешняяОбработка.Vetis_Защищенный.МодульОбъекта(2826)}: Ошибка при установке значения атрибута контекста (guid) purpose.guid = ДанныеДляОтправки.deliveryFacts.purpose; по причине: Несоответствие типов XDTO по причине: Ошибка проверки данных XDTO: Значение: » не соответствует простому типу: {http://api.vetrf.ru/schema/cdm/base}UUID Значение не соответствует образцу с чем это может быть связано? Спасибо) |
||
|
||
В тестовом Меркурии сформировали ВСД, отправили, погасили. Можем делать всё, что хотим.
Теперь пробуем делать тоже самое в 1С. Ругается на права пользователя. Что может быть не так? |
||
|
||
если перевести эту фразу, то данный врач не обслуживает предприятие отправитель? |
||
|
||
добрый день
подскажите, пожалуйста, что означает данная ошибка и как с ней бороться |
||
|
||
вот я и читаю этот приказ:1. Молоко и сливки, несгущенные и без добавления сахара или других подслащивающих веществ (за исключением подсубпозиции 0401 10 900 0; 0401 20 190 0; 0401 20 990 0; 0401 40 900 0; 0401 20 110 9; 0401 20 910 9; 0401 50 190 0; 0401 50 390 0; 0401 50 990 0). Молоко и сливки, сгущенные или с добавлением сахара или других подслащивающих веществ. Пахта, свернувшиеся молоко и сливки, йогурт, кефир и прочие ферментированные или сквашенные молоко и сливки, сгущенные или несгущенные, с добавлением или без добавления сахара или других подслащивающих веществ, с вкусоароматическими добавками или без них, с добавлением или без добавления фруктов, орехов или какао. Молочная сыворотка, сгущенная или несгущенная, с добавлением или без добавления сахара или других подслащивающих веществ; продукты из натуральных компонентов молока, с добавлением или без добавления сахара или других подслащивающих веществ, в другом месте не поименованные или не включенные. Сливочное масло и прочие жиры и масла, изготовленные из молока; молочные пасты. Сыры и творог (относятся к кодам ТН ВЭД из 0401, 0402, 0403, 0404, 0405, 0406). тертый сыр откоситься к ТН ВЭД 0406 как определить, что сырная палочка — это подвиг, а не обязанность? |
||
|
||
Добрый день.
вопрос для чайников: на что я получу ВСД…вот например есть хлебобулочное изделие «Сырная палочка», у них в составе есть сыр тертый ТН ВЭД 0406200000 есть в приказе 647 получу ли я на неё ВСД? |
||
Индекс форума » Профиль для tlvova » Сообщения, отправленные пользователем tlvova |
|
Heltarion 2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
||||
1 |
||||
02.12.2011, 11:18. Показов 8734. Ответов 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. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Воспроизводится и в портативных:
{ВнешняяОбработка.ирВыгрузкаЗагрузкаДанныхЧерезФайл.МодульОбъекта(170)}: Ошибка при установке значения атрибута контекста (Отправитель)
ОбъектБД.ОбменДанными.Отправитель = УзелОтправитель;
по причине:
Свойство не доступно для плана обмена
Для воспроизведения достаточно выгрузить один узел любого плана обмена в файл (Я делал это через ДС —> Подбор и обработка объектов —> Выгрузка в файл), затем в инструменте «Выгрузка/загрузка данных через файл» попытаться загрузить данные из полученного ранее файла.
Замечу, что для свойства «ОбменДанными.Получатели», которое также недоступно для узлов планов обмена, в ирОбщий заплатка (или как это правильнее назвать?) имеется:
Код
Попытка
Получатели = ОбменДанными.Получатели;
Исключение
// Элемент плана обмена в 8.3.5+
Получатели = Неопределено;
КонецПопытки;
Я сделал по аналогии.
Было:
Код
ОбъектБД.ОбменДанными.Отправитель = УзелОтправитель;
Стало:
Код
Попытка
Отправитель = ОбъектБД.ОбменДанными.Отправитель;
Исключение
// Элемент плана обмена в 8.3.5+
Отправитель = Неопределено;
КонецПопытки;
Если Отправитель <> Неопределено Тогда
ОбъектБД.ОбменДанными.Отправитель = УзелОтправитель;
КонецЕсли;