Имя: Пароль:
1C
1С v8
Разница в регистре
0 Лиза777
 
24.09.13
09:02
Делаю запрос к регистру "СвободныеОстатки" по Товар1 и Склад1 количество 1, а если в запросе указываю регистр не просто свободнрые остатки, а "СвободныеОстатки.Остатки", то остаток 2, как так может быть?
1 shuhard
 
24.09.13
09:02
(0) так и должно быть
2 Ненавижу 1С
 
гуру
24.09.13
09:08
показывай уже свои запросы и другие части тела
3 Лиза777
 
24.09.13
09:14
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    СвободныеОстатки.Регистратор,
                   |    СвободныеОстатки.Количество
                   |ИЗ
                   |    РегистрНакопления.СвободныеОстатки КАК СвободныеОстатки
                   |ГДЕ
                   |    СвободныеОстатки.Номенклатура = &Ном
                   |    И СвободныеОстатки.Склад = &Склад";
    Запрос.УстановитьПараметр("Ном", Справочники.Номенклатура.НайтиПоКоду("33623"));              
    Запрос.УстановитьПараметр("Склад",Справочники.Склады.НайтиПоКоду("00002"));
    Запрос.Выполнить().Выгрузить().ВыбратьСтроку();
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    СвободныеОстаткиОстатки.Номенклатура,
                   |    СвободныеОстаткиОстатки.КоличествоОстаток
                   |ИЗ
                   |    РегистрНакопления.СвободныеОстатки.Остатки КАК СвободныеОстаткиОстатки
                   |ГДЕ
                   |    СвободныеОстаткиОстатки.Номенклатура = &Ном
                   |    И СвободныеОстаткиОстатки.Склад = &Склад";
    Запрос.УстановитьПараметр("Ном", Справочники.Номенклатура.НайтиПоКоду("33623"));              
    Запрос.УстановитьПараметр("Склад",Справочники.Склады.НайтиПоКоду("00002"));
    Запрос.Выполнить().Выгрузить().ВыбратьСтроку();
4 Лиза777
 
24.09.13
09:15
вот в первом запросе 1 штука, а вдругом 2 штуки.
(1) как так и должно быть? Регистр один - "свободные остатки" и результат должен быть один
5 Ненавижу 1С
 
гуру
24.09.13
09:15
(4) там что и там и там по одной строке что-ли?
6 Галахад
 
гуру
24.09.13
09:16
Ну, движения же, и остатки. См (1).
7 Cyberhawk
 
24.09.13
09:17
(4) "результат должен быть один" отчего же?
Как бы Запрос.Выполнить().Выгрузить().ВыбратьСтроку(); еще не есть результат запроса, результатом запроса может быть и табличка из нескольких строк...
8 Cyberhawk
 
24.09.13
09:18
9 Ненавижу 1С
 
гуру
24.09.13
09:18
(7) не тупи, прочти про ВыбратьСтроку()
10 mzelensky
 
24.09.13
09:19
(3) Потому что в первом запросе ты получила только 1 строку (из 2 и более), а во втором запросе ты получила итоговую цифру.

Вместо

"Запрос.Выполнить().Выгрузить().ВыбратьСтроку();"

Напиши

"Запрос.Выполнить().Выгрузить()"

Это будет таблица значений и посмотри ее
12 МойКодУныл
 
24.09.13
09:21
(10) выбрать строку просто выводит таблицу ЦЕЛИКОМ, предлагая выбрать одну строку. Пользуюсь, когда нужно в "предприятии" быстро смотреть результат запроса.
13 slin-dev
 
24.09.13
09:22
В первом запросе используется физическая таблица, во втором - виртуальная. С чего бы одинаковый результат?
14 Cyberhawk
 
24.09.13
09:22
(9) исправился, благодарю.
Тогда, если и там и там по одной строке выводится, то пересчет итогов в ТиИ должен помочь?
15 Ненавижу 1С
 
гуру
24.09.13
09:22
жду ответа автора на (5), а лучше скрин-шоты, ну и фото развернутое
16 ChiginAV
 
24.09.13
09:27
(3) В 8.2 же вроде надо выбирать все поля, которые есть в условиях (это про 1й запрос)?
Ну и условие по дате во 2м запросе не помешает
17 shuhard
 
24.09.13
09:28
(4) бред
18 Ненавижу 1С
 
гуру
24.09.13
09:28
(16) что за бред ты несешь людям?
19 Лиза777
 
24.09.13
09:34
(5) мне нужен итог по этому товару, то есть реальный остаток. Так как в рабочем месте менеджера в колонке "свободный остаток" стоит 2 штуки, а по универсальному отчету "остатки и обороты" по регистру "свободные остатки" остаток 1 штука.
Вот и запросы разное показывают.
20 Лиза777
 
24.09.13
09:36
И тот и другой запрос возвращает одну строку
21 Ненавижу 1С
 
гуру
24.09.13
09:37
(20) то есть всего было одно движение, тогда либо пересчет итогов, либо не верю и требую более ню-фото
22 Лиза777
 
24.09.13
09:39
(21) да там только перемещение товаров
23 dmpl
 
24.09.13
09:39
(4) Нет у вас корректировок записей регистров, проведение которых отменено? Если добавить условие И СвободныеОстатки.Активность = ИСТИНА - ничего не меняется?
24 Лиза777
 
24.09.13
09:40
(21) пересчёт итогов - этого я и боялась. У нас база 50 Гигобайт. Это в конфигураторе в ТИИ ставить галку "пересчёт итогов"?
25 Лиза777
 
24.09.13
09:42
(23) нет не поменялось
26 Ненавижу 1С
 
гуру
24.09.13
09:42
(24) у вас база же SQL-ная? попробуйте просто в монопольном режиме итоги пересчитать
27 Лиза777
 
24.09.13
09:43
(26) да sql-ная. То есть в режиме 1с:предприятие?
28 Ненавижу 1С
 
гуру
24.09.13
09:43
у нас когда сервер упал пришлось ручками итоги восстанавливать, точнее ручками удалить неверные, а потом рассчитать средствами 1С
29 Ненавижу 1С
 
гуру
24.09.13
09:43
(27) да
30 Лиза777
 
24.09.13
09:44
(29) там стоит по всем регистрам итоги рассчитаны по 31.08.2013
31 dmpl
 
24.09.13
09:44
Но вообще, это же регистр остатков. Поэтому, в общем случае остатки (2-й запрос) <> обороты (1-й запрос).
32 Ненавижу 1С
 
гуру
24.09.13
09:48
(30) я понимаю, но надо попробовать откатить на старый период и накатить потом снова
33 Лиза777
 
24.09.13
09:50
(31) но если в оборотах только один документ прихода в количестве 1 штука, то в остатках должна быть тоже 1 штука!
34 Лиза777
 
24.09.13
09:50
(32) откатить на месяц хотя бы? не больше7
35 Ненавижу 1С
 
гуру
24.09.13
09:51
хотя у тебя остатки не на конкретную дату, хм...
36 Ненавижу 1С
 
гуру
24.09.13
09:52
попробуй все таки рассчитать итоги, да
правда есть шанс, что всё таки понадобится SQL-вмешательство
37 dmpl
 
24.09.13
09:53
(33) 1 документ может сделать несколько движений. Более того, один документ может по этому регистру сделать как приход, так и расход (а в первом запросе это вообше не учтено - количество прихода и расхода просто сложатся). Но вообще намек на идеологически неверное использование реальной таблицы для получения остатка...
38 Ёпрст
 
24.09.13
09:54
(0) а как ты движения регистра с его останками сравниваешь ?
39 Ёпрст
 
24.09.13
09:55
Тут одни грибники в ветке..
40 Лиза777
 
24.09.13
09:55
(39) как хорошо, что тут пробегают такие умные парни как ты. Ну-ка скажи как правильно-то!
41 Ненавижу 1С
 
гуру
24.09.13
09:57
(39) самый умный?
42 Ёпрст
 
24.09.13
09:57
(40) правильно чего ?

У тебя в табличке движений по данной номенклатуре и данному складу будет в результате 1000 строк, в ВТ останки - одна строка.. Чего ты вообще сравниваешь ?
43 Ненавижу 1С
 
гуру
24.09.13
09:59
(42) ты вообще ветку читал или просто осуждаешь?
например ткнись в (20)
44 Ёпрст
 
24.09.13
10:01
(43) Всё не смотрел
45 dmpl
 
24.09.13
10:02
Кстати, а в перемещении сколько движений по этому регистру?
46 Ёпрст
 
24.09.13
10:03
Ну пересчитай итоги только по этому регистру тогда.
47 Ёпрст
 
24.09.13
10:04
можешь, и табличку итогов удалить совсем, для "верности"
48 Ненавижу 1С
 
гуру
24.09.13
10:05
на копии, на копии, а то насоветуют
49 Ёпрст
 
24.09.13
10:07
Хотя, можешь и в таблике итогов delete  сделать по условию.
50 Ёпрст
 
24.09.13
10:07
Тока, у тебя видать , это не единственные неверные итоги.
51 Пеппи
 
24.09.13
10:13
Странно что никто не сказал чтобы смотрела итог запроса без ВыбратьСтроку()
52 Пеппи
 
24.09.13
10:14
или по этой номенклатуре никогда не было больше движений?
Даже Ёпрст сбили с толку)
53 Ненавижу 1С
 
гуру
24.09.13
10:17
(51) странно, что написала текст, но не подумала перед этим
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.