|
Склеить регистры в СКД | ☑ | ||
---|---|---|---|---|
0
darkvett
22.07.11
✎
10:38
|
Есть два регистра накопления:
Первый: Дата регистратор НачОстаток Приход Расход КонОстаток 01.07 документ1 300 40 --- 340 05.07 документ2 340 --- 10 330 Второй: Дата регистратор НачОстаток Приход Расход КонОстаток 02.07 документ3 150 20 --- 170 07.07 документ4 170 --- 80 90 Подскажите как их склеить в СКД чтобы в отчете показывалось вот так: Дата регистратор НачОстаток Приход Расход КонОстаток 01.07 документ1 450 40 --- 490 02.07 документ3 490 20 --- 510 05.07 документ2 510 --- 10 500 07.07 документ4 500 --- 80 420 П.С. Пожалуйста не спрашивайте зачем и почему, просто помогите если можете... |
|||
1
NDN
22.07.11
✎
10:41
|
УПОРЯДОЧИТЬ ПО Период
|
|||
2
darkvett
22.07.11
✎
10:43
|
да, упорядочить возможно получится. но тогда вылезет:
01.07 документ1 300 40 --- 340 02.07 документ3 150 20 --- 170 05.07 документ2 340 --- 10 330 07.07 документ4 170 --- 80 90 Начальные и конечные остатки ведь не верные получаются!!! |
|||
3
Defender aka LINN
22.07.11
✎
10:47
|
(2) А СКД в курсе, что это остатки?
|
|||
4
darkvett
22.07.11
✎
10:49
|
Вроде вкурсе. В СКД выбираю РегистрНакопления...ОстаткиИОбороты и там выбираю СуммаНачальныйОстаток СуммаПриход СуммаРасход СуммаКонечныйОстаток
|
|||
5
ChAlex
22.07.11
✎
10:59
|
По-моему правильно никак не будет, ибо остатки получаются из разных регистров и почему тогда они должны правильно показывать? Один регистр не видит одних движений, другой других, а теперь нужен телепат, который это свяжет
|
|||
6
Defender aka LINN
22.07.11
✎
11:01
|
(4) Это ты в запросе выбираешь. А СКД ты сказал, что это остатки?
|
|||
7
darkvett
22.07.11
✎
11:05
|
(5) Абсолютно правильно пишешь. Новедь должен быть выход:(((
|
|||
8
darkvett
22.07.11
✎
11:05
|
(6) А как можно в СКД указать что это остатки?
|
|||
9
ChAlex
22.07.11
✎
11:08
|
(8) - в СКД для поля есть роль, в ней можно определить что это начальный или конечный остаток какого-то ресурса. Но это по-моему только для правильной организации вывода итогов, которые уже получены, и что-бы их лишний раз не складывать при группировках. А к исходным данным это не имеет никакого отношения. Если нет исходных данных, то не получишь и итогов
|
|||
10
darkvett
22.07.11
✎
11:08
|
(6) В СКД у меня сделано объединение, в нем два запроса по соответствующим регистрам. Там по умолчанию уже стоит в Ролялях КонОстаток и НачОстаток
|
|||
11
platin
22.07.11
✎
11:09
|
если собрать данные из двух регистров в таблицу значенй, затем ее обработать, а потом в скд набор данных сделать как объект, где полями будут поля этой обработанной таблицы
|
|||
12
Ненавижу 1С
гуру
22.07.11
✎
11:09
|
накопительно в запросе можно
|
|||
13
Defender aka LINN
22.07.11
✎
11:10
|
(9) Исходные данные запрос получает
|
|||
14
ChAlex
22.07.11
✎
11:10
|
(10)Ну и что? Начальный и конечный остаток (сама цифра) должна быть получена с учетом обоих регистров, а не по отдельности
|
|||
15
ChAlex
22.07.11
✎
11:11
|
(12) - а это как накопительно? Любопытно? Идею в студию
|
|||
16
darkvett
22.07.11
✎
11:11
|
(11) (12) Умные вещт пишете. Очень похоже на правду. Но я похоже сам не соображу как это осуществить на практике...
|
|||
17
ChAlex
22.07.11
✎
11:13
|
(16) - а на практике нужно либо иметь один регистр, либо выгружать выборку в таблицу и рассчитывать итоги самому
|
|||
18
ChAlex
22.07.11
✎
11:15
|
Эй, ненавидящий 1С, отзовись. Так как можно накопительно получить в запросе что-либо? Любопытно!
|
|||
19
Ненавижу 1С
гуру
22.07.11
✎
11:15
|
(15) ну остатки получать накопительно можно, примерно так
ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Дата, РеализацияТоваровУслуг.СуммаДокумента, СУММА(РеализацияТоваровУслуг1.СуммаДокумента) КАК Остаток ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг1 ПО РеализацияТоваровУслуг.Дата >= РеализацияТоваровУслуг1.Дата СГРУППИРОВАТЬ ПО РеализацияТоваровУслуг.Ссылка, РеализацияТоваровУслуг.Дата, РеализацияТоваровУслуг.СуммаДокумента УПОРЯДОЧИТЬ ПО РеализацияТоваровУслуг.МоментВремени только тебе надо брать в качестве таблицы подзапрос (или временную), где уже объединены таблицы ну и не забыть про приход/расход разрулить |
|||
20
Ненавижу 1С
гуру
22.07.11
✎
11:16
|
виртуальная таблица ОстаткиИОбороты по регистратору это не уличная магия, а макрос, раскрывающийся в запрос
|
|||
21
ChAlex
22.07.11
✎
11:20
|
(19) ну так это получится по оборотам, а не по остаткам
|
|||
22
Ненавижу 1С
гуру
22.07.11
✎
11:21
|
(21) аналогично и по остаткам, расписать?
|
|||
23
darkvett
22.07.11
✎
11:21
|
(19) а как мне в качестве этой таблицы взять Объединение?
|
|||
24
Ненавижу 1С
гуру
22.07.11
✎
11:24
|
(23) во временной таблице или подзапросе
|
|||
25
LEOON
22.07.11
✎
11:30
|
Я наверное не понял задачи, но вроде это решаются как объединение(источник), состоящий из 2х запросов(источников).
|
|||
26
platin
22.07.11
✎
11:42
|
Процедура Кнопка1Нажатие(Элемент)
Запрос = Новый Запрос; //выбираются данные из 2 таблиц Запрос.Текст = "ВЫБРАТЬ ….. "; //выбирается данные из 2 регистров Результат = Запрос.Выполнить(); СписокПродаж = Результат.Выгрузить(); ///// таблица обрабатывается – нач. и конеч.остатки через цикл, ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("продажи",СписокПродаж); СхемаКомпДанных = ПолучитьМакет("ПродажиКонтрагента5"); Настройки = СхемаКомпДанных.НастройкиПоУмолчанию; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпДанных,Настройки); ПроцессорКомпДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных); ДокументРез = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРез); ПроцессорВывода.Вывести(ПроцессорКомпДанных); ДокументРез.ОтображатьСетку = Ложь; ДокументРез.ОтображатьЗаголовки = Ложь; ДокументРез.Показать(); КонецПроцедуры В самом СКД набор данных – Объект, поля = полям в обработанной таблице Пример хорошо описывается в книжке Хрусталева «разработка сложных объектов в 1с» |
|||
27
darkvett
22.07.11
✎
12:15
|
А как мне объеденить два регистра в запросе? Раньше всегда объединял с помощью Объединения, а как сделать в одном запросе? Делаю вот так, но чтото не получается:
ВЫБРАТЬ Регистр1.Регистратор, Регистр1.СуммаНачальныйОстаток, Регистр1.СуммаКонечныйОстаток, Регистр1.СуммаПриход, Регистр1.СуммаРасход, Регистр2.Регистратор КАК Регистратор1, Регистр2.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток1, Регистр2.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток1, Регистр2.СуммаПриход КАК СуммаПриход1, Регистр2.СуммаРасход КАК СуммаРасход1 ИЗ РегистрНакопления.Регистр1.ОстаткиИОбороты(, , Регистратор, , ) КАК Регистр1, РегистрНакопления.Регистр2.ОстаткиИОбороты(, , Регистратор, , ) КАК Регистр2 |
|||
28
Ненавижу 1С
гуру
22.07.11
✎
12:19
|
Раньше всегда объединял с помощью Объединения
а почему это нельзя и сейчас сделать? |
|||
29
darkvett
22.07.11
✎
12:22
|
(28)Ненавидящий 1С подсказал так сделать:) см.(24)
|
|||
30
Ненавижу 1С
гуру
22.07.11
✎
12:24
|
(29) и это ты пишешь мне? ))
|
|||
31
darkvett
22.07.11
✎
12:26
|
(30)Хе, прикол, тебя сразу не признал:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |