Имя: Пароль:
1C
1C 7.7
v7: Разница сумм в запросе и по Итогу
0 zenon46
 
25.07.18
11:04
Доброго дня, не пойму почему идут расхождения между запросом и методом Итог по колонке.

    ТекстЗапроса = "
    |Период с НачДата по КонДата;
    |ОбрабатыватьДокументы Все;
    |ТекДок                        = Документ.ЗаявкаПокупателя.ТекущийДокумент;
    |Фирма                        = Документ.ЗаявкаПокупателя.ТекущийДокумент.Фирма;
    |Контр                         = Документ.ЗаявкаПокупателя.ТекущийДокумент.Контрагент;
    |СуммаД                       = Документ.ЗаявкаПокупателя.ТекущийДокумент.Сумма;
    |СтатусЗаявки                 = Документ.ЗаявкаПокупателя.ТекущийДокумент.ДляОбщегоЖурнала;
    |ПроектЗапрос                 = Документ.ЗаявкаПокупателя.ТекущийДокумент.Проект;
    |ФлагПечатиЗапрос             = Документ.ЗаявкаПокупателя.ТекущийДокумент.ФлагПечати;
    |ВидОперации                  = Документ.ЗаявкаПокупателя.ТекущийДокумент.ВидОперации;    
    |Функция СуммаСумма              = Сумма(СуммаД);
    |Группировка ТекДок;
    |Условие (ТекДок.ПометкаУдаления() = 0);
    |Условие (ВидОперации = Перечисление.ВидыОперацийЗаявок.Неподтвержденная);    
    |";


Наткнулся случайно на одном документе, если взять Запрос.СуммаСумма не равна если сделать Запрос.ТекДок.Итог("Сумма"), причем второе правильно, а из запроса не правильно. Что не так ?
1 Builder
 
25.07.18
11:27
Могу только сказать что текст запроса просто ужасен.
1. СуммаД= Документ.ЗаявкаПокупателя.Сумма;
2. Условие (ТекДок.ПометкаУдаления() = 0) - этот фильтр ставится в другом месте.
2 zenon46
 
25.07.18
11:36
(1) ну сделаю так, разницы то, все равно почему суммы не правильные не пойму. |Обрабатывать НеПомеченныеНаУдаление;
3 Builder
 
25.07.18
11:38
(2) База файловая? Переиндексируй для начала. Пересохрани проблемный документ. Может в нем косяк какой.
4 uno-group
 
25.07.18
11:40
Сумма считает только целые числа. копейки все теряются.
как вариант писать в запроса
СуммаСумма=Сумма(СуммаД*100)
А при выводе делить на 100.
5 zenon46
 
25.07.18
11:40
(3) SQL, уже менял его сумму, тоже выводится не правильно, причем на непонятное число.
6 zenon46
 
25.07.18
11:42
да, заметил что не только на нем, а рандом како-то чистой воды, одни норм показывает, другие криво.
7 zenon46
 
25.07.18
11:59
(4) тут 100-ни рублей не совпадают, врядли дело в копейках.
8 Масянька
 
25.07.18
12:03
(7) СуммаД                       = Документ.ЗаявкаПокупателя.ТекущийДокумент.Сумма; - это итог по документу.
Функция СуммаСумма              = Сумма(СуммаД) - а это сумма чего? (подумай) :)
9 zenon46
 
25.07.18
12:07
(4) Жесть, это реально сработало.
10 zenon46
 
25.07.18
12:07
(8) это не итог по документу, там нет такого реквизита, "Сумма" - это реквизит табличной части.
11 Злопчинский
 
25.07.18
12:21
самый тривиальный вариант. если в заявке не заполнена по строке ЕДИНИЦА (а это криворукие жопоглоты на раз делают) - то в документе сумма будет, а в регистре данные этой строки - нет
12 Масянька
 
25.07.18
12:22
(10) ТекущийДокумент - только для ТекДок.
В остальных случаях - Документ.ЗаявкаПокупателя.Сумма
13 Злопчинский
 
25.07.18
12:29
|Условие (ТекДок.ПометкаУдаления() = 0);
выкинуть нафиг - это тормозить будет.
для фильтра по непроведенным/проведенным/удаленным - есть отдельная инструкция в языке запросов
14 Злопчинский
 
25.07.18
12:30
есть отличия в использовании
Группировка ТекДок;
и предопределенной
Группировка Документ;

- но вот уже не помню что за тонкость
15 zenon46
 
25.07.18
12:37
(13) пасиб, учту
16 Масянька
 
25.07.18
12:44
(15) Ты (12) проверил?
17 zenon46
 
25.07.18
15:06
(16) проверил, работает как и работало, в чем принципиальная разница, использование вашей конструкции и моей ?
18 Масянька
 
25.07.18
15:09
(17) У меня Ваша конструкция не работает - нет ни цены, ни суммы. Проверяла на другом док-те с таб. частью.
Разница в  ТекущийДокумент.
19 zenon46
 
25.07.18
15:11
(18) это капец как странно, у меня все работает без изменений
20 zenon46
 
25.07.18
15:16
У меня не работает вот это |Обрабатывать НеПомеченныеНаУдаление;  - в выборку ничего не попадает
21 zenon46
 
25.07.18
15:29
(13) есть только такое  Ожидаются следующие значения: 'Проведенные', 'НеПроведенные', 'все' - меня могут быть как проведенные так и не проведенные и мне надо из них отсеить не помеченные на удаление.
22 Duke1C
 
31.07.18
10:14
(21) ОбрабатыватьДокументы Все;
     Обрабатывать НеПомеченныеНаУдаление;
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.