8.х Нужна помощь в создании обработок

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

  1. TopicStarter Overlay
    korvindeson
    Offline

    korvindeson

    Регистрация:
    27 сен 2011
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Собственно 2 вопроса
    Есть у меня 1с 8.1 зарплата. Там сделал по клише внешние обработки, для создания протоколов о начислениях (в приложении). Там в них суть, что вводится дата, в зависимости от введённого месяца формируется протокол с людьми, которые получали это начисление в этом месяце.
    Но, возникла проблема. Протоколов этих крайне много и приходится сидеть, и долго, нудно по ним клацать можно ли сделать обработку следующего вида?

    1) Ввод даты которая будет использоваться во всех последующих обработках.
    2) Запуск обаротки код 45 (впоследствии далее до 103).
    3) Проверка результатов. В обработках формируется таблица где в строке 32 начинается список людей, если строка пустая, значит пропустить обработку. Если нет то сохранить файл ексель за нумером 1.
    4) Далее перескок на следующую обработку, если проверка пройдена сохранить 2.xls и далее.

    Может кто написать такое чудо или хотя бы скинуть ссылку на почитать в этом направлении. Если честно не очень хочется разбираться с 1эской, очень специфическая она, а алгоритм простой вроде.

    И второй вопрос

    Нужно импортировать из экселя данные о премиях
    я себе представляю это примерно так

    Код:
     
    Процедура ConExel = ПолучитьComОбьект ("C:\Начисления.xls");
    i = 1;
    Пока СтрДлина (ConExel.Sheets(1).Cells(i,1).Value) > 0 Цикл
    Если СтрДлина (ConExel.Sheets(1).Cells(i,1).Value) = Профорг* Тогда
    \\Создать документ начисление зарплаты для подразделения записанного в Клетке(i,1)
    i = i + 1
    Иначе
    \\Записать в открытый выше документ сотруднику Cells(i,1) сумму Cells(i,2) код дополнительного начисления 100 премия.
    i = i + 1
    КонецЕсли
    КонецЦикла
    КонецПроцедуры
    
    Найти как описать то что мне надо на понятном 1эске языке пока не получается. Литература, которую качаю как-то не про то. С предыдущей проблемой вообще ничего решить не могу. Только абстрактная идея.


    Экселевский файл выглядит как

    Профорг Пупкин
    Иванов И.И, | 1000
    Петров П.П. | 5000
    Профорг Рыбкин
    ......

    Спасибо
  2. dYrex
    Offline

    dYrex

    Регистрация:
    27 сен 2011
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Вот собственно по второму вопросу


    ОбъектExcel = Новый COMОбъект("Excel.Application");

    Книга = ОбъектExcel.Workbooks.Open("C:\Начисления.xls");

    Лист = Книга.WorkSheets(1);

    к = 1;

    Пока СтрДлина(Лист.Cells(к,1).Value) > 0 Цикл

    Подразделение = Справочники.Подразделения.НайтиПоНаименованию(Лист.Cells(к,2).Value, Истина);

    Если Не Подразделение.Пустая() Тогда

    Док = Документы.НачислениеЗарплата.СоздатьДокумент();

    // заполнение полей Док.Номер = и т.д.
    Док.Записать(РежимЗаписиДокумента.Проведение);

    КонецЕсли;


    КонецЦикла;

    Книга.Close();
    ОбъектExcel.Quit();

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