Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка обмена с сайтом (Розница)

Ошибка обмена с сайтом (Розница)
Я
   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 или Неопределен
   romanыч
 
2 - 13.09.20 - 15:59
(1) Тип переменной ОбъектАдреса это ОбъектXDTO
Это я в отладчике посмотрел
   Ёпрст
 
3 - 13.09.20 - 16:08
(2) в момент ошибки, или когда ?
   RomanYS
 
4 - 13.09.20 - 16:09
(2) У ОбъектXDTO нет метода Свойство.

>> Раньше обмен работал. Давно не пользовался.
Значит либо обмен не работал, либо этот код не вызывался, либо туда приходил не ОбъектXDTO (наиболее вероятно)
   Ёпрст
 
5 - 13.09.20 - 16:11
И..у ОбъектXDTO нет метода Свойство(), есть Свойства()
   Ёпрст
 
6 - 13.09.20 - 16:14
и судя по-коду, туда должна прилетать Структура
   romanыч
 
7 - 13.09.20 - 17:35
Победил при помощи добавления новой функции:

&НаСервере
Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт
    // Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением NULL

    СтруктураПроверка = Новый Структура;
    СтруктураПроверка.Вставить(ИмяСвойства, NULL);
    // Заполняем созданную структуру из переданного значения переменной

    ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
    // Если значение для свойства структуры осталось NULL, то искомое свойство не найдено, и наоборот.

    Если СтруктураПроверка[ИмяСвойства]= NULL Тогда
        Возврат Ложь;
    Иначе
        Возврат Истина;
    КонецЕсли;
КонецФункции

Но дальше возникла новая проблема.Присутствует ссылка на функцию, которой нету ))
   RomanYS
 
8 - 13.09.20 - 17:41
(7) Почему не разобраться с ошибкой и не исправить её? Ты рановато на путь велосипедостроения встал.
   romanыч
 
9 - 13.09.20 - 18:21
(8) А чем это решение не "разобраться с ошибкой"? Как с ней можно разобраться, если разработчик использовал метод, которого нет у данного типа объекта? Я не совсем понимаю, как еще можно разобраться с ошибкой.
   RomanYS
 
10 - 13.09.20 - 18:36
(9) разработчик вероятно писал под структуру. Ты сейчас сэмулируешь один метод, будет падать на другом, ты ещё один костыль добавишь.

Если разобраться в лоб не получается, но точно знаешь, что работало, может стоит поднять бэкапы посмотреть как работало.
   romanыч
 
11 - 13.09.20 - 19:58
(10) нихрена там не под структуру писано. Все функции,где адрес формируется, имеют в названии XDTO да XML, да и в коде структурой не пахнет. Бэкапы старые нашел, там вообще код не такой, все совершенно изменилось. Разбираться долго придется, так что оставим так до следующего обновления. Благо все работает.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.