8.х Отчет "Свободные машины"

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

  1. TopicStarter Overlay
    osy
    Offline

    osy

    Регистрация:
    30 янв 2008
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Уважаемые форумчане! Прошу помощи. Мне необходимо сделать отчет, показывающий информацию о свободных машинах, не задействованных в выбранный день в доставке товара, по условию свободная машина - это машина, которая имеется в справочнике "Транспортные средства", но отсутствует в заявках на транспорт в этот день. Получается мне нужно отбирать записи из справочника "Транспортные средства", сравнивая их с записями из документа "Заявка на транспорт", но я не знаю как это сделать, т.к. я только учусь. Вот то что я пока что сделал.

    ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(ЗаявкаНаТранспорт.ДатаИВремяДоставки, ДЕНЬ) КАК Дата,
    ЗаявкаНаТранспорт.Машина
    ИЗ
    Документ.ЗаявкаНаТранспорт КАК ЗаявкаНаТранспорт

    СГРУППИРОВАТЬ ПО
    НАЧАЛОПЕРИОДА(ЗаявкаНаТранспорт.ДатаИВремяДоставки, ДЕНЬ),
    ЗаявкаНаТранспорт.Машина
  2. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Заявка на транспорт должна делать движения в регистр. Данные брать от туда надо. А вот со справочником я бы не согласился. Значит должен быть еще один регистр, где хранится информация о том, что машина в принципе работает. Сегодня машина есть, завтра вы ее продали, а в отчет она все равно будет попадать как свободная, т.к. есть в справочнике. Что за конфигурация? Думаю запрос для вашего отчета 5 минутное дело.
  3. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.745
    Симпатии:
    509
    Баллы:
    204
    Да, нужно добавить еще один РС периодический, при проведении документа ЗаявкаНаТранспорт писался статус машины - "в рейсе". Так проще всего.

    P.S. А что за конфа такая ??? Что-то мне подсказывает, знакомое имя документа :)
  4. TopicStarter Overlay
    osy
    Offline

    osy

    Регистрация:
    30 янв 2008
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    В том то и дело, что данную задачу необходимо решить без использования регистров. Это задача, из самостоятельной работы курсов 1с, только она не стандартная, а модифицированная преподавателем. Он дал подсказку - делать через вложенный запрос, вроде бы в 1с есть такая функция, позволяющая выбрать записи из справочника, которых нет в документе на конкретную дату. Вот я теперь и ломаю голову как это сделать.
  5. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.745
    Симпатии:
    509
    Баллы:
    204
    Использовать ВНЕШНЕЕ СОЕДИНЕНИЕ в запросе, при условии что в выборке у вас два объекта - Справочник ТС и РН
  6. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Тогда Ваш преподаватель че то не то морозит. Смысл какой в этом отчете? Ну если все же надо без использования регистров, то бога ради. Но это не правильно. Запросом получайте все элементы справочника, а затем выбираете те документы, в которых есть эти элементы. Можно сделать и без вложенного запроса. Это прост один из способов. Конфа то какая так и не ответили?
  7. TopicStarter Overlay
    osy
    Offline

    osy

    Регистрация:
    30 янв 2008
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Всем спасибо за помощь, у меня получилось.

    Код:
    ВЫБРАТЬ
        ЗаявкаНаТранспорт.Машина
    ПОМЕСТИТЬ МашиныИзЗаявки
    ИЗ
        Документ.ЗаявкаНаТранспорт КАК ЗаявкаНаТранспорт
    ГДЕ
        НАЧАЛОПЕРИОДА(ЗаявкаНаТранспорт.ДатаИВремяДоставки, ДЕНЬ) = &Дата
    
    СГРУППИРОВАТЬ ПО
        ЗаявкаНаТранспорт.Машина
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ТранспортныеСредства.Ссылка
    ИЗ
        Справочник.ТранспортныеСредства КАК ТранспортныеСредства
            ЛЕВОЕ СОЕДИНЕНИЕ МашиныИзЗаявки КАК МашиныИзЗаявки
            ПО ТранспортныеСредства.Ссылка = МашиныИзЗаявки.Машина
    ГДЕ
        ЕСТЬNULL(МашиныИзЗаявки.Машина, 0) = 0
    Последнее редактирование модератором: 9 мар 2014
  8. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Если у Вас реально задание по документам получить информацию, тогда ладно. Но на будущее знайте, что для этого существуют регистры. А также не забывайте про удаление временных таблиц.

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