|
СКД Запрос к периодическому регистру передать список периодов | ☑ | ||
---|---|---|---|---|
0
Coldboy
08.12.14
✎
14:44
|
Здравствуйте. Передаю список периодов, как их отразить в периодическом регистре, такой запрос я так понял не пройдет:
ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Период, ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыСрезПоследних.Регистратор ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних Хочу получить срез цен, по нужным мне датам. |
|||
1
pessok
08.12.14
✎
14:45
|
соединить таблицу среза и таблицу периодов
|
|||
2
butterbean
08.12.14
✎
14:45
|
проще сделать n запросов
|
|||
3
Coldboy
08.12.14
✎
14:46
|
как это все сделать через скд, набор данных запрос
|
|||
4
pessok
08.12.14
✎
14:50
|
||||
5
Coldboy
08.12.14
✎
16:08
|
(4) там не совсем так, там документ или еще че то, а мне нужно тупо передать массив дат, как можно проще это сделать?
|
|||
6
ВРедная
08.12.14
✎
16:10
|
Передай в запрос таблицу и сделай из нее временную, после чего (4)
|
|||
7
Coldboy
08.12.14
✎
16:16
|
(6) а проще нет варианта? Ведь же задача вроде простая, есть список дат, их нужно передать в срезпоследних регистр, я же не беру документы и не соединяю их даты.
|
|||
8
pessok
08.12.14
✎
16:19
|
(7) а чем этот вариант сложный то?
тздат = новый таблицазначений(); тздат.колонки.добавить("период", Новый описаниетипов("дата")); новстр = тздат.добавить(); новстр.период = текущаядата(); запрос = новый запрос( "выбрать * поместить даты из &тздат как тздат; выбрать ценыноменклатуры.цена из регистрсведений.ценыноменклатуры.срезпоследних() как ценыноменклатуры по ценыноменклатуры.период = даты.период"); запрос.установитьпараметр("тздат", тздат); |
|||
9
Coldboy
08.12.14
✎
16:20
|
(8) все делаю в скд только одним запросом... через параметры подам параметр.
|
|||
10
pessok
08.12.14
✎
16:20
|
внутреннее соединение по, есессно
|
|||
11
pessok
08.12.14
✎
16:21
|
(9) в скд сделай так - первый источник данных - объект с твоей таблицей дат
второй источник - запрос и соединяй |
|||
12
Coldboy
08.12.14
✎
16:26
|
(11) а без набора данных объект нельзя?
|
|||
13
pessok
08.12.14
✎
16:28
|
тебе к чему-то надо в любом случае прицепиться соединением
|
|||
14
Coldboy
08.12.14
✎
16:39
|
(13) я не против, но я бы лучше в скд через 2 набора сделал. Как бы во 2 набор список значеий передать, который через параметры получаю.
|
|||
15
Coldboy
08.12.14
✎
16:56
|
up. жду варианты, хотя бы как правильно передать список значений в запрос, чтобы потом уже связывать даты.
|
|||
16
Coldboy
08.12.14
✎
17:27
|
up?
|
|||
17
antoneus
08.12.14
✎
17:34
|
так чем (11) не устраивает-то?
|
|||
18
DmitriyDI
08.12.14
✎
17:35
|
(15) в скд можно передать как внешний источник данных, ток список значений хз, а вот таблицу значений точно можно
|
|||
19
Bolik1979
08.12.14
✎
17:35
|
||||
20
Coldboy
08.12.14
✎
17:37
|
(19) у меня нет списка документов и тд, у меня есть список значений как параметр, я его в скд передаю, как мне этот список значений передать в запрос правильно... почему вы одну и ту же тему кидаете, я читал это и пользовался. как мне список значений в запрос запихнуть... я бы тогда жуе мог связями наборов сделать.
|
|||
21
pessok
08.12.14
✎
17:38
|
(20) пилять. никак нахрен, через таблицу значений
|
|||
22
pessok
08.12.14
✎
17:39
|
а потом нам говорят, что одноэсники сидят и пилят бабло на пустом месте. 3 часа назад дали решение, человек ломается
|
|||
23
Бубка Гоп
08.12.14
✎
17:39
|
Создай уже ТЗ с одной колонкой из своего СЗ и используй его как источник данных в СКД
|
|||
24
Coldboy
08.12.14
✎
17:42
|
(22,23) скажите как мне тогда отловить, момент нажатия кнопки сформировать, если у тебя через СКД весь отчет делается ? Какое событие выбрать ?
|
|||
25
DmitriyDI
08.12.14
✎
17:42
|
(24) при компоновке результата?
|
|||
26
pessok
08.12.14
✎
17:47
|
стрзаменить((25)), "?", "!");
|
|||
27
Coldboy
08.12.14
✎
17:54
|
(26) а пример как такое в форме забахатаь модуле, что написать .
|
|||
28
pessok
08.12.14
✎
17:56
|
(27) сделай просто на кнопке свое событие и сфорируй скд программно
Процедура ВывестиОтчет() ЭлементыФормы.Результат.Очистить(); Если ВнешниеДанные.Количество()=0 Тогда Предупреждение("Внешние данные не загружены. Нажмите кнопку <Загрузить внешние данные>"); Возврат; КонецЕсли; ВнешниеНаборыДанных=Новый Структура; ВнешниеНаборыДанных.Вставить("ВнешниеДанные",ВнешниеДанные); КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных; Настройки=КомпоновщикНастроек.ПолучитьНастройки(); МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки); ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки); ДокументРезультат=ЭлементыФормы.Результат; ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата=ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата=Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ДокументРезультат.ОтображатьСетку=Ложь; ДокументРезультат.ОтображатьЗаголовки=Ложь; ДокументРезультат.Показать(); КонецПроцедуры |
|||
29
pessok
08.12.14
✎
17:57
|
где:
ВнешниеНаборыДанных=Новый Структура; //это передается в СКД ВнешниеНаборыДанных.Вставить("ВнешниеДанные",ВнешниеДанные); // ВнешниеДанные - это твоя таблица ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки); //это ты грузишь данные уже в скд |
|||
30
antoneus
08.12.14
✎
18:05
|
или в модуле объекта
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) // Вставить содержимое обработчика. СтандартнаяОбработка = Ложь; //формируешь свою тз с датами ВнешниеНаборыДанных = Новый Структура("тзДаты", тзДаты); СКД = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, СКД.НастройкиПоУмолчанию, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры соответственно, создаешь набор данных объект с именем объекта тзДаты. |
|||
31
Coldboy
08.12.14
✎
18:39
|
сделал пока через объект, кодом, но выложу результат, когда в СКД чисто накидаю все. ( попробую метод 29,30.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |