как в запросе выбрать документ с самой ранней датой?

1. user790109 10 10.12.19 10:02 Сейчас в теме
Есть огромный запрос.
Это одна из его частей. Требуется к Поступлению товаров и услуг присвоить самое первое требование-накладная. На картинке видно что присваивается Требование от 5 числа.. Хотя есть еще требование от 4 числа.. Весь смысл в том, что номер документа от 5 числа раньше, чем номер документа от 4 числа. Как перебороть данную ситуацию?

ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ХозрасчетныйОбороты.Регистратор.Дата КАК Дата,
	ХозрасчетныйОбороты.Регистратор.Номер КАК Номер,
	ПОДСТРОКА(ХозрасчетныйОбороты.Регистратор.Комментарий, 1, 23) КАК НомерВходящегоДокумента,
	ХозрасчетныйОбороты.Регистратор.Контрагент КАК Контрагент,
	ХозрасчетныйОбороты.Регистратор.Склад КАК Склад,
	ХозрасчетныйОбороты.Субконто1.Артикул КАК Артикул,
	ХозрасчетныйОбороты.Субконто1 КАК Номенклатура,
	ХозрасчетныйОбороты.Субконто1.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
	ХозрасчетныйОбороты.СуммаОборотДт КАК Сумма,
	ХозрасчетныйОбороты.КоличествоОборотДт КАК Количество,
	ХозрасчетныйОбороты.Регистратор КАК Регистратор,
	ХозрасчетныйОбороты.НомерСтроки КАК НомерСтроки
ПОМЕСТИТЬ Т1
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Обороты(&Дата1, &Дата2, Авто, Счет В ИЕРАРХИИ (&Счет), , , , ) КАК ХозрасчетныйОбороты
ГДЕ
	ХозрасчетныйОбороты.Регистратор.Контрагент В(&Контрагент)
	И ХозрасчетныйОбороты.Регистратор.Склад В(&Склад)
	И ХозрасчетныйОбороты.Регистратор.Проведен = ИСТИНА
	И ХозрасчетныйОбороты.Регистратор.ПометкаУдаления = ЛОЖЬ
	И ТИПЗНАЧЕНИЯ(ХозрасчетныйОбороты.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ХозрасчетныйОстаткиИОбороты.Регистратор.Номер КАК Номер,
	ХозрасчетныйОстаткиИОбороты.Регистратор.Склад КАК Склад,
	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
	ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор,
	МИНИМУМ(ХозрасчетныйОстаткиИОбороты.Регистратор.Дата) КАК РегистраторДата
ПОМЕСТИТЬ О1
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Дата1, &Дата3, Регистратор, , Счет В ИЕРАРХИИ (&Счет), , Субконто2 В (&Склад)) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
	ТИПЗНАЧЕНИЯ(ХозрасчетныйОстаткиИОбороты.Регистратор) = ТИП(Документ.ТребованиеНакладная)

СГРУППИРОВАТЬ ПО
	ХозрасчетныйОстаткиИОбороты.Субконто1,
	ХозрасчетныйОстаткиИОбороты.Регистратор,
	ХозрасчетныйОстаткиИОбороты.Регистратор.Номер,
	ХозрасчетныйОстаткиИОбороты.Регистратор.Склад
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Т1.Дата,
	Т1.Номер,
	Т1.НомерВходящегоДокумента,
	Т1.Контрагент,
	Т1.Склад,
	Т1.Номенклатура,
	Т1.Регистратор,
	Т1.НомерСтроки,
	МИНИМУМ(О1.Регистратор) КАК Перемещение,
	МИНИМУМ(О1.РегистраторДата) КАК РегистраторДата
ИЗ
	Т1 КАК Т1
		ЛЕВОЕ СОЕДИНЕНИЕ О1 КАК О1
		ПО Т1.Номенклатура = О1.Номенклатура
			И Т1.Склад = О1.Склад
ГДЕ
	Т1.НомерВходящегоДокумента = &НомерВходящегоДокумента
	И Т1.Номенклатура = &Номенклатура
	И Т1.Регистратор.Дата < О1.Регистратор.Дата
