Имя: Пароль:
1C
 
КА 1.1. УчетЗатрат сломался?
0 DTX 4th
 
23.10.17
20:41
Не могу понять, в чем дело.

Запрос простой:

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

СГРУППИРОВАТЬ ПО
    УчетЗатратОО.Период


Раздел учета = МПЗ

В первом случае период такой: 01.04.2017 00:00:00 - 30.06.2017
Результат:
https://i.imgur.com/Dg2P7jW.png

Во втором случае период: 01.05.2017 00:00:00 - 30.06.2017 (Или май отдельно)
Результат:
https://i.imgur.com/lrl7CWY.png

Как так то??? Начальный остаток не совпадает, количество строк отличается.

Итоги за 01.04.2017 00:00:00 - 30.06.2017 пересчитывал. Всю голову уже сломал.
1 AlvlSpb
 
23.10.17
21:33
(0) А как назначены параметры &Нп и &КП?
Запрос.УстановитьПараметр("НП",?)
2 DTX 4th
 
24.10.17
12:33
(1) По-разному пробовал. Через параметр СКД, с помощью консоли запросов.

Ведомость по учету МПЗ показывает 341 лям за май. А в случае 01.04.2017 - 30.06.2017, когда май полностью входит в период (это понятно даже по результатам запроса), запрос выдаёт 304 ляма.
3 TeMochkiN
 
24.10.17
12:56
а если так?

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

СГРУППИРОВАТЬ ПО
    УчетЗатратОО.Период
4 TeMochkiN
 
24.10.17
12:58
ой не то
5 DTX 4th
 
24.10.17
12:58
(3) Раздел учета доступен только после соединения с таблицей АналитикаВидаУчета. Можно перенести в условие соединения, но не думаю, что что-то поменяется.
6 TeMochkiN
 
24.10.17
13:04
(5) да, я ошибся, забыл структуру метаданных. попробуй всё же в параметры виртуальной таблицы засунуть отбор по нужным видам аналитики учета

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

СГРУППИРОВАТЬ ПО
    УчетЗатратОО.Период
7 КнОпка
 
24.10.17
13:06
(2) пересчет итогов делали?
8 DTX 4th
 
24.10.17
13:31
(6) Неожиданно, третий результат:
https://i.imgur.com/D8jZT4S.png
За другие месяц при этом ничего не изменилось =\

(7) В (0) написал, что пересчитывал за 01.04.2017 - 30.06.2017 пересчитывал
9 DTX 4th
 
24.10.17
13:32
(6) Если только за май формировать, получаем правильный 341 лям
10 DTX 4th
 
24.10.17
13:34
(9) но КОЛИЧЕСТВО(УчетЗатратРеглОстаткиИОбороты.АналитикаУчетаЗатрат) = 7784. Ничего не понимаю.
11 TeMochkiN
 
24.10.17
13:35
(8) ну не знаю. а как пересчитывал итоги?
12 КнОпка
 
24.10.17
13:37
скорее отбор криво работает)
пробуй это сделать в параметрах а не в Где
13 catena
 
24.10.17
13:44
А без количества?

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

СГРУППИРОВАТЬ ПО
    УчетЗатратОО.Период
14 DTX 4th
 
24.10.17
13:58
(11) РегистрыНакопления.УчетаЗатратРегл.ПересчитатьИтогиЗаПериод('20170401', '20170630235959')

(12) Как в (6)? Не помогло

(13) Стоимость не меняется
15 DTX 4th
 
24.10.17
13:58
(13) Количество я уже потом добавил, когда начал искать, откуда расхождение пошло
16 TeMochkiN
 
24.10.17
14:01
(14) а если ещё попробовать РегистрыНакопления.УчетаЗатратРегл.ПересчитатьИтоги() ?
17 TeMochkiN
 
24.10.17
14:03
(16) + если не поможет, попробовать ещё сделать пересчет итогов через тестирование и исправление?
18 TeMochkiN
 
24.10.17
14:07
(16) + о, ещё попробуй РегистрыНакопления.УчетаЗатратРегл.ПересчитатьИтогиЗаПериод() без параметров
19 TeMochkiN
 
24.10.17
14:08
просто я относительно недавно столкнулся с проблемой итогов: Неверные остатки после свертки базы
где мне помогла именно процедура ПересчитатьИтогиЗаПериод и именно без параметров. хз с чем связано
20 DTX 4th
 
24.10.17
14:22
(16) (18) Не помогло..

Остался только вариант из (17)

И как теперь доверять этой таблице?? Похоже, придётся динамически склеивать несколько отчетов по остаткам, если проблема не будет решена.
21 AlvlSpb
 
24.10.17
16:18
(2) я имел в виду как назначен параметр Начала и конец периода. Мне кажется дело просто в часах. Т.е.
Запрос.УстановитьПараметр("НП",НачалоДня(НачПериода))
Запрос.УстановитьПараметр("КП",КонецДня(КонПериода))
22 AlvlSpb
 
24.10.17
16:24
(21) + даже конец периода проверил бы так
Запрос.УстановитьПараметр("КП",КонецДня(КонПериода)+1)
23 DTX 4th
 
25.10.17
09:17
(21) С параметрами всё нормально, проверил.
Если фиксировать конец периода на конец дня 31.05, двигать начало периода и смотреть остаток на начало 01.05, то
1. При НП = 10.04 все правильно
2. При НП < 01.04 остатки начинают плыть
24 catena
 
25.10.17
12:18
Таблица ОстаткиИОбороты содержит только те периоды, в которые было движение. Например, номенклатура поступила в апреле, списывается в июне. Начальный остаток из таблицы ОстаткиИОбороты с периордичностью Месяц покажут следующую картину:

01.04.2017 - 0
01.06.2017 - Сумма

А мая нет, тк в мае не было движений по этой номенклатуре.
25 DTX 4th
 
25.10.17
13:38
(24) Ну это то понятно. Начальный остаток есть, и он всегда разный.
26 DTX 4th
 
25.10.17
13:39
(24) Т.е. не должно быть ситуаций, когда остаток на начало мая по таблице остатков равен А, по таблице остатков и оборотов (за год, например) раверн Б
27 catena
 
25.10.17
13:43
(26)Для остатков надо использовать таблицу остатков. ОстаткиИОбороты содержит остатки в разрезе оборотов.
(25)Начальный остаток есть в целом. Разверните детально свою группировку и посмотрите.
28 DTX 4th
 
25.10.17
14:01
(27)
>Для остатков надо использовать таблицу остатков

Мне нужны остатки на начало каждого месяца. Какие и зачем виртуальные таблицы есть, можно не объяснять)


>Начальный остаток есть в целом. Разверните детально свою группировку и посмотрите.

В каком целом? Какую группировку?

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

СГРУППИРОВАТЬ ПО
    УчетЗатратОО.Период

Ну либо как в (6), если так нагляднее.
29 DTX 4th
 
30.10.17
15:10
ТиИ не помогло. Пересчет итогов и проверка целостности.
Ещё варианты будут?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший