8.х Запрос документов и вложенный запрос к ТЧ документа

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

  1. TopicStarter Overlay
    Gfdtk
    Offline

    Gfdtk Опытный в 1С

    Регистрация:
    28 апр 2008
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Есть такой запрос:

    Код:
    Запрос.Текст = "ВЫБРАТЬ
    |	СменныйОтчет.Ссылка,
    |	ВложенныйЗапрос.Бригада,
    |	ВложенныйЗапрос.Дата КАК Дата,
    |	ВложенныйЗапрос.Смена КАК Смена,
    |	ВложенныйЗапрос.ПричинаПростоя,
    |	СУММА(ВложенныйЗапрос.Длительность) КАК Длительность,
    |	ВложенныйЗапрос.Линия КАК Линия
    |ИЗ
    |	Документ.СменныйОтчет КАК СменныйОтчет
    |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |			СменныйОтчетПростои.Ссылка КАК Ссылка,
    |			СменныйОтчетПростои.Ссылка.Бригада КАК Бригада,
    |			СменныйОтчетПростои.Ссылка.ОкончаниеРаботыСмены КАК Дата,
    |			СменныйОтчетПростои.Ссылка.Смена КАК Смена,
    |			СменныйОтчетПростои.ПричинаПростоя КАК ПричинаПростоя,
    |			СУММА(СменныйОтчетПростои.Длительность) КАК Длительность,
    |			СменныйОтчетПростои.Ссылка.ПроизводственнаяЛиния КАК Линия
    |		ИЗ
    |			Документ.СменныйОтчет.Простои КАК СменныйОтчетПростои
    |		ГДЕ
    |			(НЕ СменныйОтчетПростои.ПричинаПростоя = &ИсключитьИзЗапроса)
    |		
    |		СГРУППИРОВАТЬ ПО
    |			СменныйОтчетПростои.Ссылка.ПроизводственнаяЛиния,
    |			СменныйОтчетПростои.Ссылка,
    |			СменныйОтчетПростои.Ссылка.Бригада,
    |			СменныйОтчетПростои.Ссылка.ОкончаниеРаботыСмены,
    |			СменныйОтчетПростои.Ссылка.Смена,
    |			СменныйОтчетПростои.ПричинаПростоя) КАК ВложенныйЗапрос
    |		ПО ВложенныйЗапрос.Ссылка = СменныйОтчет.Ссылка
    |ГДЕ
    |	СменныйОтчет.Подразделение = &Подразделение
    |	И ВложенныйЗапрос.Дата МЕЖДУ &НачПериода И &КонПериода
    |
    |СГРУППИРОВАТЬ ПО
    |	ВложенныйЗапрос.Линия,
    |	СменныйОтчет.Ссылка,
    |	ВложенныйЗапрос.Бригада,
    |	ВложенныйЗапрос.Дата,
    |	ВложенныйЗапрос.Смена,
    |	ВложенныйЗапрос.ПричинаПростоя
    |
    |УПОРЯДОЧИТЬ ПО
    |	Линия,
    |	Дата,
    |	Смена";
    
    
    В результате получается выбираются документы у которых в ТЧ Простои есть записи кроме &ИсключитьИзЗапроса, нужно, что выбирались все дкоументы за период + к ним добавлялись записи из ТЧ.

    Подскажите как это сделать?
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Разве вот этот запрос этого не делает?

    Код:
    ВЫБРАТЬ	               
    |			СменныйОтчетПростои.Ссылка КАК Ссылка,	               
    |			СменныйОтчетПростои.Ссылка.Бригада КАК Бригада,	            |			СменныйОтчетПростои.Ссылка.ОкончаниеРаботыСмены КАК Дата
    |			СменныйОтчетПростои.Ссылка.Смена КАК Смена,	               
    |			СменныйОтчетПростои.ПричинаПростоя КАК ПричинаПростоя,               
    |			СУММА(СменныйОтчетПростои.Длительность) КАК Длительность,               
    |			СменныйОтчетПростои.Ссылка.ПроизводственнаяЛиния КАК Линии
    |	ИЗ	               
    |			Документ.СменныйОтчет.Простои КАК СменныйОтчетПростои	               
    |		ГДЕ	               
    |			(НЕ СменныйОтчетПростои.ПричинаПростоя = &ИсключитьИзЗапроса)
    
    вот вы выбирает из ТЧ все записи где НЕ СменныйОтчетПростои.ПричинаПростоя = &ИсключитьИзЗапроса и ссылку к записи. ПричинаПростоя это то у вас поле записи ТЧ
  3. TopicStarter Overlay
    Gfdtk
    Offline

    Gfdtk Опытный в 1С

    Регистрация:
    28 апр 2008
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    в результате получаются все документы у которых что-то есть в ТЧ простои. НО есть документу у которых она не заполнена или там есть тока записи с &ИсключитьИзЗапроса - простоев за смену не было. Такой документ не попадает в результат запроса.
  4. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    а если выбрать все документы, поместить их во временную таблицу и выбрать все ТЧ с нужным условием и тоже поместить их во временную таблицу. Ну а потом уже соединил бы таблицы. Не подходит?
  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Тогда берете выборку по всем документам и соединяете ее левым соедениением по документу с тем что я вам написал с выборкой по тч. т.е у вас получается что слева есть все документы, справа документ+строка из ТЧ. левое сединение даст все документы + строки к тем у которых были в выборке что я вам писал. у остальных пустые

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