Помогите с алгоритмом

Тема в разделе "1C и всё что с ней связано", создана пользователем YariY, 28 июн 2010.

  1. YariY

    YariY New Member

    Регистрация:
    28 июн 2010
    Сообщения:
    2
    Симпатии:
    0
    Всем привет!
    Второй день мучаюсь, помогите с проблемкой разобраться.
    Необходимо создать отчёт "Табель учёта рабочего времени", транспортная организация, более 300 водителей. Отчётик должен отработать следующим образом: найти все путевые листы за месяц по всем водителям. По строкам вывести ФИО водителей, по колонкам число (календарные дни месяца). Если время работы по путевым листам (в сумме, за одно число) больше 6 часов, то напротив фамилии водителя, в графе Число должно отобразиться время, иначе - пусто.
    Не могу продумать нормальный алгоритм. Необходимо минимум переборов, запросов и условий.
    У кого какие соображения, поделитесь.
    Спасибо!
     
  2. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    1. Перебор путевых листов (Документами или запросом) за период с заполнением таблицы значений вида :
    ФИО
    Число // день месяца
    Время
    2. Группировка ТЗ по "ФИО,Число" с суммированием "Время"
    ТЗ.Группировать("ФИО,Число", "Время")
    ТЗ.Сортировать("ФИО,Число");


    3. Вывод на печать ТЗ с анализом времени на предмет сравнения с 6 часами
    Цикл типа такого
    Цикл
    Выводим секцию, содержащую ФИО
    Пока ФИО не поменялось - добавляем секции "Число".
    КонецЦикла
     
  3. YariY

    YariY New Member

    Регистрация:
    28 июн 2010
    Сообщения:
    2
    Симпатии:
    0
    Спасибо большое за ответ.
    Именно так я и собирался поступить (во всяком случае пункты 1 и 2).
    С проблемой столкнулся когда сообразил что бывают ситуации когда по два-три дня подряд может не быть ни одного ПЛ.
    И машина должна эти чила месяца оставлять чистыми.
    Например:
    _________ 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| - Число месяца
    Иванов И.И. |6.4|6.2|8.0|7.4| 0 | 0 |6.4|7.2| 0 |6.3|7.2| 0 | 0 |6.5|7.1| - часы.мин

    ЗЫ
    Или я чего-то не понял...
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Понял правильно. В этом будет основная сложность.
    Чтобы не доделывать за тебя, предложу идею.
    1. Первая строка ТЗ. Иванов И.И. - выводим 9 пустых секций, затем 10-е число, анализируем 2-ю строку ТЗ - выводим данные, так же в 3-й и 4-й.
    2. Если в 5-й строке опять Иванов выводим ДВЕ пустые секции и собственно данные пятой
    3. Если ФИО сменилось, смотрим, не надо ли вывести пустых секций до конца месяца предыдущему водителю.
    Справишься, будет красивая табличка. Плохо будет - зашлю кусочек аналогичного кода.
     
  5. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    А еще проще заготовить ТЗ как "пустографку" из колонки ФИО и 31 колонки ВРЕМЯ.
    При исследовании путевого листа анализировать, если в ТЗ такое ФИО, если нет - создавать новую строку и добавлять в нужную дату количество часов.
    Такой способ позволит просто линейно вывести ТЗ на печать
     
Загрузка...
Похожие Темы - Помогите алгоритмом
  1. limbra
    Ответов:
    3
    Просмотров:
    44
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    102
  3. Ruska132
    Ответов:
    37
    Просмотров:
    313
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    147
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    64

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