СГРУППИРОВАТЬ ПО
	Т1.Дата,
	Т1.Номер,
	Т1.Номенклатура,
	Т1.Контрагент,
	Т1.ЕдиницаИзмерения,
	Т1.Склад,
	Т1.НомерВходящегоДокумента,
	Т1.Артикул,
	Т1.Регистратор,
	Т1.Сумма,
	Т1.Количество,
	Т1.НомерСтроки
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. rusdenol 10.12.19 10:30 Сейчас в теме
(1) во временной таблице О1 убрать группировку, но сделать ещё одну временную таблицу:
Выбрать
О1.Номенклатура,
О1.Склад,
Минимум(О1.РегистраторДата) Как РегистраторДата
Поместить О1Сгрупп
Из
О1 Как О1
Сгруппировать По
О1.Номенклатура,
О1.Склад

И соединить эти 2 таблицы условием О1.РегистраторДата = О1Сгрупп.РегистраторДата в ещё одной, либо в итоговом запросе
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 10.12.19 10:19 Сейчас в теме
(1)а это требование накладная от 4 числа оно тоже привязано к этому поступлению?
3. PhoenixAOD 62 10.12.19 10:21 Сейчас в теме
(1)
ТИПЗНАЧЕНИЯ(ХозрасчетныйОстаткиИОбороты.Регистратор) = ТИП(Документ.ТребованиеНакладная)
я бы поменял на
ГДЕ
ХозрасчетныйОстаткиИОбороты.Регистратор ссылка Документ.ТребованиеНакладная
5. user790109 10 10.12.19 10:28 Сейчас в теме
Да и от 4 и от 5 числа они привязаны к этому поступлению.. Там списывается таже номенклатура...
6. rusdenol 10.12.19 10:30 Сейчас в теме
(1) во временной таблице О1 убрать группировку, но сделать ещё одну временную таблицу:
Выбрать
О1.Номенклатура,
О1.Склад,
Минимум(О1.РегистраторДата) Как РегистраторДата
Поместить О1Сгрупп
Из
О1 Как О1
Сгруппировать По
О1.Номенклатура,
О1.Склад

И соединить эти 2 таблицы условием О1.РегистраторДата = О1Сгрупп.РегистраторДата в ещё одной, либо в итоговом запросе
7. user790109 10 10.12.19 10:38 Сейчас в теме
ну как вариант.. да.. думал может как то обойтись без этого еще раньше можно
(6)
11. Sashares 35 10.12.19 10:52 Сейчас в теме
(1)
ХозрасчетныйОбороты.Регистратор.Дата КАК Дата,
ХозрасчетныйОбороты.Регистратор.Номер КАК Номер,
ПОДСТРОКА(ХозрасчетныйОбороты.Регистратор.Комментарий, 1, 23) КАК НомерВходящегоДокумента,
ХозрасчетныйОбороты.Регистратор.Контрагент КАК Контрагент,
ХозрасчетныйОбороты.Регистратор.Склад КАК Склад,


Фу так делать.
Если у вас известно из какого документа эти реквизиты надо брать - соединитесь с документом внутренним соединением и возьмите реквизиты из таблицы документа.
4. alex-l19041 8 10.12.19 10:28 Сейчас в теме
это надо убрать
  МИНИМУМ(О1.Регистратор) КАК Перемещение,
...

после того как получили
МИНИМУМ(О1.РегистраторДата) КАК РегистраторДата
можно получить из таблицы О1 значение О1.Регистратор
Sashares; +1 Ответить
8. user790109 10 10.12.19 10:39 Сейчас в теме
(4) а так получится весь список требований
9. alex-l19041 8 10.12.19 10:44 Сейчас в теме
(8) сначала надо получить минимальную дату регистратора, а затем уже соединять по этой дате, чтобы получить сам регистратор
PLAstic; Sashares; +2 Ответить
10. PLAstic 296 10.12.19 10:48 Сейчас в теме
ГДЕ
Т1.НомерВходящегоДокумента = &НомерВходящегоДокумента

У тебя же в запросе чёткое условие на номер документа? С текстом мы тебе не можем помочь, т.к. вне запроса формируется требование к документу с конкретным номером.
Анализируй логику вне запроса.
12. user790109 10 10.12.19 10:53 Сейчас в теме
(10)не, эт я для себя конкретный пример рассматривал
13. PLAstic 296 10.12.19 11:12 Сейчас в теме
(12) Тогда в (9) был дан правильный ответ. Сначала выбираешь минимум от даты документа из выборки нужных документов, затем соединением подцепляешь к найденной дате ссылку на конкретный документ. Может быть косяк, если на одну секунду окажется два документа. Тогда попробуй выбирай из полного списка документов с ВЫБРАТЬ ПЕРВЫЕ 1 и внутренним соединением подцеплять найденную минимальную дату.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот