Почему не работает запрос, а в консоли работает?

1. user1041556 15.11.22 14:40 Сейчас в теме
PS: Этот пост неактуален. Я переделал с нуля и у мен все получилось. У меня от усталости были элементарные ошибки, хотя бы в названии переменных (в параметрах одни, в запросе другие). Всем спасибо.
Мне нужно получить разницу в кол-ве (приход-расход) на дату.
В консоли сделал запрос и добавил 3 параметра, выводит из регистра накопления как нужно.
(скрин прилагаю)

Потом этот запрос в виде функции я поместил в Общие модули - Общего назначения.
Создал форму для выбора параметров (номенклатура, дата, характеристика).
Но результата добиться не могу. Что-то не так с датой.
Пробовал запрос поместить прямо в код формы - результат тоже 0.
Подскажите, почему не работает мой код, но работает в консоли
Процедура КнопкаСформироватьНажатие(Кнопка)
    
       ITEM = ЭлементыФормы.Товар.Значение.Код;
    LENS = ЭлементыФормы.Диоптрия.Значение.Наименование;
    MOMENT = Дата(ЭлементыФормы.Дата.Значение);

    Запрос = Новый Запрос;      
    Запрос.Текст = 
        "ВЫБРАТЬ
            |    МойСкладТашкентОстатки.Номенклатура,
            |    МойСкладТашкентОстатки.Диоптрия,
            |    МойСкладТашкентОстатки.Склад,
            |    МойСкладТашкентОстатки.Основание,
            |    МойСкладТашкентОстатки.Момент,
            |    МойСкладТашкентОстатки.КоличествоОстаток КАК КоличествоОстаток,
            |    МойСкладТашкентОстатки.СуммаОстаток,
            |    МойСкладТашкентОстатки.ЦенаЗаШтукуОстаток,
            |    МойСкладТашкентОстатки.СебестоимостьОстаток
            |    ИЗ
               |    РегистрНакопления.МойСкладТашкент.Остатки КАК МойСкладТашкентОстатки
            |    ГДЕ
            |    МойСкладТашкентОстатки.Основание.Дата <= &MOMENT
            |    И  МойСкладТашкентОстатки.Номенклатура.Код = &ID
            |    И   МойСкладТашкентОстатки.Диоптрия.Наименование = &DIO
            |    ИТОГИ
            |    СУММА(КоличествоОстаток)
            |    ПО
            |    ОБЩИЕ";
    Запрос.УстановитьПараметр("ID", ITEM);
    Запрос.УстановитьПараметр("DIO", LENS);
    Запрос.УстановитьПараметр("MOMENT", MOMENT);

Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

//выводим итоговые данные
Если Выборка.Следующий() Тогда
    Сообщить("Итого: " + Выборка.КоличествоОстаток);
    КоличествоНаСкладе = Выборка.КоличествоОстаток;
КонецЕсли;        
    
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tamidi 8 15.11.22 14:48 Сейчас в теме
(1)Во-первых условия по регистру перенесите в параметры виртуальной таблицы
Во-вторых, если вы хотите получить остатки, то причем тут документ-основание? У вас приход-расход делается различными документами и соответственно с этим реквизитом никогда не свернется
9. spacecraft 15.11.22 15:24 Сейчас в теме
(6)
Подскажите как верно.
Реквизит Дата "Дата".
Формы обычные.

(1)
MOMENT = Дата(ЭлементыФормы.Дата.Значение);

Дата от Даты? И что получится?
11. user1831019 15.11.22 15:26 Сейчас в теме
12. spacecraft 15.11.22 15:26 Сейчас в теме
15. user1831019 15.11.22 15:31 Сейчас в теме
(12) Не напоминай... Как то раз в костюме при галстуке зашел в ЦУМ (не Москва, не бойтесь) купить клей Момент (нужен был, чтобы коллеге в день свадьбы приклеить плакаты на каркас из малоточных коробов и все это приклеить к воздушным шарикам). Пакета с собой не было (только рулон с плакатами из типографии), поэтому попросил пару фасовочных пакетов...

Я взгляд той продавщицы никогда не забуду...
3. user1831019 15.11.22 14:52 Сейчас в теме
А что не так-то? На скриншоте линейная ТЗ. А в коде - иерархическое ДЗ (обход по итоговым группировкам). Все красиво.
4. tamidi 8 15.11.22 15:11 Сейчас в теме
(3)Ну если вам все равно как получить результат, лишь бы ответ сошелся, то ваше дело.
У вас какие формы? обычные?
Какого типа реквизит Дата?из текста это непонятно.
5. user1831019 15.11.22 15:15 Сейчас в теме
(4) МНЕ??? Мне вообще никакой результат не нужен...
7. tamidi 8 15.11.22 15:18 Сейчас в теме
(5)Да блин, с вашими user-ами запутаешься вконец:)
8. user1831019 15.11.22 15:22 Сейчас в теме
(7) Ну, пока администрация форума позволяет пользоваться такими никами - будем пользоваться. Я предлагал им принудительно заставлять новобранцев изменять "автоник", на что-то более персонализированное. Тишина.
Поэтому я пользуюсь правилом Райтшулера: чтобы кого-то переубедить - надо довести его мнение до абсурда.
6. user1041556 15.11.22 15:17 Сейчас в теме
(4) Подскажите как верно.
Реквизит Дата "Дата".
Формы обычные.
10. user1831019 15.11.22 15:25 Сейчас в теме
(6) Что "верно"? Я тебе в (3) ответил. В консоли у тебя таблица значений, а в программном коде - дерево значений с обходм только верхнего уровня группировки (то есть только первой строки).

Или может соизволишь объяснить, что не так работает? Нам тут в угадайку поиграть?
16. tamidi 8 15.11.22 15:31 Сейчас в теме
(10)Мне сначала показалось, что он получает итоги по номенклатуре , невнимательно глянула, а тут итог общий. Тогда еще и в запросе проблема
Хотя нет, там же отбор по номенклатуре.
13. tamidi 8 15.11.22 15:28 Сейчас в теме
(6)А дата это у вас реквизит формы? Или объекта?
Если вы будете через ЭлементыФормы.Дата обращаться к реквизиту объекта, то получите совсем не то, что ожидаете.
Посмотрите отладчиком что у вас в ЭлементыФормы.Дата, может какая мысль появится.
14. user1041556 15.11.22 15:31 Сейчас в теме
17. user1831019 15.11.22 15:33 Сейчас в теме
(13)
может какая мысль появится.
Блин, моя любимая фраза!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот