Имя: Пароль:
1C
 
записать в XML
0 CrazyProg
 
01.07.09
09:04
здравствуйте.

вопрос такой.
хочу выгрузить документы ПоступлениеТМЦ в XML
1. запрос создал по выборке доков
2 как теперь из выполненного запроса данные закинуть в XML?
1 NcSteel
 
01.07.09
09:05
ЗаписатьXML(ЗаписьXML, Выборка.Ссылка);
2 Нуф-Нуф
 
01.07.09
09:06
Глобальный контекст
ЗаписатьXML (WriteXML)
Вариант синтаксиса: Записать без имени
Описание:
Записывает значения в формате XML без указания имени элемента. В качестве имени элемента будет использован тип значения.
Синтаксис:
ЗаписатьXML(<Запись XML>, <Значение>, <Назначение типа>)
Параметры:
<Запись XML> (обязательный)
Тип: ЗаписьFastInfoset, ЗаписьУзловDOM, ЗаписьXML. Объект, через который осуществляется запись XML.
<Значение> (обязательный)
Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.
<Назначение типа> (необязательный)
Тип: НазначениеТипаXML. Определяет необходимость назначения типа элементу XML.
Значение по умолчанию: Неявное
Вариант синтаксиса: Записать с полным именем
Описание:
Записывает значения в формате XML с указанием полного имени элемента.
Синтаксис:
ЗаписатьXML(<Запись XML>, <Значение>, <Полное имя>, <Назначение типа>)
Параметры:
<Запись XML> (обязательный)
Тип: ЗаписьFastInfoset, ЗаписьУзловDOM, ЗаписьXML. Объект, через который осуществляется запись XML.
<Значение> (обязательный)
Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.
<Полное имя> (обязательный)
Тип: Строка. Полное имя элемента XML, в который будет записано значение.
<Назначение типа> (необязательный)
Тип: НазначениеТипаXML. Определяет необходимость назначения типа элементу XML.
Значение по умолчанию: Неявное
Вариант синтаксиса: Записать с локальным именем и пространством имен
Описание:
Записывает значения в формате XML с указанием локального имени элемента и пространства имен, к которому принадлежит локальное имя.
Синтаксис:
ЗаписатьXML(<Запись XML>, <Значение>, <Локальное имя>, <URI пространства имен>, <Назначение типа>)
Параметры:
<Запись XML> (обязательный)
Тип: ЗаписьFastInfoset, ЗаписьУзловDOM, ЗаписьXML. Объект, через который осуществляется запись XML.
<Значение> (обязательный)
Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.
<Локальное имя> (обязательный)
Тип: Строка. Локальное имя элемента XML, в который будет записано значение.
<URI пространства имен> (обязательный)
Тип: Строка. URI пространства имен, к которому принадлежит указанное .
<Назначение типа> (необязательный)
Тип: НазначениеТипаXML. Определяет необходимость назначения типа элементу XML.
Значение по умолчанию: Неявное
Примечание:
Значения не всех типов могут быть записаны в формате XML данным методом.
В XML могут быть записаны: значения следующих типов: Неопределено, Null, Булево, Число, Строка, Дата, Тип, УникальныйИдентификатор, ДвоичныеДанные, ХранилищеЗначения, ОписаниеТипов, а также ссылки объектов данных и сами объекты данных, наборы записей регистров, менеджер значения константы. В дальнейшем список может пополняться.
При попытке записи значения неподходящего типа будет вызвано исключение.
3 CrazyProg
 
01.07.09
09:06
а из запроса как присваивать. к каким полям та присваивать
4 CrazyProg
 
01.07.09
09:06
под названием ссылка понимать названиеи моего запроса?
5 CrazyProg
 
01.07.09
09:07
это я читал что то как то не дошло с первого раза
6 NcSteel
 
01.07.09
09:08
(4) Нет, все очень просто.

Ну же не Заппрос, а цель, когда цель поймешь тогда придет понимание, после понимания и запрос сам встанет.
7 NcSteel
 
01.07.09
09:09
1986 год.Надов коллекцию записать)
8 CrazyProg
 
