Имя: Пароль:
1C
1С v8
Как можно повлиять на нумерацию недель года в 1С?
,
0 Живой Ископаемый
 
07.02.17
10:56
1. Никак 67% (2)
2. Написать свою интеллектуальную функцию 33% (1)
3. В Настройках БД 0% (0)
4. В Настройках ИБ 0% (0)
5. -1 к номеру недели 0% (0)
Всего мнений: 3

https://ru.wikipedia.org/wiki/Неделя

Календарная неделя и её нумерация[править | править вики-текст]
В середине ХХ века возникла необходимость нумерации календарных недель. Дело в том, что иногда в производстве или в бухгалтерии удобней в качестве даты, например даты изготовления или недели оплаты, использовать комбинацию год и календарная неделя. Данная проблема была решена и отражена в международном стандарте ISO 8601.

Согласно рекомендациям международного стандарта ISO 8601 (пункт 2.2.10[2]), который признают подавляющее большинство стран Европы и Азии, и Россия в том числе, первой неделей года считается неделя, содержащая первый четверг года, что эквивалентно следующим выражениям:

неделя, содержащая 4 января;
неделя, в которой 1 января это понедельник, вторник, среда или четверг;
неделя, которая содержит как минимум четыре дня нового года.

<.....>


В США и Канаде принят другой принцип нумерации календарных недель. В основе лежат следующие два правила:

каждое воскресенье начинается новая календарная неделя;
1 января, независимо от дня недели, начинается первая календарная неделя.
=========



Сейчас у меня так:


https://www.dropbox.com/s/5mtwbdofizoyftb/Screenshot%202017-02-07%2009.54.48(2).png?dl=0
1 Живой Ископаемый
 
07.02.17
10:57
ССылку на дропбокс переврало, попробую ограничить кавычками:

"https://www.dropbox.com/s/5mtwbdofizoyftb/Screenshot%202017-02-07%2009.54.48(2).png?dl=0";
2 Aleksey
 
07.02.17
10:58
3 Живой Ископаемый
 
07.02.17
10:58
Ладно, пусть будет Джинг:
https://screencast.com/t/u488e6PEuju
4 Aleksey
 
07.02.17
11:00
Пришел ответ из 1С.. типа 1с не собирается поддерживать какието там ISO..

"Возможно, если мы решим получить функциональность ISO-8601, самым правильным было бы оставить НеделяГода().... Эта задача занесена в проект. Будет ли это реализовано и сроки реализации сказать пока не готовы."
(с) v8: Нумерация недель..
5 Aleksey
 
07.02.17
11:02
Какая сейчас неделя?
просвятите с неделями
v8: НеделяГода?

Предлагаемый алгоритм ISO имеет ряд существенных отличий от используемого у нас. Например, 1 января у нас всегда относится к 1-й неделе года, а 31 декабря к последней неделе предыдущего года. Даже, если эти обе даты приходятся на одну неделю. Согласно ISO-8601 31 декабря и 1 января могут относиться к одной неделе. И это будет либо последняя неделя уходящего года, либо 1-я неделя наступающего. Например, если 1 января приходится на пятницу, то согласно ISO-8601, эта дата будет оноситься к последней неделе предыдущего года, а 1-я неделя текущего года начнется только 4 января (в понедельник, то есть 1-й день недели). Таким образом, помимо функции НеделяГода() требуется функция ГодНеделиГода(), которая позоволит установить к какому году относится неделя года.

Кроме этого,  согласно CLDR и ICU определение дня, с которого начинается 1-я неделя года, является локейло-зависимым. Как и определение 1-го дня недели.

Алгоритм, подобный нашему, используется в MS SQL Server в функции DATEPART(week, ...). Там тоже 1 января всегда относится к 1-й неделе года, а 31 декабря - к последней.

Возможно, если мы решим получить функциональность ISO-8601, самым правильным было бы оставить НеделяГода() как есть и ввести новые две функции для вычисления недели года и года недели года. Эта задача занесена в проект. Будет ли это реализовано и сроки реализации сказать пока не готовы.
OFF: Юзер утверждает, что 30 апреля это не 18-я неделя года
6 Вафель
 
07.02.17
11:04
Вычитай 1, если нужно
7 Живой Ископаемый
 
07.02.17
11:13
2(5) То есть никак, понял, сенкс.
2(6) Откуда вычитать? Пользователь открыл один из 100500 отчетов на СКД и добавил группировку - неделя. И увидел там 7-ю, вместо 6. В какой момент я буду что вычитать?

Никак
8 lubitelxml
 
07.02.17
11:17
имхо такое событие не поймаешь

Никак
9 Torquader
 
07.02.17
21:35
Неделя - это семь дней, а год на семь дней не делится, так что как ни старайтесь, или будут обрезанные недели, или будут потерянные дни.
10 H A D G E H O G s
 
07.02.17
21:46
Я правильно понимаю:
1С считает по системе США. Эта система понятна и логична человекам, но допускает нецелые недели.

Европейцы сделали хитрое смещение и нецелых недель не появляется, но система нелогична и античеловечна, но внесена в ISO и нужна узколобым бухам.

Все так?
11 Torquader
 
07.02.17
22:25
(10) Проблема в том, что у нас по ГОСТу заявлена система ISO, но в некоторых календарях всё ещё используется вариант, когда 1 неделя - с первого января.
12 Bell
 
07.02.17
22:29
Номер недели использовал в создании нумератора договоров. Все хотелки реализуемы.

Написать свою интеллектуальную функцию
13 Живой Ископаемый
 
15.02.17
15:52
2(10) да
Более того, Ексель тоже использует нумерацию недель, где первая неделя начинается с 1-го четверга в году.
В оракле используется один из двух вариантов:

WW  Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.
IW  Week of year (1-52 or 1-53) based on the ISO standard.

select to_char(sysdate , 'IW') FROM DUAL;

===

2(12) Наметь хотя бы приблизительно - как сделать так, чтобы название группировки выглядело не как "7-я неделя", а как "6-я неделя", когда в СКД выводится отчет с детализацией по периоду - неделя.
14 Вафель
 
15.02.17
16:06
(13) делай свою колонку номер недели. не используй стандартные
15 Живой Ископаемый
 
15.02.17
16:32
2(14) Нет своей колонки. Нет стандартной. Есть 100500 отчетов, в каждом из котором на пользовательском уровне можно добавить группировку по периоду, и выбрать неделю