Из регламентной задачи вызываю этот код:

```1c
    Процедура ЗаписатьДанныеНаСервере() Экспорт

    ЧтениеXML=Новый ЧтениеXML;

    Файл_XML=ЧтениеXML.ОткрытьФайл("D:\НоваяПапка\document.xml");

    Для каждого СтрокаДанных Из Файл_XML Цикл

    НайденныйКонтрагент = Справочники.Контрагенты.Найти(Число(СтрокаДанных.УНП), "УНП");//Справочники.Контрагенты.НайтиПоРеквизиту("УНП", Число(СтрокаДанных.УНП));
    Если НайденныйКонтрагент <> Неопределено Тогда
    Продолжить;
    КонецЕсли;

    НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
    НовыйКонтрагент.Наименование = СтрокаДанных.Наименование;
    НовыйКонтрагент.УНП = СтрокаДанных.УНП;
    НовыйКонтрагент.ПолноеНаименование = СтрокаДанных.ПолноеНаименование;
    НовыйКонтрагент.Записать();

    КонецЦикла;

    Сообщить("Создание контрагентов завершено!");

    КонецПроцедуры
```

Получаю такую ошибку:

```1c
    Обращение к процедуре объекта как к функции (ОткрытьФайл)
    {ОбщийМодуль.РегЗад_загрузка.Модуль(5)}:Файл_XML=ЧтениеXML.ОткрытьФайл("D:\НоваяПапка\document.xml");
```

напишите пожалйста, что я делаю не правильно.
---
Код решения выложите для будущих поколений.
---
ОткрытьФай

ЧтениеXML=Новый ЧтениеXML;
Файл_XML=ЧтениеXML.ОткрытьФайл("D:\НоваяПапка\document.xml"); - это процедура
---
xml файл
---
еще раз, не надо лишних движений, в ЧтениеXML уже все будет.

```1c
    Процедура ЗаписатьДанныеНаСервере() Экспорт

    ЧтениеXML=Новый ЧтениеXML;

    ЧтениеXML.ОткрытьФайл("D:\НоваяПапка\document.xml");

    Для каждого СтрокаДанных Из ЧтениеXML Цикл

    НайденныйКонтрагент = Справочники.Контрагенты.Найти(Число(СтрокаДанных.УНП), "УНП");//Справочники.Контрагенты.НайтиПоРеквизиту("УНП", Число(СтрокаДанных.УНП));
    Если НайденныйКонтрагент <> Неопределено Тогда
    Продолжить;
    КонецЕсли;

    НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
    НовыйКонтрагент.Наименование = СтрокаДанных.Наименование;
    НовыйКонтрагент.УНП = СтрокаДанных.УНП;
    НовыйКонтрагент.ПолноеНаименование = СтрокаДанных.ПолноеНаименование;
    НовыйКонтрагент.Записать();

    КонецЦикла;

    Сообщить("Создание контрагентов завершено!");

    КонецПроцедуры
```
---
Описание:
Открывает XML-файл для чтения данным объектом. Если перед вызовом данного метода уже производилось чтение XML из другого файла или строки, то чтение прекращается и объект инициализируется для чтения из указанного файла. не надо
```1c
    Файл_XML=
```
 делать в ЧтениеXML уже все будет
---
А чем отличается процедура от функции? В курсе? Че там в учебниках написано?
И что нам говорит СП по поводу метода ОткрытьФайл()?
---
ЧтениеXML.ОткрытьФайл("D:\НоваяПапка\document.xml");

Для каждого СтрокаДанных Из ЧтениеXML.Прочитать() Цикл

так исправила...
---
так будет только 1 проход
---
```1c
    Справочники.Контрагенты.Найти ?
```

А че, так можно было ?
:)
---
```1c
    Процедура ЗаписатьДанныеНаСервере() Экспорт

    ЧтениеXML=Новый ЧтениеXML;

    ЧтениеXML.ОткрытьФайл("D:\НоваяПапка\document.xml");

    Пока ЧтениеXML.Прочитать() Цикл

    НайденныйКонтрагент = Справочники.Контрагенты.Найти(Число(ЧтениеXML.УНП), "УНП");//Справочники.Контрагенты.НайтиПоРеквизиту("УНП", Число(ЧтениеXML.УНП));
    Если НайденныйКонтрагент <> Неопределено Тогда
    Продолжить;
    КонецЕсли;

    НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
    НовыйКонтрагент.Наименование = ЧтениеXML.Наименование;
    НовыйКонтрагент.УНП = ЧтениеXML.УНП;
    НовыйКонтрагент.ПолноеНаименование = ЧтениеXML.ПолноеНаименование;
    НовыйКонтрагент.Записать();

    КонецЦикла;

    Сообщить("Создание контрагентов завершено!");

    КонецПроцедуры
```

пишу по памяти, возможны ошибки
---
Теперь такая ошибка:

Код
 Поле объекта не обнаружено (УНП)
{ОбщийМодуль.РегЗад_загрузка.Модуль(9)}:НайденныйКонтрагент = Справочники.Контрагенты.Найти(Число(ЧтениеXML.УНП), "УНП")
Показать полностью
---
```1c
    ЧтениеXML.ЗначениеАтрибута("УНП");
```
---
ЧтениеXML.ЗначениеАтрибута("УНП");

```1c
    НайденныйКонтрагент = Справочники.Контрагенты.Найти(Число(ЧтениеXML.ЗначениеАтрибута("УНП")), "УНП");
    //ЧтениеXML.ЗначениеАтрибута("УНП");
    //Справочники.Контрагенты.НайтиПоРеквизиту("УНП", Число(ЧтениеXML.УНП));
    Если НайденныйКонтрагент <> Неопределено Тогда
    Продолжить;
    КонецЕсли;
```

Изменила так.
---
Блин, мне нравятся темы этой дамы. Тут такой БДСМ!!!
---
Все решили задачу, Всем огромное спасибо.
---
Код решения выложите для будущих поколений.
---
ЛУЧШЕ НЕ НАДО!!!
---
Сделала как Вы написали.