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

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Что то наверно накосячил, помогите найти в чем косяк. Вот код: Тип поля ВрНачало — Дата, но когда запускаю вылетает с ошибкой «Ошибка при установке значения атрибута контекста (ВидСравнения): Недопустимый тип сравнения    Отбор[«ВрНачала»].ВидСравнения    = ВидСравнения. ИнтервалВключаяГраницы; по причине: Недопустимый тип сравнения » перепробывал все типы, работает только с типом равно. в чем косяк??

сначала установи вид сравнения, а потом границы задавай

пробывал, вид сравнения устанваливать и до и после, и просто ставить «Больше», никак не катит (

дело в «Если Отбор.Найти(«ВрНачала») = Неопределено Тогда» клянусь своей треуголкой: одно из двух — либо поля такого нет принципиально в данных СписокЗаданийНаДень, либо оно имеет тип какой-то не кошерный

В отладчике открываю отбор, там есть тип поля «Врначала» тип Дата, и по умолчанию тип сравнения стоит «Равно», если ставить такой-же то все работает. Но мне нужен другой тип сравнения. (

Попробуй перед установкой отбора Отбор[«ВрНачала»].Использование = Ложь;

СписокЗаданийДень — это кто?

потом лезь в СП и внимательно читай про отбор этого типа.

Это регистр сведений, а ВрНачала — это его измерение

Если это набор записей: Использование: Только чтение. Описание: Тип: Отбор. Содержит объект Отбор, по которому осуществляется текущая фильтрация записей при считывании или записи набора. Список свойств объекта зависит от свойств регистра: для регистров сведений, для которых в конфигураторе установлен режим записи «Подчинение регистратору», отбор возможен только по регистратору, для периодических регистров сведений отбор возможен по периоду и значениям измерений, для непериодических — только по значению измерений. Важно! Отбор может устанавливаться только на равенство.

Регистр у меня непериодический, и способ записи независимый,вот толькоинтересно почему отбор нельзя по другому выставить Спасибо

Тэги:

Комментарии доступны только авторизированным пользователям

 

После обновления модуля 4.0.0.3
выходит сообщения при попытке импорта настроек из старого обмена с сайтом:

{ПланОбмена.Б_ОбменССайтом.Форма.ФормаСписка.Форма(193)}: Метод объекта не обнаружен (ЗаполнитьПорядокПостроителяТоваров)
ПланыОбмена.Б_ОбменССайтом.ЗаполнитьПорядокПостроителяТоваров(ПостроительОтчетаТоваров);

Когда будет обновление модуля для 1С ?
И как побороть эту ошибку — как я понял ошибка связана с тем что не хватает процедуры «ЗаполнитьПорядокПостроителяТоваров»??

 

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

Посмотрю в чем дело. Если ошибка у меня воспроизведется — в новой версии будет поправлено.

 

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

В версии 4.0.0.6 эта бага будет поправлена.

 

а когда версия 4.0.0.6 — просто без этого  тестить трудновато

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#5

28.04.2014 12:27:51

Цитата
Амангельды Шиналиев пишет:
а когда версия 4.0.0.6 — просто без этого тестить трудновато

Специально для вас сейчас собрал. Можете скачать по ссылке

http://yadi.sk/d/49KQrpWHNUT6V

 

спасибо! Будем дальше изучать .

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#7

28.04.2014 15:29:08

Цитата
Амангельды Шиналиев пишет:
спасибо! Будем дальше изучать .

Не за что. Если что — пишите. Баги исправим, замечания или предложения рассмотрим и, возможно, добавим.

 

вот такая ошибка выходит например, при попытке обмена заказами:
{ОбщийМодуль.Б_ПроцедурыОбменаССайтом.Модуль(6257)}: Ошибка при установке значения атрибута контекста (Ид)
   XDTOКонтрагент.Ид                 = XMLСтрока(СтрокаВыборки.ИдентификаторКонтрагента);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: ’93#******@mail.ru#********* ****** ********’ не соответствует простому типу: {urn:1C.ru:commerceml_2}ИдентификаторГлобальныйТип
Несоответствие фасету MaxLength = ’40’

УТ 10.3.29.1 модуль обмена 4.0.0.3 и 4.0.0.6 по ссылке выше попробовали. Такая же ошибка выходила и при выгрузке товаров у html-описания товара. видимо не нравиться MaxLength. описания все удалили, обмен товарами прошел. а заказы не ходят.

 

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

Да, есть такая проблема в XDTO… Посмотрю, что можно сделать. Придется проверять длину на данные, хотя и не хотелось бы, т.к. упадет скорость..

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#10

28.04.2014 16:05:48

Цитата
Владимир Куликов пишет:
вот такая ошибка выходит например, при попытке обмена заказами:
{ОбщийМодуль.Б_ПроцедурыОбменаССайтом.Модуль(6257)}: Ошибка при установке значения атрибута контекста (Ид)
XDTOКонтрагент.Ид = XMLСтрока(СтрокаВыборки.ИдентификаторКонтрагента);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: ’93#******@mail.ru#********* ****** ********’ не соответствует простому типу: {urn:1C.ru:commerceml_2}ИдентификаторГлобальныйТип
Несоответствие фасету MaxLength = ’40’

УТ 10.3.29.1 модуль обмена 4.0.0.3 и 4.0.0.6 по ссылке выше попробовали. Такая же ошибка выходила и при выгрузке товаров у html-описания товара. видимо не нравиться MaxLength. описания все удалили, обмен товарами прошел. а заказы не ходят.

С описанием товаров поправил, а вот с контрагентом не совсем понятно.Походу первоначально он пришел с сайта и у него длина Ид больше 40..
Сделал, чтобы длина Ид У контрагентов была 80 символов. Больше сделать не могу..

 

Пользователь 9984

Эксперт

Сообщений: 303
Баллов: 52
Регистрация: 11.03.2007

#11

28.04.2014 16:23:34

Цитата
Александр Денисюк пишет:
Сделал, чтобы длина Ид У контрагентов была 80 символов

Похоже что так. Спасибо! Может скомпилируете сборку на попробовать?

skype: bob_kulikoff

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#12

28.04.2014 16:37:30

Цитата
Владимир Куликов пишет:

Цитата
Александр Денисюк пишет:
Сделал, чтобы длина Ид У контрагентов была 80 символов

Похоже что так. Спасибо! Может скомпилируете сборку на попробовать?

Тут

http://yadi.sk/d/JngBHM_3NWm5N

лежит 4.0.0.7

 

Спасибо! Теперь обмен с заказами прошел легко и непринужденно. Александр, не подскажите, не планируется ли обмен «рекомендуемых товаров», т.е. сопутки? Новый компонент для сопутки уже есть, а можно ли будет ее штатно выгружать? Пока для себя делаем с новым обменом на произвольном справочнике.

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#14

28.04.2014 16:53:30

Цитата
Владимир Куликов пишет:
Спасибо! Теперь обмен с заказами прошел легко и непринужденно. Александр, не подскажите, не планируется ли обмен «рекомендуемых товаров», т.е. сопутки? Новый компонент для сопутки уже есть, а можно ли будет ее штатно выгружать? Пока для себя делаем с новым обменом на произвольном справочнике.

Пока, насколько мне известно, не планируется. Сейчас надо бы модули обмена оттестировать и выпустить адаптации. А в будущем посмотрим.
Пока придется использовать пользовательские справочники. У них также поддерживается выгрузка только изменений и проверка на версионность элементов.

 

Александр, тестируем дальше. Создали справочник c одним реквизитом и одной ТЧ. Типы данных ссылочные на номенклатуру. В выгрузке отмечаем только «обмен пользовательскими справочниками». При выгрузке сразу ошибка:

{ОбщийМодуль.Б_ПроцедурыОбменаССайтом.Модуль(144 }: Ошибка при вызове метода контекста (Выполнить)
       ВыборкаЗначений = Запрос.Выполнить().Выбрать();
по причине:
{(13, 7)}: Таблица не найдена «Справочник.сиДополнительныеРеквизитыНоменклатуры.Изменения»
<<?>>Справочник.сиДополнительныеРеквизитыНоменклатуры.Изменения КАК ПользовательскийСправочникИзменений

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#16

29.04.2014 13:22:32

Цитата
Владимир Куликов пишет:
Александр, тестируем дальше. Создали справочник c одним реквизитом и одной ТЧ. Типы данных ссылочные на номенклатуру. В выгрузке отмечаем только «обмен пользовательскими справочниками». При выгрузке сразу ошибка:

{ОбщийМодуль.Б_ПроцедурыОбменаССайтом.Модуль(144 }: Ошибка при вызове метода контекста (Выполнить)
ВыборкаЗначений = Запрос.Выполнить().Выбрать();
по причине:
{(13, 7)}: Таблица не найдена «Справочник.сиДополнительныеРеквизитыНоменклатуры.Изменения»
<<?>>Справочник.сиДополнительныеРеквизитыНоменклатуры.Изменения КАК ПользовательскийСправочникИзменений

Тут есть нюанс. Если вы сами создаете свой справочник, то вам его нужно добавить в состав узла Б_ОбменССайтом. К сожалению 1С не позволяет сразу указать всевозможные справочники, поэтому по там стоят только типовые.

 

Идем еще проще. Создали справочник с одним текстовым реквизитом. При записи элемента получаем сообщение:

Не удалось зарегистрировать изменение для элемента 0000000001. Элемент не будет отправлен на сайт Битрикс в режиме изенений.

 

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

Выгрузка информации по пользовательским справочникам
Формирование пакетов для пользовательских справочников.
Формирование пакетов для пользовательских справочников завершено.
Выгрузка пакетов пользовательских справочников в XML.
Начало выгрузки пакета 1 пользовательскиих справочников
Отправка запроса на авторизацию.
Отправка запроса на инициализацию, для определения версии обмена данных.
references___45e77ab2-bcc1-48bf-a25b-3823411a84a7.xml: Произошла ошибка на стороне сервера.
Ответ сервера:
failure
Ошибка разбора XML. Код ошибки: 30.
Выгрузка пакета 1 пользовательскиих справочников НЕ завершена или завершена с ошибками. НЕ Выгружено 1 элементов.
Выгрузка пакетов пользовательских справочников в XML завершена.
Выгрузка информации по пользовательским справочникам ЗАВЕРШЕНА

Перед этим, штатный справочник «Должности организаций» выгрузился без проблем.

 

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

Может там есть нечитаемый символ? Ошибка как раз во время разбора XML на стороне сайта.

 

Александр, а табличная часть справочника не выгружается, правильно?

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#21

29.04.2014 15:05:29

Цитата
Владимир Куликов пишет:
Александр, а табличная часть справочника не выгружается, правильно?

Нет, не выгружается.

 

кстати после интеграции
при проведении документа «доверенность»
выходит ошибка

Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
{ОбщийМодуль.Б_ПроцедурыОбменаССайтом.Модуль(362)}: Поле объекта не обнаружено (Номенклатура)

 

Как я понял
все идет о того что
в подписке на события «Б_ЗарегистрироватьИзмененияПриЗаписиСправочникаДокументаДля­ОбменаССайтами»
указан тип объекта «документССылка» — может там указать конкретные документы ?
а то получатся мы попадаем туда всегда при проведении любого типа документа  

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#24

30.04.2014 10:44:40

Цитата
Амангельды Шиналиев пишет:
Как я понял
все идет о того что
в подписке на события «Б_ЗарегистрироватьИзмененияПриЗаписиСправочникаДокументаДля­ОбменаССайтами»
указан тип объекта «документССылка» — может там указать конкретные документы ?
а то получатся мы попадаем туда всегда при проведении любого типа документа

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

 

Александр Денисюк

Администратор

Сообщений: 4915
Баллов: 827
Регистрация: 16.10.2013

#25

30.04.2014 11:25:33

Цитата
Амангельды Шиналиев пишет:
кстати после интеграции
при проведении документа «доверенность»
выходит ошибка

Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
{ОбщийМодуль.Б_ПроцедурыОбменаССайтом.Модуль(362)}: Поле объекта не обнаружено (Номенклатура)

В следующей версии будет поправлено.

v8: Планы Обмена, ☑ 0

Ainura80

10.05.12

16:57

При выполнении кода:

   Документ.ОбменДанными.Загрузка = Истина;

   Документ.ОбменДанными.Отправитель = Отправитель;

   Документ.Записать();

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

Ошибка при установке значения атрибута контекста (Отправитель): Несоответствие типов    Документ.ОбменДанными.Отправитель=Отправитель;

Может подскажет кто где искать?

1

Ainura80

10.05.12

17:01

тема уже поднималась на форуме, но ответа там нет (((

v8: Планы Обмена, что за глюк

2

Antizdoba

10.05.12

17:06

Я делал так: ЧтениеXML = Новый ЧтениеXML;

       ЧтениеXML.ОткрытьФайл(ИмяФайлаОбмена);

       ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();

       ЧтениеСообщения.НачатьЧтение(ЧтениеXML);

           Объект.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;

               Объект.ОбменДанными.Загрузка = Истина;

       Объект.Записать();

               ЧтениеСообщения.ЗакончитьЧтение();

               ЧтениеXML.Закрыть();

Смотри, что передается у тебя в параметре Отправитель. Удачи

3

Лефмихалыч

10.05.12

17:09

Либо ТипЗнч(Отправитель) <> Тип(«ПланОбменаСсылка»)

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

4

Ainura80

10.05.12

17:12

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

5

Ainura80

10.05.12

17:14

ТипЗнч(Отправитель) неопределенно

6

fisher

10.05.12

17:17

Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?

7

Лефмихалыч

10.05.12

17:17

(4) надо как-то себя заставить записать в этот реквизит ссылку на узел плана обмена. Волевым решением или как-то еще, но на чудо надеется бесполезно

8

Ainura80

10.05.12

17:18

Ребят, не серчайте.. скорее всего напутала я ..

9

Ainura80

10.05.12

17:29

Нет, не получается… (((

Документ.ОбменДанными.Отправитель = ПланыОбмена.МойПланОбмена.ЭтотУзел()?

Да это узел.

Лефмихалыч, А можно немного поподробнее…плиз..

10

fisher

10.05.12

17:32

(9) Бгггг :)

ПланОбменаМенеджер.<Имя плана обмена> (ExchangePlanManager.<Имя плана обмена>)

ЭтотУзел (ThisNode)

Синтаксис:

ЭтотУзел()

Возвращаемое значение:

Тип: ПланОбменаСсылка.

Описание:

Получает ссылку на предопределенный узел, соответствующий данной базе данных.

11

Ainura80

10.05.12

17:37

fisher, спасибо за лекбез.. Вот код.

ЧтениеXML = Новый ЧтениеXML();

   ЧтениеXML.ОткрытьФайл(Путь + «выгрузка.xml»);

   
   ЧтСообщения = ПланыОбмена.СоздатьЧтениеСообщения();

   ЧтСообщения.НачатьЧтение(ЧтениеXML);

   ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);

   Пока ВозможностьЧтенияДанных(ЧтениеXML) Цикл

       Данные = ПрочитатьДанные(ЧтениеXML);

       
       Если РазрешениеКоллизий(Данные) Тогда

           Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;  

           Данные.ОбменДанными.Загрузка = Истина;

           Данные.Записать();

       КонецЕсли;

   КонецЦикла;

   ЧтСообщения.ЗакончитьЧтение();

   ЧтениеXML.Закрыть();

12

fisher

10.05.12

17:44

(11) Да, чего-то я не того советую… А что у тебя в ЧтСообщения.Отправитель и какого типа? Отладчиком глянь или отладочное сообщение воткни.

13

fisher

10.05.12

17:55

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

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

14

Ainura80

10.05.12

17:56

ЧтСообщения.Отправитель значение: Получатель Тип: ПланОбменаСсылка.НовыйОбмен

В самом объекте НовыйОбмен указала данный документ в составе.

Данные это документ РеализацияТоваровиУслуг

Данные.ОбменДанными  это значение ПараметрыОбменаДанными.

Данные.ОбменДанными.Отправитель значения нет, тип неопределенно

Я не пользуюсь форумами.. но тут уже голова кругом идет.. не знаю что делать еще:((((

15

Ainura80

10.05.12

17:57

Спасибо, сейчас начну следить от начало создания документа…

16

fisher

10.05.12

18:02

Я подозреваю, что в этот момент —

ПланыОбмена.УдалитьРегистрациюИзменений(ЧтСообщения.Отправитель, ЧтСообщения.НомерСообщения);

ЧтСообщения.Отправитель еще узел содержит, а в этот момент —

Данные.ОбменДанными.Отправитель =ЧтСообщения.Отправитель;

ЧтСообщения.Отправитель уже содержит Неопределено.

17

hhhh

10.05.12

18:03

(15) похоже должен быть не этот узел, а тот откуда прочитали данные.

18

Ainura80

10.05.12

18:16

Документ при создании в отладчике уже имеет Документ.ОбменДанными.Отправитель неопределенно. Ребята может я какие нибудь настройки Планаобмена проморгала..???

19

Ainura80

10.05.12

18:18

Вот оберешься за новое.. вечно на грабли наступаешь…первый раз вожусь с этими планами обмена…

20

Ainura80

10.05.12

19:07

Ура!!!! Получилось!!!!

21

fisher

10.05.12

19:11

(18) Он там и должен быть Неопределено. Вопрос не в нем, а в ЧтСообщения.Отправитель

22

Ainura80

11.05.12

08:20

Нет, проблема просто в моем незнании материала, подчиненную базу я использовала из образа другого планаобмена. Создала образ по своему плану обмена, все заработало. Спасибо Fisher.

Примечание по ошибкам обмена Opencart/WooCommerce с 1С

1. При выгрузке большого количества товаров, например 2000 — 7000 наименований номенклатуры, используйте порционную выгрузку:

  • или автоматическую
  • или разбив всю выгрузку на каталоги по группам:

  • или вручную: по группам номенклатуры, для этого используйте настройки синхронизации с сайтом:

2. Проверяйте наличие установленной цены в 1С для выгружаемых товаров на сайт. В некоторых конфигурациях 1С, количество товара не выгружается на сайт, если отсутствует цена для товара.

3. Если по каким то причинам не выгружаются/не изменяются остатки и цены товаров на сайте, при автообмене или ручном обмене, попробуйте очистить кэш на сервере и клиенте 1С.

4. Если при обмене с сайтом большим количеством товаров, возникает ошибка сервера 500 Bad Gateway, то необходимо проверить настройки хостинга: при большом обмене данных, скрипт выполняется длительное время. Чаще всего по стандарту на хостингах ставят ограничение на выполнение скрипта до 1 минуты. Для решения проблемы необходимо увеличить ограничение на время выполнения php-скриптов, а также увеличить лимиты памяти.

5. Не загружаются заказы в 1С: некоторые конфигурации 1С (например 1С УНФ), использует кодировку заказов отличную от стандартной UTF-8. Для решения проблемы необходимы изменить кодировку в настройках модуля интеграции (http:// мойсайт.ru/install_module_1c.php):

6. 1С не может авторизоваться на сайте, при проверке соединения с сайтом выдает ошибку: «Не правильный логин или пароль». Хотя под данным логин/паролем вы успешно авторизуетесь через панель администратора сайта. Часто проблема возникает в результате работы PHP в режиме CGI. В этом режиме есть проблемы с передачей данных авторизации HTTP в php. Можно сделать проверку, вызвав phpinfo(): Server API: CGI. Для решения проблемы необходимо чтобы на сервере была включена обработка .htaccess и поддержка mod_rewrite. Выполните следующие действия:
В корне сайта в файл .htaccess добавьте строки:

RewriteEngine on 
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L] 

Перед добавлением данных строк проверьте, возможно строка «RewriteEngine on» уже есть в файле .htaccess и тогда ее добавлять НЕ нужно.
Закоментируйте следующие строки, которые отключают mod_rewrite (если есть):

#<ifmodule mod_rewrite.c=""> 
# RewriteEngine Off 
#</ifmodule> 

Если при выполнении всех рекомендаций HTTP-авторизация не заработала, то следует обратиться к хостинг-провайдеру с этой проблемой.
Если решить проблему перечисленными выше методами не удалось, то необходимо изменить настройки модуля как на картинке:

7. Заказы с сайта в 1С загружаются частично, или вообще не загружаются. При этом 1С пишет что обмен прошел успешно.
Внимание! Заказы с сайта в 1С загружаются согласно разрешенным статусам в настройках модуля на стороне сайта и дате начала загрузки заказов:

8. ДЛЯ ТЕХ У КОГО ХОСТИНГ Beget.ru — при тестировании на данном хостинге может быть (в последнее время убрали) установлен шаблон (защита от ботов) который вешает хостинг на куки:

<html><head><script>function set_cookie(){var now = new Date();var time = now.getTime();time += 19360000 * 1000;now.setTime(time);document.cookie='beget=begetok'+'; expires='+now.toGMTString()+'; path=/';}set_cookie();location.reload();;</script></head><body></body></html> 

это негативно сказывается при работе модуля интеграции. Для решение проблемы напишите в тех. поддержку хостинга для снятия данного шаблона.
Также на бесплатных тарифах хостинга Бегет — соединение с 1С хостинг блокирует.

9. При обмене с сайтом возникает ошибка в 1С:

{ОбщийМодуль.ОбменССайтом.Модуль(7905)}: Ошибка при установке значения атрибута контекста (Единица)
            ТоварXDTO.Единица = Строка(ВыборкаТоваров.ЕдиницаИзмерения);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: '' не соответствует простому типу: {urn:1C.ru:commerceml_210}Идентификатор
Несоответствие фасету MinLength = '1'

В выгружаемой номенклатуре на сайт, установлена ед. измерения которая попадает под одну из ошибок:

  • не имеет наименования
  • наименование не равно 3 символа
  • не задано международное сокращение: должно быть 3 символа, англ. буквы

Проверьте ед. измерения у номенклатуры.

10. При загрузке заказов с сайта в 1С возникает ошибка (можно найти в журнале регистрации):

{ОбщийМодуль.ОбменССайтомПереопределяемый.Модуль(2156)}: Ошибка при вызове метода контекста (Записать)
    НоменклатураОбъект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.Номенклатура.МодульОбъекта(156)}: Значение поля "Рабочее наименование" не уникально
            ВызватьИсключение ТекстИсключения;  

В вашей конфигурации 1С установлена настройка, которая проверяет уникальность рабочего наименования номенклатуры при ее создании:

Варианта решения два:
1. Либо отключить данные галки в настройках конфигурации
2. Либо воспользоваться обработкой сопоставления товаров между сайтом и 1С: ссылка на описание

11. При выгрузке товаров на сайт, в 1С все завершается успешно, ошибок в журнале регистрации нет. Но на сайте товары не появляются. Для определения ошибки необходимо выполнить проверку: сделать выгрузку товаров в каталог на диске (НЕ на сайт). Если после обмена в каталоге на диске НЕ создаются файлы import.xml и offers.xml (или import0_1.xml и offers0_1.xml), тогда необходимо проверить настройки выгрузки номенклатуры в 1С, возможно неверно указан отбор по номенклатуре и товаров просто не зарегистрировано к выгрузке).
Если данные файлы Создаются (или хотя бы один из них создается) тогда необходимо выполнить один из двух вариантов решения:
1. Отключить в настройках модуля использование статуса progress, для этого в настройках установите галку (настройка доступна с версии 2.3.1):

2. Или установить расширение для 1С:

  • ВключениеОжидатьЗавершенияИмпортаФайловСервером.zip

Расширение подходит для релизов:1С Управление торговлей 11.4.11.55 и выше; 1С Розница 2.3.х.
Для расширения отключите безопасный режим. Инструкция по установке расширений в 1С.

12. При обмене с сайтом при получении нового или уже проведенного заказа возникает ошибка:

В документе не рассчитаны автоматические скидки (наценки). Проведение не возможно.
Для расчета автоматических скидок (наценок) проведите документ из формы документа.

Данная ошибка исправлена в релизе: «1С:Управление торговлей 11», версия 11.4.11.84
Описание ошибки на офф. сайте 1С: Ошибка 000064686

13. При выгрузке товаров на сайт возникает ошибка в 1С:

Не найдено поле замены "СОГЛАШЕНИЕ"
{ОбщийМодуль.ОбменССайтом.Модуль(672)}:	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,,);
{ОбщийМодуль.ОбменССайтом.Модуль(1971)}:	ПолучитьДанныеДляВыгрузкиПакетаПредложений(Параметры.ПрикладныеПараметры, КомпоновщикНастроек, ТаблицаДанныеПакетаПредложений, ОписаниеОшибки);
{ОбщийМодуль.ОбменССайтом.Модуль(153)}:			Успешно = ВыгрузитьПакетПредложений(Параметры, СтрокаТаблицы, ТаблицаИнформации, Истина);
{ОбщийМодуль.ОбменССайтомСобытия.Модуль(257)}:	ОбменССайтом.ВыполнитьОбменССайтом(ПараметрыОбмена, РезультатОбмена, ТаблицаИнформации);
{ПланОбмена.ОбменССайтом.Команда.ВыполнитьОбменДанными.МодульКоманды(63)}:	ОбменССайтомСобытия.ВыполнитьОбмен(УзелОбмена, НСтр("ru = 'Интерактивный обмен'"), ,ПараметрыОбновления);
{ПланОбмена.ОбменССайтом.Команда.ВыполнитьОбменДанными.МодульКоманды(23)}:	ОбменВыполненСервер(УзелОбмена, ПараметрыОбновленияСписков);
по причине:
Ошибка компоновки данных

Для исправления ошибки необходимо установить расширение для 1С:

  • ИсправлениеОшибкиПолеЗаменыСоглашение.zip

Для расширения отключите безопасный режим. Инструкция по установке расширений в 1С.

14. В конфигурации 1С Управление торговлей ред. 11, Розница 2.х, Комплексная автоматизация 2.х, ERP 2.x — не рекомендуется использовать настройку выгрузки «Обновление на сайте цен и остатков товаров». При использовании данной настройки отбор по номенклатуре не учитывается и на сайт могут быть выгружены все товары из базы 1С без учета отбора. Также при этой настройке в некоторых релизах 1С Управление торговлей ред. 11 на сайт выгружаются не только цены и остатки, но и описания товаров с картинками.

15. В момент выгрузки данных из 1С отображается ошибка вида:

{Обработка.ОбменССайтом.МодульОбъекта(324)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции  'exchange_1C_Opencart.php?type=catalog&mode=file&filename=import_files/67/67c56e31-76b1-11e7-80bd-d89d67785eae_9628ce2b-e897-11e8-80e9-d89d67785e62.png': Ошибка работы с Интернет:  внутренняя ошибка сервера (500). <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>

Ошибка может возникать если ваш хостинг сайта работает в режиме server api=CGI/FastCGI.
Для исправления проблемы нужно в файл /etc/apache/apache.conf сервера Apache добавить/изменить строки вида:

<VirtualHost *:80>
.......
<IfModule mod_fcgid.c>
FcgidBusyTimeout 3600
FcgidIdleTimeout 1200
FcgidProcessLifeTime 1200
FcgidConnectTimeout 1200
FcgidIOTimeout 1200
</IfModule>
</VirtualHost>

Для исправления проблемы нужно в файл /etc/nginx/nginx.conf сервера Nginx добавить/изменить строки вида:

http {
    # Main settings
    .......
    # FastCGI settings
    fastcgi_buffers                 12 1m;
    fastcgi_buffer_size             1m;
    fastcgi_busy_buffers_size       1m;
    fastcgi_temp_file_write_size    1m;
    fastcgi_connect_timeout         1500s;
    fastcgi_read_timeout            1500s;
    fastcgi_send_timeout            1500s;
    .......
}

В php.ini:

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

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

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

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

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

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


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

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Обмен имеющимся опытом был очень полезен тип ошибки
  • Обмен имеющимся опытом был очень полезен лексическая ошибка
  • Обновление адресной книги ошибка 80200049
  • Обман ошибка сходство и различие ответ
  • Обновление агента blizzard ошибка battle net зависло обновление