Чтение XML через DOM

Чтение XML через DOM
2 Добавил: Андрей
функция читаемХМЛ2014(путь,атр) экспорт
	х 		= новый массив;
	y 		= новый массив;
	мДОМ 	= новый ПостроительDOM;
	
	заявка = новый таблицаЗначений;
	заявка.Колонки.Добавить("номерДок");
	заявка.Колонки.Добавить("клиент");
	заявка.Колонки.Добавить("адрес");
	заявка.Колонки.Добавить("товар");
	заявка.Колонки.Добавить("кодТовара");
	заявка.Колонки.Добавить("количество");
	заявка.Колонки.Добавить("цена");
	заявка.Колонки.Добавить("сумма");
	
	чтение 	= Новый ЧтениеXML ;
	чтение.ОткрытьФайл(сокрЛП(путь));
	мДокументДОМ = мДОМ.Прочитать(чтение);
	чтение.Закрыть();
	номерДок = "";
	клиент   = "";
	адрес    = "";
	_documents =  мДокументДОМ.ПолучитьЭлементыПоИмени("documents");
	для каждого а1 из _documents цикл
		_preorder = а1.ПолучитьЭлементыПоИмени("preorder");
		для каждого а2 из _preorder цикл
			_ттн = а2.дочерниеУзлы;
			для каждого а21 из _ттн цикл
				если (а21.имяУзла = "innercode") тогда
					номерДок =а21.ТекстовоеСодержимое;
				конецЕсли; 
				если (а21.имяУзла = "buypointjuridicalname") тогда
					клиент   = а21.ТекстовоеСодержимое;
				конецЕсли;
				если (а21.имяУзла = "buypointaddress") тогда
					адрес    = а21.ТекстовоеСодержимое;
				конецЕсли;
			конецЦикла;
			_item = а2.ПолучитьЭлементыПоИмени("item");
			для каждого а3 из _item цикл
				_товар  = а3.ДочерниеУзлы;
				хх = заявка.Добавить();
				хх.номерДок = номерДок;
				хх.клиент   = клиент;
				хх.адрес    = адрес;
				для каждого а4 из _товар цикл
					если  (а4.имяУзла = "SKUname") тогда
						хх.товар = а4.ТекстовоеСодержимое;
					конецЕсли;
					если (а4.имяУзла = "SKUcode")тогда 
						хх.кодТовара = а4.ТекстовоеСодержимое;
					конецЕсли;
					если (а4.имяУзла = "quantity")тогда 
						хх.количество = а4.ТекстовоеСодержимое;
					конецЕсли;
					если (а4.имяУзла = "priceDiscount")  тогда
						хх.цена = а4.ТекстовоеСодержимое;
					конецЕсли;
					если (а4.имяУзла = "amount")  тогда
						хх.сумма = а4.ТекстовоеСодержимое;
					конецЕсли;
				конецЦикла;
			конецЦикла;
		конецЦикла;
	конецЦикла;
	
	
	//мРазыменовательПИ = мДокументДОМ.СоздатьРазыменовательПИ(мДокументДОМ);
	//мЗапрос		= "/documents/preorders/preorder/body/item/*";
	//мХПуть		= мДокументДОМ.СоздатьВыражениеXPath(мЗапрос,мРазыменовательПИ);
	//мРезультат	= мХПуть.Вычислить(мДокументДОМ);
	//мРодитель	= мРезультат.ПолучитьСледующий();
	//пока мРодитель <> неопределено цикл
	//	//если  мРодитель.ИмяЭлемента = "body" тогда
	//	//	  
	//	//	
	//	//	сообщить("");
	//	//	мРодитель=мРезультат.ПолучитьСледующий();
	//	//	продолжить;
	//	//конецЕсли;	 
	//	х.Добавить( мРодитель.ИмяЭлемента+" "+мРодитель.ТекстовоеСодержимое);
	//	сообщить(мРодитель.ИмяЭлемента+" "+мРодитель.ТекстовоеСодержимое);
	//	мРодитель=мРезультат.ПолучитьСледующий();
	//конецЦикла;
	
	возврат заявка;
конецФункции  //функция читаемХМЛ2014(путь)

