Отчет на СКД. Конечный остаток не учитывает регламентную операцию

1. Veetavas 20.03.15 14:21 Сейчас в теме
Отчет на СКД.
Выводим остатки по 51+остатки по 52 счетам.
В конечных остатках не учитывает регламентную операцию.
Запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ВЫБОР
		КОГДА &ПериодМесяц
			ТОГДА КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ)
		ИНАЧЕ КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, ДЕНЬ)
	КОНЕЦ КАК Период,
	ХозрасчетныйОстаткиИОбороты.Регистратор,
	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
	ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйОстаток,
	ХозрасчетныйОстаткиИОбороты.СуммаОборотДт,
	ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт,
	ХозрасчетныйОстаткиИОбороты.СуммаОборотКт,
	ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт,
	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
	ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйОстаток
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
			&НачалоПериода,
			КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ),
			Регистратор,
			,
			Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета)
				ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВалютныеСчета),
			,
			Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
Показать


Параметры:

НачалоПериода = НачалоПериода(&НачалоПериода,"День")
КонецПериода = КонецПериода(&КонецПериода, "День")

Почему так???
Прикрепленные файлы:
ФактическиеОстаткиИОборотыПоСчетамДС.erf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Denic_01 46 20.03.15 15:31 Сейчас в теме
Думаю, это старая проблема, связанная с тем, что если делать в СКД ОстаткиИОбороты периодичность по регистратору, то он работает некорректно - цифры там получаются, зачастую, просто не подчиняющиеся никакой логике

В таком случае, нужно обязательно выводить дополнительно ПериодСекунда, даже если он не нужен

как пример, нужно делать так:

.....
СоответствиеШинОстаткиИОбороты.КоличествоВЭксплуатацииКонечныйОстаток КАК КонечныйОстатокВЭксплуатации,
СоответствиеШинОстаткиИОбороты.Регистратор,
СоответствиеШинОстаткиИОбороты.ПериодСекунда
ИЗ
РегистрНакопления.СоответствиеШин.ОстаткиИОбороты(, , Авто, , ) КАК СоответствиеШинОстаткиИОбороты
3. Veetavas 20.03.15 15:54 Сейчас в теме
(2) Denic_01, добавил в запрос секунду. Где ещё что добавить в СКД?
4. Veetavas 20.03.15 15:56 Сейчас в теме
В обороты попадает, а в конечный остаток нет. Если добавить секунду к параметру КонецПериода, ничего не меняет. Только месяц следующий выводит.
5. GunnyBear 3 20.03.15 16:02 Сейчас в теме
(0)а регл. операция на конец дня приходится?
6. Veetavas 20.03.15 16:04 Сейчас в теме
(5) GunnyBear, да. На дд.мм.гггг 23:59:59
9. spacecraft 20.03.15 17:55 Сейчас в теме
(6) Veetavas, КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) даст На дд.мм.гггг 23:59:59. Вот и не попадают ваши данные. для этого надо прибавить 1 секунду. Это классика.
albatros12; echo77; +2 Ответить
11. Veetavas 20.03.15 18:20 Сейчас в теме
(9) spacecraft, пробовал уже добавлять. Конечный остаток по-прежнему неправильный. Зато выводит начальный остаток следующего периода равный ПРАВИЛЬНОМУ конечному остатку предыдущего. Короче, группировка будто бы неверная.
16. spacecraft 20.03.15 19:04 Сейчас в теме
(11) Veetavas, а куда добавляли?
17. Veetavas 22.03.15 15:59 Сейчас в теме
(16) spacecraft, в параметре добавлял. Да и в тексте запроса тоже. Разницы не было.
18. spacecraft 22.03.15 17:22 Сейчас в теме
(17) Veetavas, понятно. идет по периоду и добавляет новый не нужный?
Тогда остается только одно. В модуле объекта предопределенная процедура:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    ПараметрКонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
    
    Если ПараметрКонецПериода <> Неопределено Тогда
        
        ПараметрКонецПериода.Значение =
            Новый Граница(КонецДня(ПараметрКонецПериода.Значение), ВидГраницы.Включая);
            
    КонецЕсли;
    
КонецПроцедуры
Показать


что-то в этом роде.
19. Veetavas 23.03.15 09:52 Сейчас в теме
(18) spacecraft, не поверите, но и это не помогло...
20. spacecraft 23.03.15 10:42 Сейчас в теме
(19) Veetavas, пробуйте.

UPD. Заменил файл. Процедура в модуле не нужна.
Прикрепленные файлы:
ФактическиеОстаткиИОборотыПоСчетамДС.erf
Veetavas; +1 Ответить
21. Veetavas 23.03.15 11:00 Сейчас в теме
(20) spacecraft, Вам тонна благодарностей.
Мне тонна ударов палкой по спине. Вроде все перепробовал, а просто период с границами и движениями скомбинировать ума не хватило...
Всем интересующимся искать ответ в вышевыложенном отчете.
13. Denic_01 46 20.03.15 18:23 Сейчас в теме
(9) spacecraft,

если я правильно понял, данные попадают и отображаются как оборот, но не влияют на остаток
если так - то это классический глюк с "регистратором"
проявляется он причем не всегда - зависит от того как группировки задать...
14. Veetavas 20.03.15 18:24 Сейчас в теме
(13) Denic_01, верно говорите. В оборотах он есть. На конечный остаток не влияет.
7. Denic_01 46 20.03.15 16:14 Сейчас в теме
ничего не надо добавлять в СКД вроде - именно, поставить периодичность Авто и вывести оба поля (периодСекунда, регистратор) в результаты запроса и остатки начинают считаться нормально

и кстати задание периода в таком виде не имеет смысла - оно будет игнорироваться СКД
надо писать так:

&НачалоПериода {(&НачалоПериода)}

ну это в случае, если не стандартные настройки периода использовать
8. Veetavas 20.03.15 17:04 Сейчас в теме
(7) Denic_01, экспериментирую. А как выбор периодичности в виде параметра сделать тогда?
10. Denic_01 46 20.03.15 18:20 Сейчас в теме
(8) Veetavas,

просто так такой параметр не задать - это мудрить из кода только - в тексте запроса слово подменять
по крайней мере, других способов я не знаю....
12. Veetavas 20.03.15 18:23 Сейчас в теме
(10) Denic_01, в СКД можно менять текст запроса?) Не слышал о таком. Может можно в зависимости от параметра набор данных менять? Или всю схему?

Пока мой вышеуказанный запрос работает исправно. Но даже если периодичность выбрать месяц, он всё равно группировку неверную выдает. Конечный остаток то есть.
15. Denic_01 46 20.03.15 18:29 Сейчас в теме
(12) Veetavas, в СКД можно менять текст запроса?) Не слышал о таком

нельзя - это надо вызывать из кода компановщик и тд, т.е. стандартными методами текст не поменять, конечно

если периодичность не влияет то не знаю в чем там дело....
22. Veetavas 24.03.15 10:18 Сейчас в теме
В продолжении темы.

Отчет (см. выше) формируется нормально после запуска. После этого при попытке переформировать пишет "Преобразование значения" к типу Дата не может быть выполнено.

Я даже понять не могу, на каком моменте СКД спотыкается. Какой параметр или поле запроса система не может к Дате преобразовать?
23. spacecraft 24.03.15 10:21 Сейчас в теме
(22) Veetavas, я же выше написал: "Процедура в модуле не нужна" и перезалил файл.
Там просто нет проверки на повторное преобразование из даты в границу. Соответственно при последующей попытке преобразовать границу как дату и ругается. Эту процедуру вообще можно убрать.
Veetavas; +1 Ответить
24. Veetavas 24.03.15 10:23 Сейчас в теме
(23) spacecraft, точно. Не заметил. Спасибо!)
Оставьте свое сообщение

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