Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 окт 2021, 08:37

Определить все возможные комбинации

Автор pavel2009, 28 мар 2017, 16:24

0 Пользователей и 1 гость просматривают эту тему.

pavel2009

Доброго времени суток. Столкнулся с задачей, есть Таблица значений из нее нужно получить все возможные комбинации, по возможности запросом, поскольку номеров будет больше 30. Может кто-нибудь сталкивался с подобной задачей.
Исходная таблица
Номер     Время 1 Время 2
1             5     10
2             15    20
3             25    30
Результат
Номер Врем1 Врем2    Номер  Врем1 Врем2   Номер Врем1 Врем2        Номер Врем1 Врем2
1       5           10             2      15     20                3      25      30           3     25     30
2       15          20             3      25     30                1       5      10           2     15     20
3       25          30             1       5     10                2      15      20           1     5      10

Номер Время1 Время2    Номер  Время1 Время2   
1         5           10           2          15        20       
3         25          30           1          5         10     
2         15          20           3          25        30       

MuI_I_Ika

Все возможные комбинации это полное соединение.

В запросе это просто выбор двух таблиц без условия соединения. В данном случае нужно соединять саму таблицу с собой.

pavel2009

ВЫБРАТЬ РАЗЛИЧНЫЕ
   ПереборКомбинации.Свойство
ПОМЕСТИТЬ ВТ1
ИЗ
   Документ.Перебор.Комбинации КАК ПереборКомбинации
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Таблица1.Свойство КАК НомерТаблица1,
   КопияТаблицы1.Свойство КАК НомерКопияТаблицы1
ИЗ
   ВТ1 КАК Таблица1,
   ВТ1 КАК КопияТаблицы1

В результате запроса получились две таблицы со всеми комбинациями.
НомерТаблица1   НомерКопияТаблицы1
1                               1
1                               2
1                               3
2                               1
2                               2
2                               3
3                               1
3                               2
3                               3

Но как эти колонки преобразовать в комбинации, чтобы получился массив из комбинаций
123
231
321
231 и т.д





MuI_I_Ika

Ну в массив можно перегнать циклом

pavel2009

Не поделитесь куском кода, как будет выглядеть подобный цикл.

alex0402

Массив = Новый Массив;
Для каждого Стр Из Таблица Цикл
    Массив.Добавить(Стр.Перв*Таблица.Количество()-0+Стр.Прав);
КонецЦикла;
Спасибо за Сказать спасибо

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск