СКД. Программно изменить текст схемы компоновки данных. #591479


#0 by ProProg
Как программно изменить в тексте запроса некоторые значения. Например в запросе есть участок по запросу регистра где указана периодичность в параметрах запроса. Например Месяц. Нужно программно до выполнения изменить Месяц на произвольную (выбирается в диалоге).
#1 by ProProg
Ранее в обычных запросах это делал методом ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"Месяц",Периодичность);
#2 by Mort
Периодичность можно вытащить как параметр СКД.
#3 by Mort
Если текстом трудно, на закладке компоновки можно задать псевдонимы параметров для виртуальных таблиц (кнопка такая есть там)
#4 by ProProg
не катит. это не параметр. это текст запроса.
#5 by ProProg
Месяц, день и т.д. и т.п. это методы языка 1С. |        ВЫБРАТЬ    |            Продажи.Номенклатура,
#6 by ProProg
Это не может быть указано параметром т.к. является встроенной функцией запроса
#7 by dmpl
Ну так сделай источник данных - таблица значений. А уж ее формируй как привык.
#8 by ProProg
У меня СКД запрос, но формируется программно. В том числе результат я программно извлекаю. Мне сейчас тупо надо как то сделать чтобы в запросе менялся Месяц на любую другую периодичность.
#9 by dmpl
+ или даже результат запроса можно попробовать.
#10 by Mort
Себя убеждаешь? Ладно... А у меня работает. Пысы Месяц, день и т.п. для платформы это числа, ну на случай если программно значение параметра поставить. А так СКД-шка представления даёт для выбора.
#11 by Mort
"Это не может быть указано параметром т.к. является встроенной функцией запроса ". А что оно делает в параметрах виртуальной таблицы?
#12 by Mort
РегистрНакопления.ОборотыБДДСПлан.Обороты(&НачалоПериода, &КонецПериода, Месяц {(&ВидПериода)}, Сценарий = &Сценарий .. и т.д.
#13 by ProProg
не тупи. в параметрах регистра (для оборотного - это после второй запятой) есть параметр - Периодичность. Оно текстовое. Это не передаваемый параметр
#14 by ProProg
если тебя смутило слово Параметр. птут говорится не про параметр запроса, а параметр выборки регистра.
#15 by ProProg
хм... не знал. Месяц {(&ВидПериода)} меняет периодичность?
#16 by Shurjk
Открой для себя построитель запросов.
#17 by Mort
Во во, сам не тупи. В бабруйск ПЗ.
#18 by ProProg
Что то пустой результат.
#19 by Shurjk
Чего?
#20 by ProProg
Значение параметра должно быть текстовое или с типом перечисления?
#21 by ProProg
или число? как только добавил в параметрах появился параметр с значением 9. Т.е. должно быть число?
#22 by ProProg
Есть описание как 1С периодичность по числам берет? Месяц как я понял - 9. Какие числа будут для других периодичностей?
#23 by Defender aka LINN
ППЦ... А периодичность "Авто" - не по-пацански, типа?
#24 by ProProg
какое нафиг авто. авто добавляет в переменные запроса все группировки с периодами. а мне они вообще нафиг не нужны. Ты хоть текст запроса смотрел? Мне периодичность нужна (её юзер выбирает в диалоге отчета) для просчета определенных колонок которые зависят от неё. никаких группировко по периодичностям не выводится.
#25 by ProProg
в текст запроса. От указанной периодичности влияет расчет |            КОЛИЧЕСТВО(Различные(Продажи.Период)), Юзер выбирает период продаж, периодичность и получает один из показателей - количество периодов продаж (только те когда товар продавался) за весь период. Показатель получает числом. Т.е. если например выбрал 7 месяцев то по товару будут числа 3,4,5 и т.п. т.е. в скольких месяцах за все 7 были продажи.
#26 by Defender aka LINN
КОЛИЧЕСТВО(Различные(Продажи.ПериодМесяц)) КОЛИЧЕСТВО(Различные(Продажи.ПериодДень)) И т.д.
#27 by ProProg
ты сам понимаешь что это фигня полная. да еще и лишние вычисления. у меня тут 100 000 номенклатуры. 2 года загруженных продаж в УТ11. в день по 2-5 тысяч товаров продаются.
#28 by ProProg
Итак 1С умирает - недостаточно памяти выдает. Запрос по 10 регистрам. а ты еще хоч чтобя я еще вычислений навешал.
#29 by sanja26
Посмотри отчет УТ 11 Остатки по складам в ценах номенклатуры. При компоновке данных
#30 by Defender aka LINN
Какие, нафиг, лишние вычисления? Учите матчасть. Результирующий запрос<>запрос в схеме какбе.
#31 by sanja26
,
#32 by ProProg
а проще никак? не хотелось бы весь текст запроса дублировать. он огромный. а менять надо всего 1 слово.
#33 by ProProg
ааа. все допер
#34 by ProProg
ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных[0].Запрос; далее меняем и опять впихиваем
#35 by ProProg
Спасибо!
#36 by ProProg
вот это лучший вариант. Всего три строчки ушло. Всего навсего нужно было текст получить, заменить что надо и опять вставить. Все работает! Считает правильно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С