|
v7: Свертка ТЗ с расчётом максимумов | ☑ | ||
---|---|---|---|---|
0
Franchiser
гуру
13.05.17
✎
22:46
|
Есть ли какая-то универсальный процедура позволяющая это сделать? Можно с использованием 1с++
|
|||
1
ikea
13.05.17
✎
22:57
|
Индексированная таблица в помощь.
Группировка по нужному полю. Потом перебор в цикле и сортировка в таблице потомков по убыванию. |
|||
2
Franchiser
гуру
13.05.17
✎
23:01
|
(1) как-то сложно... Я пока думаю о выполнитьsqlизтз() потом выполнить запрос в скуле с группировкой и вернуть результат обратно в тз
|
|||
3
МихаилМ
13.05.17
✎
23:20
|
выгрузите группировки добавьте поле колво в группе заполните единицей сверните -> узнаете колво элементов в группе
сортируете 1 и 2 тз далее идете по второй тз 1 выбираете из 1 тз последние элементы. |
|||
4
Franchiser
гуру
13.05.17
✎
23:26
|
(3) да, понятно с 2мя ТЗ это штатный способ
|
|||
5
ikea
13.05.17
✎
23:28
|
Если есть возможность все сделать в sql, зачем про ТЗ спрашивать?
|
|||
6
Franchiser
гуру
13.05.17
✎
23:28
|
Можно еще делать тз с колонками, содержащими тз
|
|||
7
Franchiser
гуру
13.05.17
✎
23:30
|
(5) ну, хочу универсальную процедуру получить) куда передаются тз, колонки группировки, суммиррвания, колонки максимумов
|
|||
8
ikea
13.05.17
✎
23:37
|
ИТЗ=СоздатьОбъект("ИндексированнаяТаблица");
ТЗП=СоздатьОбъект("ТаблицаЗначений"); ИТЗ.Загрузить(Ваша_ТЗ); ИТЗ.Группировать("ИнКолонкаПоКоторойГруппируем:КолонкаПоКоторойГруппируем;","",1); ИТЗ.ВыбратьСтроки(); Пока ИТЗ.ПолучитьСтроку()=1 Цикл ИТЗ.тзПотомки.Выгрузить(ТЗП); ТЗП.Сортировать("КолонкаПоКоторойНуженМкасимум-"); ТЗП.ПолучитьСтрокуПоНомеру(1); ///Дальше действия с максимумом КонецЦикла; |
|||
9
МихаилМ
13.05.17
✎
23:46
|
||||
10
Franchiser
гуру
13.05.17
✎
23:56
|
(9) отлично, нужно переделать на синтаксис 7.7)
|
|||
11
Franchiser
гуру
13.05.17
✎
23:58
|
(8) спасибо!
|
|||
12
Franchiser
гуру
14.05.17
✎
00:58
|
(9) к сожалению вариант не подходит: нужно считать максимум по ссылочным и текстовым полям
|
|||
13
Franchiser
гуру
14.05.17
✎
01:43
|
Для случая ссылок можно через значениестрокувнутр() получить для каждой ссылки число, потом его проставить во вспомогательную колонку, затем свернуть и восстановить ссылки через значениеизстрокивнутр()
|
|||
14
vcv
14.05.17
✎
06:29
|
(12) А максимум по ссылочным полям это как? Как получить максимальное из двух контрагентов? :)
Добавляйте в ТЗ колонку для упорядочивания, заполняйте её, потом применяйте методы выше. Сумеете и документы упорядочить не только по позиции, и с строки "Болт 5мм" "Болт 12мм" правильно упорядочить. |
|||
15
GreyK
14.05.17
✎
09:06
|
(0) А можно для вообще максимально необразованных рассказать про суть "Расчёта максимумов"?
|
|||
16
Franchiser
гуру
14.05.17
✎
15:45
|
Есть таблица вида:
Юл id сумма1с суммаДругаяСистема ЮЛ1 1 100 0 ЮЛ2 1 0 50 ЮЛ1 2 50 60 Нужно получить таблицу: Юл1С id сумма1с суммаДругаяСистема ЮлДругаяСистема ЮЛ1 1 100 50 ЮЛ2 ЮЛ1 2 50 60 ЮЛ1 |
|||
17
Franchiser
гуру
14.05.17
✎
15:50
|
(14) максимум будет считаться из пусто и ссылки
|
|||
18
GreyK
14.05.17
✎
16:31
|
(16) Заполняешь первую табличку по данным ИБ, добавляешь в неё данные из внешнего источника, при добавлении подставляешь нужного контрагента из ИБ, сворачиваешь всё это, ну и всё.
|
|||
19
Franchiser
гуру
14.05.17
✎
16:35
|
Табличка уже есть и переделывать ее нет желания, тем более иногда нужна таблица именно в таком виде. Это лишь пример для чего мне нужна универсальная функция (результат выгружается напрямую в эксель), есть другие подобные задачи.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |