Имя: Пароль:
1C
1C 7.7
v7: Сумма в запросе в DBF и SQL
,
0 AlexSTAL
 
31.01.17
16:51
Перешли с DBF на SQL, все запросы

    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Док = Документ.Заявка.ТекущийДокумент, Документ.ВозвратОтПокупателя.ТекущийДокумент;
    |Количество1 = Документ.Заявка.Количество;
    |Количество2 = Документ.ВозвратОтПокупателя.Количество;
    |Товар = Документ.Заявка.Товар, Документ.ВозвратОтПокупателя.Товар;
    |Функция Количество1Сумма = Сумма(Количество1);
    |Функция Количество2Сумма = Сумма(Количество2);
    |Функция КоличествоСумма = Сумма(Количество1-Количество2);
    |Группировка Товар без групп;
    |Условие(Товар в ВыбТовар);
    |";

с функцией Сумма, где вычитаются/складываются параметры перестали работать, т.е. производится сумма только первого параметра:
Товар    Количество1Сумма    Количество2Сумма    КоличествоСумма
Товар 1    31.000         31.000
Товар 2    13.000    2.000    13.000

где косяк?
1 SeregaMW
 
31.01.17
16:55
(0)И какое там значение?
2 Ёпрст
 
31.01.17
16:57
А раньше че, работало ?
3 Ёпрст
 
31.01.17
16:57
И как бэ,
  |Функция КоличествоСумма = Сумма(Количество1-Количество2);

вот это никогда не будет работать
4 SeregaMW
 
31.01.17
16:59
И это тоже  |Количество1 = Документ.Заявка.Количество;
5 SeregaMW
 
31.01.17
17:00
В каком угаре такое можно было написать )))
6 SeregaMW
 
31.01.17
17:01
(0) SQL это тебе не DBF!
7 AlexSTAL
 
31.01.17
17:04
(2) В DBF да
8 AlexSTAL
 
31.01.17
17:05
(4) почему?

если при обходе взять Запрос.Количество1Сумма - Запрос.Количество2Сумма то всё работает
9 Джинн
 
31.01.17
17:05
(3)(4) DBF прощает многие косяки.
10 AlexSTAL
 
31.01.17
17:05
(5) не знаю,  история об этом умалчивает...
наследство мне такое досталось
11 lera01
 
31.01.17
17:12
7-ка же
12 Builder
 
31.01.17
17:46
Самое простое, но не самое правильное.
Запрос.ВключитьSQL(0);
Самое правильное, но не самое простое - переписать запрос.
13 AlexSTAL
 
31.01.17
17:58
(12) Скорость падает эдак раз в 20
Уже переписываю.... Думал, может более простое решение есть
14 Провинциальный 1сник
 
31.01.17
18:00
(13) Переписывай сразу под ODBCRecordSet, а штатные запросы - забудь, что они есть.
15 AlexSTAL
 
31.01.17
18:08
(14) да мне нужно оперативно решить вопрос...
Вопрос скорости - это другая песня будет....
16 Злопчинский
 
31.01.17
18:13
заявка обычно никогда не двигала товарный баланс организации. а возврат - двигал. скрестить заявку с возвратом - это сильное колдунство!
в типовой ТиС для решени яподобнйо задачи есть регистр.Продажи - где регистрируется и количество и сумма продаж. и количество и сумма возвратов.
17 AlexSTAL
 
31.01.17
18:16
(16) Да тут куда не плюнь, одни косяки...
Если ИмяПользователя() = "Алёна" Тогда

и т.д.
18 Злопчинский
 
31.01.17
18:57
(17) фигня какая, это нормально. не хорошо, но нормально. ничем не отличается от

Если НазваниенабораПрав()="Администратор" Тогда...
19 AlexSTAL
 
31.01.17
19:40
(18) Угу.. Алёна работала 2 месяца, после неё на её месте вынуждены заходить "Алёной"
20 Злопчинский
 
31.01.17
22:28
(19) и что? работает? - работает! нужные действия выполняются? - выполняются!
21 пипец
 
01.02.17
09:07
+ на прямые запросы
ЗЫ если нужно колдунство типа Сумма(Количество1-Количество2) то на внешнюю функцию сажать (если штатно) но быстро не будет
22 FIXXXL
 
01.02.17
09:11
(20) угу, нет что б настройку параметризированную сделать