8.х Список времени в запросе

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

  1. TopicStarter Overlay
    Drakonchegg
    Offline

    Drakonchegg Опытный в 1С

    Регистрация:
    17 мар 2012
    Сообщения:
    117
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, извините что не понятный заголовок. Не знаю как по другому назвать. Можете ли подсказать, у меня есть у сотрудника начала времени рабочего дня = 9:00, и конец рабочего дня = 17:00. в Запросе вывести список расписание к примеру. 9:00, 10:00, 11:00 и т.д.?
    Заранее благодарю)
    1С:Предприятие 8.1 (8.1.15.14)
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну вы откуда данные берете, как передаются начало и конец дня - параметрами?
  3. TopicStarter Overlay
    Drakonchegg
    Offline

    Drakonchegg Опытный в 1С

    Регистрация:
    17 мар 2012
    Сообщения:
    117
    Симпатии:
    0
    Баллы:
    26
    справочнике Сотрудников, оттуда данные беру, там заполняется ФИО, начало рабочего дня, и конец рабочего, специализация врача
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    И Вам необходимо что бы вы в Запрос передали дату нач и дату кон и Вам вывелся список часов. Так?
  5. Persempre
    Offline

    Persempre Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    851
    Симпатии:
    3
    Баллы:
    29
    Я бы пакетными запросами сделал по каждому времени свой запрос, более громоздко может но действенно. Потом конечно как объединить нужно будет подумать, но это уже другая история...
  6. TopicStarter Overlay
    Drakonchegg
    Offline

    Drakonchegg Опытный в 1С

    Регистрация:
    17 мар 2012
    Сообщения:
    117
    Симпатии:
    0
    Баллы:
    26
    Да, что бы вывелся список часов, начиная 9 часов, 10 часов, 11 часов, 12 часов и т.д.

    хм... и как же это примерно будет?

    кроме этого варианта час(началорабочегодня) + час(длительностьприема) не нашел((
  7. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    "все татарин кроме я" - нефига не понял, что надо сделать.
  8. Persempre
    Offline

    Persempre Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    851
    Симпатии:
    3
    Баллы:
    29
    Конфигурация какая у вас?
  9. Persempre
    Offline

    Persempre Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    851
    Симпатии:
    3
    Баллы:
    29
    Например вот так, но это из моих догадок, т.к. не понятно что именно и в каком виде получить нужно.
    Последним запросом вы объединяете все эти запросы и должно все получиться.
    Код:
    ВЫБРАТЬ
    КОЛИЧЕСТВО(Различные СотрудникиОрганизаций.Физлицо) КАК Сотрудников,
    СотрудникиОрганизаций.ГрафикРаботы.НачалоДневныхЧасов КАК НачалоПервойСмены
    ПОМЕСТИТЬ СменаПервая
    ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
    ГДЕ
    СотрудникиОрганизаций.ГрафикРаботы.НачалоДневныхЧасов = &НачалоПервойСмены
    ;
    ВЫБРАТЬ
    КОЛИЧЕСТВО(Различные СотрудникиОрганизаций.Физлицо) КАК Сотрудников,
    СотрудникиОрганизаций.ГрафикРаботы.НачалоДневныхЧасов КАК НачалоВторойСмены
    ПОМЕСТИТЬ СменаВторая
    ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
    ГДЕ
    СотрудникиОрганизаций.ГрафикРаботы.НачалоДневныхЧасов = &НачалоВторойСмены
    ;
    ВЫБРАТЬ
    КОЛИЧЕСТВО(Различные СотрудникиОрганизаций.Физлицо) КАК Сотрудников,
    СотрудникиОрганизаций.ГрафикРаботы.НачалоДневныхЧасов КАК НачалоТретьейСмены
    ПОМЕСТИТЬ СменаТретья
    ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
    ГДЕ
    СотрудникиОрганизаций.ГрафикРаботы.НачалоДневныхЧасов = &НачалоТретьейСмены
  10. TopicStarter Overlay
    Drakonchegg
    Offline

    Drakonchegg Опытный в 1С

    Регистрация:
    17 мар 2012
    Сообщения:
    117
    Симпатии:
    0
    Баллы:
    26
  11. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Хитрый вариант это перадать в Запрос Таблицу значений в которой будут числа от 0 до 24 - это часы в сутки. И выбирать из нее только те записи которые в интервале по часам

    Типа

    Выбрать
    Время
    из &ТЗ
    Где
    Время >=&Нач И Время <=&Кон
  12. TopicStarter Overlay
    Drakonchegg
    Offline

    Drakonchegg Опытный в 1С

    Регистрация:
    17 мар 2012
    Сообщения:
    117
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&ДатаНач, Час, (Цифры4.Цифра * 1000
    + Цифры3.Цифра * 100
    + Цифры2.Цифра * 10
    + Цифры1.Цифра * 1
    )) КАК ДатаДень
    ИЗ
    (
    ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1		   ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 2			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 3			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 4			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 5			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 6			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 7			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 8			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 9
    ) КАК Цифры1
    СОЕДИНЕНИЕ
    (
    ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1		   ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 2			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 3			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 4			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 5			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 6			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 7			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 8			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 9
    ) КАК Цифры2
    ПО (  Цифры2.Цифра * 10
    + Цифры1.Цифра * 1
    ) <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, Час)
    СОЕДИНЕНИЕ
    (
    ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1		   ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 2			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 3			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 4			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 5			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 6			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 7			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 8			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 9
    ) КАК Цифры3
    ПО (  Цифры3.Цифра * 100
    + Цифры2.Цифра * 10
    + Цифры1.Цифра * 1
    ) <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, Час)
    СОЕДИНЕНИЕ
    (
    ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1		   ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 2			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 3			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 4			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 5			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 6			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 7			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 8			 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 9
    ) КАК Цифры4
    ПО (  Цифры4.Цифра * 1000
    + Цифры3.Цифра * 100
    + Цифры2.Цифра * 10
    + Цифры1.Цифра * 1
    ) <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, Час)
    УПОРЯДОЧИТЬ ПО ДатаДень

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