Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пустое значение при чтении XML
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
mitrade
Во время прочтения XML выдает ошибку при незаполненном значении атрибута {Справочник.ТоварыМитрейд.Форма.ФормаСписка.Форма(226)}: Индекс находится за границами массива
Если ЧтениеXML.ТипУзла = ТипУзлаXML.текст Тогда
    Если Атрибут = "productID" тогда
        если ЧтениеXML.Значение = null Тогда
            СЗ.Добавить("Здесь 0")
        иначе
            СЗ.Добавить("пустое поле");
        КонецЕсли;
    КонецЕсли;

    Если Атрибут = "categoryID"  Тогда
        СЗ.Добавить(ЧтениеXML.Значение);
    КонецЕсли;

    Если Атрибут = "name"  Тогда
        СЗ.Добавить(ЧтениеXML.Значение);
    КонецЕсли;


Как правильно поставить условие (если ЧтениеXML.Значение = null Тогда СЗ.Добавить("Здесь 0") )


 ! 

Вставляйте код по человечески!
 
Vofka
Если НЕ ЗначениеЗаполнено(ЧтениеXML.Значение) Тогда
mitrade
Цитата(Vofka @ 28.04.13, 12:08) необходимо зарегистрироваться для просмотра ссылки
Если НЕ ЗначениеЗаполнено(ЧтениеXML.Значение) Тогда



Не помогает таже ошибка появляется.
Vofka
А вы уверены, что ошибку выдает именно в этой строке?
mitrade
Цитата(Vofka @ 28.04.13, 12:30) необходимо зарегистрироваться для просмотра ссылки
А вы уверены, что ошибку выдает именно в этой строке?



100% проверял вот файл


- <table name="ss_products">
<column name="productID">0</column>
<column name="categoryID">54</column>
<column name="name">Монитор самсунг</column>
<column name="description">Полное описание</column>
<column name="customers_rating">РЕЙТИНГ ПОКУПАТЕЛЕЙ</column>
<column name="Price">419</column>
<column name="picture">1604_0_daewoo_hl711s.jpg</column>
<column name="in_stock">В НАЛИЧИИ</column>
<column name="thumbnail">IMG_6270.JPG</column>
<column name="customer_votes">КОЛВОГОЛОСОВ</column>
<column name="items_sold">Продано штук</column>
<column name="big_picture">0000</column>
<column name="enabled">АКТИВНЫЙ ТОВАР</column>
<column name="brief_description">Короткое описание</column>
<column name="list_price">СТАРАЯ ЦЕНА</column>
<column name="product_code">Код ПРОДУКТА</column>
</table>

играюсь только с этой строчкой

если эта строчка заполнена все загружается без проблем
mitrade
Также не работает


если ЧтениеXML.Значение = Неопределено Тогда


если ЧтениеXML.Значение = "" Тогда


если ЧтениеXML.Значение = """" Тогда


если ЧтениеXML.Значение = 0 Тогда





При записи в XML

поле записывается так <column name="productID"/> , а должно <column name="productID"></column>
Vofka
Я что-то вообще уже не понимаю, что вам надо.
mitrade
Цитата(Vofka @ 28.04.13, 14:02) необходимо зарегистрироваться для просмотра ссылки
Я что-то вообще уже не понимаю, что вам надо.



Надо чтобы читался XML файл в котором имеются назаполненные значения атрибутов.
alex040269
Цитата(mitrade @ 28.04.13, 13:56) необходимо зарегистрироваться для просмотра ссылки
<column name="productID"/>

эта запись означает, что элемента вообще нет. после началаЭлемента сразу считывается КонецЭлемента, а значения нет вообще.
mitrade
Цитата(alex040269 @ 28.04.13, 14:30) необходимо зарегистрироваться для просмотра ссылки
эта запись означает, что элемента вообще нет. после началаЭлемента сразу считывается КонецЭлемента, а значения нет вообще.



Может быть можно как то отменить привязку к значениям атрибутов, тоесть чтобы когда у атрибута незаполнено значение в список значений добавлялась запись пустое поле и начинал читаться следующий атрибут в XML?
mitrade
Разобрался нужно было дописать внизу


 Если ЧтениеXML.ТипУзла = Null Тогда
                    ЧтениеXML.ПрочитатьАтрибут();
            Атрибут = ЧтениеXML.Значение;
    
                         КонецЕсли;
                    
                         Если   Атрибут = ЧтениеXML.Значение и ЧтениеXML.Значение = ""
                            
                             Тогда  СЗ.Добавить(ЧтениеXML.Значение);  КонецЕсли;
mitrade
а не ошибся теперь поля тупо заполняются пустыми

даже если содержат значения в файле
logist
Если ПустаяСтрока(ЧтениеXML.Значение) Тогда Сообщить("Здесь ничего нет"); КонецЕсли;
mitrade
Цитата(logist @ 29.04.13, 6:17) необходимо зарегистрироваться для просмотра ссылки
Если ПустаяСтрока(ЧтениеXML.Значение) Тогда Сообщить("Здесь ничего нет"); КонецЕсли;



Не работает та же ошибка!

А не прошу прощения, заработало! Спасибо за помощь!
mitrade
Пришлось заново написать условие в итоге правильное условие которое работает:
    Если ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
            
            Если Атрибут = "productID" и ЧтениеXML.Значение <> "" Тогда СЗ.Добавить(ЧтениеXML.Значение);
                
                    КонецЕсли;
                                      
                                           КонецЕсли;

            
            Если ЧтениеXML.ТипУзла <> ТипУзлаXML.Текст Тогда
                
                Если Атрибут = "productID" и ЧтениеXML.Значение = "" тогда
                    
            СЗ.Добавить("Пусто");    
                    
                                                       КонецЕсли;
                                                                 КонецЕсли;



Всем спасибо за помощь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.