|   |   | 
| 
 | в печатной форме добавить остатки номенклатуры | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Не знаю, перезапустил конфигуратор, открыл - всё тоже самое и результат запроса не пустой(кеш не чистил)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |