helpf.pro
Регистрация
 0 
Распечатать

Загрузка данных из таблицы OpenOffice Calc v.3

Код 1C v 8.х
 Процедура ЗагрузитьПрайс(Кнопка)

Попытка
ServiceManager = Новый ComОбъект("com.sun.star.ServiceManager");
МетодЗагрузки = "ОО";
Исключение
Сообщить("Отсутствует приложение для загрузки файла");
КонецПопытки;


Если МетодЗагрузки = "ОО" Тогда

scr = Новый ComОбъект("MSScriptControl.ScriptControl");
scr.language = "javascript";
scr.eval("MassivParametrov = new Array()");
MassivParametrov = scr.eval("MassivParametrov");
scr.AddObject("OpenOffice", ServiceManager);
scr.eval("MassivParametrov[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("MassivParametrov[0].Name='Hidden'");
scr.eval("MassivParametrov[0].Value=true");



Desktop = ServiceManager.CreateInstance("com.sun.star.frame.Desktop");
URL = ConvertToURL(ПутьКПрайсу);
Doc = Desktop.LoadComponentFromURL(URL, "_blank", 0, MassivParametrov);

Doc.lockControllers();
Doc.addActionLock();

Sheets = Doc.GetSheets();;
Документ = Sheets.GetByIndex(0);
//Документ = Sheets.GetByName("Лист1");

ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Артикул");
ТЗ.Колонки.Добавить( "Цена");

Дальше = 1;
ТекСтрокаДок = НачальнаяСтрока;
Пока Дальше = 1 Цикл

Проверка = СокрЛП(""+Документ.getCellByPosition(0, ТекСтрокаДок).getString());
Если ПустаяСтрока(Проверка) Тогда
Прервать;
КонецЕсли;
Артикул = СокрЛП(""+Документ.getCellByPosition(КолонкаАртикула-1, ТекСтрокаДок).getString());
Попытка
Цена = Число(СокрЛП(""+Документ.getCellByPosition(КолонкаЦены-1 , ТекСтрокаДок).getString()));
Исключение
Цена = 0;
КонецПопытки;


Если (НЕ ПустаяСтрока(СокрЛП(Артикул))) и (НЕ Цена = 0) Тогда
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Артикул = Артикул;
НоваяСтрока.Цена = Цена;
КонецЕсли;

Состояние("Обрабатываем - "+ТекСтрокаДок);

ТекСтрокаДок = ТекСтрокаДок+1;

КонецЦикла;

Если ТЗ.Количество() > 0 Тогда

Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
Док.Дата = ДатаУстановкиЦен;
ДобавитьТипЦен = Док.ТипыЦен.Добавить();
ДобавитьТипЦен.ТипЦен = ТипЦены;

Для Каждого ТекСтрока из ТЗ Цикл
Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекСтрока.Артикул);
Если НЕ Номенклатура.Пустая() Тогда
НоваяСтрока = Док.Товары.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.ТипЦен = ТипЦены;
НоваяСтрока.Цена = ТекСтрока.Цена;
НоваяСтрока.Валюта = Валюта;
НоваяСтрока.ЕдиницаИзмерения = Номенклатура.ЕдиницаХраненияОстатков;
КонецЕсли;
КонецЦикла;

Если Док.Товары.Количество() > 0 Тогда
Док.Записать();
КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецПроцедуры

функция ConvertToURL(FileName)
ИмяФайла = СтрЗаменить(FileName," ","%20" );
ИмяФайла = СтрЗаменить(ИмяФайла,"\","/");
Возврат "file:/" + "/localhost/" + ИмяФайла;
Конецфункции
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 11226
 0 
Распечатать
Возможно, вас также заинтересует
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Google maps, поиск оптимального маршрута 2
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; *...
Выгрузка в PDF из 1С (Средствами OpenOffice) 0
Возникла задача отправлять счета почтой. PDFcreator не подошел поскольку не удалось вместить счет на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашел быстро, а вот как уместить счет на одну страницу...
Добавим документы ODF (OpenOffice/LibreOffice) в стандартную обработку Загрузки Табличного документа 1
Доброго времени суток! Обработку ЗагрузкаданныхизТабличногоДокументаконечно должен знать каждый 1С-ник. И сколько бы обработок такого плана не появлялось, эта остается классикой. Даже претензии можно предъявлять...
Использование Предопределенных данных конфигурации 1
Текст запроса может содержать предопределенные данные конфигурации, такие как: - значения перечислений; - предопределенные данные: - справочников; - планов видов характеристик; - планов счетов; - планов видов...
Посмотреть все результаты поиска похожих
Комментарии
sia2012
15.12.2012 21:48Комментарий: 1
sia2012
Большое спасибо! Просто и понятно
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.