Группа: Пользователи
Сообщений: 53
Спасибо сказали: 1 раз
Рейтинг: 0
ЗаписьXML = ВыгрузкаХМЛ; ЗаписьXML.ЗаписатьНачалоЭлемента("Валюты"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Банки.Ссылка КАК Банк, | БанковскиеСчета.Ссылка КАК БанковскийСчет, | БиологическиеАктивы.Ссылка КАК БиологическийАктив, | Валюты.Ссылка КАК Валюта, | ВидыВзаиморасчетов.Ссылка КАК ВидВзаиморасчетов, | ВидыВыплат.Ссылка КАК ВидВыплат, | ВидыДоходовНДФЛ.Ссылка КАК ВидДоходовНДФЛ, | ВидыКонтактнойИнформации.Ссылка КАК ВидКонтактнойИнформации, | ВидыЛьготРаботниковОрганизаций.Ссылка КАК ВидЛьготРаботниковОрганизаций, | ВидыНалоговойДеятельности.Ссылка КАК ВидНалоговойДеятельности, | ВидыОплатОрганизаций.Ссылка КАК ВидОплатОрганизаций, | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.БанковскиеСчета КАК БанковскиеСчета, | Справочник.БиологическиеАктивы КАК БиологическиеАктивы, | Справочник.ВидыВзаиморасчетов КАК ВидыВзаиморасчетов, | Справочник.ВидыВыплат КАК ВидыВыплат, | Справочник.ВидыДоходовНДФЛ КАК ВидыДоходовНДФЛ, | Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации, | Справочник.ВидыНалоговойДеятельности КАК ВидыНалоговойДеятельности, | Справочник.ВидыОплатОрганизаций КАК ВидыОплатОрганизаций, | Справочник.Номенклатура КАК Номенклатура, | Справочник.Банки КАК Банки, | Справочник.Валюты КАК Валюты, | Справочник.ВидыЛьготРаботниковОрганизаций КАК ВидыЛьготРаботниковОрганизаций";
//Запрос = Новый Запрос; //Запрос.Текст = "ВЫБРАТЬ //| Валюты.Ссылка КАК Валюта //|ИЗ //| Справочник.Валюты КАК Валюты";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл ТекущийСправочникВалюты = Выборка.Валюта.ПолучитьОбъект(); ЗаписатьXML(ЗаписьXML,ТекущийСправочникВалюты); КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента();
Возврат
Сори малость лохонулся =) Мисснул по кнопке ! =))
В общем мне нужно из данной выборки обратиться имменно к Валюте что бы можно было записать в ХМЛ ! Кто может помочь а то голова уже пухнет ! =)
Группа: Пользователи
Сообщений: 53
Спасибо сказали: 1 раз
Рейтинг: 0
Это конечно замечательно, но моего вопроса это не решает ? С помощью данного запроса возможно сделать выгрузку или лучше делать выборку на каждый элемент в отдельности ?
Если Номенклатура = Истина или Валюты = Истина или Контрагенты = Истина или Банки = Истина
Тогда ВыгрузкаХМЛ = ЗаписьXML; ЗаписьXML.ЗаписатьНачалоЭлемента("Справочники");
Если Номенклатура = Истина Тогда ВыгрузкаНоменклатура(); КонецЕсли;
Если Валюты = Истина Тогда ВыгрузкаВалюты(); КонецЕсли;
Если Контрагенты = Истина Тогда ВыгрузкаКонтрагенты(); КонецЕсли;
Если Банки = Истина Тогда ВыгрузкаБанки(); КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
Если РТУ = Истина Тогда ВыгрузкаХМЛ = ЗаписьXML; ЗаписьXML.ЗаписатьНачалоЭлемента("Документы"); Если РТУ = Истина Тогда ВыгрузкаРТУ(); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли;
Попытка ЗаписьXML.Закрыть(); Сообщить(НСтр("ru='Данные успешно выгружены в файл ';uk='Дані успішно вивантажені в файл '") + ФайлXML); Исключение Сообщить(НСтр("ru='Не удалось записать данные в файл. Возможно, отсутствует каталог.';uk='Не вдалося записати дані в файл. Можливо, відсутній каталог.'") + ФайлXML); КонецПопытки;
КонецПроцедуры
Процедура ВыгрузкаНоменклатура()
ЗаписьXML = ВыгрузкаХМЛ; ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл ТекущийСправочникНоменклатура = Выборка.Номенклатура.ПолучитьОбъект(); ЗаписатьXML(ЗаписьXML,ТекущийСправочникНоменклатура); КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
Возврат КонецПроцедуры
Процедура ВыгрузкаБанки()
ЗаписьXML = ВыгрузкаХМЛ; ЗаписьXML.ЗаписатьНачалоЭлемента("Банки"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Банки.Ссылка КАК Банк |ИЗ | Справочник.Банки КАК Банки";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл ТекущийСправочникБанки = Выборка.Банк.ПолучитьОбъект(); ЗаписатьXML(ЗаписьXML,ТекущийСправочникБанки); КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента();
Если Номенклатура = Истина или Валюты = Истина или Контрагенты = Истина или Банки = Истина
Тогда ВыгрузкаХМЛ = ЗаписьXML; ЗаписьXML.ЗаписатьНачалоЭлемента("Справочники");
Если Номенклатура = Истина Тогда ВыгрузкаНоменклатура(); КонецЕсли;
Если Валюты = Истина Тогда ВыгрузкаВалюты(); КонецЕсли;
Если Контрагенты = Истина Тогда ВыгрузкаКонтрагенты(); КонецЕсли;
Если Банки = Истина Тогда ВыгрузкаБанки(); КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
Если РТУ = Истина Тогда ВыгрузкаХМЛ = ЗаписьXML; ЗаписьXML.ЗаписатьНачалоЭлемента("Документы"); Если РТУ = Истина Тогда ВыгрузкаРТУ(); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли;
Попытка ЗаписьXML.Закрыть(); Сообщить(НСтр("ru='Данные успешно выгружены в файл ';uk='Дані успішно вивантажені в файл '") + ФайлXML); Исключение Сообщить(НСтр("ru='Не удалось записать данные в файл. Возможно, отсутствует каталог.';uk='Не вдалося записати дані в файл. Можливо, відсутній каталог.'") + ФайлXML); КонецПопытки;
КонецПроцедуры
Процедура ВыгрузкаНоменклатура()
ЗаписьXML = ВыгрузкаХМЛ; ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл ТекущийСправочникНоменклатура = Выборка.Номенклатура.ПолучитьОбъект(); ЗаписатьXML(ЗаписьXML,ТекущийСправочникНоменклатура); КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
Возврат КонецПроцедуры
Процедура ВыгрузкаБанки()
ЗаписьXML = ВыгрузкаХМЛ; ЗаписьXML.ЗаписатьНачалоЭлемента("Банки"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Банки.Ссылка КАК Банк |ИЗ | Справочник.Банки КАК Банки";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл ТекущийСправочникБанки = Выборка.Банк.ПолучитьОбъект(); ЗаписатьXML(ЗаписьXML,ТекущийСправочникБанки); КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента();
Группа: Пользователи
Сообщений: 53
Спасибо сказали: 1 раз
Рейтинг: 0
Да просто как по мне очень долго идет выборка получаеться что для каждого элемента своя... мне почему то кажеться что если сделать единоразовую она будет малость быстрее работать.... хотя это лишь мои мысли.... может действительно лучше не будет ! =)))
хотя.... да я так подумал.... посмотрел на выгрузку.. если перенести все в одну процедуру тогда выгрузка кривая получаеться... документы и справочники не раздеяются... получаеться что то бы они разделялись при ввыгрузке их нужно каждую в отдельно процедуре делать =\
этот запрос вернет декартово произведение, т.е. итоговое кво строк в запросе будет кво = КвоВТаб1*КвоВТаб2*.... ну и т.д.
Так вот - преположим Валюты имеют 3 записи, Товары 10. По-отдельности будет 2 выборки размером 3 и 10 записей. В Вашем случае с общей выборкой Вы поимеете выборку в 30 записей различных комбинаций таблиц.
Группа: Пользователи
Сообщений: 53
Спасибо сказали: 1 раз
Рейтинг: 0
Да я уже это понял =) да и говорю если делать так как я хотел тогда при выгрузку ломаеться подчиненость Элемента выгрузки =( Так что оставлю так как есть =))) Получиться конешн много процедур но за то "без проблем" =)))
Группа: Пользователи
Сообщений: 53
Спасибо сказали: 1 раз
Рейтинг: 0
Кстати.. пока вы тут =) не подскажете как можно список Всех справочников вынести в табличную часть... что бы не делать прверку для каждой отметки на выгрузку а общую проверку табчасти
Группа: Пользователи
Сообщений: 53
Спасибо сказали: 1 раз
Рейтинг: 0
ФормаВыгрузки = ПолучитьФорму("Форма"); ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.ОткрытьФайл(ФайлXML);
ТабСпр = СпрЗагрузка; Пока ЧтениеXML.Прочитать() Цикл Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл Для Каждого [color="#FF00FF"]****[/color]из ЧтениеXML Цикл СтрСпр = ТабСпр.Добавить(); СтрСпр.СпрЗагрузка = Имя; КонецЦикла; КонецЦикла; КонецЦикла;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!