7.7 Условия в запросах 1С

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем nitron, 1 июл 2008.

  1. TopicStarter Overlay
    nitron
    Offline

    nitron

    Регистрация:
    1 июл 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Не подскажите люди добрые почему не работает такая конструкция
    Код:
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с '27.06.08' по '27.06.08';
    |ТекущийДокумент = Регистр.ОстаткиТоваров.ТекущийДокумент;
    |ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара;
    |Функция ОстатокТовараПриход = Приход(ОстатокТовара);
    |Функция ОстатокТовараРасход = Расход(ОстатокТовара);
    |Группировка ТекущийДокумент;
    |Условие(ТекущийДокумент в СписЗнач);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    
    СписЗнач - СписокЗначений с документами Если в списке один документ то все прекрасно работает, если больше то запрос возвращается пустой
  2. Чешир
    Offline

    Чешир

    Регистрация:
    10 ноя 2006
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
  3. TopicStarter Overlay
    nitron
    Offline

    nitron

    Регистрация:
    1 июл 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    В списке значений тип докумет
    Код:
    Док=СоздатьОбъек("Документ.Расходная");
    Док.ВыбратьДокументы(НачДата,КонДата")
    Пока Док.ПолучитьДокумент()=1 цикл
    СписЗнач.ДобавитьЗначение(Док.ТекущийДокумент());
    КонецЦикла
    
  4. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Ничего умного в голову не пришло...
    Спрошу только почему в запросе жестко задан период?
    и может в списке находятся документы с датой отличной от периода в запросе?
  5. TopicStarter Overlay
    nitron
    Offline

    nitron

    Регистрация:
    1 июл 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Смысл такой надо получить движения по регистру выполненные только определенными документами из списка значений... Пробовал без периода в запросе тоже самое.
  6. Чешир
    Offline

    Чешир

    Регистрация:
    10 ноя 2006
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Про тип я к тому, что у меня было пару раз, что в Таблице значений или в Списоке значений тип был просто Строка...и соответственно Условие не выполняется...
    Проверь Отладчиком. Убери условие...и посмотри какой тип у ТекущегоДокумента и у Списка значений
  7. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А если список пустой?
    Проверь тип переменной "СписЗнач" в момент выполнения запроса. Возможно, когда один документ, то тип будет "Документ" и условие проверяется на равенство. Если у тебя список, то попробуй список самих документов, а не ссылок на них (т.е. используй метод "ТекущийДокумент()" при формировании списка)
  8. TopicStarter Overlay
    nitron
    Offline

    nitron

    Регистрация:
    1 июл 2008
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Проверял... Короче если в списки только одно значение то работает, если несколько то нет.

Поделиться этой страницей