Имя: Пароль:
1C
 
Как в СКД объединить несколько реквизитов при расчете суммы?
0 AlexBor
 
naïve
27.10.14
10:39
Собственно говоря база самописная если это имеет отношение к делу. Есть документ "Обращение" в нем 5 одинаковых реквизитов Нарушение, Нарушение1, Нарушение2 и т.д. все они соотвественно берут значение из справочника нарушения. Требуется расчетать сумму всех нарушений из документов "Обращения" за период. К слову по одному реквизиту не вызывает затруднение а как связать все 5 пока не представляю. Помогите.
1 Тындр
 
27.10.14
11:27
Выбрать Док.СуммаНарушение+Док.СуммаНарушение1+ Док.СуммаНарушение2 КАК Сумма
как то так
2 AlexBor
 
naïve
27.10.14
11:47
(1) Попробую
3 AlexBor
 
naïve
27.10.14
12:19
Неверные параметры "+"
4 DrZombi
 
гуру
27.10.14
12:29
(3) (0)Пишешь второй запрос данных, где все колонки типа "СуммаНарушение1", "СуммаНарушение2" и т.д. пихешь в одну колонку "СуммаНарушение", соответственно организуешь связь с основной таблицей :)

Далее создаешь вычисляемое поле вида "ВычислитьВыражениеСГруппировкойМассив("КодЯчейки","ЭН2")"

ВычислитьВыражениеСГруппировкойМассив (EvalExpressionWithGroupArray)
Синтаксис:

ВычислитьВыражениеСГруппировкойМассив (Выражение, ВыраженияПолейГруппировки, ОтборЗаписей, ОтборГруппировок)

Параметры:

Выражение - выражение, которое нужно вычислить. Тип Строка. Например, "Сумма(СуммаОборот)";
ВыраженияПолейГруппировки - выражения полей группировки, перечисленные через запятую. Например, "Контрагент, Партия";
ОтборЗаписей - выражение, применяемое к детальным записям. Например, "ПометкаУдаления = Ложь";
ОтборГруппировок - отбор, применяемый к групповым записям. Например: "Сумма(СуммаОборот) > &Параметр1".
Функция возвращает массив, каждый элемент которого содержит результат вычисления выражения для группировки по указанному полю.

Пример:

Максимум(ВычислитьВыражениеСГруппировкойМассив ("Сумма(СуммаОборот)", "Контрагент"));

Компоновщик макета при генерации макета преобразовывает параметры функции в термины полей макета компоновки данных. Например, поле Контрагент будет конвертировано в НаборДанных.Контрагент.

Компоновщик макета при генерации выражений для вывода пользовательского поля, в выражении которого присутствует только функция ВычислитьМассивСГруппировкой генерирует выводимое выражение таким образом, чтобы данные выводить представления и данные были упорядочены.

Например, для пользовательского поля с выражением:

ВычислитьВыражениеСГруппировкойМассив("Сумма(СуммаОборот)", "Контрагент")

компоновщик макета сгенерирует для вывода следующее выражение:

СоединитьСтроки(Массив(Упорядочить(ВычислитьВыражениеСГруппировкойТаблицаЗначений ("Представление(Сумма(НаборДанных.СуммаОборот)), Сумма(НаборДанных.СуммаОборот)", "НаборДанных.Контрагент"), "2")))
5 DrZombi
 
гуру
27.10.14
12:29
+(4) Компоновщик сам запишет все в одну строчку :)
6 DrZombi
 
гуру
27.10.14
12:31
+(4)... По вырожению : "ВычислитьВыражениеСГруппировкойМассив("КодЯчейки","ЭН2")"

Где
   КодЯчейки - это твоя колонка "СуммаНарушение"
   ЭН2 - это твой ресурс группировки, его тебе надо будет придумать :)
7 Тындр
 
27.10.14
12:37
трудно сказать что-либо заочно. (4)- (6) СКД должна упрощать жизнь , а не усложнять )) это треш и содомия
8 DrZombi
 
гуру
27.10.14
12:46
(7) Эт да, у 1С еще много места для доработок :)
9 Kamas
 
27.10.14
12:48
(8) Как выглядит сейчас отчет как должен выглядеть потом