01.07.09
09:11
ну мож и туплю. подмогите немного

       Запрос = новый Запрос;
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ПоступлениеТМЦ.Ссылка,
       |    ПоступлениеТМЦ.ПометкаУдаления,
       |    ПоступлениеТМЦ.Номер,
       |    ПоступлениеТМЦ.Дата,
       |    ПоступлениеТМЦ.Проведен,
       |    ПоступлениеТМЦ.Договор,
       |    ПоступлениеТМЦ.Комментарий,
       |    ПоступлениеТМЦ.Контрагент,
       |    ПоступлениеТМЦ.Организация,
       |    ПоступлениеТМЦ.Ответственный,
       |    ПоступлениеТМЦ.Склад,
       |    ПоступлениеТМЦ.ОтражатьВУправленческомУчете,
       |    ПоступлениеТМЦ.ОтражатьВБухгалтерскомУчете,
       |    ПоступлениеТМЦ.УчитыватьНДС,
       |    ПоступлениеТМЦ.ВключаетНДС,
       |    ПоступлениеТМЦ.ТипЦен,
       |    ПоступлениеТМЦ.СуммаДокумента,
       |    ПоступлениеТМЦ.СуммаНДС,
       |    ПоступлениеТМЦ.Товары.(
       |        Ссылка,
       |        НомерСтроки,
       |        Номенклатура,
       |        БазЕдИзм,
       |        ЕдИзмерения,
       |        КолМест,
       |        Количество,
       |        Цена,
       |        СтавкаНДС,
       |        СуммаНДС,
       |        Сумма,
       |        Всего,
       |        Коэффициент
       |    ),
       |    ПоступлениеТМЦ.Представление,
       |    ПоступлениеТМЦ.МоментВремени
       |ИЗ
       |    Документ.ПоступлениеТМЦ КАК ПоступлениеТМЦ
       |ГДЕ
       |    ПоступлениеТМЦ.Дата МЕЖДУ &НачПериода И &КонПериода
       |    И ПоступлениеТМЦ.Проведен = ИСТИНА";
       
       Если ЗначениеЗаполнено(ОрганизацияДляОтбора) Тогда
           
           Запрос.Текст = Запрос.Текст + "
           |    И ПоступлениеТМЦ.Организация = &ОрганизацияДляОтбора";
           Запрос.УстановитьПараметр("ОрганизацияДляОтбора", ОрганизацияДляОтбора);

       КонецЕсли;
       
       Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
       Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));

       Результат = Запрос.Выполнить();
       ПоступлениеТоваров = Результат.Выбрать();
       глФормаИндикации.ЭлементыФормы.Заголовок.Значение    =    "Выполняется выгрузка поступлений товаров...";        
       глФормаИндикации.МаксимальноеЗначение                =    ПоступлениеТоваров.Количество();
       глФормаИндикации.ЗначениеИндикатора                =    0;
               
       Пока ПоступлениеТоваров.Следующий() Цикл
           Если ПоступлениеТоваров.ОтобржатьВБухгалтерскомУчете Тогда
               Счет = Счетчик;
               Счетчик = Счетчик + 1;
               ЗаписатьXML(ЗаписьXML, Выборка.Ссылка);
           КонецЕсли;
       КонецЦикла;
9 CrazyProg
 
01.07.09
09:13
выборка.ссылка = ПоступлениеТоваров.Ссылка
так веть получается
10 NcSteel
 
01.07.09
09:15
ЗаписьXML = Новый ЗаписьXML ;
И т.д.

Пока ПоступлениеТоваров.Следующий() Цикл
           Если ПоступлениеТоваров.ОтобржатьВБухгалтерскомУчете Тогда
               Счет = Счетчик;
               Счетчик = Счетчик + 1;
               ЗаписатьXML(ЗаписьXML, ПоступлениеТоваров.Ссылка);
           КонецЕсли;
       КонецЦикла;
11 CrazyProg
 
01.07.09
09:17
все понял пасиба
12 CrazyProg
 
01.07.09
09:18
а в этом цикле и табличная чать дока выгрузиться?
13 NcSteel
 
01.07.09
09:21
А ты попробуй . )
14 CrazyProg
 
01.07.09
09:25
неа не выгружает табличную часть
15 NcSteel
 
01.07.09
09:27
(14) Плохо пробывал, все она выгружает. Даже Гуид.
16 CrazyProg
 
01.07.09
09:28
она не тоштоб табличную часть выгружала она вообще не выгружает
17 NcSteel
 
01.07.09
09:29
Код в студию.
18 CrazyProg
 
