Написание запрос 1с8

1. SantiouS 31.07.20 10:40 Сейчас в теме
У меня в запросе есть таблица с одной строкой и двумя колонками:
1. Начало отсчёта;
2. Конец отсчёта.
Нужно далее в запросе выбрать документы оприходования за данный период. Подскажите пожалуйста, как прописать условие?

Запрос
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. M_A_D 184 31.07.20 10:53 Сейчас в теме
Я бы эти значения записал в &ДатаНачала = НачалоОтсчета и &ДатаОкончания = КонецОтсчета
А потом в оприходовании сделал условие по этим Параметрам
"Дата документа > &НатаНачала и Дата документа < &Датаокончания".
3. Lenten 25 31.07.20 10:59 Сейчас в теме
ВЫБРАТЬ
	&Начало КАК Начало,
	&Конец КАК Конец
ПОМЕСТИТЬ Вт_Дата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	РеализацияТоваровУслуг.Ссылка КАК Ссылка,
	РеализацияТоваровУслуг.Дата КАК Дата,
	Вт_Дата.Начало КАК Начало,
	Вт_Дата.Конец КАК Конец
ИЗ
	Вт_Дата КАК Вт_Дата
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
		ПО (ВЫБОР
				КОГДА РеализацияТоваровУслуг.Дата > Вт_Дата.Начало
						И РеализацияТоваровУслуг.Дата < Вт_Дата.Конец  
					ТОГДА ИСТИНА
				ИНАЧЕ ЛОЖЬ
			КОНЕЦ)
Показать
4. SantiouS 31.07.20 11:06 Сейчас в теме
(3) Я придумал вот так. Как Вам решение?
ВЫБРАТЬ ПЕРВЫЕ 1
	ПересчетТоваров.Дата КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПересчетНачалоПрихода
ИЗ
	Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
	НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), ДЕНЬ, -1)

УПОРЯДОЧИТЬ ПО
	ПересчетТоваров.Дата УБЫВ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
	ПересчетТоваров.Дата КАК ДатаОкончанияОтсчёта
ПОМЕСТИТЬ ВтПересчетКонецПрихода
ИЗ
	Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
	НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)

УПОРЯДОЧИТЬ ПО
	ДатаОкончанияОтсчёта УБЫВ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВтПересчетКонецПрихода.ДатаОкончанияОтсчёта КАК ДатаОкончанияОтсчёта,
	ВтПересчетНачалоПрихода.ДатаНачалаОтсчёта КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПериод
ИЗ
	ВтПересчетНачалоПрихода КАК ВтПересчетНачалоПрихода
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПересчетКонецПрихода КАК ВтПересчетКонецПрихода
		ПО (ИСТИНА)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ОприходованиеИзлишковТоваровТовары.Ссылка КАК Ссылка,
	ОприходованиеИзлишковТоваровТовары.НомерСтроки КАК НомерСтроки,
	ОприходованиеИзлишковТоваровТовары.Номенклатура КАК Номенклатура,
	ОприходованиеИзлишковТоваровТовары.Характеристика КАК Характеристика,
	ОприходованиеИзлишковТоваровТовары.Назначение КАК Назначение,
	ОприходованиеИзлишковТоваровТовары.Количество КАК Количество,
	ОприходованиеИзлишковТоваровТовары.Цена КАК Цена,
	ОприходованиеИзлишковТоваровТовары.Сумма КАК Сумма,
	ОприходованиеИзлишковТоваровТовары.НомерГТД КАК НомерГТД,
	ОприходованиеИзлишковТоваровТовары.ВидЗапасов КАК ВидЗапасов,
	ОприходованиеИзлишковТоваровТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
	ОприходованиеИзлишковТоваровТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
	ОприходованиеИзлишковТоваровТовары.Серия КАК Серия,
	ОприходованиеИзлишковТоваровТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
	ОприходованиеИзлишковТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
ПОМЕСТИТЬ ВтОприходования
ИЗ
	Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеИзлишковТоваровТовары
ГДЕ
	ОприходованиеИзлишковТоваровТовары.Ссылка.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), ДЕНЬ, -1) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВтОприходования.Ссылка КАК Ссылка,
	ВтОприходования.НомерСтроки КАК НомерСтроки,
	ВтОприходования.Номенклатура КАК Номенклатура,
	ВтОприходования.Характеристика КАК Характеристика,
	ВтОприходования.Назначение КАК Назначение,
	ВтОприходования.Количество КАК Количество,
	ВтОприходования.Цена КАК Цена,
	ВтОприходования.Сумма КАК Сумма,
	ВтОприходования.НомерГТД КАК НомерГТД,
	ВтОприходования.ВидЗапасов КАК ВидЗапасов,
	ВтОприходования.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
	ВтОприходования.ИдентификаторСтроки КАК ИдентификаторСтроки,
	ВтОприходования.Серия КАК Серия,
	ВтОприходования.СтатусУказанияСерий КАК СтатусУказанияСерий,
	ВтОприходования.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
	ВтПериод.ДатаОкончанияОтсчёта КАК ДатаОкончанияОтсчёта,
	ВтПериод.ДатаНачалаОтсчёта КАК ДатаНачалаОтсчёта
