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 УП |  Дата:   Прочитано: 26242
 0 
Распечатать
Возможно, вас также заинтересует
Google maps : вывод точек на карту и режим панорамы 9
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора
Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне
Выгрузка в PDF из 1С (Средствами OpenOffice) 0
Возникла задача отправлять счета почтой. PDFcreator не подошел поскольку не удалось вместить счет на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашел быстро, а вот как уместить счет на одну страницу вширь искал долго.
Добавим документы ODF (OpenOffice/LibreOffice) в стандартную обработку Загрузки Табличного документа 1
Доброго времени суток! Обработку ЗагрузкаданныхизТабличногоДокументаконечно должен знать каждый 1С-ник. И сколько бы обработок такого плана не появлялось, эта остается классикой. Даже претензии можно предъявлять если вы в ней что-то не понимаете к с
Использование Предопределенных данных конфигурации 2
Текст запроса может содержать предопределенные данные конфигурации, такие как: - значения перечислений; - предопределенные данные: - справочников; - планов видов характеристик; - планов счетов; - планов видов расчетов; - пустые ссылки;
Посмотреть все результаты поиска похожих
Комментарии
sia2012
15.12.2012 21:48Комментарий: 1
sia2012
Большое спасибо! Просто и понятно
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!