Имя: Пароль:
1C
1C 7.7
v7: Не совпадают остатки по функции в черном Запросе и по Регистру [решено]
,
0 aka AMIGO
 
17.10.14
08:45
Текст Запроса:
    ДНач=ПолучитьДатуТА();
    ДКон=ДНач;
    ТекстЗапроса =
    "//{{ЗАПРОС(Минусы)
    |Период с ДНач по ДКон;
    |Товар = Регистр.Заказы.Товар;
    |Количество = Регистр.Заказы.Количество;
    |Функция КолКонОст = КонОст(Количество);
    |Группировка Товар Без Групп;
    |Условие((Запрос.КолКонОст<0) И (Товар=ВыбТовар));
    |"//}}ЗАПРОС
    ;

Т.е. я намеренно выбираю период = ТА.

В обработке Запроса, перед выводом секции, считаю:
ОстПоРег = Регистр.Заказы.СводныйОстаток(Товар,,"Количество");

Разумею так, что и в запросе и в уравнении по регистру - у меня остатки на ТА.

И что вижу:
http://gyazo.com/b0fdb9be5d6a55494ebd99a4cbed3875

Далее, чтоб разобраться, вывел движения с остатками, получилась такая таблица
http://gyazo.com/ec57e42361221450212e89e3c4691f62

Остаток - черный!.. Более того, цифра "-3700" в ней не встречается ни разу.. Не было такого отрицательного остатка с момента начала работы программы..

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

Что в ЧерномЗапросе не так?
1 1dvd
 
17.10.14
08:51
в регистре всего 2 измерения?

Если база файловая, сначала я бы сделал реиндексацию
2 Paul_Nevada
 
17.10.14
08:55
+ВыбТовар должен быть не списком товаров.
3 Paul_Nevada
 
17.10.14
08:56
проверил у себя - запрос выбирает минусы
4 aka AMIGO
 
17.10.14
09:15
(1) ладно, сделаю..

(2) - не список. Товар - реквизит на форме.
(3) у меня тоже выбирает минусы, но есть 3 товара, у которых непонятно что творится:

http://gyazo.com/2bb11a364a0e2d9f092a72539d787db6

.. таймаут.. реиндексирую..
5 1dvd
 
17.10.14
09:23
Второе, что бы я посмотрел - нет ли документов без даты
6 aka AMIGO
 
17.10.14
09:24
(5) Интересное замечание :) Но таких нет однозначно..
7 1dvd
 
17.10.14
09:26
ну, и третье - пересчет итогов, если время позволяет
8 aka AMIGO
 
17.10.14
09:28
(7) Угу, я в ТИИ поставил 2 галки - реиндекс и пересчет итогов..
Пока идет пересчет регистров. Долго - это точно, но эксперимент на локальной копии, подожду.. Момент-то неприятный..
9 aka AMIGO
 
17.10.14
09:36
Вот чудеса!
ничего не поменялось..
http://gyazo.com/1f5e26aaba14ccb3787bb30bfcba5eb0

те-же самые 3 товара

Ладушки, просто буду помнить, что черный запрос может выдать забавные результаты, пользоваться с оглядкой..

Спасибо за участие!.. Ответ найден..
10 Масянька
 
17.10.14
09:37
(9) ТиС?
11 aka AMIGO
 
17.10.14
09:39
(10) конфа стаааарая, впоследствии она стала называться ТиС, а до того - "Торговля"
ну, родственники.. 2001-й год рождения
12 Масянька
 
17.10.14
09:40
(11) Посмотри в справочнике Номенклатура остатки по этим товарам (в справочнике кнопка "Остатки") - нет ли там минусов?
13 Ёпрст
 
17.10.14
09:41
(0) вот это г..о выкинь
|Условие((Запрос.КолКонОст<0)
14 Ёпрст
 
17.10.14
09:41
и больше так не делай
15 Paul_Nevada
 
17.10.14
09:46
(14) почему?) у меня это условие нормально отрабатывает.
16 Paul_Nevada
 
17.10.14
09:46
(9) так и что за ответ-то получен?
17 Ёпрст
 
17.10.14
09:46
(15) наивный
18 Paul_Nevada
 
17.10.14
09:55
(17) )))
19 aka AMIGO
 
17.10.14
09:56
(12) Нет, там честный "плюс"

(13) это г.. я подсмотрел в форуме.
Иначе как условие в запрос написать? Не понимает
|Условие (КолКонОст<0);
это ошибка.

Можно без условия, с проверкой в цикле по выборке результатов запроса. Что и проделаю чуть позже.

(16) там-же ответ-то написан: Черный Запрос применять с оглядкой на взбрыкивания :)
20 aka AMIGO
 
17.10.14
10:06
Мммм.. Всё, мужики, и дамы! Сообразил..
Это вмешивается второе измерение!
Сейчас буду искать, в каком доке движения без указания Второго измерения регистра Заказы..
Или кривое указание..
21 aka AMIGO
 
17.10.14
10:17
(20) + нашел..
Таким образом, Запрос реабилитирован..
Работает-таки правильно |Условие((Запрос.КолКонОст<0);..
22 aka AMIGO
 
17.10.14
10:19
в Модуле документа "Приходная", в первой строке, стоит комментарий:
//***************Модуль конвертирован с версии 7.0***************

вот, с тех пор, видно, и кривизна запланирована..
это год примерно 2000-ный -2002-й
23 lavalit
 
17.10.14
10:23
(22) вопрос не по теме... так отмечаешь тему  "Решенной"? хотелось бы свои темы поотмечать ... спс))
24 Ёпрст
 
17.10.14
10:24
(21) не работает это правильно и никогда не работало.
Возьми остаток не на ТА, или, добавь еще любую функцию в запрос.
Ужаснись
25 Ёпрст
 
17.10.14
10:24
Ну а для понимания, что ЭТО - советую открыть профайлер и поглядеть ЧТО это.
26 aka AMIGO
 
17.10.14
10:27
(23) у меня в личке "Инженер знаний", вот и выдано право на исправление названия темы.

(24) Да я переделал уже код, и, что с таким условием в Запросе, что с условием в цикле обхода запроса, - результаты одинаковы..
Только в цикле я уже не получаю расхождений в остатках..
27 aka AMIGO
 
17.10.14
10:28
+26 но всё равно к таким условиям буду относиться настороженно
28 aka AMIGO
 
17.10.14
10:30
(25) Сейчас пока не буду экспериментировать, шефка зуб нарисовала, вчера должен был сваять отчетец.. А тут- такая вот оказия..