![]() |
|
Ошибка обмена с сайтом (Розница) | ☑ | ||
---|---|---|---|---|
0
romanыч
13.09.20
✎
07:30
|
В 1С Розница не работает обмен с сайтом.
Ошибка: Метод объекта не обнаружен (Свойство) Если НЕ ОбъектАдреса.Свойство("AddressType") Тогда Функция ПредставлениеНаселенногоПункта(ОбъектАдреса) Экспорт АдресныеУровниБезСокращений = Новый Соответствие(); АдресныеУровниБезСокращений.Вставить("MunDistrict", Истина); АдресныеУровниБезСокращений.Вставить("Settlement", Истина); Если НЕ ОбъектАдреса.Свойство("AddressType") Тогда СписокПолейАдреса = "Area,City"; ИначеЕсли РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ОбъектАдреса.AddressType) Тогда СписокПолейАдреса = "Area,MunDistrict,Settlement,CityDistrict,Locality,Territory"; Иначе СписокПолейАдреса = "Area,District,City,CityDistrict,Locality,Territory"; КонецЕсли; СписокПолей = СтрРазделить(СписокПолейАдреса, ","); Адрес = Новый Массив; Для каждого ИмяПоля Из СписокПолей Цикл Если ОбъектАдреса.Свойство(ИмяПоля) И ЗначениеЗаполнено(ОбъектАдреса[ИмяПоля]) Тогда ПредставлениеУровня = ОбъектАдреса[ИмяПоля] + ?(АдресныеУровниБезСокращений.Получить(ИмяПоля) = Неопределено, " " + ОбъектАдреса[ИмяПоля + "Type"], ""); Адрес.Добавить(СокрЛП(ПредставлениеУровня)); КонецЕсли; КонецЦикла; Возврат СтрСоединить(Адрес, ", "); КонецФункции Тип переменной ОбъектАдреса это ОбъектXDTO Раньше обмен работал. Давно не пользовался. С тоговремени производил обновление конфигурации и платформы. Подскажите,что можно поправить. |
|||
1
Ёпрст
гуру
13.09.20
✎
08:46
|
(0) ну включи в отладчике остановку по ошибке и посмотри, че прилетает в ОбъектАдреса, мот там списокXDTO или Неопределен
|
|||
2
romanыч
13.09.20
✎
15:59
|
(1) Тип переменной ОбъектАдреса это ОбъектXDTO
Это я в отладчике посмотрел |
|||
3
Ёпрст
гуру
13.09.20
✎
16:08
|
(2) в момент ошибки, или когда ?
|
|||
4
RomanYS
13.09.20
✎
16:09
|
(2) У ОбъектXDTO нет метода Свойство.
>> Раньше обмен работал. Давно не пользовался. Значит либо обмен не работал, либо этот код не вызывался, либо туда приходил не ОбъектXDTO (наиболее вероятно) |
|||
5
Ёпрст
гуру
13.09.20
✎
16:11
|
И..у ОбъектXDTO нет метода Свойство(), есть Свойства()
|
|||
6
Ёпрст
гуру
13.09.20
✎
16:14
|
и судя по-коду, туда должна прилетать Структура
|
|||
7
romanыч
13.09.20
✎
17:35
|
Победил при помощи добавления новой функции:
&НаСервере Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт // Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением NULL СтруктураПроверка = Новый Структура; СтруктураПроверка.Вставить(ИмяСвойства, NULL); // Заполняем созданную структуру из переданного значения переменной ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); // Если значение для свойства структуры осталось NULL, то искомое свойство не найдено, и наоборот. Если СтруктураПроверка[ИмяСвойства]= NULL Тогда Возврат Ложь; Иначе Возврат Истина; КонецЕсли; КонецФункции Но дальше возникла новая проблема.Присутствует ссылка на функцию, которой нету )) |
|||
8
RomanYS
13.09.20
✎
17:41
|
(7) Почему не разобраться с ошибкой и не исправить её? Ты рановато на путь велосипедостроения встал.
|
|||
9
romanыч
13.09.20
✎
18:21
|
(8) А чем это решение не "разобраться с ошибкой"? Как с ней можно разобраться, если разработчик использовал метод, которого нет у данного типа объекта? Я не совсем понимаю, как еще можно разобраться с ошибкой.
|
|||
10
RomanYS
13.09.20
✎
18:36
|
(9) разработчик вероятно писал под структуру. Ты сейчас сэмулируешь один метод, будет падать на другом, ты ещё один костыль добавишь.
Если разобраться в лоб не получается, но точно знаешь, что работало, может стоит поднять бэкапы посмотреть как работало. |
|||
11
romanыч
13.09.20
✎
19:58
|
(10) нихрена там не под структуру писано. Все функции,где адрес формируется, имеют в названии XDTO да XML, да и в коде структурой не пахнет. Бэкапы старые нашел, там вообще код не такой, все совершенно изменилось. Разбираться долго придется, так что оставим так до следующего обновления. Благо все работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |