Имя: Пароль:
1C
1С v8
Запросом выбрать макс заполненную реквизитами строку тч справочника
,
0 skupidom
 
30.07.18
21:35
Есть самописный справочник Контрагенты.У него табличная часть - подчиненный справочник клиенты. У справочника клиенты есть реквизит - вес с типом число.Как запросом получить 1 элемент с максимальным весом ?
1 ColonelAp4u
 
30.07.18
22:32
выбрать первый
группировка максимум
2 ColonelAp4u
 
30.07.18
22:32
даже максимум достаточно
3 skupidom
 
30.07.18
22:52
а если нужно выбрать много элементов и у каждого подчиненный справочник клиентов?
4 Cyberhawk
 
31.07.18
06:36
Сгруппировать по числу, клиенту и владельцу
5 Cyberhawk
 
31.07.18
06:37
*число в максимум
6 skupidom
 
31.07.18
10:06
Вместо 1 записи выбирает 3 почему-то, хотя вес у этих записей 5,2,2
Запрос:
ВЫБРАТЬ
    КонтрагентыТЧСостав.Контрагент КАК ПервичныйКонтрагент,
    МАКСИМУМ(КонтрагентыТЧСостав.Контрагент.ВесЗаполненности) КАК Вес
ИЗ
    Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав
ГДЕ
    КонтрагентыТЧСостав.Ссылка = &Выб

СГРУППИРОВАТЬ ПО
    КонтрагентыТЧСостав.Контрагент
7 ColonelAp4u
 
31.07.18
10:35
(6) можно без группировки, используй сортировку по убыв вес, и выбери первый
8 Serg_1960
 
модератор
31.07.18
10:38
Автору в первом посте советовали ВЫБРАТЬ ПЕРВЫЕ.

"а если нужно выбрать много элементов и у каждого..." - ну тогда ВЫБРАТЬ РАЗЛИЧНЫЕ :)
9 skupidom
 
31.07.18
12:23
а как запрос под 1 контрагента, переписать под множество,чтобы не использовать &, но желательно в 1 запросе
мой запрос по 1 контрагенту:
"ВЫБРАТЬ
    |    МАКСИМУМ(КонтрагентыТЧСостав.Контрагент.ВесЗаполненности) КАК Вес
    |ПОМЕСТИТЬ ТМакс
    |ИЗ
    |    Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав
    |ГДЕ
    |    КонтрагентыТЧСостав.Ссылка = &Выб
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    КонтрагентыТЧСостав.Ссылка КАК Ссылка,
    |    ТМакс.Вес КАК Вес,
    |    КонтрагентыТЧСостав.Контрагент КАК Контрагент
    |ИЗ
    |    Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТМакс КАК ТМакс
    |        ПО КонтрагентыТЧСостав.Контрагент.ВесЗаполненности = ТМакс.Вес
    |ГДЕ
    |    КонтрагентыТЧСостав.Ссылка = &Выб";
10 novichok79
 
31.07.18
12:26
(0) какая-то дичь имхо
11 novichok79
 
31.07.18
12:31
ВЫБРАТЬ
    КонтрагентыТЧСостав.Контрагент КАК Контрагент,
    МАКСИМУМ(КонтрагентыТЧСостав.Контрагент.ВесЗаполненности) КАК Вес
ИЗ
    Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав

СГРУППИРОВАТЬ ПО
    КонтрагентыТЧСостав.Контрагент

тут ты выбираешь самого крутого контрагента,
а потом берешь и выбираешь ссылки, где этот контрагент используется. как-то так наверное. непонятна структура метаданных, поэтому помочь невозможно.
12 skupidom
 
31.07.18
12:41
есть справочник контрагенты1, у него табличная часть Состав.В этой тч содержатся контрагенты № 2 относящиеся к 1 контрагенту. У каждого контрагента №2 есть реквизит вес. Нужно в отчете вывести контрагента №1 и 1 контрагента №2 из тч с максимальным значением веса. Все это сделать в 1 запросе
13 Вафель
 
31.07.18
12:44
нужно начинать с такого запроса

Запрос:
ВЫБРАТЬ
    КонтрагентыТЧСостав.ССЫЛКА КАК ПервичныйКонтрагент,
    МАКСИМУМ(КонтрагентыТЧСостав.Контрагент.ВесЗаполненности) КАК Вес
ИЗ
    Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав
ГДЕ
    КонтрагентыТЧСостав.Ссылка = &Выб

СГРУППИРОВАТЬ ПО
    КонтрагентыТЧСостав.Контрагент
14 novichok79
 
31.07.18
12:47
(12) задание на собеседование что-ли?
15 skupidom
 
31.07.18
12:47
а если без &Выб ?
16 Вафель
 
31.07.18
12:48
Вернее так
ВЫБРАТЬ
    КонтрагентыТЧСостав.ССЫЛКА КАК ПервичныйКонтрагент,
    МАКСИМУМ(КонтрагентыТЧСостав.Контрагент.ВесЗаполненности) КАК Вес
ИЗ
    Справочник.КонтрагентыТЧ.Состав КАК КонтрагентыТЧСостав
СГРУППИРОВАТЬ ПО
    КонтрагентыТЧСостав.ССЫЛКА
17 novichok79
 
31.07.18
12:56
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТабличнаяЧасть.Ссылка КАК Ссылка,
    |    МАКСИМУМ(РеквизитыКонтрагентов.Вес) КАК Вес
    |ПОМЕСТИТЬ МаксимальныйВес
    |ИЗ
    |    Справочник.Контрагенты.Состав КАК ТабличнаяЧасть
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК РеквизитыКонтрагентов
    |        ПО ТабличнаяЧасть.Контрагент = РеквизитыКонтрагентов.Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |    ТабличнаяЧасть.Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТабличнаяЧасть.Ссылка КАК Ссылка,
    |    МАКСИМУМ(ТабличнаяЧасть.Контрагент) КАК Контрагент
    |ИЗ
    |    Справочник.Контрагенты.Состав КАК ТабличнаяЧасть
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК РеквизитыКонтрагентов
    |        ПО ТабличнаяЧасть.Контрагент = РеквизитыКонтрагентов.Ссылка
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ МаксимальныйВес КАК МаксимальныйВес
    |        ПО ТабличнаяЧасть.Ссылка = МаксимальныйВес.Ссылка
    |            И (РеквизитыКонтрагентов.Вес = МаксимальныйВес.Вес)
    |
    |СГРУППИРОВАТЬ ПО
    |    ТабличнаяЧасть.Ссылка";

написал за 3 минуты, задача лоховская
18 skupidom
 
31.07.18
14:19
Доп. условие: в тч контрагента №1 помимо ключевого показателя = вес, есть показатель категория контрагента, как добавить чтобы выбирался не просто контрагент № 2 с макс весом,а с макс весом в разрезе каждой категории.
Категории: 1,2,3
19 novichok79
 
31.07.18
15:09
(18) сколько вы заплатите мне за работу?
20 skupidom
 
31.07.18
15:09
там немного нужно доработать
21 novichok79
 
31.07.18
15:11
(20) так вперед и с песней.