| 
    
        
     
     | 
    
    
  | 
Ошибка обмена с сайтом (Розница) | ☑ | ||
|---|---|---|---|---|
| 
    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, да и в коде структурой не пахнет. Бэкапы старые нашел, там вообще код не такой, все совершенно изменилось. Разбираться долго придется, так что оставим так до следующего обновления. Благо все работает.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |