Имя: Пароль:
1C
1С v8
Получение первых трех элементов массива в скд
0 galimovmaks
 
18.06.15
07:41
Народ, подскажите! В отчет надо вывести три максимальные продажи по каждому товару в одну колонку.
Использую вот такое выражение

ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СоединитьСтроки(Упорядочить(ТаблицаЗначений(КоличествоОборот), "1 Убыв"), ";"), ";")

Возвращается массив из N-го количества элементов. надо получить первые три.
Кто нибудь может подсказать?
1 Heckfy
 
18.06.15
07:48
А если запросом выбрать первые 3, предварительно сортиртув по возрастанию :?
2 ЧеловекДуши
 
18.06.15
07:58
(0) Создай Доп. набор данных,
установи связи с основным набором.
В Доп. наборе установи текст в запросе "Первые 3" или 4 или 5 или 10, а дальше уже "РазложитьСтрокуВМассивПодстрок", тупо получишь свои первые три.
3 galimovmaks
 
18.06.15
07:59
(1) тогда мы получим всего три номенклатуры.. А мне вся номенклатура нужна
4 galimovmaks
 
18.06.15
08:07
(2) все равно, соединение левое, и с первого набора все данные берутся. а если соединять ко второму набору то и получается всего три записи
5 ЧеловекДуши
 
18.06.15
08:07
(3) Чукча не читатель? Смотри в (2), долго думать :)
6 ЧеловекДуши
 
18.06.15
08:10
(4) "Пацак" ты кому заливаешь про Тривиальное использование доп наборов данных?
Самый милый момент в построении того, как в (0).

Первый набор и должен содержать только те данные, что тебе нужны, БЕЗ товара :)
А вот во втором наборе и получаешь свои 3 "монеты".

А так, можно еще воспользоваться внешнем набором данных, и состряпать ТЗ в таком виде, в каком тебе надо. :)
7 galimovmaks
 
18.06.15
08:59
(6) да, я про параметр связи забыл. Спасибо!