8.х Загрузка документов в 1C:Предприятие 8.2 из Формата ods

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Мор, 4 окт 2012.

  1. TopicStarter Overlay
    Мор
    Offline

    Мор Опытный в 1С

    Регистрация:
    21 янв 2012
    Сообщения:
    68
    Симпатии:
    0
    Баллы:
    26
    Задача следующая: Есть файл с данными надо загрузить его в 1С
    Но для начала нужен механизм, как из него считывать данные?
  2. Роман_Н
    Offline

    Роман_Н Опытный в 1С

    Регистрация:
    3 июл 2012
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    26
    Например вот образец чтения табеля.
    Код:
    // Запускаем OpenOffice.
    Попытка
    ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
    Исключение
    Предупреждение(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice\LibreOffice не установлена на данном компьютере!");
    Возврат;
    КонецПопытки;
    
    Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
    Args = Новый COMSafeArray("VT_VARIANT", 2);
    
    СвойствоКакШаблон = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    СвойствоКакШаблон.Name = "AsTemplate";
    СвойствоКакШаблон.Value = Истина;
    Args.SetValue(0, СвойствоКакШаблон);
    
    СвойствоСкрыть = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    СвойствоСкрыть.Name = "Hidden";
    СвойствоСкрыть.Value = Истина;
    Args.SetValue(1, СвойствоСкрыть);
    
    Док = Desktop.LoadComponentFromURL("file:///"+СокрЛП(фстрФайл), "_blank", 0, Args);
    Листы = Док.getSheets();
    Лист = Листы.getByIndex(фчНомерЛиста); 
    
    // Определяем конец файла.
    ПоследняяСтрока = Лист.Data.GetLength() - 1;
    
    // Формируем ТЗ с загружаемыми данными.
    тзЗагрузка = Новый ТаблицаЗначений;
    тзЗагрузка.Колонки.Добавить("Сотрудник");
    тзЗагрузка.Колонки.Добавить("ОтработанныеЧасы");
    
    Для i = 1 По ПоследняяСтрока Цикл
    строкаТЗ = тзЗагрузка.Добавить();
    строкаТЗ.Сотрудник	    = СокрЛП(Лист.getCellByPosition(0, i).getString());
    строкаТЗ.ОтработанныеЧасы = Окр(Лист.getCellByPosition(63, i).getValue(), 2, 1);
    ОбработкаПрерыванияПользователя();
    КонецЦикла; 
  3. TopicStarter Overlay
    Мор
    Offline

    Мор Опытный в 1С

    Регистрация:
    21 янв 2012
    Сообщения:
    68
    Симпатии:
    0
    Баллы:
    26
    Спс за пример попробую .Пока перевел формат ods в XLS ручками .

Поделиться этой страницей