helpf.pro
Регистрация

v7: Выгрузить в XML список сотрудников

tolik1982
26.02.2012 11:33Прочитано: 11247
Добрый день, для банка необходимо выгрузить из 1С 7.7 список сотрудников в XML формате. Подскажите чайнику как и где это делается?
Yandex
Возможно, вас также заинтересует
Реклама на портале
ad82117
27.02.2012 11:41Ответ № 1
https://help1c.com/faq7/cat/48.html
Изменено 03.04.12 10:59:44
E_Migachev
03.04.2012 11:01Ответ № 2
(0) tolik1982, вот есть какая-то обработка Скачивать файлы может только зарегистрированный пользователь!
переделай под себя *13

а так код примерно такой:
Код 1C v 7.x
 Процедура Сформировать()
Перем ОбщаяСумма, Фамилия, Имя, Отчество, Счетчик;

ОбщаяСумма = 0;

Если ПроверкаЗначений() = 0 Тогда
Сообщить("Ошибка! Выгрузка не завершена!!!","!!!");
Возврат;
КонецЕсли;

//----------------------------------------------
// XML инициализация
//----------------------------------------------
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1 Тогда
Предупреждение("Компонента v7plus.dll не найдена!");
СтатусВозврата(0); Возврат;
КонецЕсли;

гXMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
ВерсияАнализатора = гXMLАнализатор.ВерсияАнализатора;

НомерФайла = 0;
гФайлДанных = гXMLАнализатор.СоздатьПоследовательноЗаписываемыйДокумент();
СтрФаилБазыДанных = "OUT" + Формат(ДатаФормирования,"ДГГГГММДД") + Формат(НомерФайла,"Ч(0)5") + ".xml";
ПолныйПутьКФайлу = СокрЛП(Каталог) + "\" + СтрФаилБазыДанных;

// ПроверкаНаСуществованиеФайла
Пока ФС.СуществуетФайл(ПолныйПутьКФайлу) = 1 Цикл
Сообщить("Фаил номер [" + НомерФайла + "] уже существует. Произвожу поиск свободного номера.","i");
НомерФайла = НомерФайла + 1;
СтрФаилБазыДанных = "OUT" + Формат(ДатаФормирования,"ДГГГГММДД") + Формат(НомерФайла,"Ч(0)5") + ".xml";
ПолныйПутьКФайлу = СокрЛП(Каталог) + "\" + СтрФаилБазыДанных;
Если НомерФайла >= 99999 Тогда
Предупреждение("Ненайден номер файла для выгрузки! Выгрузка произведена не будет.");
СтатусВозврата(0); Возврат;
КонецЕсли;
КонецЦикла;

Сообщить("Найден доступный номер [" + НомерФайла + "] файла выгрузки. Создан фаил [" + СтрФаилБазыДанных + "]. Произвожу выгрузку.","i");

гФайлДанных.ИмяФайла = ПолныйПутьКФайлу;

//----------------------------------------------
//----------------------------------------------
АтрибутыЭлемента = гФайлДанных.АтрибутыЭлемента;
АтрибутыЭлемента.УдалитьВсе();
АтрибутыЭлемента.УстановитьАтрибут("ДатаФормирования", Строка(Формат(ДатаГод(ДатаФормирования),"Ч(0)4") + "-" + Формат(ДатаМесяц(ДатаФормирования),"Ч(0)2") + "-" + Формат(ДатаЧисло(ДатаФормирования),"Ч(0)2")));
АтрибутыЭлемента.УстановитьАтрибут("НомерДоговора", НомерДоговора);
АтрибутыЭлемента.УстановитьАтрибут("НаименованиеОрганизации", НаименованиеОрганизации);
АтрибутыЭлемента.УстановитьАтрибут("ИНН", ИНН);
АтрибутыЭлемента.УстановитьАтрибут("РасчетныйСчетОрганизации", РасчетныйСчетОрганизации);
АтрибутыЭлемента.УстановитьАтрибут("БИК", БИК);

Попытка
ПустоеЗнч = ПустоеЗначение(Выплата.GUID);
Исключение
Сообщить(ОписаниеОшибки(),"!!!"); ПустоеЗнч = 1;
КонецПопытки;

Если ПустоеЗнч = 1 Тогда
Инфо = СоздатьОбъект("AddIn.V7SysInfo");
ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID();
ГлобальноУникальныйИдентификатор = Нрег(ГлобальноУникальныйИдентификатор);

ДокументДляЗаписи = СоздатьОбъект("Документ.ВыплатаЗаработнойПлаты");
ДокументДляЗаписи.НайтиДокумент(Выплата);
Попытка
ДокументДляЗаписи.GUID = ГлобальноУникальныйИдентификатор;
ДокументДляЗаписи.Записать();
Исключение
Сообщить(ОписаниеОшибки(),"!!!");
КонецПопытки;
Иначе
ГлобальноУникальныйИдентификатор = Выплата.GUID;
КонецЕсли;


АтрибутыЭлемента.УстановитьАтрибут("ИдПервичногоДокумента", ГлобальноУникальныйИдентификатор);
гФайлДанных.ОткрытьЭлемент("СчетаПК");

Счетчик = 1;
АтрибутыЭлемента = гФайлДанных.АтрибутыЭлемента;
АтрибутыЭлемента.УдалитьВсе();
гФайлДанных.ОткрытьЭлемент("ЗачислениеЗарплаты");
Выплата.ВыбратьСтроки();
Пока Выплата.ПолучитьСтроку()=1 Цикл
НомерСчета = СокрЛП(Выплата.Сотрудник.НомерЗарплатногоСчета);
Сумма = СокрЛП(""+Формат(Выплата.Сумма,"Ч015.2."));
ФамилияИмяОтчество(СокрЛП(Выплата.Сотрудник.Наименование),Фамилия,Имя,Отчество);
Если (Найти(НомерСчета, "-") = 1) Тогда
Сообщить("Счет " + НомерСчета + " пропущен!");
Продолжить;
КонецЕсли;
АтрибутыЭлемента = гФайлДанных.АтрибутыЭлемента;
АтрибутыЭлемента.УдалитьВсе();
АтрибутыЭлемента.УстановитьАтрибут("Нпп", Счетчик);
гФайлДанных.ОткрытьЭлемент("Сотрудник");
АтрибутыЭлемента.УдалитьВсе();
гФайлДанных.ВключитьЭлемент("Фамилия" ,Фамилия);
гФайлДанных.ВключитьЭлемент("Имя" ,Имя);
гФайлДанных.ВключитьЭлемент("Отчество",Отчество);
гФайлДанных.ВключитьЭлемент("ОтделениеБанка","");
гФайлДанных.ВключитьЭлемент("ФилиалОтделенияБанка","");
гФайлДанных.ВключитьЭлемент("Сумма",Сумма);
гФайлДанных.ЗакрытьЭлемент();
ОбщаяСумма = ОбщаяСумма + Сумма;
Состояние("Выгружено " + Счетчик + " строк");
Счетчик = Счетчик + 1;
КонецЦикла;
гФайлДанных.ЗакрытьЭлемент();
гФайлДанных.ОткрытьЭлемент("КонтрольныеСуммы");
гФайлДанных.ВключитьЭлемент("КоличествоЗаписей" ,Счетчик - 1);
гФайлДанных.ВключитьЭлемент("СуммаИтого" ,ОбщаяСумма);
гФайлДанных.ЗакрытьЭлемент();
гФайлДанных.ЗакрытьЭлемент();

гФайлДанных.Сбросить();
гФайлДанных.Завершить();

Сообщить("Выгрузка успешно завершена!!!","i");

КонецПроцедуры
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.