Имя: Пароль:
1C
1С v8
Запросом получить только те документы, у которых во всех строках таблицы документа поле "
0 Kadyroff
 
30.12.20
13:41
Старый запрос выводил документы с условиями, что в табличной части стоит нужная номенклатура и "Сдал"= Истина
    "ВЫБРАТЬ
    |    ЛистОбследования.Ссылка,
    |    ЛистОбследования.Номер,
    |    ЛистОбследования.Дата КАК Дата,
    |    ЛистОбследования.Пациент,
    |    ЛистОбследования.Пациент.Наименование КАК ФИО,
    |    ЛистОбследования.Контрагент,
    |    ЛистОбследованиятчПрофосмотр.Номенклатура,
    |    ЛистОбследованиятчПрофосмотр.Направлен,
    |    ЛистОбследованиятчПрофосмотр.Сдал
    |ИЗ
    |    Документ.ЛистОбследования КАК ЛистОбследования
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЛистОбследования.тчПрофосмотр КАК ЛистОбследованиятчПрофосмотр
    |        ПО ЛистОбследования.Ссылка = ЛистОбследованиятчПрофосмотр.Ссылка
    |ГДЕ
    |    ЛистОбследования.Закрыт = Ложь
    |       И ЛистОбследования.ПометкаУдаления=Ложь
    |    И ЛистОбследованиятчПрофосмотр.Номенклатура = &Врачи
    |    И ЛистОбследованиятчПрофосмотр.Сдал = Истина

Стоит новая задача:  запросом получить только те документы, у которых во всех строках таблицы документа поле " Сдал" = Истина
в каком направлении двигаться?
1 Ёпрст
 
30.12.20
13:45
Запросом получить ссылки на документы, где в тч емть строки с сдал= ложь
В основном запросе фильтр на эти доки
2 Ёпрст
 
30.12.20
13:47
Ну или группировать основной запрос и смотреть, что сумма строк та же..
3 acht
 
30.12.20
13:47
имеющие
    сумма(выбор когда листобследованиятчпрофосмотр.сдал тогда 1 иначе 0) = количество(листобследованиятчпрофосмотр.сдал)
4 acht
 
30.12.20
13:48
Профосмотр номенклатуры пугает
5 acht
 
30.12.20
13:49
А за сравнение Номенклатура = &Врачи ваще обидно
6 ДенисЧ
 
30.12.20
13:50
(4) НОМЕНКЛАТУ́РА
Женский род
2.
Совокупность лиц, назначаемых на должность высшей инстанцией офиц..
7 acht
 
30.12.20
13:50
(6) Это у которых шапки пирожками?
8 Kassern
 
30.12.20
13:52
(0) Что за конфа такая? Полностью самописная?
9 Kassern
 
30.12.20
13:54
(0) Как то странно Профосмотр пихать в ТЧ. Если например, одного врача не прошли и снова его пройти получится только через полтора месяца, то вы задним числом залезете в этот документ и поставите сдал?
10 ДенисЧ
 
30.12.20
13:56
(7) Не обязательно. Могут быть и папахи. И шляпы в летнее время
11 Cthulhu
 
30.12.20
14:08
СУММА(ВЫБОР(КОГДА ЛистОбследования.Закрыт = Ложь  И ЛистОбследования.ПометкаУдаления=Ложь
    И ЛистОбследованиятчПрофосмотр.Номенклатура = &Врачи И ЛистОбследованиятчПрофосмотр.Сдал = Истина
    ТОГДА 1 ИНАЧЕ 0 КОНЕЦ )) КАК КвоОк,
СУММА(1) КАК КвоИт
сгруппировать эту беду подокументно и отфильтровать по КвоОк=КвоИт

нэ?
12 Kadyroff
 
30.12.20
14:35
(4) :) Я вас сейчас еще больше испугаю, принесли базу, где на базе торговли реализован медицинский учет...Бывает и такое....
13 Kadyroff
 
30.12.20
14:39
(9) Да, самописная, медицина на базе торговли и склада. Здесь смысл такой, что администратор вводит документ лист обследования, далее врачи в своем интерфейсе вводят результаты осмотра, при проведении этого документа "РезальтатОсмотра", корректируется ЛистОбследования.
14 Малыш Джон
 
30.12.20
16:06
(12) Среднюю себестоимость пациента ещё считать не заставляли?)
15 Kassern
 
30.12.20
16:10
(14) Это ладно, с НГ еще маркировать заставят, вот будет весело)
16 Dmitrii
 
гуру
30.12.20
17:03
(0) Ну так и напиши в конце текста запроса к уже имеющимся условиям ГДЕ.

И НЕ ЛистОбследования.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ЛистОбследованиятчПрофосмотр.Ссылка ИЗ Документ.ЛистОбследования.тчПрофосмотр КАК ЛистОбследованиятчПрофосмотр ГДЕ НЕ (ЛистОбследованиятчПрофосмотр.Ссылка.Закрыт ИЛИ ЛистОбследованиятчПрофосмотр.Ссылка.ПометкаУдаления ИЛИ ЛистОбследованиятчПрофосмотр.Сдал) И ЛистОбследованиятчПрофосмотр.Номенклатура = &Врачи
17 Dmitrii
 
гуру
30.12.20
17:04
+ к (16) Скобочку закрывающую в конце текста забыл.
18 Ногаминебить
 
30.12.20
17:19
Не предлагали еще запрос с Группировкой по документу и Минимум Сдал? Во временную таблицу и потом из результата выбрать все истины.
19 Kassern
 
30.12.20
17:31
Насколько я понимаю не может быть закрытых листов обследования, где не все осмотры сданы. Могу предложить частное решение задачки: перед записью ЛистОбследования  проверять, если тчПрофосмотр.Количество()>0 И тчПрофосмотр.Найти(Ложь,"Сдал")=Неопределено тогда Закрыт = Истина. А далее просто отбор ЛистОбследования.Закрыт = Истина. По уму конечно регистр прикрутить и к нему уже обращаться для запроса.
20 Kadyroff
 
14.01.21
13:59
(16) Спасибо. Это то, что нужно! Только условие по номенклатуре сделала отдельным, так нужный врач не попадает.
Подскажите, если по старому условию я отбираю все строки, где Поле Сдал=Истина, то в новом условии необходимо отобрать все строки сдал=Истина кроме той, где Номенклатура=Профпатолог, т.е. эта строка должна быть ложью?
Независимо от того, куда вы едете — это в гору и против ветра!