|
Как по правильному на СКД реализовать отчет, содержащий внешние данные? | ☑ | ||
---|---|---|---|---|
0
Cerera
19.02.14
✎
10:16
|
В отчете нужно соединить две таблицы по датам и периоду
1)ПланПродаж Период Сценарий Номенклатура Количество 2)ПериодыСценариев (внешний источник данных - таблица значений), скорее всего Сценарий ДатаНачала ДатаКонца Еслиб нужно было просто соединить две таблицы в запросе, то сделал бы внутреннее соединение. ВЫБРАТЬ ПланыПродажОбороты.Сценарий, ПланыПродажОбороты.Номенклатура, ПланыПродажОбороты.КоличествоОборот, ПланыПродажОбороты.Период КАК Период ПОМЕСТИТЬ ПланыПродаж ИЗ РегистрНакопления.ПланыПродаж.Обороты(&ВыбНачПериода, &ВыбКонПериода, Месяц, ) КАК ПланыПродажОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СценарииПланирования.Ссылка, &НачалоПериодаСценария, &КонецПериодаСценария ПОМЕСТИТЬ ДатыСценариев ИЗ Справочник.СценарииПланирования КАК СценарииПланирования ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПланыПродаж.Сценарий, ПланыПродаж.Номенклатура, ПланыПродаж.КоличествоОборот, ПланыПродаж.Период ИЗ ПланыПродаж КАК ПланыПродаж ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыСценариев КАК ДатыСценариев ПО ПланыПродаж.Сценарий = ДатыСценариев.Ссылка И ПланыПродаж.Период >= ДатыСценариев.НачалоПериодаСценария И ПланыПродаж.Период <= ДатыСценариев.КонецПериодаСценария Но когда два набора данных как реализовать это? Пользователь заполняет периоды для каждого сценария. Потом эта таблица передается в СКД. а потом соединяем как соединит наборы, чтоб было внутреннее соединение или как вообще решить можно это? |
|||
1
Cerera
19.02.14
✎
10:16
|
блин. по сценарию и периоду.
|
|||
2
Ненавижу 1С
гуру
19.02.14
✎
10:17
|
используй соединение наборов данных в схеме СКД
|
|||
3
Cerera
19.02.14
✎
10:19
|
(2)но ведь там нет внутреннего соединения. или как выкрутиться?
|
|||
4
bvb
19.02.14
✎
10:29
|
Сделай один набор данных с результирующей таблицой
|
|||
5
Cerera
19.02.14
✎
10:36
|
(4)это что означает? не совсем понял. пользователь ведь будет заполнять таблицу значений а нужно чтоб эта таблица использовалась в запросе
|
|||
6
bvb
19.02.14
✎
10:53
|
Таблицы на форме ?
1. Заряди ими запрос по ТЗ получи результат (используй там какие хочешь соеденения). 2.Резульатат отлаживай и контролируй в результирующей таблице значений (если нужно и удобно это тебе). 3.Результатом заряди набор данных типа "Объект". 4. Объект юзай стандартным СКД. Как то так . |
|||
7
Cerera
19.02.14
✎
11:10
|
(6)прекрасно! Благодарю! это в "ПриКомпоновкеРезультата" нужно запрос сделать и результирующую таблицу уже использовать в качестве набора?
|
|||
8
mistеr
19.02.14
✎
11:28
|
(3) Есть.
|
|||
9
Cerera
19.02.14
✎
11:29
|
(8)как это есть? вы говорите, что можно соединять наборы данных внутренним соединением?
|
|||
10
bvb
19.02.14
✎
13:10
|
(7) Да
1. Создать набор данных типа "объект" определить поля с которыми будет работать СКД 2. Сделать запрос какой нужно и выгрузить его в ТЗ поля у которго совпадают с полями набора затем : Я так достаю в СКД данные из сторнней базы SQL Процедура СформироватьОтчет() Экспорт ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ЗапросSQL",ТЗSQL); !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных, ДанныеРасшифровки); ЭлементыФормы.ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
|||
11
mistеr
19.02.14
✎
13:42
|
(9) Если наложить отбор на подчиненный набор данных, соединение будет внутренним.
|
|||
12
mistеr
19.02.14
✎
13:43
|
(11) подчиненный = приемник
|
|||
13
Cerera
19.02.14
✎
14:02
|
(12)то есть поле завести какое-нибудь, например со значением "Истина" и отборчик сделать по этому полю?
|
|||
14
Necessitudo
19.02.14
✎
15:21
|
Забаньте его кто-нибудь.
|
|||
15
Cerera
19.02.14
✎
15:32
|
(14)ты нарочно нарываешься? Или чем объясняются твои никчемные сообщения во вполне не пятничных ветках? может быть ты мне в чём то завидуешь? или тебе не хватает внимания? Да. Пиариться за счет высеров в ветках, которые создают местные знаменитости - это лёгкий хлеб. Но ты всегда будешь в тени, тебе не видать славы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |