Имя: Пароль:
1C
 
запрос не верно формирует остатки
0 Power3D
 
08.09.23
09:21
Всем привет, подскажите пожалуйста.
Выполняю ниже представленный запрос выдает остаток 1, этот же запрос формирую в самой 1с толстый клиент выдает остаток 0, подскажите что может быть не так.

Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
				   |	ТоварыНаСкладахОстатки.КоличествоОстаток
				   |ИЗ
				   |	РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Артикул) КАК ТоварыНаСкладахОстатки
				   |ГДЕ
				   |	ТоварыНаСкладахОстатки.Склад = &Склад";
																																				
	Запрос.УстановитьПараметр("Артикул", Парам);  
	Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("000000001"));
	Запрос.УстановитьПараметр("Дата", Новый Граница(ТекущаяДата(), ВидГраницы.Включая));
											   
	Возврат Запрос.Выполнить().Выгрузить();
1 Ногаминебить
 
08.09.23
09:21
Посмотреть под отладкой параметры запроса перед выполнением там и там, сравнить.
2 Волшебник
 
08.09.23
09:21
Другие параметры
3 Power3D
 
08.09.23
09:23
(1) Сравнивал они верные те которые нужны
4 Power3D
 
08.09.23
09:23
(2) Какие другие? дату ставил в запрос, все так же
5 Волшебник
 
08.09.23
09:24
(4) Это Вы нам расскажите.
6 Power3D
 
08.09.23
09:26
(5) отправляю только эти параметры
7 majkk
 
08.09.23
09:26
(4) Продолжайте поиски. Тут только два пути: либо плюнете на это, либо найдете.
8 Donkey_hot
 
08.09.23
09:27
(0) Второй раз "в самой 1С"... а первый раз где?
9 Donkey_hot
 
08.09.23
09:28
(0) И склад все-таки лучше бы перенести в параметры виртуальной таблицы. Хотя это к вопросу отношения не имеет.
10 Power3D
 
08.09.23
09:28
(8) консоль запросов из под толстого клиента
11 Power3D
 
08.09.23
09:28
(9) так же возвращает 1
12 Power3D
 
08.09.23
09:29
я уже не знаю в какую сторону ковать , почти отчаялся!
13 shuhard
 
08.09.23
09:30
(12) иди в курьеры (с)
14 majkk
 
08.09.23
09:31
(12) Во все те же стороны ковать. Проверять параметры. Ничего не поделаешь, такова профессия. Можно четыре часа проверять два параметра, пока не поймешь, какой ты идиот
15 Donkey_hot
 
08.09.23
09:32
(12) Смущает Номенклатура = &Артикул. Часом не сравниваете ссылку со строкой? Правда, непонятно, откуда ноль тогда, должно просто пустую таблицу формировать.
16 Power3D
 
08.09.23
09:32
(15) нее я передаю запись справочника номенклатура
17 majkk
 
08.09.23
09:34
(16) В одном случае одну, а в другом другую
18 Волшебник
 
08.09.23
09:34
(16) Покажите программный код установки параметра
19 Donkey_hot
 
08.09.23
09:37
(0) С границей тоже странная затея. Вам так принципиально, будет остаток на начало или конец той самой секунды, когда нажали кнопку? Обычно или актуальные остатки получают или на момент времени документа (включая или исключая оный)
20 Power3D
 
08.09.23
09:39
(19) я и просто ТекущаяДата() передавал
21 Donkey_hot
 
08.09.23
09:40
(20) А в консоли тоже текущую секунду указывали?
22 Power3D
 
08.09.23
09:42
(21) Да, дата до секунды
23 Donkey_hot
 
08.09.23
09:43
(22) Ну в общем, вариантов тут не много: различаются склады, различается номенклатура, различается дата. Проверить каждый несложно.
24 Power3D
 
08.09.23
09:44
(23) Хорошо проверю в тысячный раз это еще раз
25 Donkey_hot
 
08.09.23
09:47
(24) Такстоп, а дата-то вообще не установлена в параметрах виртуальной таблицы... В консоли тоже без даты был запрос?
26 Power3D
 
08.09.23
09:49
(25) ставил я дату в запросе была она там, я 100 вариантов перебирал по всякому
27 Power3D
 
08.09.23
09:50
это какой то глюк 1с
28 Donkey_hot
 
08.09.23
09:51
ВЫБРАТЬ
|    ТоварыНаСкладахОстатки.КоличествоОстаток
|ИЗ
|    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки

Вот такой запрос, вообще без параметров, одинаковые результаты выдает?
29 Волшебник
 
08.09.23
09:53
(27) Не надо грязи. Это у Вас руки кривые.
30 Power3D
 
08.09.23
09:59
(28) он выдает общий остаток по всем номенклатура, в котором интересующая меня номенклатура так же с остатком 1
31 Табуретко
 
08.09.23
10:02
(30) Читать (1) долго думать...
32 Donkey_hot
 
08.09.23
10:03
(30) Результат в консоли и в коде идентичен?
33 AlexeyKh
 
08.09.23
10:08
и ни кто не поинтересовался, когда, где в каком контексте выполняется запрос в программе!
если в момент проведения документа, и этот же запрос в другом сеансе в консоли
естественно они покажут разные данные!

Блокировки и транзакции кто будет учитывать?
34 Power3D
 
08.09.23
10:10
(32) в консоль 0 в конфигураторе 1
35 Power3D
 
08.09.23
10:11
(33) выполняю код в процедуре обработка проведения, проводу уже проведенный документ который отразил движения расхода
36 azernot
 
08.09.23
10:13
(35) А если распровести этот документ и выполнить запрос в консоли?
37 Power3D
 
08.09.23
10:15
(33) Ну ты реально дал тему, выполнил этот код из под обработки все чотка 0, как в контексте документа выполнить этот код верно)))
38 Power3D
 
08.09.23
11:11
тут же есть умные люди) подскажите как получить остатки в момент проведения документа)
39 azernot
 
08.09.23
11:22
(38) Например запросом. Просто надо иметь в виду, что эти остатки будут без учета движений проводимого документа.
Или перед выполнением запроса надо записать движения по нужному регистру.