![]() |
|
Выгрузка в xml | ☑ | ||
---|---|---|---|---|
0
Chuchi
23.07.11
✎
11:32
|
выгружаю счета
догружаю до кучи номенклатуру (чтобы не было не определенных объектов) код такой //Выбрать номенклатуры соответствующих счетов Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ различные | номенклатура из Документ.СчетНаОплатуПокупателю.Товары где Ссылка.Дата между &ДатаС и &ДатаПО"; Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС)); Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо)); Выборка = Запрос.Выполнить().Выбрать(); m=0; Пока Выборка.Следующий () Цикл m=m+1; ОбработкаПрерыванияПользователя(); ЗаписьXML.ЗаписатьНачалоЭлемента("ГруппаОбъектов"); ЗаписьXML.ЗаписатьНачалоЭлемента("Справочник"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект()); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; но в номенклатуре не появляется единица измерения и номенклатурная группа не подскажите как их догрузить, это надо сделать в этом же цкле или надо отдельно как то прописывать? |
|||
1
Chuchi
23.07.11
✎
15:32
|
я не так сформулировала?
|
|||
2
Mnemonic1C
23.07.11
✎
15:35
|
Тут с КД делов на пол часа от силы, не занимайся ерундой, уже давно все придумали
|
|||
3
Chuchi
23.07.11
✎
16:00
|
( да нельзя мне готового использовать(..мне надо самой все написать..у меня в качестве учебы эти задания..
|
|||
4
Chuchi
23.07.11
✎
16:27
|
дописала так
//Выбрать номенклатуры соответствующих счетов Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ различные | номенклатура из Документ.СчетНаОплатуПокупателю.Товары где Ссылка.Дата между &ДатаС и &ДатаПО"; Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС)); Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо)); Выборка = Запрос.Выполнить().Выбрать(); m=0; Пока Выборка.Следующий () Цикл m=m+1; ОбработкаПрерыванияПользователя(); ЗаписьXML.ЗаписатьНачалоЭлемента("ГруппаОбъектов"); ЗаписьXML.ЗаписатьНачалоЭлемента("Справочник"); ЗаписьXML.ЗаписатьНачалоЭлемента("БазоваяЕдиницаИзмерения" ); ЗаписьXML.ЗаписатьНачалоЭлемента("СтавкаНДС" ); ЗаписьXML.ЗаписатьНачалоЭлемента("НоменклатурнаяГруппа" ); ЗаписьXML.ЗаписатьНачалоЭлемента("СтранаПроисхождения" ); ЗаписьXML.ЗаписатьНачалоЭлемента("НомерГТД"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект()); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; теперь все бы ничего но НомерГТД так и не переноситься, а ведь делаю по аналогии.. посмотрите пожалуйста... |
|||
5
Живой Ископаемый
23.07.11
✎
16:37
|
у вас вообще ничего кроме номенклатуры не переносится, и понятно почему
потому что только одно заполняется: ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект()); |
|||
6
Chuchi
23.07.11
✎
21:31
|
любопытно но страна и единица измерения переносятся при таком коде..
а как должно быть? |
|||
7
Chuchi
23.07.11
✎
21:43
|
ой нет я не права(( не перекидывает ничего
|
|||
8
Живой Ископаемый
23.07.11
✎
23:37
|
давайте проще:
ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект()); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("БазоваяЕдиницаИзмерения"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.БазоваяЕдиницаИзмерения); ЗаписьXML.ЗаписатьКонецЭлемента(); Это для начала. |
|||
9
Chuchi
24.07.11
✎
15:28
|
кажется что то натворила не так((
выгрузка ЗаписьXML=Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("c:\document.xml"); ЗаписьXML.ЗаписатьНачалоЭлемента("Главный"); //Выбрать номенклатуры соответствующих счетов Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ различные | номенклатура из Документ.СчетНаОплатуПокупателю.Товары где Ссылка.Дата между &ДатаС и &ДатаПО"; Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС)); Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо)); Выборка = Запрос.Выполнить().Выбрать(); m=0; Пока Выборка.Следующий () Цикл m=m+1; ОбработкаПрерыванияПользователя(); ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект()); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); а загрузка Процедура ЗагрузкаНажатие(Элемент) ДанныеXML = Новый ЧтениеXML; ДанныеXML.ОткрытьФайл("c:\document.xml"); Пока ДанныеXML.Прочитать() Цикл ОбработкаПрерыванияПользователя(); Если ВозможностьЧтенияXML(ДанныеXML) Тогда НовыйОбъект = ПрочитатьXML(ДанныеXML); НовыйОбъект.ОбменДанными.Загрузка=Истина; НовыйОбъект.Записать(); КонецЕсли; КонецЦикла; ДанныеXML.Закрыть(); Сообщить("Загружено"); КонецПроцедуры теперь после того как я вот так стала единицу измерения догружать и прочие поля у меня ошибка при загрузке выскакивает на строку {Форма.Форма.Форма(204)}: Поле объекта не обнаружено (ОбменДанными) НовыйОбъект.ОбменДанными.Загрузка=Истина; |
|||
10
Живой Ископаемый
24.07.11
✎
17:09
|
вы так никогда не убьетесь
|
|||
11
Живой Ископаемый
24.07.11
✎
17:17
|
купите Габца "Простые примеры..." или продайте за нее дьяволу душу, потому что по моим данным она больше не продается почему-то...
и читайте: XML i Как из одной базы перенести документ в другую базу? // Выгрузить в файл xml. ЗаписьXML=Новый ЗаписьXML(); ЗаписьXML.ОткрытьФайл("c:\doc.xml"); ЗаписьXML.ЗаписатьНачалоЭлемента("Root"); // Получить объект по ссылке. ВыгружаемыйОбъект=Документ.ПолучитьОбъект(); // С помощью средств сериализации записать объект в файл. ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); ЧтениеXML=Новый ЧтениеXML(); ЧтениеXML.ОткрытьФайл("c:\doc.xml"); // Текущим становится элемент Root. ЧтениеXML.Прочитать(); // Текущим становится элемент с документом. ЧтениеXML.Прочитать(); // Проверить сможет ли с данным значением "справиться" // система сериализации в данной базе. Если ВозможностьЧтенияXML(ЧтениеXML) Тогда // Получить ДокументОбъект.РеализацияТоваровУслуг ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML); ЗагружаемыйОбъект.Записать(); КонецЕсли; ЧтениеXML.Закрыть(); ============ Предполагается что базы имеют одинаковые конфигурации ЛИБО: Как можно сформировать XML-документ произвольной структуры? Запись = Новый ЗаписьXML; Запись.ОткрытьФайл(ПутьКФайлу); Запись.ЗаписатьОбъявлениеXML(); Запись.ЗаписатьНачалоЭлемента("Корневой"); Запись.ЗаписатьАтрибут("Справочник", "Номенклатура"); Запись.ЗаписатьКомментарий("Краткая информация о номенклатуре"); Выборка = Справочники.Номенклатура.ВыбратьИерархически(); Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; Запись.ЗаписатьНачалоЭлемента("Элемент"); Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код)); Запись.ЗаписатьАтрибут("Артикул", Строка(Выборка.Артикул)); Запись.ЗаписатьТекст(Выборка.Наименование); Запись.ЗаписатьКонецЭлемента(); КонецЦикла; Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); Как можно загрузить XML документ произвольной структуры? Чтение = Новый ЧтениеXML; Чтение.ОткрытьФайл(ПутьКФайлу); Пока Чтение.Прочитать() Цикл // Прочитать "структурные части" элементов. // Проверить, какая часть элемента - текущая. Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ИмяУзла = Чтение.Имя; Сообщить("--" + ИмяУзла); // Атрибуты элементов можно читать только если текущая часть - // начало элемента Пока Чтение.ПрочитатьАтрибут() Цикл // Прочитать данные узла атрибута. ТипУзла = Чтение.ТипУзла; Имя = Чтение.Имя; Значение = Чтение.Значение; // Обработать полученные значения. КонецЦикла; ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда // В примере просто выводим текст в окно сообщений. Сообщить("Текст:" + Чтение.Значение); ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда // В примере просто выводим признак конца элемента // в окно сообщений Сообщить("--Конец:" + Чтение.Имя); КонецЕсли; КонецЦикла; ============== а уж в сети сколько примеров - море.. И не рассказывайте никому как у вас не получается. Это никому не инетересно. Меняйте условие, экспериментируйте... Вот просто составьте табличку из двух колонок. справа - что делаете, в левой - что получилось.. Когда у вас в этой табличке окажется колоко 10-20 записей - вы заметите закономерность. |
|||
12
Chuchi
24.07.11
✎
19:37
|
Загрузку сделала по вашему примеру, но едИзм все равно не переносит
//Выбрать номенклатуры соответствующих счетов Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ различные | номенклатура из Документ.СчетНаОплатуПокупателю.Товары где Ссылка.Дата между &ДатаС и &ДатаПО"; Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС)); Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо)); Выборка = Запрос.Выполнить().Выбрать(); m=0; Пока Выборка.Следующий () Цикл m=m+1; ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект()); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("БазоваяЕдиницаИзмерения"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.БазоваяЕдиницаИзмерения); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; |
|||
13
Chuchi
24.07.11
✎
22:18
|
... да может и стоит ругаться на меня но с опытов в два месяца многого не понимаешь... примеры чужие тоже надо уметь понимать но ниодного примера я не видела с решением такого вопроса, стала бы я разве просить помощи..
|
|||
14
Живой Ископаемый
25.07.11
✎
08:27
|
ну а как писали загрузку?
|
|||
15
Chuchi
25.07.11
✎
09:26
|
как у вас было написано
ЧтениеXML=Новый ЧтениеXML(); ЧтениеXML.ОткрытьФайл("c:\doc.xml"); // Текущим становится элемент Root. ЧтениеXML.Прочитать(); // Текущим становится элемент с документом. ЧтениеXML.Прочитать(); // Проверить сможет ли с данным значением "справиться" // система сериализации в данной базе. Если ВозможностьЧтенияXML(ЧтениеXML) Тогда // Получить ДокументОбъект.РеализацияТоваровУслуг ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML); ЗагружаемыйОбъект.Записать(); КонецЕсли; ЧтениеXML.Закрыть(); |
|||
16
Wobland
25.07.11
✎
09:49
|
(12) ПолучитьОбъект() к единице измерения!
|
|||
17
Chuchi
25.07.11
✎
09:51
|
да это уже исправила а в базе все равно не появляется
|
|||
18
Chuchi
25.07.11
✎
22:48
|
разобралась с тем вопросом, теперь позвольте уточнить а как обратиться к данным родитель - в справочнике номенклатуры это группа номенклатуры
//Выбрать номенклатуры соответствующих счетов Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ различные | номенклатура из Документ.СчетНаОплатуПокупателю.Товары где Ссылка.Дата между &ДатаС и &ДатаПО"; Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС)); Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо)); Выборка = Запрос.Выполнить().Выбрать(); m=0; Пока Выборка.Следующий () Цикл m=m+1; ЗаписьXML.ЗаписатьНачалоЭлемента("ГруппаОбъектов"); ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект()); ЗаписьXML.ЗаписатьКонецЭлемента(); Если ЗначениеЗаполнено(Выборка.Номенклатура.БазоваяЕдиницаИзмерения) тогда ЗаписьXML.ЗаписатьНачалоЭлемента("БазоваяЕдиницаИзмерения"); ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.БазоваяЕдиницаИзмерения.ПолучитьОбъект()); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; |
|||
19
Chuchi
25.07.11
✎
23:39
|
наверно опять не правильно спросила
.. лучше тогда на примере справочника контрагенты там в форме есть поле группа контрагентов но как такового реквизита такого нет вот как его загрузить в xml |
|||
20
hhhh
26.07.11
✎
00:07
|
ну, Контрагент.Родитель
|
|||
21
Chuchi
26.07.11
✎
00:27
|
СПАСИБО СПАСИБО СПАСИБО!
|
|||
22
Chuchi
26.07.11
✎
00:29
|
ураааа
почти все еще один вопрос я также выгружаю/загружаю реализациюТоваровУслуг как мне снять отметку при загрузке о проведении документа, а то галочка о проведении переноситься а в сущности документ в базе приемнике не проводиться //Реализация выбрать за период ДатаПо = ?(ЗначениеЗаполнено(ДатаПо), конецдня(ДатаПо), ТекущаяДата()) ; Выборка = Документы.РеализацияТоваровУслуг.Выбрать (ДатаС, КонецДня(ДатаПо));; n=0; Пока Выборка.Следующий () Цикл n=n+1; ЗаписьXML.ЗаписатьНачалоЭлемента("Документ"); ЗаписатьXML(ЗаписьXML, Выборка.ПолучитьОбъект()); ////////////////////////////Выборка.Проведен=Ложь; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; |
|||
23
Wobland
26.07.11
✎
06:16
|
>как мне снять отметку при загрузке о проведении документа
записать в режиме отмены проведения? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |