8.х Не выбираются договора за определенную дату

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ximera, 7 окт 2009.

  1. TopicStarter Overlay
    ximera
    Offline

    ximera Опытный в 1С

    Регистрация:
    5 фев 2008
    Сообщения:
    205
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    Пишу внешнюю обработку для бухгалтерии, которая формирует автоматически счета и документы реализации по выбранным контрагентам. Причем счета формируются только по определенной группе покупателей.
    Не нашел в бухгалтерии срок действия договора, поэтому добавил два реквизита в справочник "Договоры контрагентов": ДоговорДействуетС и ДоговорДействуетПо. У обоих реквизитов - тип дата.
    Далее пытаюсь через запрос выбрать контрагентов с действующим на данный момент договором.
    Код:
    Запр.Текст = "ВЫБРАТЬ
    |    Контрагенты.Ссылка КАК Контрагент,
    |    Контрагенты.Наименование,
    |    ДоговорыКонтрагентов.Ссылка КАК Договор,
    |    ДоговорыКонтрагентов.СлавСервис_АбонентскаяПлата КАК сумма,
    |    ДоговорыКонтрагентов.СлавСервис_ДополнительноеНаправление,
    |    Контрагенты.ОсновнойБанковскийСчет
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |        ПО Контрагенты.ОсновнойДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка
    |ГДЕ
    |    Контрагенты.СлавСервис_ГруппаКонтрагента = &ГруппаКонтрагента
    |    И ДоговорыКонтрагентов.СлавСервис_СрокДействияДоговораС >= &ДатаОтчета
    |        И ДоговорыКонтрагентов.СлавСервис_СрокДействияДоговораПо <= &ДатаОтчета";
    
    Запр.УстановитьПараметр("ГруппаКонтрагента",ГруппаКонтрагентов);
    Запр.УстановитьПараметр("ДатаОтчета",Формат(ДатаОперации, "ДЛФ=D") );
    
    
    
    
    Результат запроса пустой, хотя договоры удовлетворяющие условиям есть в базе. В чем может быть моя ошибка?
  2. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Функция формат возвращает вам строку, а в запросе сравниваете ее с датой.

    Да и условие внимательно разберите: дата отчета 01.10.09 Сравниваете наоборот!!! Дата дествия с должнабыть меньше. а у вас больше!
  3. TopicStarter Overlay
    ximera
    Offline

    ximera Опытный в 1С

    Регистрация:
    5 фев 2008
    Сообщения:
    205
    Симпатии:
    0
    Баллы:
    26
    вот насчет даты действия пожалуйста пример, если можно. Я ничего не понял
  4. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    В параметр вы передаете СТРОКУ!!! Зачем вам там функция формат?
    Далее:
    берем:
    дата начала действия договора: 1.10.09
    дата овончания действия договора: 31.10.09
    Дата отчета 7.10.09.
    Идем по вашим условиям: СрокДействияДоговораС >= &ДатаОтчета. Выполняется???? Нет! Потому что должно быть не больше или равно. а меньше!
  5. TopicStarter Overlay
    ximera
    Offline

    ximera Опытный в 1С

    Регистрация:
    5 фев 2008
    Сообщения:
    205
    Симпатии:
    0
    Баллы:
    26
    все, спасибо, понял как жестоко ступил

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