Имя: Пароль:
1C
1С v8
Поясните по запросу к оборотам РН
,
0 Альбатрос
 
20.02.14
11:47
СКД. Один из блоков запроса:

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладахОбороты.Регистратор КАК Документ,
    СУММА(ПартииТоваровНаСкладахОбороты.СтоимостьРасход) КАК СуммаДокумента,
    НАЧАЛОПЕРИОДА(ПартииТоваровНаСкладахОбороты.Регистратор.Дата, ДЕНЬ) КАК ДатаДокумента,
    ПартииТоваровНаСкладахОбороты.Регистратор.Склад КАК Склад,
    NULL КАК РегистраторКонтрагент
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Регистратор, ) КАК ПартииТоваровНаСкладахОбороты
ГДЕ
    ПартииТоваровНаСкладахОбороты.Регистратор ССЫЛКА Документ.ИнвентаризацияТоваров
    И ПартииТоваровНаСкладахОбороты.КоличествоРасход > 0
    И &Инвентаризации

Параметры НачалоПериода и КонецПериода задаю одинаково - 11.02.2014 0:00:00.
В выборку не попадает документ за эту дату. Но если КонецПериода указать как 11.02.2014 23:59:59, то док попадает.
Почему?
Ведь в запросе в параметрах ВТ я явно указываю КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ).
1 Альбатрос
 
20.02.14
11:55
мне все еще интересно =)
2 Avganec
 
20.02.14
11:58
(0) сделай в СКД в параметрах конецпериода
3 Starhan
 
20.02.14
11:59
попробуй переименовать параметры
4 Альбатрос
 
20.02.14
12:04
(3) Та же история
5 Альбатрос
 
20.02.14
12:06
СТранно так... ведь должно по запросу на конец дня браться...
6 Альбатрос
 
20.02.14
12:06
Пока сделал так:
Отбор.Настройки.ПараметрыДанных.Элементы[1].Значение = КонецДня(Отбор.Настройки.ПараметрыДанных.Элементы[1].Значение);
7 Альбатрос
 
20.02.14
12:07
Но это бред какой-то ))) Все же, почему игнорируется КОНЕЦПЕРИОДА?
8 Avganec
 
20.02.14
12:07
(7) ты в параметрах сделал конецпериода от конецпериода?
9 Серго62
 
20.02.14
12:09
Извиняюсь, если несу чушь...
КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) что возвращает, дату на конец последней секунды или на начало?
Если на начало, то возможно в этом и причина...
10 Starhan
 
20.02.14
12:09
(6) поищи на сайте курсы-по-1с.рф/?
беслпатный материал 11 (или 12 не помню) ошибок за которые увольняют.

там этот момент разбирается как правильно сделать
11 Альбатрос
 
20.02.14
12:10
(9) В справке написано, что 23.59.59 возвращает
12 Альбатрос
 
20.02.14
12:11
(10) Чот не могу найти...
13 Альбатрос
 
20.02.14
12:12
(8) РегистрНакопления.ПартииТоваровНаСкладах.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)
14 Серго62
 
20.02.14
12:13
(11) это понятно, что 23.59.59, что там с долями секунды?
ну то есть 23.59.59.000 или 23.59.59.999
15 Avganec
 
20.02.14
12:13
(13) не в параметрах викртуальной таблицы, а в параметрах СКД
16 Avganec
 
20.02.14
12:14
(10) 13
17 Альбатрос
 
20.02.14
12:17
(15) А как там задать КонецПериода в параметрах?
18 Avganec
 
20.02.14
12:18
(17) также как и в запросе, синтаксис такой же
19 Альбатрос
 
20.02.14
12:21
(18) Не, так а куда писать? Вот я на закладке параметры, вижу это злосчастный параметр. В какую колонку писать, в "Значение"?
20 Альбатрос
 
20.02.14
12:21
то есть "выражение"
21 Avganec
 
20.02.14
12:22
(20)+1
22 Альбатрос
 
20.02.14
12:23
(21) Не дает
23 Starhan
 
20.02.14
12:24
(13)
http://курсы-по-1с.рф/free/
Серия «13 ошибок, за которые увольняют программистов»(
(4) ты не правильно сделал


когда ты используешь стандартные названия параметров
используется стандартный отбор в периоде.(твои условия не видны)

Тебе нужно задать отличные по названию параметры и задать их в отчете
24 Альбатрос
 
20.02.14
12:25
(23) Именно так я и сделал. Я задал другие параметры, на закладке остались старые параметры и добавились новые, запрос я переделал на новые. Все равно КОНЕЦПЕРИОДА не канает.
25 Avganec
 
20.02.14
12:25
(22) значит где-то там. я так делал и не раз.
26 Альбатрос
 
20.02.14
12:29
(25) там можно так сделать на основе других параметров, но не на основе самого себя.
27 Серго62
 
20.02.14
12:29
(24) Попробуй вместо даты использовать границу
28 Starhan
 
20.02.14
12:29
а в самом отчете? задаешь какие параметры новые или старые?

в общем в любом случае это не правильно правильно в параметрах
создать новый параметр а в выражении параметра КонецПериода прописать КонецПериода(&НовыйПараметр,"День").

Там еще есть нюансы подробно разжевывают как раз в этих 13 ошибках.
29 Avganec
 
20.02.14
12:30
(26) на основе себя самого можно. http://programna1c.narod.ru/docs/Articles/SKDEndInterval/SKDEndInterval.html
30 Альбатрос
 
20.02.14
12:32
(28) Нет, задаю как раз новый параметр. Ну попробую с выражением...
31 Альбатрос
 
20.02.14
12:34
(29) Ага, можно действительно, если из состава время убрать. Щас попробую так.
32 Альбатрос
 
20.02.14
12:37
(29) Ан нет, ошибся: "Поле не обнаружено КонецПериода".
33 Avganec
 
20.02.14
12:37
(32) у меня по этой инструкции все работало. значит что-то ты не так делаешь
34 Starhan
 
20.02.14
12:40
(32) тоже думаю что-то ты не так делаешь.
Проверил у себя у меня заработало с простым переименованием параметров
35 Альбатрос
 
20.02.14
12:46
(33) Блин, дословно. У параметра "КонецПериода" в поле выражение пишу: КОНЕЦПЕРИОДА(КонецПериода, День) - ошибка (32) (34) Щас еще раз попробую, может не сохранился где
36 Starhan
 
20.02.14
12:48
забыл амперсанд - & у параметра
&КонецПериода
37 Альбатрос
 
20.02.14
12:51
(34) Перепроверил. Работает =) Мозги набекрень уже.
38 Starhan
 
20.02.14
12:51
и ковычки
В общем, в выражении правильно писать вот так
КОНЕЦПЕРИОДА(&КонецПериода, "День")
39 Starhan
 
20.02.14
12:52
(37) угу, но правильно все же будет через изменение параметра в выражении.
40 Альбатрос
 
20.02.14
12:56
(39) Да, переделал на выражение в параметрах. Из запроса функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА убрал ваще. Работает =)
Starhan и Avganec - большое спасибо!
41 Starhan
 
20.02.14
12:59
(40) а не заполнять параметры в отчете пробовал? :)

должно ничего не выводить так будут заданные даты
01/01/0001 00:00:00 и 01/01/0001 23:59:59
2 + 2 = 3.9999999999999999999999999999999...