Обработка подбора в управляемой форме

Обработка подбора в управляемой форме
4 Добавил: Андрей
&НаКлиенте //часто стоит указать &наСервере
Процедура выбратьТовар(Команда)
	 ст = новый структура;
	 ст.Вставить("товар", элементы.списокПодбора.текущиеДанные.товар);
	 ст.Вставить("цена"	, элементы.списокПодбора.текущиеДанные.цена);
	 //этаФорма.результат = ПоместитьВоВременноеХранилище(ст);
	 этаФорма.ВладелецФормы.адресПодбора = ст;
	 этаФорма.ВладелецФормы.выполнитьПодбор();
	 этаФорма.Закрыть();
КонецПроцедуры //Процедура выбратьТовар(Команда)

&НаКлиенте
процедура выполнитьПодбор() Экспорт
	ст 					= этаФорма.адресПодбора;
	адресПодбора 		= неопределено;
	хх 					= объект.товар.Добавить();
	хх.номенклатура 	= ст.товар;
	хх.ценаВход 		= ст.цена;
	хх.цена 			= ст.цена;
	хх.количество 		= 1;
	хх.сумма 			= хх.количество*хх.цена;	
конецПроцедуры

Вызов формы подбора в управляемой форме

Вызов формы подбора в управляемой форме
2 Добавил: Андрей
П 			= Новый Структура;
	ФормаВыбора = ПолучитьФорму("Документ.расходТовара.Форма.подбор",П,этаФорма);
	ФормаВыбора.Открыть();

Вызов шаблона в управляемой форме

Вызов шаблона в управляемой форме
2 Добавил: Андрей
схемаКомпоновкиДанных 		= РеквизитФормыВЗначение("Объект").ПолучитьМакет("имяОтчета");

ДобавитьИтераторТаблице

Добавляет колонку в таблицу значений. Заполняет колонку переданным значением
1 Добавил: bolsun
// Добавляет колонку в таблицу значений. Заполняет колонку переданным значением
//
// Параметры:
//  Таблица           - ТаблицаЗначений - таблица значений для добавления колонки
//  ЗначениеИтератора - Произвольный - значение, которым будет заполнено новое поле таблицы
//  ИмяПоляИтератора  - Строка - имя добавляемого поля
// 
Процедура ДобавитьИтераторТаблице(Таблица, ЗначениеИтератора, ИмяПоляИтератора) Экспорт
	
	Таблица.Колонки.Добавить(ИмяПоляИтератора);
	
	Таблица.ЗаполнитьЗначения(ЗначениеИтератора, ИмяПоляИтератора);
	
КонецПроцедуры

ПолучитьДатуФайла

Функция определяет дату последней модификации существующего файла на диске
1 Добавил: bolsun
// Функция определяет дату последней модификации существующего файла на диске
// Параметры
//  ИмяФайла  – Строка, содержащая полный путь к файла на диске.
//
// Возвращаемое значение:
//   Дата – Дата последней модификации файла
//
Функция ПолучитьДатуФайла(Знач ИмяФайла) Экспорт
	
	Файл = Новый Файл(ИмяФайла);
	Возврат Файл.ПолучитьВремяИзменения();
	 
КонецФункции

ПолучитьИмяФайла

Составляет полное имя файла из имени каталога и имени файла
1 Добавил: bolsun
// Составляет полное имя файла из имени каталога и имени файла.
//
// Параметры
//  ИмяКаталога  – Строка, содержащая путь к каталогу файла на диске.
//  ИмяФайла     – Строка, содержащая имя файла, без имени каталога.
//
// Возвращаемое значение:
//   Строка – полное имя файла с учетом каталога.
//
Функция ПолучитьИмяФайла(ИмяКаталога, ИмяФайла) Экспорт

	Если Не ПустаяСтрока(ИмяФайла) Тогда
		
		Возврат ИмяКаталога   ?(Прав(ИмяКаталога, 1) = "\", "", "\")   ИмяФайла;	
		
	Иначе
		
		Возврат ИмяКаталога;
		
	КонецЕсли;

КонецФункции // ПолучитьИмяФайла()