01.07.09
09:30
Запрос = новый Запрос;
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ПоступлениеТМЦ.Ссылка,
       |    ПоступлениеТМЦ.ПометкаУдаления,
       |    ПоступлениеТМЦ.Номер,
       |    ПоступлениеТМЦ.Дата,
       |    ПоступлениеТМЦ.Проведен,
       |    ПоступлениеТМЦ.Договор,
       |    ПоступлениеТМЦ.Комментарий,
       |    ПоступлениеТМЦ.Контрагент,
       |    ПоступлениеТМЦ.Организация,
       |    ПоступлениеТМЦ.Ответственный,
       |    ПоступлениеТМЦ.Склад,
       |    ПоступлениеТМЦ.ОтражатьВУправленческомУчете,
       |    ПоступлениеТМЦ.ОтражатьВБухгалтерскомУчете,
       |    ПоступлениеТМЦ.УчитыватьНДС,
       |    ПоступлениеТМЦ.ВключаетНДС,
       |    ПоступлениеТМЦ.ТипЦен,
       |    ПоступлениеТМЦ.СуммаДокумента,
       |    ПоступлениеТМЦ.СуммаНДС,
       |    ПоступлениеТМЦ.Товары.(
       |        Ссылка,
       |        НомерСтроки,
       |        Номенклатура,
       |        БазЕдИзм,
       |        ЕдИзмерения,
       |        КолМест,
       |        Количество,
       |        Цена,
       |        СтавкаНДС,
       |        СуммаНДС,
       |        Сумма,
       |        Всего,
       |        Коэффициент
       |    ),
       |    ПоступлениеТМЦ.Представление,
       |    ПоступлениеТМЦ.МоментВремени
       |ИЗ
       |    Документ.ПоступлениеТМЦ КАК ПоступлениеТМЦ
       |ГДЕ
       |    ПоступлениеТМЦ.Дата МЕЖДУ &НачПериода И &КонПериода
       |    И ПоступлениеТМЦ.Проведен = ИСТИНА";
       
       Если ЗначениеЗаполнено(ОрганизацияДляОтбора) Тогда
           
           Запрос.Текст = Запрос.Текст + "
           |    И ПоступлениеТМЦ.Организация = &ОрганизацияДляОтбора";
           Запрос.УстановитьПараметр("ОрганизацияДляОтбора", ОрганизацияДляОтбора);

       КонецЕсли;
       
       Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
       Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));

       Результат = Запрос.Выполнить();
       ПоступлениеТоваров = Результат.Выбрать();
       глФормаИндикации.ЭлементыФормы.Заголовок.Значение    =    "Выполняется выгрузка поступлений товаров...";        
       глФормаИндикации.МаксимальноеЗначение                =    ПоступлениеТоваров.Количество();
       глФормаИндикации.ЗначениеИндикатора                =    0;
               
       Пока ПоступлениеТоваров.Следующий() Цикл
           Если ПоступлениеТоваров.ОтобржатьВБухгалтерскомУчете Тогда
               Счет = Счетчик;
               Счетчик = Счетчик + 1;
               ЗаписьДокумена(ЗаписьXML, ПоступлениеТоваров.Ссылка);
           КонецЕсли;
       КонецЦикла;
       КонецЕсли;
19 CrazyProg
 
01.07.09
09:31
это начала

   ЗаписьXML = Новый ЗаписьXML;
   Попытка
       ЗаписьXML.ОткрытьФайл(ВыборФайла);
       ЗаписьXML.ЗаписатьОбъявлениеXML();
       
       ЗаписьXML.ЗаписатьНачалоЭлемента("Файл");
       ЗаписьXML.ЗаписатьАтрибут("ВерсияФормата", "2.0");
       ЗаписьXML.ЗаписатьАтрибут("ДатаВыгрузки", Строка(ТекущаяДата()));
       ЗаписьXML.ЗаписатьАтрибут("ИмяКонфигурацииИсточника", "УправлениеСалономКрасоты");
       ЗаписьXML.ЗаписатьАтрибут("ИмяКонфигурацииПриемника", "БухгалтерияПредприятия");
20 NcSteel
 
01.07.09
09:32
Странный код:

ЧТо такое "ЗаписьДокумена"
21 CrazyProg
 
01.07.09
09:33
оп сори там стоит
ЗаписатьXML(ЗаписьXML, ПоступлениеТоваров.Ссылка);
22 CrazyProg
 
01.07.09
09:36
вообще был изначальный код такой

       Если Флажок16 Тогда
           глФормаИндикации.Открыть();
       //    Запрос = Новый Запрос;
       //    
       //    Запрос.Текст = "ВЫБРАТЬ
       //    |    ПоступлениеТМЦ.Ссылка,
       //    |    ПоступлениеТМЦ.ОтражатьВБухгалтерскомУчете,
       //    |   ПоступлениеТМЦ.Товары(
       //    |        Ссылка,
       //    |        НомерСтроки,
       //    |        Номенклатура,
       //    |        БазЕдИзм,
       //    |        ЕдИзмерения,
       //    |        КолМест,
       //    |        Количество,
       //    |        Цена,
       //    |        СтавкаНДС,
       //    |        СуммаНДС,
       //    |        Сумма,
       //    |        Всего,
       //    |        Коэффициент)
       //    |ИЗ
       //    |    Документ.ПоступлениеТМЦ КАК ПоступлениеТМЦ
       //    |ГДЕ
       //    |    ПоступлениеТМЦ.Дата МЕЖДУ &НачПериода И &КонПериода
       //    |    И ПоступлениеТМЦ.Проведен = ИСТИНА";
       //    
       //    Если ЗначениеЗаполнено(ОрганизацияДляОтбора) Тогда

       //        Запрос.Текст    =    Запрос.Текст + "
       //        |    И ПоступлениеТМЦ.Организация = &ОрганизацияДляОтбора";
       //        Запрос.УстановитьПараметр("ОрганизацияДляОтбора",    ОрганизацияДляОтбора);
       //        
       //    КонецЕсли;
       //    
       //    Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
       //    Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
       //    
       //    Результат = Запрос.Выполнить();
       //    ПоступлениеТоваров = Результат.Выбрать();
       //    глФормаИндикации.ЭлементыФормы.Заголовок.Значение    =    "Выполняется выгрузка поступлений товаров...";        
       //    глФормаИндикации.МаксимальноеЗначение                =    ПоступлениеТоваров.Количество();
       //    глФормаИндикации.ЗначениеИндикатора                =    0;
       //    
       //    Пока ПоступлениеТоваров.Следующий() Цикл
       //        Если ПоступлениеТоваров.ОтражатьВБухгалтерскомУчете Тогда
       //            Счет = Счетчик;
       //            Счетчик = Счетчик + 1;
       //            ПоискРевизитовДляДокументов(ЗаписьXML, ПоступлениеТоваров.Ссылка, Счетчик, ЗаписанныеЭлементы, ПоступлениеТоваров.Ссылка.Товары);
       //            ПропускаемыеЭлементы = Новый Массив(5);
       //            ПропускаемыеЭлементы.Добавить("Ответственный");
       //            ПропускаемыеЭлементы.Добавить("ОтражатьВУправленческомУчете");
       //            ПропускаемыеЭлементы.Добавить("Надпись1");
       //            ПропускаемыеЭлементы.Добавить("ОтражатьВБухгалтерскомУчете");
       //            ПропускаемыеЭлементы.Добавить("ЕдИзмерения");
       //            ПропускаемыеЭлементы.Добавить("ВключаетНДС");
       //            ПропускаемыеЭлементы.Добавить("КолМест");
       //            ПропускаемыеЭлементы.Добавить("УдалитьВремяВыполненияУслуги");    
       //            ПропускаемыеЭлементы.Добавить("УдалитьМножитель");
       //            если ПоступлениеТоваров.ВключаетНДС = Истина тогда
       //                сообщить("НДС включено");
       //                Пока ПоступлениеТоваров.Следующий() цикл
       //                Сообщить("СтавкаНДС"+ПоступлениеТоваров.СтавкаНДС);
       //                конецЦикла;
       //            конецЕсли;
       //            ЗаписьДокумента(ЗаписьXML, ПоступлениеТоваров.Ссылка, Счет, ЗаписанныеЭлементы, Документы.ПоступлениеТМЦ.ПустаяСсылка(), ПропускаемыеЭлементы, ПоступлениеТоваров.Ссылка.Товары,,,, Истина);
       //        КонецЕсли;
       //        глФормаИндикации.ЗначениеИндикатора = глФормаИндикации.ЗначениеИндикатора + 1;
       //    КонецЦикла;
       //    Если глФормаИндикации.Открыта() Тогда
       //        глФормаИндикации.Закрыть();
       //    КонецЕсли;
       //КонецЕсли;
23 NcSteel
 
01.07.09
09:37
Отладчик и смотреть что куда передается!
24 CrazyProg
 
01.07.09
09:37
почему я от него откозался
дело втом что мне надо перенести поступление ТМЦ из Камильфо в бухгалтерию
выгружать та выгружает а ставку ндс не переносит
так же не переносит ед
25 CrazyProg
 
01.07.09
09:38
(24) единицу (шт) в каторой забит док