Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Подсчет итогов в СКД от нижнего к верхнему уровню , Рассчет суммы итогов снизу вверх, по пределенным условиям в СКД          
oilriver Подменю пользователя
сообщение 29.03.17, 12:23
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день всем, есть следующая задача, рассчитать факт выполнения договора, в данном примере в договоре указано что необходимо продать 80 шт
товара 1, 2 и 3, обязательно нужно продать товара1 10 шт, товара 2 - 20 шт
как рассчитать итоги в СКД по нижней группировке?

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

Контрагент
договор
Товар план факт бонус
----------------------------------------------
Рога и копыта 0
----------------------------------------------
договор111 80 0
----------------------------------------------
Товар 1 10 15 150
----------------------------------------------
Товар 2 20 19 0
----------------------------------------------
Товар 3 10 100
----------------------------------------------


Уже 4 дня кручу агрегатную функцию ВычислитьВыражение(), но не выходит.
Подскажите в какую сторону двигаться, заранее сапсибо.


sava1 Подменю пользователя
сообщение 29.03.17, 12:51
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(oilriver @ 29.03.17, 12:23) *
как рассчитать итоги в СКД по нижней группировке?


А где здесь нижняя группировка.
Вооще-то все итоги рассчитываются от нижней к верхней.
Бонус тут ИМХО вычисляемое поле. Зачем здесь ВычислитьВыражение?

oilriver Подменю пользователя
сообщение 29.03.17, 13:01
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(sava1 @ 29.03.17, 13:51) *
А где здесь нижняя группировка.
Вооще-то все итоги рассчитываются от нижней к верхней.
Бонус тут ИМХО вычисляемое поле. Зачем здесь ВычислитьВыражение?


Если в группировке по товарам, какое то условие не выполнилось, то договор считается не выполнен и естественно сумма бонуса 0, хотя суммы бонуса подсчитаны на уровне группировке товары

oilriver @ Сегодня, 13:58 * ,

вот таблицу немного подправил, а то пробелы съедает

Контрагент
договор
Товар----------------- план --факт --- бонус
Рога и копыта --------------------------0
----------------------------------------------
договор111 -----------80-----54------- 0
----------------------------------------------
Товар 1 ---------------10----- 15 ------150
----------------------------------------------
Товар 2 ---------------20----- 19------- 0
----------------------------------------------
Товар 3 ---------------0-------10--- --100
----------------------------------------------


sava1 Подменю пользователя
сообщение 29.03.17, 13:02
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

А как Вы собираетесь узнать, выполнилось условие или нет?

покажите запрос

oilriver Подменю пользователя
сообщение 29.03.17, 13:05
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(sava1 @ 29.03.17, 14:02) *
А как Вы собираетесь узнать, выполнилось условие или нет?


так я и тут хотел спросить, как можно в СКД рассчитать итог в верхней группировке исходя из нижней не просто сложением а с условием

sava1 Подменю пользователя
сообщение 29.03.17, 13:08
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

в запросе , где вычисляете бонус, добавьте поле - 1-выполнилось, 0 - не выполнилось
На верхних уровнях берите минимум() - соответственно, если хотя-бы одно условие не выполнено - у Вас будет 0, иначе 1.

oilriver Подменю пользователя
сообщение 29.03.17, 13:17
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Можно добавить булевое поле План выполнен, на уровне группировке товаров я ее вычисляю. Есть агрегатная функция КАЖДЫЙ() которая возвращает ЛОЖЬ если ЛОЖЬ встречается хоть один разв в наборе, что в принципе подходит

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


Контрагент
договор
Товар----------------- план --факт --- бонус -------ПланВыполнен
Рога и копыта --------------------------0--------------ЛОЖЬ (получить)
------------------------------------------------------------------------------
договор111 -----------80-----54------- 0--------------ЛОЖЬ (получить)
------------------------------------------------------------------------------
Товар 1 ---------------10----- 15 ------150-------------ИСТИНА----------
------------------------------------------------------------------------------
Товар 2 ---------------20----- 19------- 0---------------ЛОЖЬ------------
-----------------------------------------------------------------------------
Товар 3 ---------------0-------10--- --100---------------ИСТИНА
----------------------------------------------------------------------------

Цитата(oilriver @ 29.03.17, 14:14) *
в запросе , где вычисляете бонус, добавьте поле - 1-выполнилось, 0 - не выполнилось
На верхних уровнях берите минимум() - соответственно, если хотя-бы одно условие не выполнено - у Вас будет 0, иначе 1.

нужно попробовать

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 1:31
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!