Оцените, пожалуйста, статью, мы стараемся:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Как в запросе 1С присоединить дополнительный реквизит по условию, не размножая строки, если условие соединения не идентифицирует строку регистра полностью (1С: 8.1: Программисту)

Вопрос Как в запросе 1С присоединить дополнительный реквизит по условию, не размножая строки…
Ответ
Рассматриваемая задача может быть актуальна, когда требуется соединить данные двух регистров, причем набор условий соединения не полностью идентифицирует строку регистра, т.е. в результате соединения по данному условию в выборке может быть несколько «одинаковых» строк.
Допустим, есть две таблицы:

Таблица 1:

Реквизит 1
а
б
в

Таблица 2:

Реквизит 1 Реквизит 2
а 1
а 2
б 34
в 10
в 15

Требуется присоединить Реквизит 2 к Таблице 1, не размножая при этом строки, взяв случайным образом (т.е. любое) значение Реквизита 2 по условию равенства Реквизитов 1 таблицы 1 и 2.

Если написать запрос с Левым соединением:

, то строки исходной таблицы «размножатся».

ВЫБРАТЬ РАЗЛИЧНЫЕ тут тоже не поможет, т.к. значения Реквизит 2 различные.

Свернуть результирующую таблицу по Реквизиту 1 тоже не получится, т.к. ни сумма, ни среднее арифметическое нам не подходит.

Чтобы решить эту задачу, можно использовать получение максимального значения «Реквизита 2». Метод подходит не только для числового значения этого реквизита, а и для любого другого. Но получим мы при этом, конечно не случайное значение из множества, а то, что система вычислит как макимальное. В большинстве случаев такое решение задачи полностью удовлетворит.

Вот запрос, решающий эту задачу:

Однако, можно использовать и другой (не очень красивый) метод.

Запоминаем Таблицу 2 в ее копии, затем Таблицу 2 сворачиваем по Реквизиту 1 и затем перебором строк свернутой таблицы 2 и ее копии выбираем Реквизит2:

Пишите, если найдете другой интересный метод решения. С удовольствием посмотрим.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Next Post

Сколько может быть строк в табличной части документа, таблицы значений, массива (1С: Программисту)

Пн Янв 18 , 2010
Вопрос Сколько может быть строк в табличной части документа, таблицы значений, массива Ответ Это зависит от типа данных. Так, максимально допустимое количество строк табличной части объектов, хранимых в базе данных (например, документов), составляет 99 999.

Вам может понравиться