#0
by ЭЦ
ГОСПОДА! Имеется 1 документ ПриемНаРаботуВОрганизацию в документе имеется таб. часть с полем Сотрудник у которого имеется реквизит Подразделение. 2 Список запрещенных подразделений - СписЗП Требуется написать запрос который выдастт все документы в ТЧ которых нет запрещенных сотрудников. Причем СписЗП не должен быть внутри агрегатной функции. Как это реализовать? прошу подсказать.
#2
by Gamm
А в чем проблема возникла? Выбрать * из Док.ТЧ Где Док.Тч.Сотрудник.Подразделение не в (&СПИСЗП)
#3
by Ненавижу 1С
соедини внутренне ТЧ со списком, получишь те доки, у кого есть запрещенные, это подзапрос соедини селва доки с подзапросом, повесь условие ЕСТЬ NULL на доки в подзапросе
#4
by Ненавижу 1С
доки надо, так пройдут и те доки, в которых есть как запрещенные так и не запрещенные
#5
by Tashiro
можно еще формировать запрос и забивать его "И имяРек <> условиеN..." но в - изящно и более верно
#7
by 73
Это если к ТЧ обращаться. Попробуй: ВЫБРАТЬ ПриемНаРаботуВОрганизацию.Ссылка ИЗ Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию ГДЕ ПриемНаРаботуВОрганизацию.ТАБЧАСТЬ.Сотрудник.Подразделение Не В(&СПИСЗП)
#11
by Ненавижу 1С
ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг выдает все документы, для которых выполняется условие ХОТЯ БЫ ДЛЯ ОДНОГО ЗНАЧЕНИЯ из ТЧ в списке ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Товары.Номенклатура НЕ В (&Номенклатура) выдает все документы, для которых выполняется условие ДЛЯ ВСЕХ ЗНАЧЕНИЙ из ТЧ в списке
#12
by 73
Посчитай количество доков там и там и общее. Получается кво(без НЕ) + кво(С НЕ) = общему количеству документов. Т.е. каждый документ учтен 1 раз. Кстати, критерии отбора по ТЧ аналогично работают со списками. Понятно, что это решение не отличается наглядностью, логикой и т.д. Но оно работает. И логику надо искать в постановке задачи в : например:<запрос который выдастт все документы в ТЧ которых нет запрещенных сотрудников> - не правда ли, звучит как <ДЛЯ ВСЕХ ЗНАЧЕНИЙ из ТЧ в списке>. или:<запрос который выдастт все документы в ТЧ которых встречаются запрещенные сотрудники> - звучит как <все документы, для которых выполняется условие ХОТЯ БЫ ДЛЯ ОДНОГО ЗНАЧЕНИЯ из ТЧ >.
#13
by Ненавижу 1С
"Получается кво(без НЕ) + кво(С НЕ) = общему количеству документов." что и подтверждает сделанный мной вывод неадекватное поведение 1С, как я ее ненавижу!
#14
by ЭЦ
А зачем еще левое соединение с условием ? Наверное проще ГДЕ НЕ Доки В (ВложеныйЗапрос.ЗапрещенныйДок) ?
#17
by 73
Это если НЕ убрать. А в том виде как там - :<запрос который выдастт все документы в ТЧ которых нет запрещенных сотрудников>
#19
by Ненавижу 1С
Вообще складывается впечатление, что однажды эта фича перестанет работать - разработчики в очередном релизе платформы могут все переписать
#22
by Ненавижу 1С
идея в вот: Только там списком был подзапрос, а у тебя проще, потому: РеализацияТоваровУслуг.Ссылка ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.Ссылка КАК Ссылка ИЗ ГДЕ Плохие.Ссылка ЕСТЬ NULL
#23
by ЭЦ
Это мы щас испробуем. Но почему такая странная любофь к левому соединению? заместо НЕ ... В ... ?
#24
by Ненавижу 1С
просто НЕ В (именно так, а не как в ) даст отбор тех доков, у которых есть "хорошие" строки, но там ведь и "плохие" могут быть!
#25
by ЭЦ
да не я попробовал - отбирает как надо. Думал мож соединение работает быстрее или мож вложенность запросов повышать нехорошо.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Агрегатные функции в итогах запроса
- Два монитора, два грызуна, две клавы и.... один системник
- Как запросом определить число строк в табличной части?
- Как программно определить место вызова функции?
- Как получить значение из функции, для использования в другой функции?
- Два сканера щтрих-кода на компе. Как определить, какой сработал?
- Как сравнить в запросе пересекаются ли два разных периода?
- v8: СКД. Группировка по выражениям, содержащим агрегатные функции, не допустима
- Как определить программно определить в какой точке завершился бизнес процесс?
- Как запросом найти два документа с одинаковыми ТЧ?
- два одинаковых отчета в одной СКД два набора данных. как взаимоисключить данные
- Как определить два последних рабочих дня месяца?
В этой группе 1С
- КД ПередатьОдинПараметрВПриемник
- Проблема при выгрузке заявок на кассовый расход из 1С в СЭД, с НДС
- Перенос базы 1С7 на другой компьютер...
- УПП рел.27 как выбрать группу сотрудников
- Доплата за ночные часы военным
- Для работы с центральным узлом информационной базы необходимо установить УРИБ
- Как обратиться к субконто?
- v7: проведение документа "Оказание услуг", заполнение субконто3
- Пауза в коде 1С 8.1
- Как при переходе в спящий режим сохранить подключение к инету?
- Схема компоновки данных. Как установить значение параметра по умолчанию?
- Бухгалтерия 7.7 - Не формируются формы с двухмерным штрихкодом PDF417
- Есть аналог в простом языке?
- ИТС где лежит конфигурация Подрядчик строительства ?
- Как получить в запросе УникальныйИдентификатор?
- Ошибка при загрузке в переферийную базу
- Валютные операции в бухгалтерии 8.1
- Не найдено соответствие для счета БУ 41.01, разницы между БУ и НУ не рассчитаны
- Не открывается форма подбора
- Ошибка при выводе отчета Налог на прибыл на просмотр