Имя: Пароль:
1C
1С v8
"/" в запросе
0 Очень Любознательная
 
22.01.19
02:47
Доброй ночи. У клиента стоит конфигурация 1С ДОУ, при формировании начисления возникает следующая ошибка: в запросе
    Запрос = Новый запрос("ВЫБРАТЬ
    |    ВЫБОР
    |        КОГДА удуДоговорОЗачисленииРебенка.ВидСтавкиОплаты = ЗНАЧЕНИЕ(перечисление.удуВидыСтавокРодительскойПлаты.ПустаяСсылка)
    |            ТОГДА 0
    |        КОГДА удуДоговорОЗачисленииРебенка.ВидСтавкиОплаты = ЗНАЧЕНИЕ(перечисление.удуВидыСтавокРодительскойПлаты.Месячная)
    |            ТОГДА удуДоговорОЗачисленииРебенка.ОплатаПоДоговору * (ЕСТЬNULL(&ПосещеноДней, 0) / ЕСТЬNULL(&РабочихДней, 0))
    |        КОГДА удуДоговорОЗачисленииРебенка.ВидСтавкиОплаты = ЗНАЧЕНИЕ(перечисление.удуВидыСтавокРодительскойПлаты.Дневная)
    |            ТОГДА удуДоговорОЗачисленииРебенка.ОплатаПоДоговору * ЕСТЬNULL(&ПосещеноДней, 0)
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Сумма
    |ИЗ
    |    Документ.удуДоговорОЗачисленииРебенка КАК удуДоговорОЗачисленииРебенка
    |ГДЕ
    |    удуДоговорОЗачисленииРебенка.Ссылка = &Договор");
При выполнении запроса возникает ошибка "Неверный параметр /"
Пробовала через "выразить" - всё равно ругается. В чём здесь проблема?
1 Fram
 
22.01.19
02:57
Судя по всему Вы пеняете на деление в вашем запросе? Но, сдается мне, что 1С нечто другое имеет ввиду.

ЗЫ уверены что делить на 0 это хорошая идея? "... / ЕСТЬNULL(&РабочихДней, 0)" ?
2 Очень Любознательная
 
22.01.19
03:09
(1) Конфигурация не самописная, это стандартный код.
Ради интереса поменяла в ЕСТЬNULL(&РабочихДней, 0) 0 на 1 - проблема не исчезла
3 Fram
 
22.01.19
03:17
(2) > это стандартный код

разработчики красавчеги. как этот кусок "код ревью" прошел интересно.

> проблема не исчезла

я и не говорил что это решит проблему.
ваша проблема в параметре запроса, если правильно процитировали сообщение об ошибке.
4 Очень Любознательная
 
22.01.19
03:26
(3) Вообще, кошмар, конечно. Конфигурация вышла 5 лет назад, было 3 обновления, последнее - в 2015 году, сейчас клиент вспомнил, что у них стоит эта программа, решил её в порядок привести. Уже 2 дня отлавливаю ошибки.
Проверила параметры - все заполняются. Заменила выражения с NULL для теста на (8/4), к примеру - ошибки нет, всё работает. Заменила на (&ПосещеноДней / &РабочихДней) - та же самая ошибка.
Может, нельзя в запросе параметры делить друг на друга?
5 JeHer
 
22.01.19
04:48
Приведу пример с багборда по УТ 11.4. Последний релиз.

Описание:
При попытке записи элемента справочника "Варианты графиков кредитов и депозитов" под пользователем с неполными правами выходит следующая ошибка и элемент справочника не записывается:
В данной транзакции уже происходили ошибки!

Способ обхода:
Производить заполнение и запись графиков кредитов и депозитов пользователю с полными правами.

А вы про конфу 3-х летней давности говорите.
6 JeHer
 
22.01.19
04:49
+ Наверное, надо вынести из запроса это действие &ПосещеноДней / &РабочихДней и передать одним параметром.
7 catena
 
22.01.19
05:19
(4)Озвучьте платформу, плз, проверила на том, что есть под рукой, любые операции с параметрами проходят на ура.
8 catena
 
22.01.19
05:20
(4)А так же озвучьте, какие значения находятся в данных параметрах в момент выполнения запроса.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.