Имя: Пароль:
1C
 
Выгрузка контрагентов в xml
0 ColonelAp4u
 
01.03.16
09:54
Добрый день подскажите пожалуйста в чем может проблема вроде по циклам все проходит, но в файл пустой
Код
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Контрагенты.Ссылка КАК Контрагент,
                   |    КонтактнаяИнформация.Представление КАК Адрес,
                   |    КонтактнаяИнформация.Объект.ИНН КАК ИНН
                   |ИЗ
                   |    Справочник.Контрагенты КАК Контрагенты
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                   |        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
                   |ГДЕ
                   |    НЕ Контрагенты.ИНН = """"
                   |    И КонтактнаяИнформация.Тип = &Тип
                   |    И Контрагенты.Ссылка = &Ссылка
                   |ИТОГИ ПО
                   |    Контрагент,
                   |    ИНН";
    Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес);
    Запрос.УстановитьПараметр("Ссылка", Справочники.Контрагенты.НайтиПоКоду("11711"));
    Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ФайлВыг=Новый ЗаписьXML;
    Путь="D:\Обмен\Выгрзуки\";
    ФайлРез=Путь+"\kontrs"+"_"+Формат(ТекущаяДата(),"ДФ=yyyyMMdd; ДП=")+".xml";
    ФайлВыг.ОткрытьФайл(ФайлРез,"windows-1251");
    ФайлВыг.ЗаписатьОбъявлениеXML();
    ФайлВыг.ЗаписатьНачалоЭлемента("kontrs");
    Пока Результат.Следующий() Цикл
        ФайлВыг.ЗаписатьНачалоЭлемента("kontragent producer");
        ФайлВыг.ЗаписатьАтрибут("name",Результат.Контрагент.Наименование);
        ВыборкаИнн = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаИНН.Следующий() Цикл
            ФайлВыг.ЗаписатьАтрибут("inn",ВыборкаИНН.ИНН);
        КонецЦикла;
        ФайлВыг.ЗаписатьКонецЭлемента();
    КонецЦикла;
    ФайлВыг.ЗаписатьКонецЭлемента();
1 Остап Сулейманович
 
01.03.16
09:56
(0) В конце всех концов обязательно ФайлВыг.Закрыть();
2 ColonelAp4u
 
01.03.16
09:57
(1) спс
забыл
3 ColonelAp4u
 
01.03.16
09:58
но все равно файл пуст
4 ColonelAp4u
 
01.03.16
09:59
И еще если не указываю контра то он их должен в цикле добавить всех, но на 3ем контре выдает ошибку "дублирование атрибута name"
5 ColonelAp4u
 
01.03.16
10:04
Вроде перестало дублировать атрибуты, и всех контр добавило так как файл стал занимать 50 кб, но открываю он все равно пуст
6 ColonelAp4u
 
01.03.16
10:05
через блокнот открываю все есть, через ИЕ пусто
7 Ёпрст
 
01.03.16
10:07
(6) не хватает закрывающего тега где-то
8 ColonelAp4u
 
01.03.16
10:09
по файлу видно что не хватает вот такого тэга
        ФайлВыг.ЗаписатьНачалоЭлемента("kontragent producer");
9 ColonelAp4u
 
01.03.16
10:09
т.е начало данного элемента есть а конца нет
10 laby1
 
01.03.16
10:47
ФайлВыг.ЗаписатьТекст(Результат.Контрагент.Наименование);
11 laby1
 
01.03.16
11:14
(9) Почему нет если есть:

ФайлВыг.ЗаписатьКонецЭлемента();
Закон Брукера: Даже маленькая практика стоит большой теории.