Имя: Пароль:
1C
1С v8
Убрать запись из запроса по условию
,
0 dredd_semsk
 
02.11.22
19:42
Сразу прошу прощения за скорее всего некорректный заголовок темы.  

Скидка          Статус           СсылкаДок      Проведен
Скидка3%        Действует        Документ1      Да
Скидка5%        НеДействует      Документ1      Да
Скидка4%        Действует        Документ2      Да
null            null             Документ3      Да

Изначально тянем только проведенные документы. Они должны быть только в одном экземпляре, за исключением случаев когда есть несколько ДЕЙСТВУЮЩИХ скидок на один документ. Тогда их может быть несколько. Соответственно, в примере не должна быть строка "Скидка5%        НеДействует      Документ1      Да", так как уже есть запись со статусом Действует по этому документу.  А вот если бы ее не было, тогда должен быть только этот документ1, в одной строке. Так как документ проведен и он должен быть по-любому.
1 dredd_semsk
 
02.11.22
19:44
Это левое соединение Документов с регистром Скидки.СрезПоследних
2 Franchiser
 
гуру
02.11.22
19:51
Сделай чтобы в срезе были уникальные записи.
3 Franchiser
 
гуру
02.11.22
19:52
Помести в ВТ и сгруппируй,рассчитав минимум(скидка)
4 Franchiser
 
гуру
02.11.22
19:58
Либо определить отдельно приоритетные скидки и потом их подтянуть (связь саму с собой)
5 dredd_semsk
 
02.11.22
19:59
(4) Спасибо, сейчас попробую
6 Franchiser
 
гуру
02.11.22
19:59
Объединение двух запросов по действует + недействует с расчетом приоритета .
7 Franchiser
 
гуру
02.11.22
20:03
Сейчас это проще сделать, так как появилась возможность нумерации строк ВТ
8 dredd_semsk
 
02.11.22
20:03
(7) а вот про это мне еще нужно почитать)
9 Franchiser
 
гуру
02.11.22
20:20
АВТОНОМЕРЗАПИСИ()
10 alarm2020
 
02.11.22
21:01
(0)
1. Соединить по статусу "не действует" и свернуть

док1 не действует 1%

2. Соединить по статусу не действует, но не сворачивать

док1 действует 3%
док1 действует 5%

3. Объединить 1 и 2

док1 действует 3%
док1 действует 5%
док1 не действует 1%

4. Свернуть по док, получить мин(статус)

док1 действует

5. Соединить 4 с 3 по док+статус

док1 действует 3%
док1 действует 5%
11 alarm2020
 
02.11.22
21:02
(10)
2. Соединить по статусу "действует"
12 Franchiser
 
гуру
02.11.22
21:16
(10) ему нужен как я понял одна ставка % на выходе
13 Franchiser
 
гуру
02.11.22
21:18
Можно два поля сделать и дальше посчитать как  естьnull(ставкадействует, ставканедействует)
14 alarm2020
 
02.11.22
21:38
(12) Нет. Нужны все действующие ставки или одна недействующая. Хотя, если размер недействующей ставки не важен, тогда вопрос решается элементарным левым соединением.
15 Franchiser
 
гуру
02.11.22
21:53
Тогда раздели на две части: получи одну недействуюущю в одной ВТ и все действующие в другой Вт, и соедини с ними.