ИЗ
	ВтОприходования КАК ВтОприходования
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПериод КАК ВтПериод
		ПО (ИСТИНА)
ГДЕ
	ВтОприходования.Ссылка.Дата МЕЖДУ ВтПериод.ДатаНачалаОтсчёта И ВтПериод.ДатаОкончанияОтсчёта

УПОРЯДОЧИТЬ ПО
	ВтОприходования.Ссылка.Дата
Показать
8. Lenten 25 31.07.20 11:18 Сейчас в теме
(4) в конце

ИЗ
    ВтОприходования КАК ВтОприходования
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПериод КАК ВтПериод
        ПО (ИСТИНА)
ГДЕ
    ВтОприходования.Ссылка.Дата МЕЖДУ ВтПериод.ДатаНачалаОтсчёта И ВтПериод.ДатаОкончанияОтсчёта


тут думаю надо соединение делать а не условие
10. nomad_irk 72 31.07.20 11:29 Сейчас в теме
(4) Тогда уж так:

ВЫБРАТЬ ПЕРВЫЕ 1
    ПересчетТоваров.Дата КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПересчетНачалоПрихода
ИЗ
    Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
    НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), ДЕНЬ, -1)

УПОРЯДОЧИТЬ ПО
    ПересчетТоваров.Дата УБЫВ
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
    ПересчетТоваров.Дата КАК ДатаОкончанияОтсчёта
ПОМЕСТИТЬ ВтПересчетКонецПрихода
ИЗ
    Документ.ПересчетТоваров КАК ПересчетТоваров
ГДЕ
    НАЧАЛОПЕРИОДА(ПересчетТоваров.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)

УПОРЯДОЧИТЬ ПО
    ДатаОкончанияОтсчёта УБЫВ
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    ВтПересчетКонецПрихода.ДатаОкончанияОтсчёта КАК ДатаОкончанияОтсчёта,
    ВтПересчетНачалоПрихода.ДатаНачалаОтсчёта КАК ДатаНачалаОтсчёта
ПОМЕСТИТЬ ВтПериод
ИЗ
    ВтПересчетНачалоПрихода КАК ВтПересчетНачалоПрихода
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПересчетКонецПрихода КАК ВтПересчетКонецПрихода
        ПО (ИСТИНА)
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    ОприходованиеИзлишковТоваровТовары.Ссылка КАК Ссылка,
    ОприходованиеИзлишковТоваровТовары.НомерСтроки КАК НомерСтроки,
    ОприходованиеИзлишковТоваровТовары.Номенклатура КАК Номенклатура,
    ОприходованиеИзлишковТоваровТовары.Характеристика КАК Характеристика,
    ОприходованиеИзлишковТоваровТовары.Назначение КАК Назначение,
    ОприходованиеИзлишковТоваровТовары.Количество КАК Количество,
    ОприходованиеИзлишковТоваровТовары.Цена КАК Цена,
    ОприходованиеИзлишковТоваровТовары.Сумма КАК Сумма,
    ОприходованиеИзлишковТоваровТовары.НомерГТД КАК НомерГТД,
    ОприходованиеИзлишковТоваровТовары.ВидЗапасов КАК ВидЗапасов,
    ОприходованиеИзлишковТоваровТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
    ОприходованиеИзлишковТоваровТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
    ОприходованиеИзлишковТоваровТовары.Серия КАК Серия,
    ОприходованиеИзлишковТоваровТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
    ОприходованиеИзлишковТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
ИЗ
    ВТПериод КАК ВТПериод
          ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеИзлишковТоваровТовары
          ПО ОприходованиеИзлишковТоваровТовары.Ссылка.Дата МЕЖДУ ВТПериод.ДатаНачалаОтсчёта И ВТПериод.ДатаОкончанияОтсчёта
Показать
5. farengeit00 31.07.20 11:07 Сейчас в теме
ВЫБРАТЬ 
     РелиализацияТоваровУслуг.Ссылка
ИЗ 
     Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
     РеализацияТоваровУслуг.Дата МЕЖДУ &Дата Начала  И &ДатаОкончания
6. SantiouS 31.07.20 11:09 Сейчас в теме
(5)
овУслуг.Дата МЕЖДУ &Дата Начала И &ДатаОкончани


