Имя: Пароль:
1C
 
СКД. Как использовать поле запроса в выражении в параметре?
0 Блондинка_
 
22.05.17
10:32
Добрый день! Нужно сделать отчет, в котором будут данные по продажам по 2м вариантам: за сезон продаж и за не сезон. Данные по началу и окончанию сезона задаются в справочнике. Я сделала отдельный запрос в СКД который получает эти значения. Это поля ДатаНачалаНеСезонаПродаж, ДатаНачалаСезонаПродаж ну и также с окончанием. В параметре НачалоПериода я хотела в выражении записать условие
ВЫБОР КОГДА &ПЕРИОД = "СезонПродаж" ТОГДА ДатаНачалаСезонаПродаж ИНАЧЕ ДатаНачалаНеСезонаПродаж КОНЕЦ
На выражение СКД "Не ругается" но при формировании отчета выдает "Ошибка в выражении"
Я что-то не так делаю или это в принципе невозможно?
1 AlvlSpb
 
22.05.17
10:45
(0) А строковое значение "СезонПродаж" откуда берется?
2 KuAl
 
22.05.17
10:45
Можно попробовать переименовать параметр Период. Т.к. обычно "Период" - типа стандартный период, а не строка.

точно не забыли амперсанды?
ВЫБОР КОГДА &ПЕРИОД = "СезонПродаж" ТОГДА &ДатаНачалаСезонаПродаж ИНАЧЕ &ДатаНачалаНеСезонаПродаж КОНЕЦ
3 KuAl
 
22.05.17
10:49
как вариант:
сделать именно параметры
&ДатаНачалаСезонаПродаж
&ДатаНачалаНеСезонаПродаж

в выражении параметров прописать функцию из общего модуля, в которой получать данные как надо

ну и потом уже НачалоПериода определять как:
ВЫБОР КОГДА &ПЕРИОД = "СезонПродаж" ТОГДА &ДатаНачалаСезонаПродаж ИНАЧЕ &ДатаНачалаНеСезонаПродаж КОНЕЦ
4 Блондинка_
 
22.05.17
10:50
(1) Это значение параметра "Период", я добавила предопределенные значения в список значений этого параметра "СезонПродаж" и "НеСезон".
(2) Пробовала, уже подумала тоже об этом, но одинаковый результат
Не, не забыла, тк ДатаНачалаСезонаПродаж - это не параметр это поле, выбранное в запросе.
Вот я думаю, может так нельзя, использовать поля запроса
5 Buster007
 
22.05.17
10:50
Если я правильно понял, то пытаешься в параметры передать значения, которые являются результатом выполнения СКД?
6 Блондинка_
 
22.05.17
10:51
(5) Ага, так нельзя?(
7 Buster007
 
22.05.17
10:51
(4) что раньше появилось: курица или яйцо?
8 Блондинка_
 
22.05.17
10:51
А как тогда иначе передавать разные варианты значения параметров? Только программно?
9 Buster007
 
22.05.17
10:52
ну в твоем случае это в общем-то не сложно сделать, даже стандартная обработка будет работать по идее. Всего лишь параметры задать
10 Блондинка_
 
22.05.17
10:57
(9) Это да, но я хотела вообще без кода) Сейчас еще кое-что попробую..) нет, придется все-таки программно задавать.
11 dezss
 
22.05.17
10:58
Ну можно эти периоды сезона, несезона запихать во временную таблицу и с ней соединяться.

И использовать стандартные параметры для своих нужно не стоит, результат бывает непредсказуемым.
12 Блондинка_
 
22.05.17
11:02
Вот это сейчас пытаюсь запихнуть в выражение параметра (ну т.е. поле получаю не в запросе а сразу здесь хотела), но ругается на конструкцию. Не подскажите, что не так?
ВЫБОР КОГДА &ПЕРИОДОТЧЕТА = "СезонПродаж" ТОГДА (ВЫБРАТЬ    НастройкиСистемы.Значение ИЗ Справочник.НастройкиСистемы КАК НастройкиСистемы ГДЕ    НастройкиСистемы.Ссылка = &НачалоСезонаПродаж) ИНАЧЕ ДатаНачалаНеСезонаПродаж КОНЕЦ
13 dezss
 
22.05.17
11:07
(12) О_О
сделайте мне развидеть это...
пойду глаза закапаю водой, настоенной на книгах по 1с.
14 KuAl
 
22.05.17
11:08
(12) в функциях языка выражений СКД нельзя использовать конструкцию Выбрать

можно либо сделать все в одном запросе, либо через функцию в общем модуле, в которой уже писать что хочешь
15 Блондинка_
 
22.05.17
11:26
(14) Точно! Общий модуль! Спасибо, сейчас попробую
16 Блондинка_
 
22.05.17
13:11
Всем спасибо за помощь! Вынесла получение периода в общий модуль, к тому же, он мне потом в документе нужен, так что все красиво получилось!