Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 17:19

Помогите с запросом!

Автор Dwarf33, 10 сен 2012, 17:17

0 Пользователей и 1 гость просматривают эту тему.

Dwarf33

Здравствуйте господа. В форме документа есть переменная "ПериодРегистрации" формат: дд.мм.гггг. Как сделать запрос, что бы он отбирал документы от 01 числа месяца до конца месяца, указанного в "ПериодРегистрации". Сделал такой запрос:

Запрос = Новый Запрос;
         Запрос.УстановитьПараметр("Организация",Организация);
         Запрос.УстановитьПараметр("Дата",ПериодРегистрации);
         Запрос.Текст = "ВЫБРАТЬ
                        |   ПриходныйКассовыйОрдер.Номер КАК Номер,
                        |   ПриходныйКассовыйОрдер.СчетКасса КАК СчетУчета,
                        |   ПриходныйКассовыйОрдер.СуммаДокумента КАК Сумма,
                        |   ПриходныйКассовыйОрдер.Ссылка КАК ДокументПКО,
                        |   ПриходныйКассовыйОрдер.Дата КАК ПериодРегистрации
                        |ИЗ
                         |   Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер";
      
   Результ = Запрос.Выполнить().Выбрать();   
   
   Пока Результ.Следующий() Цикл
              НСтр = ТабЧасть.Добавить();
            Нстр.ДокументПКО = Результ.ДокументПКО;
            Результ.Дата = ПериодРегистрации;
            НСтр.СчетУчета = Результ.СчетУчета;
            Нстр.Сумма = Результ.Сумма;
      КонецЦикла;   

Подскажите пожалуйста, что нужно добавить, что бы отбирались документы,только, за нужный мне период? Заранее благодарен!

mixqn

Добавь условие отбора по периоду "МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ)"
Примерно так:

Запрос.Текст = "ВЫБРАТЬ
                        |   ПриходныйКассовыйОрдер.Номер КАК Номер,
                        |   ПриходныйКассовыйОрдер.СчетКасса КАК СчетУчета,
                        |   ПриходныйКассовыйОрдер.СуммаДокумента КАК Сумма,
                        |   ПриходныйКассовыйОрдер.Ссылка КАК ДокументПКО,
                        |   ПриходныйКассовыйОрдер.Дата КАК ПериодРегистрации
                        |ИЗ
                        |   Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
                        |ГДЕ
                        |   ПриходныйКассовыйОрдер.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ)";

Dwarf33

Т. е. в документ нужно добавить два реквизита дата. НАЧАЛО и КОНЕЦ периода? Так?

ИгорьШпак

ДА
К примеру

Запрос.УстановитьПараметр("ДатаНачала", НачалоПериода);
где началопериода выбираешь любую дату и присваиваешь немного раньше

Dwarf33


ГК

Да нет же, в документе остается один реквизит Дата, как и был. А нужный запрос вам привели:
"...ПриходныйКассовыйОрдер.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ)";
НачалоПериода и КонецПериода здесь - это функции.
Переменной Дата присваиваешь значение реквизита Дата:
Запрос.УстановитьПараметр("Дата", Дата);

ГК

Вернее, реквизит у тебя называется не Дата, а ПериодРегистрации

Запрос.УстановитьПараметр("Дата",ПериодРегистрации);

mixqn

Цитата: Dwarf33 от 12 сен 2012, 16:06
Т. е. в документ нужно добавить два реквизита дата. НАЧАЛО и КОНЕЦ периода? Так?
я же привел полный текст запроса, как он должен выглядеть с учетом приведенного в стартпосте кода. нужно всего лишь добавить условие ГДЕ ПриходныйКассовыйОрдер.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ) в запрос

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск