Имя: Пароль:
1C
1С v8
Остатки на конец дня
,
0 Darklight
 
31.01.12
14:51
Столкнулся с такой проблемой - в запросе к таблице остатков регистра бухгалтерии (думаю, что с накоплением то же самое будет) с передачей даты конца дня типа 31.01.2012 23:59:59 - возвращаются остатки не на конец дня (а чуть раньше), если же передать дату начала следующего дня - остатки правильные. Кажется, это нормальное поведение современной 1С (или я не прав); и, собственно, вопрос - как правильно передавать параметр для получения остатков на конец дня (кроме +1 одной секунды)?
1 Азат
 
31.01.12
14:53
а чем тебя не устраивает тема с получением остатков на утро следующего дня
2 GROOVY
 
31.01.12
14:54
Новый Граница(КонецДня, ВидГраницы.Включая)
3 mikecool
 
31.01.12
14:54
передавай моментвремени с типом границы включая
4 Господин ПЖ
 
31.01.12
14:54
>как правильно передавать параметр для получения остатков на конец дня (кроме +1 одной секунды)?

смотря куда... СКД "Новый Граница()" не понимает...
5 GROOVY
 
31.01.12
14:55
В СКД остатки выбираются по конец дня включительно.
6 shuhard
 
31.01.12
14:56
7 Господин ПЖ
 
31.01.12
15:00
(6)

Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Период"));
Граница = Новый Граница(КонецДня(Дата), ВидГраницы.Включая);
Параметр.Значение = Граница;
Параметр.Использование = Истина;

это жестЪ какая-то...
8 Ненавижу 1С
 
гуру
31.01.12
15:01
9 Darklight
 
31.01.12
15:19
(2) уВЫ, В ЗАПРОСе есть ещё конструкция МЕЖДУ &ДатаНач и &ДатаКон она ругается на параметры типа "Граница"
10 GROOVY
 
31.01.12
15:20
(9) Так передавайте параметром!
11 Darklight
 
31.01.12
15:20
(5) В СКД всё как раз "проще" - там есть паратмет типа СтандартныйПериод - он помоему решает проблему
12 Scooter
 
31.01.12
15:21
(9)запрос давай
13 Господин ПЖ
 
31.01.12
15:21
(9) мдя...

- трусы снять! на колени!
- да не сам на колени! трусы на колени!

(с) военкомат

разрешаю дать параметрам разные имена
14 Господин ПЖ
 
31.01.12
15:22
(11) интересно как 31.12.2011 23:59:59 это решит...
15 Darklight
 
31.01.12
15:22
(3) Для создания МоментВремени нужна ссылка - без неё на конец дня создать момент времени нельзя - а её ещё получать нужно заранее - не годится.
16 Darklight
 
31.01.12
15:26
(10) Не понял, что передавать параметром?
(12) Чем Вам запрос поможет - составной запрос - есть часть относящийся к остаткам (в т.ч. на конец дня), есть часть отборка по дате в конструкции МЕЖДУ Пока сдела два параметра для даты конца - для для оборотов и для остатков(+1)
(14) Насчет СКД сейчас не уверен - давно уже этот вопрос "не курил" - у меня сейчас обычный объект "Запрос"
17 GROOVY
 
31.01.12
15:42
(16) Параметр = Новый Граница(КакаятоФИгняСКонцомДня, ВидГраницы.Включая);
18 Darklight
 
31.01.12
16:15
(17) для тех кто не заметил, что вверху я уже написал: тип "Граница" не обрабатывается в конструкции запроса МЕЖДУ - ладно -я понял, придётся использовать разные параметры для виртуальной таблицы Остатки и отбора по конструкции МЕЖДУ
19 GROOVY
 
31.01.12
16:21
(18) Для тех кто в танке, в языке запросов вообще обращения к объектной модели недопустимо.
20 dGU
 
31.01.12
16:28
Запрос = Новый Запрос;
   
   Запрос.УстановитьПараметр("КонецМесяца", Новый Граница(Дата('20111231235959'), ВидГраницы.Включая));

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

Получите остатки на 31.12.2011 на 23:59:59 включая.
21 Darklight
 
31.01.12
16:30
(19) Да пофиг - суть была в другом, что если нужно обрабатывать дату конца дня как в оборотах, так и в остатках - её нужно передавать двумя разными параметроами - и не забывать, что конец дня для остатков - это не конец дня :(
(20) Это уже ясно - но у меня в запросе ещё есть конструкция МЕЖДУ &ДатаНач И &ДатаКон - а она тип "Граница" не обрабатывает - от этого приходится этот параметр дважды передавать!
22 ptiz
 
31.01.12
16:32
(21) Передавай 2 параметра конца.
23 GROOVY
 
31.01.12
16:32
(21) Если в обороты передать с границей включая и с границей исключая то выборка не изменится.
24 GROOVY
 
31.01.12
16:38
+23 хотя гоню... Имл в виду если передать просто дату и дату с границей включая тогда не изменится выборка.
25 Тарантул
 
31.01.12
16:52
"ВЫБРАТЬ
   |    ХозрасчетныйОстатки.Счет,
   |    ХозрасчетныйОстатки.СуммаОстаток,
   |    ХозрасчетныйОстатки.КоличествоОстаток
   |ИЗ
   |   РегистрБухгалтерии.Хозрасчетный.Остатки(КонецМесяца), Счет В ИЕРАРХИИ(&Счет), , ) КАК
|ХозрасчетныйОстатки
..........


Запрос.УстановитьПараметр("КонецМесяца",Новый Граница(КонецДня(Дата), ВидГраницы.Включая));

вот так вот, все нормул
26 Тарантул
 
31.01.12
16:55
(25)  |    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецМесяца, Счет В ИЕРАРХИИ(&Счет), , ) КАК ХозрасчетныйОстатки";

вот так правильнее конечно , сорри:)