Это не то, дело в том что &ДатаНачала и &ДатаОкончания не имеются, а хранятся в этом же запросе в отдельной таблице.
7. Stref75 31.07.20 11:13 Сейчас в теме
(6) а что мешает использовать параметры запроса?
9. SantiouS 31.07.20 11:27 Сейчас в теме
(7) Сначала нужно выполнить запрос для получения параметра начала и конца, после чего передать данные параметры в следующий запрос для отбора оприходования. Я делаю отчёт в СКД и мне нужно в одном объекте "НаборДанныхЗапрос" получить сразу результат по этому по ходу выполнения запроса нужно вычислить параметры и сразу же их применить.
12. Stref75 31.07.20 11:43 Сейчас в теме
(9) я правильно понимаю, что логика работы отчета такова, что пользователь задает только одну дату, а исходя из неё надо получить дату начала и конца?
13. Stref75 31.07.20 11:48 Сейчас в теме
(9) определите параметры как на рисунке, и данные получите одним запросом

ВЫБРАТЬ
    ОприходованиеИзлишковТоваровТовары.Ссылка КАК Ссылка,
    ОприходованиеИзлишковТоваровТовары.НомерСтроки КАК НомерСтроки,
    ОприходованиеИзлишковТоваровТовары.Номенклатура КАК Номенклатура,
    ОприходованиеИзлишковТоваровТовары.Характеристика КАК Характеристика,
    ОприходованиеИзлишковТоваровТовары.Назначение КАК Назначение,
    ОприходованиеИзлишковТоваровТовары.Количество КАК Количество,
    ОприходованиеИзлишковТоваровТовары.Цена КАК Цена,
    ОприходованиеИзлишковТоваровТовары.Сумма КАК Сумма,
    ОприходованиеИзлишковТоваровТовары.НомерГТД КАК НомерГТД,
    ОприходованиеИзлишковТоваровТовары.ВидЗапасов КАК ВидЗапасов,
    ОприходованиеИзлишковТоваровТовары.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
    ОприходованиеИзлишковТоваровТовары.ИдентификаторСтроки КАК ИдентификаторСтроки,
    ОприходованиеИзлишковТоваровТовары.Серия КАК Серия,
    ОприходованиеИзлишковТоваровТовары.СтатусУказанияСерий КАК СтатусУказанияСерий,
    ОприходованиеИзлишковТоваровТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
    &ДатаНачала Как ДатаНачалаОтсчета,
    &ДатаОкончания КАК ДатаОкончанияОтсчета
ПОМЕСТИТЬ ВтОприходования
ИЗ
    Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеИзлишковТоваровТовары
ГДЕ
    ОприходованиеИзлишковТоваровТовары.Ссылка.Дата МЕЖДУ &ДатаНачала и &ДатаОкончания
Показать


ну и запрос конечно надо тоже до ума довести, в том плане что собирать данные не по документам, а по движениям из регистров, которые делает документ ОприходованиеИзлишковТоваров
Прикрепленные файлы:
11. Fril 31.07.20 11:30 Сейчас в теме
Что за таблица такая с датами? Вам нужно получить данные по периодам? Какая-то таблица с периодами?
14. SantiouS 31.07.20 12:44 Сейчас в теме
(11) Нужно отобрать документы оприходования между датами двух документов пересчёта. Последний документ пересчёта предыдущего дня и последний документ пересчёта текущего дня.
Например, я выбираю дату 20.01.2020 и программа должна получить за 19.01.2020 доту последнего документа пересчёта, после чего получить дату последнего пересчёта на 20.01.2020.
В итоге я делаю таблицу запросом в которой одна строка в которой указаны эти две даты, а уже дальше из этой таблицы я беру эти данные.
15. Fril 31.07.20 12:55 Сейчас в теме
Кстати по поводу вашего кода...
Прилагаю скриншот с ИТС Системы стандартов и методик разработки... по поводу буквы "Ё"
в коде
Прикрепленные файлы:
16. Fril 31.07.20 13:04 Сейчас в теме
Нужно отобрать документы оприходования между датами двух документов пересчёта. Последний документ пересчёта предыдущего дня и последний документ пересчёта текущего дня

На сколько я понял, фактически вам надо получить все документы сегодняшнего дня. То и период будет НачалоТекущего дня и конец текущего дня.
Последний документ пересчёта предыдущего дня = 17:55 и он ПОСЛЕДНИЙ значит остальные документы будут уже сегодняшнего числа, зачем вам в таком случае вообще вчерашний документ?!
17. SantiouS 31.07.20 13:07 Сейчас в теме
(16) Вы не так поняли.
В сообщении (4) я написал запрос 1с8, который работает так как мне нужно. Если интересно, то посмотрите его и можем обсудить.
18. Fril 31.07.20 13:27 Сейчас в теме
Кстати в 13 прав, тогда отпадает еще проверка документов на "Пометка удаления" и "Проведен" чего у вас в запросе нет
19. SantiouS 31.07.20 14:00 Сейчас в теме
(18) На счёт проводки Вы верно подметили. Забыл. Спасибо!
Оставьте свое сообщение

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