Небольшой запрос

1. ksen 01.08.19 09:56 Сейчас в теме
Подскажите как можно без временных таблиц выбрать только значения с минимальным количеством, если их 2 то то которое раньше по дате, возможно ли это?

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

СГРУППИРОВАТЬ ПО
	ХозрасчетныйОстаткиИОбороты.Субконто1,
	ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент
;
Показать
По теме из базы знаний
Найденные решения
13. Vitaly1C8 01.08.19 11:58 Сейчас в теме
(10) Первая таблица
Субконто1, МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток)

Вторая таблица
Субконто1, МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток),
Регистратор,
Регистратор.Дата

ВЫБРАТЬ т1.Субконто1, т1.КоличествоКонечныйОстаток, т2.Регистратор,
МИНИМУМ(т2.Регистратор.Дата)
ЛЕВОЕ СОЕДИНЕНИЕ т2 ПО т1.Субконто1 = т2.Субконто1
   И т1.КоличествоКонечныйОстаток = т2.КоличествоКонечныйОстаток
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ksen 01.08.19 10:06 Сейчас в теме
в результате запроса выше получаю все регистраторы, если убрать регистратор получу то что надо но без ссылки на документ
a 100
a 120
a 60

а нужно
a 60
3. Vitaly1C8 01.08.19 10:12 Сейчас в теме
(2) в перечень выбираемых полей добавляем Дату_, это же поле добавляем в сгруппировать
добавляем
УПОРЯДОЧИТЬ ПО МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток), Дата_
в начало запроса добавляем ВЫБРАТЬ ПЕРВЫЕ 1
4. ksen 01.08.19 10:13 Сейчас в теме
(3)Спасибо, сейчас попробую
6. ksen 01.08.19 10:33 Сейчас в теме
(3) Этим запросом получаю только 1 запись, не подскажите как правильно тут использовать ВЫБРАТЬ ПЕРВЫЕ 1?

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

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

УПОРЯДОЧИТЬ ПО
	МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток),
	РегистраторДата
;
Показать
7. VictorRGB2 14 01.08.19 10:54 Сейчас в теме
(6) так получаете то верную запись или нет?

выбрать первый 1 и возвращаем вам одну запись
если надо больше, указывайте сколько нужно
ВЫБРАТЬ ПЕРВЫЕ 2... 3 и т.д.

но тогда уже и результат надо будет обрабатывать отдельно, например так
лРеультат = Запрос.Выполнить.Выгрузить();
Если лРезультат.Количество()<>0 Тогда
   Возврат лРезультат[0];
КонецЕсли;


или так
лРезультат = Запрос.Выполнить.Выбрать();
Если лРезультат.Следующий() Тогда
   Возврат лРезультат... что-то там из группировок;
КонецЕсли;
8. ksen 01.08.19 10:57 Сейчас в теме
(7)Хочу получить массив из записей,
вход
дата1, товар1, колич=10, регистратор1
Дата2, товар1, колич=20, регистратор2
дата3,товар1, колич=9, регистратор3
дата3+1сек,товар1, колич=9, регистратор4
Дата4,товар2,колчи=100, регистратор5

На выходе хочу
дата3,товар1, колич=9, регистратор3
Дата4,товар2,колчи=100, регистратор5
9. Vitaly1C8 01.08.19 11:04 Сейчас в теме
(8) Мы запутались окончательно !
Правильно ли я понимаю что нужно получить "не одну запись", а записи с Минимум(колво) по товару с СамымРаннимРегистратором ???
Но тогда должно быть из твоего примера:
На выходе хочу
дата3,товар1, колич=9, регистратор1 регистратор3 <<---------------------------
Дата4,товар2,колчи=100, регистратор4 регистратор5 <<---------------------------
ksen; alex-l19041; +2 Ответить
10. ksen 01.08.19 11:06 Сейчас в теме
(9)Поправил сообщение с примером, похоже я не самый лучший рассказчик.
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1,
    МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&д1, &д2, Регистратор, , , , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
    ХозрасчетныйОстаткиИОбороты.Счет = &Счет
    И ХозрасчетныйОстаткиИОбороты.Организация = &Организация
    И ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент <> &Контрагент

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

Вот этот запрос выдает все что я хочу, но я хочу чтобы в нем было еще видно самый ранний документ после которого был достигнут минимум
11. alex-l19041 8 01.08.19 11:11 Сейчас в теме
(10) тут без временных таблиц не обойтись... в первой надо найти минимум по количеству, во второй дату минимума из первой таблицы, в третьей дату перед датой минимума (из второй таблицы )...
12. antz 01.08.19 11:11 Сейчас в теме
(11) можно в подзапросах это все сделать.
13. Vitaly1C8 01.08.19 11:58 Сейчас в теме
(10) Первая таблица
Субконто1, МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток)

Вторая таблица
Субконто1, МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток),
Регистратор,
Регистратор.Дата

ВЫБРАТЬ т1.Субконто1, т1.КоличествоКонечныйОстаток, т2.Регистратор,
МИНИМУМ(т2.Регистратор.Дата)
ЛЕВОЕ СОЕДИНЕНИЕ т2 ПО т1.Субконто1 = т2.Субконто1
   И т1.КоличествоКонечныйОстаток = т2.КоличествоКонечныйОстаток
14. ksen 01.08.19 12:01 Сейчас в теме
(13)Так и написал в итоге, просто коробило что на такую простую штуку надо целых 3 таблицы.
15. VictorRGB2 14 01.08.19 12:06 Сейчас в теме
(10) как-то так, наверное, нет под рукой ни БУ, ни конфигуратора, чтобы проверить... по идее на выходе будет первой строкой самый ранний документ с самым меньшим количество
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1,
    МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент КАК РегистраторКонтрагент,
    ХозрасчетныйОстаткиИОбороты.Регистратор.Дата КАК РегистраторДата
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&д1, &д2, Регистратор, , , , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
    ХозрасчетныйОстаткиИОбороты.Счет = &Счет
    И ХозрасчетныйОстаткиИОбороты.Организация = &Организация
    И ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент <> &Контрагент

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

УПОРЯДОЧИТЬ ПО
    МИНИМУМ(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) УБЫВ,
    ХозрасчетныйОстаткиИОбороты.Субконто1 
    РегистраторДата ВОЗР
Показать
16. ksen 01.08.19 12:49 Сейчас в теме
(15) Задачу уже решил, в данном запросе субконто дублируется.
5. soft_wind 01.08.19 10:21 Сейчас в теме
попробуйте так

ВЫБРАТЬ первые 1
    (ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    ХозрасчетныйОстаткиИОбороты.Регистратор.Дата КАК Дата //если доступен используйте Период
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1,
    ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент КАК РегистраторКонтрагент
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&д1, &д2, Регистратор, , , , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
    ХозрасчетныйОстаткиИОбороты.Счет = &Счет
    И ХозрасчетныйОстаткиИОбороты.Организация = &Организация
    И ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент <> &Контрагент

//просто используем упорядочивание
Упорядочить по
  1,2
Показать
Оставьте свое сообщение

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