Имя: Пароль:
1C
1С v8
Расчет суммы итогов снизу вверх по определенным условиям в СКД
0 БУКА
 
29.03.17
13:26
Добрый день всем, есть следующая задача, рассчитать факт выполнения договора, в данном примере в договоре указано что необходимо продать 80 шт
товара 1, 2 и 3, обязательно нужно продать товара1 10 шт, товара 2 - 20 шт
как рассчитать итоги в СКД по нижней группировке?

1. По группировке ДОГОВОР план не выполнился, т.к. условие по продаже товара2 не выполнено, значит сумма бонусов 0
2. По группировке КОНТРАГЕНТ сложить все суммы бонусов ВЫПОЛНЕННЫХ договоров


Контрагент
договор
Товар           план     факт  бонус
----------------------------------------------
Рога и копыта                0
----------------------------------------------
   договор         80        0
----------------------------------------------
    Товар1        10    15    150
----------------------------------------------
    Товар2        20    19    0
----------------------------------------------
    Товар3            10    100
----------------------------------------------
1 DrShad
 
29.03.17
13:30
ФИФО в запросе
2 БУКА
 
29.03.17
13:35
Уже 4 дня кручу агрегатную функцию ВычислитьВыражение(), но не выходит.
Подскажите в какую сторону двигаться, заранее сапсибо.
3 ДемонМаксвелла
 
29.03.17
13:41
(0) проще всего обработать ТЗ в цикле, вычислить нужные значения, а потом ТЗ скормить СКД-шке
4 БУКА
 
29.03.17
13:56
(3) то же склонялся к этой мысли, но все таки хотелось бы решить все это в СКД, тем более, что такой мощный инструмент должен это позволять
5 БУКА
 
29.03.17
14:02
вот таблицу немного подправил, а то пробелы съедает

Контрагент
договор
Товар----------------- план --факт --- бонус
Рога и копыта --------------------------0
----------------------------------------------
договор111 -----------80-----54------- 0
----------------------------------------------
Товар 1 ---------------10----- 15 ------150
----------------------------------------------
Товар 2 ---------------20----- 19------- 0
----------------------------------------------
Товар 3 ---------------0-------10--- --100
----------------------------------------------
6 aleks_default
 
29.03.17
14:07
Сумма(ВычислитьВыражениеСГруппировкойМассив())
7 aleks_default
 
29.03.17
14:12
Сумма(ВычислитьВыражениеСГруппировкойМассив("Бонус","Договор","Факт>План"))
примерно как-то так
8 БУКА
 
29.03.17
14:20
Можно добавить булевое поле План выполнен, на уровне группировке товаров я ее вычисляю. Есть агрегатная функция КАЖДЫЙ() которая возвращает ЛОЖЬ если ЛОЖЬ встречается хоть один разв в наборе, что в принципе подходит

Есть у кого мысли как можно использовать ее для определения выполнения договора рассчитывая группировку по товарам?


Контрагент
договор
Товар----------------- план --факт --- бонус -------ПланВыполнен
Рога и копыта --------------------------0--------------ЛОЖЬ (получить)
------------------------------------------------------------------------------
договор111 -----------80-----54------- 0--------------ЛОЖЬ (получить)
------------------------------------------------------------------------------
Товар 1 ---------------10----- 15 ------150-------------ИСТИНА----------
------------------------------------------------------------------------------
Товар 2 ---------------20----- 19------- 0---------------ЛОЖЬ------------
-----------------------------------------------------------------------------
Товар 3 ---------------0-------10--- --100---------------ИСТИНА
----------------------------------------------------------------------------
9 Вафель
 
29.03.17
14:43
те просто нужно чтоб на уровне договор было не равно сумме по товарам?
10 aleks_default
 
29.03.17
15:05
ВЫБОР КОГДА Минимум(ПланВыполнен) = истина тогда Сумма(Бонус) иначе 0 конец
11 aleks_default
 
29.03.17
15:09
че тупим? делов-то
12 БУКА
 
29.03.17
15:56
10 наверное ВычислитьВыражение("Минимум(ПланВыполнен)", "Номенклатура","Группировка")
13 aleks_default
 
29.03.17
16:23
(12) если для поля "ПланВыполнен", то просто Минимум(ПланВыполнен). Зачем ВычислитьВыражение если Номенклатура у тебя это же детальные  записи?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой