Имя: Пароль:
1C
 
Проверка даты в запросе
0 okosv
 
17.12.10
13:43
Привет всем.
Платформа 1С 8.1, Конфигурация: УТ

Не могу корректно написать запрос, с проверкой даты в докуменет "Реализация товаров и услуг" существование документов определенного контрагента за 14.12.2010. Вот запрос:

Запрос = Новый Запрос("ВЫБРАТЬ
                     |    РеализацияТоваровУслуг.Ссылка,
                     |    РеализацияТоваровУслуг.Номер,
                     |    РеализацияТоваровУслуг.Дата
                     |ИЗ
                     |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                     |ГДЕ
                     |    РеализацияТоваровУслуг.Контрагент = &Контрагент
                     |    И РеализацияТоваровУслуг.Дата >= 20101214
                     |    И РеализацияТоваровУслуг.Дата < 20101215");

Если проверку даты удаляю, документы выходят, а документы за определенный день не выходят.
Помогите советом, где неправильно написал
1 Vitello
 
17.12.10
13:44
пиши в шманструкторе запроса если руками не умеешь.
а еще почитай как константы типа дата задавать
2 Wobland
 
17.12.10
13:45
(0)
Дата МЕЖДУ &ДатаНачала И &ДатаКонца

ДатаНачала=НачалоДня(ТвояДата);
ДатаКонца=<придумай сам>;
3 Cube
 
17.12.10
13:46
Запрос = Новый Запрос("ВЫБРАТЬ
                     |    РеализацияТоваровУслуг.Ссылка,
                     |    РеализацияТоваровУслуг.Номер,
                     |    РеализацияТоваровУслуг.Дата
                     |ИЗ
                     |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                     |ГДЕ
                     |    РеализацияТоваровУслуг.Контрагент = &Контрагент
                     |    И РеализацияТоваровУслуг.Дата >= &ДатаНач
                     |    И РеализацияТоваровУслуг.Дата < &ДатаКон");
Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ВыбраннаяДата));
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ВыбраннаяДата));
4 Ненавижу 1С
 
гуру
17.12.10
13:47
(0) используй параметры
5 Cube
 
17.12.10
13:47
(2) +1
6 Wobland
 
17.12.10
13:48
(3) ну и зачем ты так? человек с (2) хоть немного бы подумал
7 Cube
 
17.12.10
13:53
(6) Сжалился, пятница ведь... =))
8 Kasper076
 
17.12.10
13:55
Запрос = Новый Запрос(
"ВЫБРАТЬ
|    РеализацияТоваровУслуг.Ссылка,
|    РеализацияТоваровУслуг.Номер,
|    РеализацияТоваровУслуг.Дата
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
|    РеализацияТоваровУслуг.Контрагент = &Контрагент
|    И НачалоПериода(РеализацияТоваровУслуг.Дата,ДЕНЬ) = НачалоПериода(&ВыбДата)");
9 okosv
 
17.12.10
13:57
В 1С во внешней обработке через НачалоДня и КонецДня получилось сделать, точнее

Запрос = Новый Запрос("ВЫБРАТЬ
                     |    РеализацияТоваровУслуг.Ссылка,
                     |    РеализацияТоваровУслуг.Номер,
                     |    РеализацияТоваровУслуг.Дата
                     |ИЗ
                     |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                     |ГДЕ
                     |    РеализацияТоваровУслуг.Контрагент = &Контрагент
                     |    И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаКонца");
Запрос.УстановитьПараметр("Контрагент", Контр.Ссылка);
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня('20101214'));
Запрос.УстановитьПараметр("ДатаКонца", КонецДня('20101214'));

Но параметры не могу использовать из-за того, что не могу их передать в запрос при использовании 1С через COMConnector
Хотел во внешней программе использовать функции НачалоДня и КонецДня, тоже не знаю как не получается

вот тема:
v8: v81.COMConnector: Передать дату в качестве параметра в запрос

Или не могу использовать функции НачалоДн
10 Wobland
 
17.12.10
13:58
(8)  И НачалоПериода(РеализацияТоваровУслуг.Дата,ДЕНЬ) = НачалоПериода(&ВыбДата, ДЕНЬ)");
11 okosv
 
17.12.10
14:17
Вот в Visual Basic пробую передать параметр 1C COM

strDT = "14.12.2010"
objV8Q.УстановитьПараметр "ДатаНачала", Format$(strDT, "YYYYMMDD") & " 00:00:00"
objV8Q.УстановитьПараметр "ДатаКонца", Format$(strDT, "YYYYMMDD") & " 23:59:59"

Т.е. даты вида 20101214 00:00:00 и 20101215 23:59:59 соотвественно, пробовал их в апострофы заключать, толку нет
По любому записей не видит
В конструкторе все пашет, как из внешней программы правильно передать дату в правильном формате
12 Kasper076
 
17.12.10
14:23
"ВЫБРАТЬ
|    РеализацияТоваровУслуг.Ссылка,
|    РеализацияТоваровУслуг.Номер,
|    РеализацияТоваровУслуг.Дата
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
|    РеализацияТоваровУслуг.Контрагент = &Контрагент
|    И НачалоПериода(РеализацияТоваровУслуг.Дата,ДЕНЬ) = НачалоПериода(ДАТАВРЕМЯ(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>), День)");
13 okosv
 
17.12.10
15:16
(12) Супер! Получилось, в Год, Месяц и т.д. из Visual Basic'а передаю значения и все работает
Спасибо большое!
И другим участникам темы тоже