|
Работа с параметрами СКД | ☑ | ||
---|---|---|---|---|
0
ЭтожЯ
05.10.15
✎
09:51
|
Добрый день, Есть отчет СКД с двумя наборами данных: Объект(ТаблицаЗначений) и Запрос.
Необходимо создать связи между наборами и вывести необходимые поля. Поля таблицызначений: ДатаНач, ДатаКон, АвтомобильНаименование, Тоннаж. Поля запроса(регистр сведений):Период, Автомобиль, ТоннажПоВесам. Необходимо по каждой строке Таблицы найти связь с запросом , т.е. Период должен быть в промежутке ДатаНач и ДатаКон.Автомобили должны быть связаны по наименованию или коду. Пытаюсь сформировать отчет по аналогии получения остатков номенклатуры на каждую дату документа из списка документов. Создаю следующий запрос с параметрами ВЫБРАТЬ ПеревозкаГрузов.Вес КАК ВесПоАвтовесам, 1 КАК ВсегоРейсов, ПеревозкаГрузов.Регистратор, ПеревозкаГрузов.Автомобиль.Наименование КАК АвтомобильНаименование1 ИЗ РегистрСведений.ПеревозкаГрузов КАК ПеревозкаГрузов ГДЕ ПеревозкаГрузов.Автомобиль.Наименование = &Наименование И ПеревозкаГрузов.Период МЕЖДУ &ДатаНачала И &ДатаОкончания Создаю 3 связи между наборами: Источник связи: Таблица, Приемник связи: Запрос, Выражение источник:Автомобиль, ДатаНач, ДатаКон, ВыражениеПриемник:Автомобиль, ДатаНач, ДатаКон. В колонку параметр добавляю параметры даты и НаименованияАвтомобиля. В результате выполняется левое соединение полностью формируются первая таблица, поля второй пустые. так же в коде есть следующий код: ВнешниеНаборыДанных=Новый Структура(); ВнешниеНаборыДанных.Вставить("ТаблицаЗначений",ТаблицаЗначений); ОбъектОтчет=РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных=ОбъектОтчет.ПолучитьМакет("Макет"); //Настройки=СхемаКомпоновкиДанных.НастройкиПоУмолчанию ; КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,ЭтотОбъект.Отчет.КомпоновщикНастроек.Настройки); ПроцессорКомпоновкиДанных=Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных); ДокументРезультат=ЭтотОбъект.Результат; ДокументРезультат.Очистить(); ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
|||
1
ЭтожЯ
05.10.15
✎
09:52
|
если сравнивать значения КомпоновщикМакета Значения параметров приходят пустые.
|
|||
2
ЭтожЯ
05.10.15
✎
09:53
|
Как правильно передавать параметры во второй набор, чтобы они заполняли из первого набора и осуществлялось левое соединение таблиц
|
|||
3
aleks_default
05.10.15
✎
09:53
|
опять двадцать пять
|
|||
4
aleks_default
05.10.15
✎
09:54
|
Переименуй набор данных "Запрос" как нибудь по-другому. Людей в заблуждение не вводи.
|
|||
5
ЭтожЯ
05.10.15
✎
10:26
|
..
|
|||
6
ЭтожЯ
05.10.15
✎
10:32
|
up
|
|||
7
aleks_default
05.10.15
✎
10:59
|
1. Если уж связывать автомобили, то уж точно не по наименованию а хотя бы по коду. Скорее всего в этом у тебя и проблема что в таблице и в запросе у тебя разные данные поля Автомобиль, поэтому и связь не работает
2. В запросе нет выбранного поля "Период" по которому у тебя якобы должна быть связь. Связь должна быть такая: Источник связи: Таблица, Приемник связи: Запрос, 1. Выражение источник:Автомобиль, ВыражениеПриемник:АвтомобильНаименование1 2. Выражение источник: ДатаНач, ВыражениеПриемник: Период, Условие связи ДатаНач<=Период 3. Выражение источник: ДатаКон, ВыражениеПриемник: Период, Условие связи ДатаКон>=Период Может прокатит. Если нет тогда вообще концепцию менять. |
|||
8
ЭтожЯ
05.10.15
✎
11:06
|
дело как раз в том что если устанавливаю связь только по автомобилю, связь устанавливается, как только добавляю периоды, вторая таблица остается пустой
|
|||
9
ЭтожЯ
05.10.15
✎
11:06
|
даже по наименованию
|
|||
10
aleks_default
05.10.15
✎
11:08
|
Где у тебя в "Запросе" поля "ДатаНач" и "ДатаКон"? Нету? Вот потому и не устанавливается связь.
|
|||
11
aleks_default
05.10.15
✎
11:11
|
Есть поля "ДатаНач" и "ДатаКон" а есть параметры "ДатаНачала" и "ДатаОкончания" - это разные данные.
|
|||
12
ЭтожЯ
05.10.15
✎
11:17
|
Это запрос, который используется у меня во втором наборе
ВЫБРАТЬ ПеревозкаГрузов.Вес КАК ВесПоАвтовесам, 1 КАК ВсегоРейсов, ПеревозкаГрузов.Регистратор, ПеревозкаГрузов.Автомобиль.Наименование КАК АвтомобильНаименование1, ПеревозкаГрузов.Период ИЗ РегистрСведений.ПеревозкаГрузов КАК ПеревозкаГрузов ГДЕ ПеревозкаГрузов.Автомобиль.Наименование = &Наименование И ПеревозкаГрузов.Период МЕЖДУ &ДатаНачала И &ДатаОкончания |
|||
13
aleks_default
05.10.15
✎
11:18
|
Как в (7) пробовала?
|
|||
14
ЭтожЯ
05.10.15
✎
11:19
|
да,я так делала изначально, в данном случае не видится поля второго набора
|
|||
15
ЭтожЯ
05.10.15
✎
11:20
|
сейчас делаю через параметр во вкладке УстановкаСвязи
|
|||
16
aleks_default
05.10.15
✎
11:21
|
(15) Че?
|
|||
17
ЭтожЯ
05.10.15
✎
11:24
|
Создаю 3 связи между наборами: Источник связи: Таблица, Приемник связи: Запрос, Выражение источник:Автомобиль, ДатаНач, ДатаКон, ВыражениеПриемник:Автомобиль, ДатаНач, ДатаКон. В колонку параметр добавляю параметры даты и НаименованияАвтомобиля
|
|||
18
ЭтожЯ
05.10.15
✎
11:24
|
как в (0) описала
|
|||
19
ЭтожЯ
05.10.15
✎
11:25
|
блин точнее в Выражении Приемник поле Период указываю, у меня самой каша в голове с периодами,
|
|||
20
ЭтожЯ
05.10.15
✎
11:26
|
как сюда скриншот добавить?
|
|||
21
aleks_default
05.10.15
✎
11:26
|
Млять, да нет у тебя в таблице "Запрос" полей "ДатаНач" и "ДатаКон"! Или ты неправильно описываешь свои действия.
|
|||
22
ЭтожЯ
05.10.15
✎
11:27
|
(19)
|
|||
23
aleks_default
05.10.15
✎
12:05
|
Разберись с кашей в голове, а то все желание помогать отпадает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |