|
в печатной форме добавить остатки номенклатуры | ☑ | ||
---|---|---|---|---|
0
who respawn
28.11.23
✎
10:45
|
привет, есть печатная форма у счета на оплату, нужно сделать в ней колонку остатки по конкретному складу
в общем там в цикле перебирается результат запроса для вывода параметров (номенклатура колво и т д) я в цикле написал запрос Запрос1 = Новый запрос; Запрос1.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.СерияНоменклатуры КАК СерияНоменклатуры, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки |ГДЕ | ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура | И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры | И ТоварыНаСкладахОстатки.Склад = &Склад"; Запрос1.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("Б346")); Запрос1.УстановитьПараметр("Номенклатура",ВыборкаСтрокТовары.Товар); Запрос1.УстановитьПараметр("ХарактеристикаНоменклатуры",ВыборкаСтрокТовары.Характеристика ); Рез1 = Запрос1.Выполнить().Выгрузить(); Для каждого ОстаткиНом из Рез1 цикл КонецЦикла; в консоли запросов остатки получаю, а в печатной форме в цикл не заходит отладка, мимо проскакивает что не так? |
|||
1
p-soft
28.11.23
✎
10:55
|
новое поколение умных платформ 1С: тут она видит попытку использования запроса в цикле и нагло игнорит!
|
|||
2
who respawn
28.11.23
✎
11:22
|
(1) это подсказка какая то? как связано что запрос в цикле и мочя проблема
|
|||
3
SleepyHead
28.11.23
✎
11:36
|
(2) Это был стёб, похоже. Вы не задаете параметры виртуальной таблицы остатков. Результат запроса у вас пустой.
|
|||
4
who respawn
28.11.23
✎
11:37
|
(3) ну я понял что стёб, в консоли же я тоже не задаю никакие параметры
|
|||
5
Tatitutu
28.11.23
✎
11:40
|
(2)
1.НужныйСклад = Справочники.Склады.НайтиПоКоду("Б346"); уже уберешь поиск каждый раз из цикла 2. Проверь отладчиком - значения параметров 3. Тебе подсказывают : что НЕХОРОШО так делать , в цикле Запрос каждый цикл выполнять простое : ОДНИМ ЗАПРОСОМ сначала получили все остатки в таблицу значений (с отбором по складу, номенклатуре и характеристике) а потом уже в цикле - выводе на печать получай данные из ТЗ по сложнее ЗАПРОСОМ получили все остатки и объединили с запросом вывода на печать |
|||
6
who respawn
28.11.23
✎
11:42
|
(5) 1) я понимаю это
2) параметры ок 3)понимаю, хочу сейчас просто чтобы результат не был пустым |
|||
7
Tatitutu
28.11.23
✎
11:42
|
(3) все он задает, читай внимательнее
- у него Запрос и потом ВыборкаСтрокТовары Запрос1.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("Б346")); Запрос1.УстановитьПараметр("Номенклатура",ВыборкаСтрокТовары.Товар); Запрос1.УстановитьПараметр("ХарактеристикаНоменклатуры",ВыборкаСтрокТовары.Характеристика ); |
|||
8
Tatitutu
28.11.23
✎
11:43
|
(6) ну и посмотри в отладчике на строке:
Запрос1.УстановитьПараметр("ХарактеристикаНоменклатуры",ВыборкаСтрокТовары.Характеристика ); чему у тебя равно Склад ВыборкаСтрокТовары.Товар ВыборкаСтрокТовары.Характеристика |
|||
9
who respawn
28.11.23
✎
11:45
|
(8) я ж говорю всё ок с параметрами
склад - нужный мне склад товар - номенклатура из документа, характеристика пустая, её нет в документе(не выбрана) |
|||
10
who respawn
28.11.23
✎
11:46
|
(9) + этот же запрос в консоли получает остаток...
|
|||
11
vicof
28.11.23
✎
11:57
|
(10) Сохрани обработку и перезалей)
|
|||
12
who respawn
28.11.23
✎
11:58
|
(11) куда перезалить? я открываю через файл - открыть
|
|||
13
vicof
28.11.23
✎
11:59
|
(9) Ну и пустая это не очень однозначно.
ПустаяСсылка, Неопределено, NULL? |
|||
14
who respawn
28.11.23
✎
12:00
|
(13) да я уже удалил вообще характеристику, просто остаток без характеристики получить хотел - тот же результат
|
|||
15
Ногаминебить
28.11.23
✎
12:04
|
Печатная форма в конфигурации или через внешнюю печатную форму? Может не там правишь вообще код?
"в печатной форме в цикл не заходит отладка, мимо проскакивает" вот этот момент подозрителен. Посмотри, может он и перед циклом не остановится? |
|||
16
who respawn
28.11.23
✎
12:04
|
(15) останавливается
печатная форма - внешняя обработка |
|||
17
Гена
28.11.23
✎
12:04
|
А зачем в печатном счёте на оплату чужому покупателю знать какие-то наши остатки по нашему же складу?
|
|||
18
who respawn
28.11.23
✎
12:05
|
(17) да незачем, эта форма будет для личного пользования, по-людски не хотят, хотят так
|
|||
19
Гена
28.11.23
✎
12:06
|
(18) Чушь. Уточните. Скорее всего они хотят видеть остатки в ТЧ документа, но никак не в печатной форме.
|
|||
20
who respawn
28.11.23
✎
12:09
|
(19) нет) они хотят печатать "Счет на оплату покупателя" и видеть колонку "Остатки на конкретном складе"
|
|||
21
Ногаминебить
28.11.23
✎
12:17
|
(16)
Отладчиком смотрим Рез1.количество() Если там 0 - проверяем тем же отладчиком параметры запроса. Особое внимание уделяем типам значений в этих параметрах. Сравниваем с консолью. |
|||
22
who respawn
28.11.23
✎
12:21
|
(21) дело в том, что я в консоли поставил значения, которые отладчик показал
|
|||
23
who respawn
28.11.23
✎
12:24
|
(21) конечно там 0, было бы не 0, отладчик бы не проскакивал
|
|||
24
Доминошник
28.11.23
✎
12:34
|
Из написанного выше - большое подозрение, что Справочники.Склады.НайтиПоКоду("Б346") возвращает пустую ссылку
Или - несколько складов имеет одинаковый код. |
|||
25
who respawn
28.11.23
✎
12:39
|
(24) точно нет
|
|||
26
Галахад
28.11.23
✎
12:41
|
Возможно ВыборкаСтрокТовары.Товар это строка.
|
|||
27
Tatitutu
28.11.23
✎
12:43
|
(0) ты в коде забыл
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура //ну да, ладно НужныйСклад = Справочники.Склады.НайтиПоКоду("Б346"); Сообщить(НужныйСклад); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.СерияНоменклатуры КАК СерияНоменклатуры, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладахОстатки.Остатки(, Склад = &НужныйСклад) КАК ТоварыНаСкладахОстатки"; Запрос.УстановитьПараметр("НужныйСклад",НужныйСклад); |
|||
28
SleepyHead
28.11.23
✎
14:06
|
(7) И где он в (0) задает параметры виртуальной таблицы?
|
|||
29
who respawn
28.11.23
✎
14:21
|
Не знаю, перезапустил конфигуратор, открыл - всё тоже самое и результат запроса не пустой(кеш не чистил)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |