Онянов Виталий | Ведущий разработчик | ООО "ФТО"

«От стажера до эксперта»

В данном докладе я хотел бы рассказать о сложившейся в нашей компании системе обучения разработчиков 1С. А именно: - Какими с нашей точки зрения навыками должен обладать хороший разработчик - Как эти навыки «прокачивать» - Какие курсы смотреть и книги читать - Какие инструменты мы используем, и на что стоит обратить внимание - Каков баланс обучения и текущей работы, позволяющий достичь максимального результата - Как не погрязнуть в рутине, а продолжать развиваться, какие есть пути роста - Расскажу о том, где искать новых разработчиков и о нюансах работы со студентами - Затрону тему контроля и мотивации В настоящий момент, у нас в компании работает более 60 разработчиков 1С, профессионалов своего дела. И очень многие пришли к нам студентами или младшими разработчиками (и я среди них). Надеюсь, что наш опыт поможет вам улучшить (или запустить) свою программу обучения программистов 1С.

Загрузка xml в 1с

1. user933577 13.03.18 16:13 Сейчас в теме
Есть несколько видов выгрузки данных в xml формат.
Например,

<table name="regcontr">
            <column name="ID">1</column>
            <column name="USNAME">Дом</column>
            <column name="INN">7826652560</column>
        </table>


а есть еще такой вид:

<?xml version="1.0" encoding="windows-1251"?>
<!--Pay--><Root>
	<RegContr>
		<Contr ID="123" SNAME="Дом;" USNAME="Дом;" INN="" KPP="" JADRESS="" FAX="" PHONE="" ACCOUNT="" PADRESS="" OKPO="" OKONH="" BANK="" BIK="" CORACCOUNT="" EMAIL=""/>
	</RegContr>
</Root>


Вид кода, который я нашел, не подходит


&НаСервере
Процедура ПрочитатьXMLФайлНаСервере(Файлик)

	ПутьКФайлу = Файлик[0];
	
	//XML 
	
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
	
	
	СЗ = Новый СписокЗначений;
	
	Пока ЧтениеXML.Прочитать() Цикл
		
		
		Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
			 ЧтениеXML.ПрочитатьАтрибут();
			 Атрибут = ЧтениеXML.Значение;
			КонецЕсли;
		
			
		Если ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
			Если Атрибут = "USNAME" Тогда
				СЗ.Добавить(ЧтениеXML.Значение);		
			КонецЕсли;
			Если Атрибут = "INN" Тогда
				СЗ.Добавить(ЧтениеXML.Значение);		
			КонецЕсли;
				
		КонецЕсли;
		
		Если ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента and Атрибут="INN" Then 
			СоздатьЭлементСправочника(СЗ);
			
			СЗ.Очистить();
		КонецЕсли;
		
		
		
		
			
		КонецЦикла;
	
КонецПроцедуры

Процедура СоздатьЭлементСправочника(СЗ)
	Если СЗ.Количество() >0 Тогда 
		НовыйЭлемент = Справочники.Поставщики.СоздатьЭлемент();
		НовыйЭлемент.Наименование = СЗ[0].Значение;
		НовыйЭлемент.ИНН =СЗ[1].Значение;
		НовыйЭлемент.Записать();
	КонецЕсли
КонецПроцедуры


&НаКлиенте
Процедура ПрочитатьИзФайлаXML(Команда)
	Режим = режимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияфайла = Новый ДиалогВыборафайла(Режим);
Фильтр = "xml|*.xml";
ДиалогОткрытияфайла.фильтр = фильтр;
Если ДиалогОткрытияфайла.Выбрать() Тогда 
	файлик = ДиалогОткрытияфайла.Выбранныефайлы;
	ПрочитатьXMLФайлНаСервере (Файлик);
	КонецЕсли;

ОбновитьИнтерфейс();
КонецПроцедуры
Показать


Вопрос, что нужно изменить?
Ответы
Сортировка: Древо
2. gradi 13.03.18 16:29 Сейчас в теме
Сериализатором пробовали прочитать?
3. FesenkoA 24 13.03.18 16:52 Сейчас в теме
4. palsergeich 13.03.18 21:35 Сейчас в теме
Построчное чтение XML - ахронизм, и оправдано ИМХО если предполагается что файлы могут быть гигантского размера и все остальные методы отказываются с ними работать.
Объектная техника позволяет описать простые, небольшие и легкие для понимания и изменения алгоритмы.
Если файлы будут небольшие по размеру - то проще всего для понимания через DOM.
Технологичнее и быстрее по скорости чтения - через XDTO но там есть ньюансы.
Выше постом хорошая ссылка по теме, рекомендую ознакомиться.
Оставьте свое сообщение
Все разделы

Вакансии


Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 150 000 руб.
Полный день