8.х Простенькая обработка

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем keny, 11 апр 2007.

  1. TopicStarter Overlay
    keny
    Offline

    keny

    Регистрация:
    11 апр 2007
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Люди добрые, помогите пожалуйста.
    Мне нужно создать простенькую обработку для загрузки докуметнов "приходная накладная" из exсel в 1с_8.0, причем если обработка не найдет нужных значений, она должна будет создать их сама.
    Пожалуйста, если можно, то выложите свои обработки или объясните как это делать.
    P.S. Обработка должна быть очень простой(даже примитивной), т.к. 1с я только начал изучать.
  2. dend
    Offline

    dend Опытный в 1С

    Регистрация:
    9 апр 2007
    Сообщения:
    175
    Симпатии:
    0
    Баллы:
    26
    пример кода.
    только экспорт в эксель
    Попытка

    // Открытие файла Microsoft Excel
    Состояние("Открытие файла Microsoft Excel...");
    ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла);

    // Обработка файла Microsoft Excel
    Состояние("Обработка файла Microsoft Excel...");
    мПриложение = ExcelПриложение;
    мКнига = ExcelФайл.Application.WorkBooks(1);

    мЛистОглавление = мКнига.Sheets("Оглавление");
    мЛистОглавление.Tab.ColorIndex = мКнига.Sheets("Вспомогательный").Cells(1,10).Interior.ColorIndex;
    мСчетчикКоличестваГрупп = 1;
    ЯчейкаСДатойПрайса = мЛистОглавление.Cells(1,3);
    ЯчейкаСДатойПрайса.Value = " Прайс-лист от "
    + Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy");
    ЯчейкаСДатойПрайса.Font.Size = 16;
    ЯчейкаСДатойПрайса.Font.Italic = 1;
    мТекущийНомерЛиста = 1;

    мФормаПрогресса = ЭтотОбъект.ПолучитьФорму("Прогресс");
    мФормаПрогресса.Открыть();

    ВывестиСтрокуПрайсаXLS(РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам), 0);

    //Удаляем вспомогательный лист
    ExcelПриложение.DisplayAlerts = False;
    ExcelПриложение.Worksheets("Вспомогательный").Delete();
    ExcelПриложение.DisplayAlerts = True;
    мКнига.Sheets("Оглавление").Move(мКнига.Sheets(1));

    Для Каждого Лист Из мКнига.Sheets() Цикл
    Лист.PageSetup.CenterFooter = "";
    Лист.PageSetup.RightFooter = "&P из &N";
    Лист.PageSetup.LeftMargin = ExcelПриложение.InchesToPoints(0.236220472440945);
    Лист.PageSetup.RightMargin = ExcelПриложение.InchesToPoints(0.354330708661417);
    Лист.PageSetup.TopMargin = ExcelПриложение.InchesToPoints(0.236220472440945);
    Лист.PageSetup.BottomMargin = ExcelПриложение.InchesToPoints(0.511811023622047);
    Лист.PageSetup.HeaderMargin = ExcelПриложение.InchesToPoints(0.15748031496063);
    Лист.PageSetup.FooterMargin = ExcelПриложение.InchesToPoints(0.15748031496063);
    Лист.PageSetup.PrintHeadings = False;
    Лист.PageSetup.PrintGridlines = False;
    Лист.PageSetup.PrintQuality = 600;
    Лист.PageSetup.CenterHorizontally = False;
    Лист.PageSetup.CenterVertically = False;
    Лист.PageSetup.Orientation = 1;
    Лист.PageSetup.Draft = False;
    Лист.PageSetup.PaperSize = 9;
    Лист.PageSetup.FirstPageNumber = -4105;
    Лист.PageSetup.Order = 1;
    Лист.PageSetup.BlackAndWhite = False;
    Лист.PageSetup.Zoom = 86;
    КонецЦикла;

    //Сохраняем в файл
    мФормаПрогресса.Закрыть();
    ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Если ДиалогВыбораКаталога.Выбрать() Тогда
    //Если сохраняем в корень диска
    Если Прав(ДиалогВыбораКаталога.Каталог,1) = "\" Тогда
    мКнига.SaveAs(ДиалогВыбораКаталога.Каталог + "прайс-лист_от_"+Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy")+".xls");
    Иначе
    мКнига.SaveAs(ДиалогВыбораКаталога.Каталог + "\прайс-лист_от_"+Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy")+".xls");
    КонецЕсли;
    КонецЕсли;

    Исключение
    Сообщить("Ошибка при открытии/чтении файла " + ИмяФайла + "." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
    КонецПопытки;
    ExcelПриложение.Quit();
  3. TopicStarter Overlay
    keny
    Offline

    keny

    Регистрация:
    11 апр 2007
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо. Сейчас проверю. :unsure:
  4. TopicStarter Overlay
    keny
    Offline

    keny

    Регистрация:
    11 апр 2007
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Почему-то не получается. Не затруднит ли вас выложить уже готовую обработку?
  5. ilqar93
    Offline

    ilqar93

    Регистрация:
    8 май 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!
    Выложил готовую обработку. Вам нужно открыть любую конфигурацию и открыть эту обработку. Обработка парсирует Еxcel-файл и выводит с помощью сообщений прочитанные строки. Времени было не много -поэтому сделал форму не очень... В поле ввода вам придется указать полный путь к файлу (например, C:\Temp\excel.xls). Посмотреть вложение 305
    Код обработки не мой. Взял из примера к книге "Простые примеры разработки"
    (кстати, хорошая книга). Во втором вложении эти примеры тоже выложил. Посмотреть вложение 306
    Если конкретно сформируете задачу, постараюсь помочь.

    Вложения:

  6. B@girusss
    Offline

    B@girusss Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    102
    Симпатии:
    0
    Баллы:
    26
    http://www.1c-pro.ru/index.php?showtopic=1...&#entry4398

    универсальная обработка загрузки из экселя!

    На форуме уже много раз обсуждались подобные вопросы, найти легче чем ответа ждать!
  7. ilqar93
    Offline

    ilqar93

    Регистрация:
    8 май 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо за обработку -пригодится!

    :unsure:
  8. TopicStarter Overlay
    keny
    Offline

    keny

    Регистрация:
    11 апр 2007
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое, очень помогло.

    П.С. все-таки хороший тут форум

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