|
Сортировка и группировка данных из разных таблиц | ☑ | ||
---|---|---|---|---|
0
LenOk_86
29.02.12
✎
13:00
|
Подскажите, пожалуйста. Есть документ, в нём 2 табличные части "товары" и "услуги". В макет сейчас выводиться всё в одну кучу, с последовательностью сначала товары, потом услуги. Как сделать так что б в макет выводилась группировка по контрагентам (данная колонка есть в обеих таблицах) и итог по ним?
P.S. Я новичок. |
|||
1
mikecool
29.02.12
✎
13:02
|
добавить итоги по контрагентам, вывести
|
|||
2
LenOk_86
29.02.12
✎
13:03
|
А если в таблицах внесены данные в хаотичном порядке? сначало нудно сгруппировать, а потом вывести итог
|
|||
3
mikecool
29.02.12
✎
13:04
|
(2) итогу пофик - сгруппировано или нет
|
|||
4
Wobland
29.02.12
✎
13:04
|
объединить два запроса, прикрутить итоги и нужное упорядочивание:
|
|||
5
Ant1773
29.02.12
✎
13:05
|
(0) СКД?
|
|||
6
palpetrovich
29.02.12
✎
13:06
|
а что за это документ, в котором колонка контрагент есть в обеих таблицах? ...или конфа - самописка?
|
|||
7
LenOk_86
29.02.12
✎
13:06
|
в документе запросов нет, пользователь вбивает вручную данные.
|
|||
8
Ant1773
29.02.12
✎
13:06
|
(0) (5) Данные ты для макета как получаешь? Как передаешь?
|
|||
9
Ненавижу 1С
гуру
29.02.12
✎
13:06
|
(7) ндя... а выводятся данные как?
|
|||
10
LenOk_86
29.02.12
✎
13:07
|
конфа - самописка.
|
|||
11
Ant1773
29.02.12
✎
13:07
|
(10) Отчет на СКД?
|
|||
12
mikecool
29.02.12
✎
13:07
|
(10) главное - фотка зачетная
|
|||
13
LenOk_86
29.02.12
✎
13:08
|
выводятся в той последовательности, в которой вносит пользователь, только в порядке товар-услуги
|
|||
14
LenOk_86
29.02.12
✎
13:08
|
отчет не на СКД
|
|||
15
Ненавижу 1С
гуру
29.02.12
✎
13:09
|
(14) а как?
|
|||
16
Ant1773
29.02.12
✎
13:09
|
(14) ну раз не на СКД, тогда добавляй в код:
ИтогПоКонтрагентам = 0 Цикл вывод данных ИтогПоКонтрагентам = ИтогПоКонтрагентам + Сумма; КонецЦикла Вывод ИтогПоКонтрагентам |
|||
17
mikecool
29.02.12
✎
13:10
|
(16) про ИТОГИ не слышал?
|
|||
18
Ненавижу 1С
гуру
29.02.12
✎
13:11
|
(17) это ты перестань обижать маленьких!
|
|||
19
Ant1773
29.02.12
✎
13:11
|
(17) Слышал. Но откуда данные берутся - еще не понятно. И одна это ТЗ или 2 - непонятно пока.
|
|||
20
LenOk_86
29.02.12
✎
13:11
|
это не отчет, это печатная форма документа. а больше сложность не так с итогами, как с группировкой, что б выводилось не так как пользователь внёс, а по контрагентам
|
|||
21
mikecool
29.02.12
✎
13:11
|
выбрать ...
Контрагент Из ... объединить ... ИТОГИ По Контрагент Выборка = Запрос.Выполнить.Выбрать(По группировкам) имеем итоги по контрагентам ВыборкаДетали = Выборка.Выбрать() имеем детальные записи |
|||
22
Ненавижу 1С
гуру
29.02.12
✎
13:12
|
(20) пистец, лютый
мы чего-то должны угадать в твоей самопиьски? |
|||
23
Ant1773
29.02.12
✎
13:12
|
(20) Дай код :)
|
|||
24
Ненавижу 1С
гуру
29.02.12
✎
13:13
|
(19) две, и не ТЗ, а ТЧ, но это неважно
|
|||
25
LenOk_86
29.02.12
✎
13:14
|
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьИтог = Макет.ПолучитьОбласть("Итог"); //Ном = 0; //ТЗ = Новый ТаблицаЗначений; //ТЗ.Колонки.Добавить("Магазин"); Для Каждого Стр из Товары Цикл ОбластьСтрока.Параметры.Заполнить(Стр); Если стр.Магазин.НомерОбъекта <> 0 Тогда ОбластьСтрока.Параметры.Объект = "Продукти-" +Стр.Магазин.НомерОбъекта; Иначе ОбластьСтрока.Параметры.Объект = Стр.Магазин.Наименование; КонецЕсли; ОбластьСтрока.Параметры.ТМЦ = Стр.Номенклатура; ОбластьСтрока.Параметры.ОС = Стр.НаимОС; ОбластьСтрока.Параметры.ИнвНомер = Стр.ИнвентарныйНомер; ОбластьСтрока.Параметры.Количество = Стр.Количество; ОбластьСтрока.Параметры.Цена = Стр.Цена; ОбластьСтрока.Параметры.Сумма = Стр.Сумма; ОбластьСтрока.Параметры.НДС = Стр.СуммаНДС; ОбластьСтрока.Параметры.СуммаСНДС = Стр.Сумма + Стр.СуммаНДС; ТабДок.Вывести(ОбластьСтрока); КонецЦикла; Для Каждого Стр из Услуги Цикл ОбластьСтрока.Параметры.Заполнить(Стр); Если стр.Магазин.НомерОбъекта <> 0 Тогда ОбластьСтрока.Параметры.Объект = "Продукти-" +Стр.Магазин.НомерОбъекта; Иначе ОбластьСтрока.Параметры.Объект = Стр.Магазин.Наименование; КонецЕсли; ОбластьСтрока.Параметры.ТМЦ = Стр.Номенклатура; ОбластьСтрока.Параметры.ОС = Стр.НаимОС; ОбластьСтрока.Параметры.ИнвНомер = Стр.ИнвентарныйНомер; ОбластьСтрока.Параметры.Количество = Стр.Количество; ОбластьСтрока.Параметры.Цена = Стр.Цена; ОбластьСтрока.Параметры.Сумма = Стр.Сумма; ОбластьСтрока.Параметры.НДС = Стр.СуммаНДС; ОбластьСтрока.Параметры.СуммаСНДС = Стр.Сумма + Стр.СуммаНДС; ТабДок.Вывести(ОбластьСтрока); КонецЦикла; //ОбластьСтрока.Параметры.Объект.Порядок.Установить("Номенклатура, Возр"); //ТабДок.Вывести(ОбластьИтог); |
|||
26
LenOk_86
29.02.12
✎
13:15
|
ну чайник я пока
|
|||
27
Ненавижу 1С
гуру
29.02.12
✎
13:17
|
(25) во первых тут нет никаких контрагентов, во вторых получай данные не из объекта, а запросом, сразу сгруппированные (или ИТОГИ)
|
|||
28
palpetrovich
29.02.12
✎
13:17
|
(25) отрой для себя конструктор запроса с обработкой результата
|
|||
29
Ant1773
29.02.12
✎
13:18
|
(17)(25) Я же говорил :)
Раз две отдельных ТЧ - то единственный вариант - левая переменная. Либо выгружаем их в ТЗ и сворачиваем, либо запросом, но запрос только когда документ записан. (Вроде не сильно обманул?) |
|||
30
Ненавижу 1С
гуру
29.02.12
✎
13:20
|
(29) умею запросом, когда документ не записан ))
|
|||
31
Ant1773
29.02.12
✎
13:21
|
(30) Как?
|
|||
32
Ant1773
29.02.12
✎
13:22
|
(30) выгрузив ТЧ в ТЗ и ее как временную таблицу?
|
|||
33
LenOk_86
29.02.12
✎
13:23
|
магазины - это справочник контрагентов.
конструктором запросов пользоваться умею, это сейчас немного не тот вариант |
|||
34
LenOk_86
29.02.12
✎
13:24
|
то как лучше, создать переменную, или всё-таки через ТЗ
|
|||
35
palpetrovich
29.02.12
✎
13:26
|
(33) почему это не тот? если умешь - именно тот! он тебе и код нарисует и табличку создаст
зы: запрос примерно такой получиться должен: "ВЫБРАТЬ | ТвойДокТовары.Контрагент КАК Контрагент, | СУММА(ТвойДокТовары.Сумма) КАК СуммаТовары, | СУММА(ТвойДокУслуги.Сумма) КАК СуммаУслуги |ИЗ | Документ.ТвойДок.Товары КАК ТвойДокТовары | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТвойДок.Услуги КАК ТвойДокУслуги | ПО ТвойДокТовары.Ссылка = ТвойДокУслуги.Ссылка | И ТвойДокТовары.Контрагент = ТвойДокУслуги.Контрагент |ГДЕ | ТвойДокТовары.Ссылка = &ТекДокумент | |СГРУППИРОВАТЬ ПО | ТвойДокТовары.Контрагент |ИТОГИ | СУММА(СуммаТовары), | СУММА(СуммаУслуги) |ПО | Контрагент"; |
|||
36
Ненавижу 1С
гуру
29.02.12
✎
13:29
|
(32) ага ))
|
|||
37
Ненавижу 1С
гуру
29.02.12
✎
13:29
|
(35) писец, там нужно ОБЪЕДИНИТЬ ВСЕ
|
|||
38
LenOk_86
29.02.12
✎
13:30
|
табличка строгая, измененения в макете не допускаються
|
|||
39
Ant1773
29.02.12
✎
13:31
|
Есть еще вариант - сделать одну ТЧ, в нее добавить реквизит товар/услуга :)
(38) Строгая таблица... и пальцем погрозит если что... |
|||
40
Ненавижу 1С
гуру
29.02.12
✎
13:33
|
(38) ну сам то алгоритм формирования строгой таблички можно изменять?
|
|||
41
palpetrovich
29.02.12
✎
13:37
|
(37) я на истину в последней инстанции не претендую :) ...автор вон вообще запросы не любит
|
|||
42
Ненавижу 1С
гуру
29.02.12
✎
13:38
|
(41) да просто запрос твой неправильный как бы
|
|||
43
LenOk_86
29.02.12
✎
13:40
|
алгоритм да
|
|||
44
palpetrovich
29.02.12
✎
13:42
|
(42) в смысле что не все данные вернет, только те где контрагенты совпадут? так см. (41), я только направление дал :)
|
|||
45
Ant1773
29.02.12
✎
13:43
|
(43) У тебя есть три варианта - добавить временную переменную с минимальной переработкой алгоритма (но в целом это неправильно), выгрузить обе ТЧ в одну ТЗ и свернуть ее (ИМХО лучше всего) или сделать запрос по обеим ТЧ.
ЗЫ Четвертый вариант - СКД. Еще лучше. |
|||
46
LenOk_86
29.02.12
✎
13:52
|
ладно, спасибо всем за идеи. буду пробовать вариант №2. Как-то больше по душе :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |