Условие запроса в списке со справочниками
Запрос.Текст =
" ВЫБРАТЬ
| ДефицитПродукцииОстатки.Документ КАК Документ,
| ДефицитПродукцииОстатки.Номенклатура КАК Номенклатура,
| ДефицитПродукцииОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ДефицитПродукции.Остатки(&ДатаОстатков) КАК ДефицитПродукцииОстатки
|ГДЕ
| ДефицитПродукцииОстатки.КоличествоОстаток > 0 И
| ДефицитПродукцииОстатки.Номенклатура в (&СпТовары) //вот это условие не отрабатывается
|УПОРЯДОЧИТЬ ПО Документ.МоментВремени";
сзНом.ЗагрузитьЗначения(ЭтотОбъект.Товары.ВыгрузитьКолонку("Номенклатура"));
Запрос.УстановитьПараметр("ДатаОстатков",МоментСразуДоДокумента);
Запрос.УстановитьПараметр("СпТовары",сзНом);
ПоказатьПо теме из базы знаний
- Работа со справочниками 1С:Предприятие7.7 ("все под рукой")
- Быстрый отбор в форме списка (выбора) справочника
- Преобразование отбора компоновки данных к линейному условию для запроса
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Авторизация: создание справочника "Пользователи" в 1C:Предприятие 8.3
Найденные решения
переделал на массив, нет результата
Запрос.Текст =
" ВЫБРАТЬ
| ДефицитПродукцииОстатки.Документ КАК Документ,
| ДефицитПродукцииОстатки.Номенклатура КАК Номенклатура,
//| ДефицитПродукцииОстатки.ЗаказПоставщику КАК ЗаказПоставщику,
| ДефицитПродукцииОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ДефицитПродукции.Остатки(&ДатаОстатков) КАК ДефицитПродукцииОстатки
|ГДЕ
| ДефицитПродукцииОстатки.КоличествоОстаток > 0 И
| ДефицитПродукцииОстатки.Номенклатура в (&СпТовары)
|УПОРЯДОЧИТЬ ПО Документ.МоментВремени";
//| (ДефицитПродукцииОстатки.ЗаказПоставщику = (&ЭтотОбъектСсылка)) ИЛИ (ДефицитПродукцииОстатки.ЗаказПоставщику = NULL)";
дрОбъект = ЭтотОбъект.тотОбъект.ПолучитьОбъект();
МоментСразуДоДокумента = Новый Граница(дрОбъект.МоментВремени(),ВидГраницы.Исключая);
сзНом = Новый Массив;
сзНом = ЭтотОбъект.тотОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
Запрос.УстановитьПараметр("ДатаОстатков",МоментСразуДоДокумента);
Запрос.УстановитьПараметр("СпТовары",сзНом);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Номенклатура);
КонецЦикла;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Бывает, что обработчик запросов тупо не понимает тип в списке значений. Я всегда инициировал такие параметры явно, с указанием типа значений списка. К тому же проверьте колонку "Номенклатура" на пустые значения (это еще один вариант раскосяка). Ну и проверьте отладчиком, что попадает в сзНом.
сзНом.ЗагрузитьЗначения(ЭтотОбъект.Товары.ВыгрузитьКолонку("Номенклатура"));
Бывает, что обработчик запросов тупо не понимает тип в списке значений. Я всегда инициировал такие параметры явно, с указанием типа значений списка. К тому же проверьте колонку "Номенклатура" на пустые значения (это еще один вариант раскосяка). Ну и проверьте отладчиком, что попадает в сзНом.
переделал на массив, нет результата
Запрос.Текст =
" ВЫБРАТЬ
| ДефицитПродукцииОстатки.Документ КАК Документ,
| ДефицитПродукцииОстатки.Номенклатура КАК Номенклатура,
//| ДефицитПродукцииОстатки.ЗаказПоставщику КАК ЗаказПоставщику,
| ДефицитПродукцииОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ДефицитПродукции.Остатки(&ДатаОстатков) КАК ДефицитПродукцииОстатки
|ГДЕ
| ДефицитПродукцииОстатки.КоличествоОстаток > 0 И
| ДефицитПродукцииОстатки.Номенклатура в (&СпТовары)
|УПОРЯДОЧИТЬ ПО Документ.МоментВремени";
//| (ДефицитПродукцииОстатки.ЗаказПоставщику = (&ЭтотОбъектСсылка)) ИЛИ (ДефицитПродукцииОстатки.ЗаказПоставщику = NULL)";
дрОбъект = ЭтотОбъект.тотОбъект.ПолучитьОбъект();
МоментСразуДоДокумента = Новый Граница(дрОбъект.МоментВремени(),ВидГраницы.Исключая);
сзНом = Новый Массив;
сзНом = ЭтотОбъект.тотОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
Запрос.УстановитьПараметр("ДатаОстатков",МоментСразуДоДокумента);
Запрос.УстановитьПараметр("СпТовары",сзНом);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Номенклатура);
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот