загрузка...
Дата публикации: 20.05.2021 10:28:04


Здесь буду собирать наработки по обычным формам

открытие файлового диалога и выбор файла

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


Чтение из excel

 
Соотв = Новый Соответствие;
	Попытка 
		Excel = Новый COMОбъект("Excel.Application");
		Соотв.Вставить("Соединение",Excel);
	    ExcelФайл = Excel.WorkBooks.Open (файл);
		Соотв.Вставить("ExcelФайл",ExcelФайл);
		Лист=ExcelФайл.Sheets("Лист1");
		Мстрока= Лист.Cells(1,1).SpecialCells(11).Row;
		строка =Мстрока;
		Для x = 2 по Мстрока цикл
			если Не СокрЛП(Лист.Cells(x,2).Value)="" тогда
			СтрЗ=Загрузка.Добавить();
			СтрЗ.Артикул = Лист.Cells(x,2).Value;
			СтрЗ.Производитель = Лист.Cells(x,3).Value;
			СтрЗ.Количество = Лист.Cells(x,4).Value;
			СтрЗ.ЕдИзм = Лист.Cells(x,5).Value;
			СтрЗ.Цена= Лист.Cells(x,6).Value;
			КонецЕсли;
		конеццикла;
		ExcelФайл.Close();
		Excel.DisplayAlerts = 1;
		Excel.Quit();
		Excel = Неопределено;
		ЭлементыФормы.Загрузка.Значение= Загрузка;
		ЭлементыФормы.Загрузка.СоздатьКолонки();
		если Загрузка.Количество()>0 Тогда
			этаформа.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыВыполнить.Доступность =Истина;
		КонецЕсли;
	Исключение
		Сообщить("Ошибка Microsoft Excel" + ОписаниеОшибки());
		лРезультат = Неопределено;
	КонецПопытки;



Заполнение макета СКД


Процедура ДокОтчетаПриИзменении(Элемент)
	// Вставить содержимое обработчика.
	ОСКД = ПолучитьМакет("Макет");
	НастройкиОСКД = ОСКД.НастройкиПоУмолчанию;
	ПараметрыДанныхОСКД = НастройкиОСКД.ПараметрыДанных.Элементы;
	ЭлементСсылка = ПараметрыДанныхОСКД.Найти("Ссылка");
	ЭлементСсылка.Использование = Истина;
	ЭлементСсылка.Значение = ДокОтчета;
	КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, НастройкиОСКД);
	ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиОСКД.Инициализировать(Макет);
	ТаблДок = ЭтаФорма.ЭлементыФормы.ТаблДок;
	ТаблДок.Очистить();
	ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВыводаОСКД.УстановитьДокумент(ТаблДок);
	ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);	
КонецПроцедуры



открытие и чтение из csv



Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт
	
	МойРезультат = Новый Массив;
	
	// для обеспечения обратной совместимости
	Если ПропускатьПустыеСтроки = Неопределено Тогда
		ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
		Если ПустаяСтрока(Строка) Тогда 
			Если Разделитель = " " Тогда
				МойРезультат.Добавить("");
			КонецЕсли;
			Возврат МойРезультат;
		КонецЕсли;
	КонецЕсли;
	//
	
	Позиция = Найти(Строка, Разделитель);
	Пока Позиция > 0 Цикл
		Подстрока = Лев(Строка, Позиция - 1);
		Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
			МойРезультат.Добавить(Подстрока);
		КонецЕсли;
		Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
		Позиция = Найти(Строка, Разделитель);
	КонецЦикла;
	
	Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда
		МойРезультат.Добавить(Строка);
	КонецЕсли;
	
	Возврат МойРезультат;
	
КонецФункции

	// Вставить содержимое обработчика.
		fiascsv = 	"fias.csv";
		Режим = РежимДиалогаВыбораФайла.Открытие;
		Диалог = Новый ДиалогВыбораФайла(Режим);
		Диалог.Заголовок = "Выбор csv файла ";
		Диалог.Фильтр = "Файл выгрузки fias (*.csv)|*.csv";
		Если Не Диалог.Выбрать() Тогда
			Предупреждение("Не выбран csv файл !");
			ЭтаФорма.Закрыть("");
		Иначе
			fiascsv= Диалог.ПолноеИмяФайла;
		КонецЕсли;	
	
ТекстовыйДокумент = Новый ТекстовыйДокумент;
Попытка
    ТекстовыйДокумент.Прочитать(fiascsv);
Исключение
    Предупреждение("Ошибка открытия файла "+fiascsv+" !");
    ЭтаФорма.Закрыть("");
КонецПопытки;
Для ТекСтрока = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл
ТекстоваяСтрока = ТекстовыйДокумент.ПолучитьСтроку(ТекСтрока);
строкаДокумента = РазложитьСтрокуВМассивПодстрок(ТекстоваяСтрока,";");
НайденнаяСтрока = ТЗ.Найти(СокрЛП(строкаДокумента[1]),"номерпом");
Если НайденнаяСтрока = Неопределено Тогда
	сообщить("не нашли "+строкаДокумента[1]);
иначе
	НайденнаяСтрока.fias = строкаДокумента[0];
КонецЕсли;	
КонецЦикла;



работа с xml


Данные = Новый ЧтениеXML;
Попытка
Данные.ОткрытьФайл(имяВыходногоФайлаxml);
Исключение
    Предупреждение("Ошибка открытия файла "+имяВыходногоФайлаxml);
    ЭтаФорма.Закрыть("");
КонецПопытки;
СтатусЧтения = "";
Пока Данные.Прочитать() Цикл
	
Если СокрЛП(Данные.Имя) = "AssignationCode" И СокрЛП(Данные.ПерейтиКСодержимому()) = "Начало элемента"  Тогда	
	СтатусЧтения = "AssignationCode";
КонецЕсли;			
Если СтатусЧтения = "AssignationCode" И СокрЛП(Данные.ПерейтиКСодержимому()) = "Текст"  Тогда
	если СокрЛП(AssignationCode) = "" тогда
	AssignationCode = СокрЛП(Данные.Значение);
	конецесли;
	СтатусЧтения = "";		
КонецЕсли;	

Если СокрЛП(Данные.Имя) = "Level1"   Тогда	
	Level1 = СокрЛП(Данные.ЗначениеАтрибута("Value"));
	Level1Type = СокрЛП(Данные.ЗначениеАтрибута("Type"));
КонецЕсли;	

КонецЦикла;	




Назад в раздел

Личный кабинет

Логин:
Пароль:
Регистрация
Забыли свой пароль?
Войти как пользователь:
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:

Ссылки

Яндекс.Метрика

Последняя новость

18.06.2019 новое лицо сайта b-tema.ru
Закончена работа над ребрендингом сайта b-tema.ru, теперь это современный адаптивный одностраничный лэндинг.
подробнее тут

О погоде

Яндекс.Погода


SPRINTHOST.RU: быстрый и надежный хостинг!