Как ограничить выборку по документу?
13.07.2010
11:41
#1
Добрый день,
встала проблема... надо выбрать запросом все документы за исключением текущего (т.е. запрос выполняется в текущем документе). Как это правильно сделать?
Указать в параметрах ДатаНач=НачалоМесяца(Дата) и ДатаКон=Дата-1, ну насколько это правильно и красиво.....
встала проблема... надо выбрать запросом все документы за исключением текущего (т.е. запрос выполняется в текущем документе). Как это правильно сделать?
Указать в параметрах ДатаНач=НачалоМесяца(Дата) и ДатаКон=Дата-1, ну насколько это правильно и красиво.....
13.07.2010
14:39
#4
"Примерно так:
лЗапрос = Новый Запрос;
лЗапрос.Текст = "Выбрать
| Док.Ссылка
| Из Документ.РеализацияТоваровУслуг Как Док
| Где Док.Ссылка <> &Ссылка";
лЗапрос.УстановитьПараметр ("Ссылка", ЭтотОбъект.Ссылка);
ТЗДок = лЗапрос.Выполнить().Выгрузить();"
лЗапрос = Новый Запрос;
лЗапрос.Текст = "Выбрать
| Док.Ссылка
| Из Документ.РеализацияТоваровУслуг Как Док
| Где Док.Ссылка <> &Ссылка";
лЗапрос.УстановитьПараметр ("Ссылка", ЭтотОбъект.Ссылка);
ТЗДок = лЗапрос.Выполнить().Выгрузить();"
13.07.2010
15:18
#5
"Хороший вариант, но может можно как то ограничить запрос датами типа...
лЗапрос = Новый Запрос;
лЗапрос.Текст = "Выбрать
| Док.Ссылка,
| Док.Дата
| Из Документ.РеализацияТоваровУслуг Как Док
| Где Док.Дата МЕЖДУ &ДатаНач И &ДатаКон";
лЗапрос.УстановитьПараметр ("ДатаНач", НачалоМесяца(Дата));
лЗапрос.УстановитьПараметр ("ДатаКон", ЭтотОбъект.ВГраница());
ТЗДок = лЗапрос.Выполнить().Выгрузить();
"
лЗапрос = Новый Запрос;
лЗапрос.Текст = "Выбрать
| Док.Ссылка,
| Док.Дата
| Из Документ.РеализацияТоваровУслуг Как Док
| Где Док.Дата МЕЖДУ &ДатаНач И &ДатаКон";
лЗапрос.УстановитьПараметр ("ДатаНач", НачалоМесяца(Дата));
лЗапрос.УстановитьПараметр ("ДатаКон", ЭтотОбъект.ВГраница());
ТЗДок = лЗапрос.Выполнить().Выгрузить();
"
13.07.2010
15:42
#6
"Все-таки не ясно - (за период) вам нужны все документы кроме этого, или все документы до этого?
Если просто за период, тогда добавляете еще ваше условие и все:
| Где Док.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И Док.Ссылка <> &Ссылка";
Если вам надо до этого документа, тогда так:
| Где Док.Дата >= &ДатаНач
| И Док.МоментВремени < &МоментКон";
лЗапрос.УстановитьПараметр ("ДатаНач", НачалоМесяца(Дата));
Если ЭтотОбъект.ЭтоНовый() Тогда
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата+1));
Иначе
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата, ЭтотОбъект.Ссылка));
КонецЕсли;"
Если просто за период, тогда добавляете еще ваше условие и все:
| Где Док.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И Док.Ссылка <> &Ссылка";
Если вам надо до этого документа, тогда так:
| Где Док.Дата >= &ДатаНач
| И Док.МоментВремени < &МоментКон";
лЗапрос.УстановитьПараметр ("ДатаНач", НачалоМесяца(Дата));
Если ЭтотОбъект.ЭтоНовый() Тогда
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата+1));
Иначе
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата, ЭтотОбъект.Ссылка));
КонецЕсли;"
13.07.2010
16:15
#8
"Мне нужны документы до этого. Т.к. запрос выполняется в нем.
Этот пример щас рассмотрю поподробнее:
Если вам надо до этого документа, тогда так:
| Где Док.Дата >= &ДатаНач
| И Док.МоментВремени < &МоментКон";
лЗапрос.УстановитьПараметр ("ДатаНач", НачалоМесяца(Дата));
Если ЭтотОбъект.ЭтоНовый() Тогда
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата+1));
Иначе
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата, ЭтотОбъект.Ссылка));
КонецЕсли; "
Этот пример щас рассмотрю поподробнее:
Если вам надо до этого документа, тогда так:
| Где Док.Дата >= &ДатаНач
| И Док.МоментВремени < &МоментКон";
лЗапрос.УстановитьПараметр ("ДатаНач", НачалоМесяца(Дата));
Если ЭтотОбъект.ЭтоНовый() Тогда
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата+1));
Иначе
лЗапрос.УстановитьПараметр ("МоментКон", Новый МоментВремени (ЭтотОбъект.Дата, ЭтотОбъект.Ссылка));
КонецЕсли; "
Читают тему
(гостей: 1)