0
floatline
08.12.14
✎
12:37
|
Нужно сгруппировать данные по неделям в стандартном универсальном отчете в УПП, но неделя должна начинаться с воскресенья. Есть ли возможность изменить день начала недели программно?
Или придется реализовать вариант: группируем по дням, обходим таблицу разбивая на недели нужным образом?
|
|
2
floatline
08.12.14
✎
12:44
|
Так смена локализации повлечет за собой другие вопросы. Поиском не нашел как 1С определяет начало(в типовых конфигурациях: понедельник): производственный календарь, ISO 8601:1988 или каким-то другим способом?
Нашел только старый ответ от 1С:
Ошибка функции НеделяГода 19.06.2008 09:35 Русанов Дмитрий (1С, Москва)
592274
Считается, что способ определения номера недели (как и дня начала недели) является завимиым от локейла. То есть, в общем случае, в разных странах способы расчета номера недели отличаются. Функция НомерНедели() использует некоторый собственный алгоритм, не зависящий от локейла. В нем предполагается, что если хотя бы один день недели оказался в году (в начале года), то это уже неделя, имеющая номер. Началом недели всегда является понедельник. Например, если 1 января - воскресенье, то 1 января относится к первой неделе, а 2 января - ко второй. Наверное, это грубовато. Мы рассмотрим это вопрос.
|
|
4
Ненавижу 1С
гуру
08.12.14
✎
13:02
|
что-то в таком роде:
ВЫБРАТЬ
ВЫБОР
КОГДА ДЕНЬНЕДЕЛИ(ПродажиОбороты.Период) < 7
ТОГДА ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -ДЕНЬНЕДЕЛИ(ПродажиОбороты.Период))
ИНАЧЕ ПродажиОбороты.Период
КОНЕЦ КАК НачалоНедели,
СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот
ИЗ
РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА ДЕНЬНЕДЕЛИ(ПродажиОбороты.Период) < 7
ТОГДА ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -ДЕНЬНЕДЕЛИ(ПродажиОбороты.Период))
ИНАЧЕ ПродажиОбороты.Период
КОНЕЦ
|
|