У меня в запросе есть таблица с одной строкой и двумя колонками:
1. Начало отсчёта;
2. Конец отсчёта.
Нужно далее в запросе выбрать документы оприходования за данный период. Подскажите пожалуйста, как прописать условие?
1. Начало отсчёта;
2. Конец отсчёта.
Нужно далее в запросе выбрать документы оприходования за данный период. Подскажите пожалуйста, как прописать условие?
Запрос |
---|
ВЫБРАТЬ ПЕРВЫЕ 1
ПересчетТоваров.Дата КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПересчетНачалоПрихода
ИЗ
Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), ДЕНЬ, -1)
УПОРЯДОЧИТЬ ПО
ПересчетТоваров.Дата УБЫВ
;
//////////////////////////////////////////////////////////// Показать |
Прикрепленные файлы:
По теме из базы знаний
- Некоторые полезные новичкам платформы 1С8.х приёмы работы с запросами
- Три урока 1С81 для переходящих с 1с77
- Настраиваемый генератор числовой последовательности для запроса
- 1с8.2-8.3.Вывод на экран данных запроса с переданными Параметрами из Документа! 8 различных вариантов:от Сообщений, Таблицы и Отчетов до СКД без объекта-отчета
- Что делает "В ИЕРАРХИИ" в запросе?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
&Начало КАК Начало,
&Конец КАК Конец
ПОМЕСТИТЬ Вт_Дата
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК Ссылка,
РеализацияТоваровУслуг.Дата КАК Дата,
Вт_Дата.Начало КАК Начало,
Вт_Дата.Конец КАК Конец
ИЗ
Вт_Дата КАК Вт_Дата
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО (ВЫБОР
КОГДА РеализацияТоваровУслуг.Дата > Вт_Дата.Начало
И РеализацияТоваровУслуг.Дата < Вт_Дата.Конец
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
Показать
(3) Я придумал вот так. Как Вам решение?
ВЫБРАТЬ ПЕРВЫЕ 1
ПересчетТоваров.Дата КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПересчетНачалоПрихода
ИЗ
Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), ДЕНЬ, -1)
УПОРЯДОЧИТЬ ПО
ПересчетТоваров.Дата УБЫВ
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ПересчетТоваров.Дата КАК ДатаОкончанияОтсчёта
ПОМЕСТИТЬ ВтПересчетКонецПрихода
ИЗ
Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)
УПОРЯДОЧИТЬ ПО
ДатаОкончанияОтсчёта УБЫВ
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВтПересчетКонецПрихода.ДатаОкончанияОтсчёта КАК ДатаОкончанияОтсчёта,
ВтПересчетНачалоПрихода.ДатаНачалаОтсчёта КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПериод
ИЗ
ВтПересчетНачалоПрихода КАК ВтПересчетНачалоПрихода
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПересчетКонецПрихода КАК ВтПересчетКонецПрихода
ПО (ИСТИНА)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ОприходованиеИзлишковТоваровТовары.Ссылка КАК Ссылка,
ОприходованиеИзлишковТоваровТовары.НомерСтроки КАК НомерСтроки,
ОприходованиеИзлишковТоваровТовары.Номенклатура КАК Номенклатура,
ОприходованиеИзлишковТоваровТовары.Характеристика КАК Характеристика,
ОприходованиеИзлишковТоваровТовары.Назначение КАК Назначение,
ОприходованиеИзлишковТоваровТовары.Количество КАК Количество,
ОприходованиеИзлишковТоваровТовары.Цена КАК Цена,
ОприходованиеИзлишковТоваровТовары.Сумма КАК Сумма,
ОприходованиеИзлишковТоваровТовары.НомерГТД КАК НомерГТД,
ОприходованиеИзлишковТоваровТовары.ВидЗапасов КАК ВидЗапасов,
ОприходованиеИзлишковТоваровТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
ОприходованиеИзлишковТоваровТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
ОприходованиеИзлишковТоваровТовары.Серия КАК Серия,
ОприходованиеИзлишковТоваровТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
ОприходованиеИзлишковТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
ПОМЕСТИТЬ ВтОприходования
ИЗ
Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеИзлишковТоваровТовары
ГДЕ
ОприходованиеИзлишковТоваровТовары.Ссылка.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), ДЕНЬ, -1) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВтОприходования.Ссылка КАК Ссылка,
ВтОприходования.НомерСтроки КАК НомерСтроки,
ВтОприходования.Номенклатура КАК Номенклатура,
ВтОприходования.Характеристика КАК Характеристика,
ВтОприходования.Назначение КАК Назначение,
ВтОприходования.Количество КАК Количество,
ВтОприходования.Цена КАК Цена,
ВтОприходования.Сумма КАК Сумма,
ВтОприходования.НомерГТД КАК НомерГТД,
ВтОприходования.ВидЗапасов КАК ВидЗапасов,
ВтОприходования.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
ВтОприходования.ИдентификаторСтроки КАК ИдентификаторСтроки,
ВтОприходования.Серия КАК Серия,
ВтОприходования.СтатусУказанияСерий КАК СтатусУказанияСерий,
ВтОприходования.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
ВтПериод.ДатаОкончанияОтсчёта КАК ДатаОкончанияОтсчёта,
ВтПериод.ДатаНачалаОтсчёта КАК ДатаНачалаОтсчёта
ИЗ
ВтОприходования КАК ВтОприходования
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПериод КАК ВтПериод
ПО (ИСТИНА)
ГДЕ
ВтОприходования.Ссылка.Дата МЕЖДУ ВтПериод.ДатаНачалаОтсчёта И ВтПериод.ДатаОкончанияОтсчёта
УПОРЯДОЧИТЬ ПО
ВтОприходования.Ссылка.Дата
Показать
(4) Тогда уж так:
ВЫБРАТЬ ПЕРВЫЕ 1
ПересчетТоваров.Дата КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПересчетНачалоПрихода
ИЗ
Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), ДЕНЬ, -1)
УПОРЯДОЧИТЬ ПО
ПересчетТоваров.Дата УБЫВ
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ПересчетТоваров.Дата КАК ДатаОкончанияОтсчёта
ПОМЕСТИТЬ ВтПересчетКонецПрихода
ИЗ
Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)
УПОРЯДОЧИТЬ ПО
ДатаОкончанияОтсчёта УБЫВ
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВтПересчетКонецПрихода.ДатаОкончанияОтсчёта КАК ДатаОкончанияОтсчёта,
ВтПересчетНачалоПрихода.ДатаНачалаОтсчёта КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПериод
ИЗ
ВтПересчетНачалоПрихода КАК ВтПересчетНачалоПрихода
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПересчетКонецПрихода КАК ВтПересчетКонецПрихода
ПО (ИСТИНА)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ОприходованиеИзлишковТоваровТовары.Ссылка КАК Ссылка,
ОприходованиеИзлишковТоваровТовары.НомерСтроки КАК НомерСтроки,
ОприходованиеИзлишковТоваровТовары.Номенклатура КАК Номенклатура,
ОприходованиеИзлишковТоваровТовары.Характеристика КАК Характеристика,
ОприходованиеИзлишковТоваровТовары.Назначение КАК Назначение,
ОприходованиеИзлишковТоваровТовары.Количество КАК Количество,
ОприходованиеИзлишковТоваровТовары.Цена КАК Цена,
ОприходованиеИзлишковТоваровТовары.Сумма КАК Сумма,
ОприходованиеИзлишковТоваровТовары.НомерГТД КАК НомерГТД,
ОприходованиеИзлишковТоваровТовары.ВидЗапасов КАК ВидЗапасов,
ОприходованиеИзлишковТоваровТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
ОприходованиеИзлишковТоваровТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
ОприходованиеИзлишковТоваровТовары.Серия КАК Серия,
ОприходованиеИзлишковТоваровТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
ОприходованиеИзлишковТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
ИЗ
ВТПериод КАК ВТПериод
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеИзлишковТоваровТовары
ПО ОприходованиеИзлишковТоваровТовары.Ссылка.Дата МЕЖДУ ВТПериод.ДатаНачалаОтсчёта И ВТПериод.ДатаОкончанияОтсчёта
Показать
(7) Сначала нужно выполнить запрос для получения параметра начала и конца, после чего передать данные параметры в следующий запрос для отбора оприходования. Я делаю отчёт в СКД и мне нужно в одном объекте "НаборДанныхЗапрос" получить сразу результат по этому по ходу выполнения запроса нужно вычислить параметры и сразу же их применить.
(9) определите параметры как на рисунке, и данные получите одним запросом
ну и запрос конечно надо тоже до ума довести, в том плане что собирать данные не по документам, а по движениям из регистров, которые делает документ ОприходованиеИзлишковТоваров
ВЫБРАТЬ
ОприходованиеИзлишковТоваровТовары.Ссылка КАК Ссылка,
ОприходованиеИзлишковТоваровТовары.НомерСтроки КАК НомерСтроки,
ОприходованиеИзлишковТоваровТовары.Номенклатура КАК Номенклатура,
ОприходованиеИзлишковТоваровТовары.Характеристика КАК Характеристика,
ОприходованиеИзлишковТоваровТовары.Назначение КАК Назначение,
ОприходованиеИзлишковТоваровТовары.Количество КАК Количество,
ОприходованиеИзлишковТоваровТовары.Цена КАК Цена,
ОприходованиеИзлишковТоваровТовары.Сумма КАК Сумма,
ОприходованиеИзлишковТоваровТовары.НомерГТД КАК НомерГТД,
ОприходованиеИзлишковТоваровТовары.ВидЗапасов КАК ВидЗапасов,
ОприходованиеИзлишковТоваровТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
ОприходованиеИзлишковТоваровТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
ОприходованиеИзлишковТоваровТовары.Серия КАК Серия,
ОприходованиеИзлишковТоваровТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
ОприходованиеИзлишковТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
&ДатаНачала Как ДатаНачалаОтсчета,
&ДатаОкончания КАК ДатаОкончанияОтсчета
ПОМЕСТИТЬ ВтОприходования
ИЗ
Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеИзлишковТоваровТовары
ГДЕ
ОприходованиеИзлишковТоваровТовары.Ссылка.Дата МЕЖДУ &ДатаНачала и &ДатаОкончания
Показатьну и запрос конечно надо тоже до ума довести, в том плане что собирать данные не по документам, а по движениям из регистров, которые делает документ ОприходованиеИзлишковТоваров
Прикрепленные файлы:
(11) Нужно отобрать документы оприходования между датами двух документов пересчёта. Последний документ пересчёта предыдущего дня и последний документ пересчёта текущего дня.
Например, я выбираю дату 20.01.2020 и программа должна получить за 19.01.2020 доту последнего документа пересчёта, после чего получить дату последнего пересчёта на 20.01.2020.
В итоге я делаю таблицу запросом в которой одна строка в которой указаны эти две даты, а уже дальше из этой таблицы я беру эти данные.
Например, я выбираю дату 20.01.2020 и программа должна получить за 19.01.2020 доту последнего документа пересчёта, после чего получить дату последнего пересчёта на 20.01.2020.
В итоге я делаю таблицу запросом в которой одна строка в которой указаны эти две даты, а уже дальше из этой таблицы я беру эти данные.
Нужно отобрать документы оприходования между датами двух документов пересчёта. Последний документ пересчёта предыдущего дня и последний документ пересчёта текущего дня
На сколько я понял, фактически вам надо получить все документы сегодняшнего дня. То и период будет НачалоТекущего дня и конец текущего дня.
Последний документ пересчёта предыдущего дня = 17:55 и он ПОСЛЕДНИЙ значит остальные документы будут уже сегодняшнего числа, зачем вам в таком случае вообще вчерашний документ?!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот