Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 19:02

8.2 выгрузить счет в xml

Автор Chuchi, 19 июл 2011, 11:42

0 Пользователей и 1 гость просматривают эту тему.

Chuchi

Благодаря одной из тем формума нашла как выгружать документы в xml и все отлично если бы я не стала выгружать такой параметр из счета как ОРГАНИЗАЦИЯ
Процедура ВыгрузкаНажатие(Элемент)
ЗаписьXML=Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл("c:\document.xml");
    ЗаписьXML.ЗаписатьНачалоЭлемента("Главный");
    //Счет на оплату выбрать за период
Выборка = Документы.СчетНаОплатуПокупателю.Выбрать (ДатаС, КонецДня(ДатаПо));
    Пока Выборка.Следующий () Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");
        ЗаписатьXML(ЗаписьXML, Выборка.ПолучитьОбъект());
        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;
//Выбрать соответствующего счету контрагента
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ различные
| Контрагент из Документ.СчетНаОплатуПокупателю где Ссылка.Дата между &ДатаС и &ДатаПО  ";
Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС));
Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий () Цикл
ОбработкаПрерыванияПользователя();
ЗаписьXML.ЗаписатьНачалоЭлемента("ГруппаОбъектов");
ЗаписьXML.ЗаписатьНачалоЭлемента("Справочник");
ЗаписатьXML(ЗаписьXML, Выборка.Контрагент.ПолучитьОбъект());
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
///////////////////////////////////////////////////////////
//Выбрать соответствующую счету организацию///
        ///////////////////////////////////////////////////////////
Запрос2 = Новый Запрос();
Запрос2.Текст =
"ВЫБРАТЬ различные
| Организация из Документ.СчетНаОплатуПокупателю где Ссылка.Дата между &ДатаС и &ДатаПО  ";
Запрос2.УстановитьПараметр("ДатаС", НачалоДня(ДатаС));
Запрос2.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));
Выборка2 = Запрос2.Выполнить().Выбрать();
Пока Выборка2.Следующий () Цикл
ОбработкаПрерыванияПользователя();
ЗаписьXML.ЗаписатьНачалоЭлемента("ГруппаОбъектов");
ЗаписьXML.ЗаписатьНачалоЭлемента("Справочник");
ЗаписатьXML(ЗаписьXML, Выборка.Организация.ПолучитьОбъект());
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;

Загрузку тоже брала с форума, она безукаризненно работает пока не подключаю вот этот блок с организацией
Процедура ЗагрузкаНажатие(Элемент)
ДанныеXML = Новый ЧтениеXML;
ДанныеXML.ОткрытьФайл("c:\document.xml");
Пока ДанныеXML.Прочитать() Цикл
ОбработкаПрерыванияПользователя();
Если ВозможностьЧтенияXML(ДанныеXML) Тогда
НовыйОбъект = ПрочитатьXML(ДанныеXML);
НовыйОбъект.ОбменДанными.Загрузка=Истина;
НовыйОбъект.Записать();
КонецЕсли;
КонецЦикла;
ДанныеXML.Закрыть();
Сообщить("Загружено");
КонецПроцедуры

и начинается проблема
{Форма.Форма.Форма(116)}: Ошибка при вызове метода контекста (ОткрытьФайл)
   ДанныеXML.ОткрытьФайл("c:\document.xml");
по причине:

по причине:
Ошибка совместного доступа к файлу 'c:\document.xml'


отладчиком посмотрела на выборке организации пишет ошибка чтения значения
что делать?

has

ДанныеXML.Закрыть();
А ЗаписьXML наверное тоже надо закрывать? Может выгрузку сделали, файл не закрыли.

Chuchi

у  меня они закрываются просто код выгрузки не скопировала целиком, там после всех полей
   ЗаписьXML.ЗаписатьКонецЭлемента();
   ЗаписьXML.Закрыть();
    Сообщить("Выгружено");   
   

has

Запрос не правильный скорей всего, попробуй так

"ВЫБРАТЬ различные
    | СчетНаОплатуПокупателю.Организация из Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю где СчетНаОплатуПокупателю.Дата между &ДатаС и &ДатаПО  ";

Chuchi

все равно на загрузке ругается(

has

Ну попробуй загрузить другой файл. Либо скопируй этот, либо создай новый.

Chuchi

Оказывается проблема была из за дополнительного реквизита в выгружаемой базе, в базе приемнике его не было поэтому загрузить не получалось (
Вопрос закрыт

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск