Имя: Пароль:
1C
1С v8
Своя функция в запросе, простой вопрос
0 егаис
 
25.03.20
12:09
В ЗУПе в запросе надо получить месяц начисления регистратора в регистре накопления.
Регистратор имеет несколько типов. У некоторых документов поле месяца начисления называется "Период регистрации", у других "Месяц начисления" (нафейхуя так сделано хз)
Вопрос, можно в запросе описать функцию, которая бы вернула нужно поле без нагромождения ВЫБОР КОГДА, будет накладывается еще куча условий
Типа
"Выбрать
&МояФункция КАК ПериодРегистрацииДокумента
...
1 fisher
 
25.03.20
12:13
Не.
2 mars2020
 
25.03.20
12:15
(0) ОБЪЕДИНИТЬ
3 егаис
 
25.03.20
12:16
(2) не хотелось бы нагромождать запрос
Ну ладно, нет, так нет
Опишу как переменную и буду тыкать в запросе, где надо
4 palsergeich
 
25.03.20
13:16
(3) Поверь. большой запрос это далеко не всегда плохо. особенно если он логичен и понятен
5 SleepyHead
 
гуру
25.03.20
13:49
(0)

Я эту проблему решал так. До запроса выяснил, каким видам документов соответствует поле "Период" в регистре. Все остальные виды документов распределил по нескольким массивам. Содержимое массива - тип. А уже в запросе анализирую:

ВЫБОР
КОГДА ТипЗначения(Регистратор) В (&МассивВидовПериод) Тогда Регистр.Период
КОГДА ТипЗначения(Регистратор) В (&МассивВидовМесяцНачисления) Тогда Регистратор.МесяцНачисления

ну и так далее
6 Dmitry_1C
 
25.03.20
13:57
(0) ЕСТЬNULL(Регистратор.МесяцНачисления, Регистратор.ПериодРегистрации)
7 uzerp2
 
25.03.20
14:37
в СКД можно функцию применять
а потом выгрузишь результат в таблицу значений например
8 Жан Пердежон
 
25.03.20
14:43
бери период из регистра расчета