|
Получение "КонецПолугодия" | ☑ | ||
---|---|---|---|---|
0
Ychenik1c
19.05.22
✎
15:25
|
Добрый день. Подскажите как получить КонецПолугодия от даты? Не запросом.
Месяц, Квартал, Год - есть возможность стандартно получить |
|||
1
yopQua
19.05.22
✎
15:27
|
еп еп квартал(кварта())?
|
|||
2
yopQua
19.05.22
✎
15:29
|
ну + 1 еще можно добавить или 2 еп еп
|
|||
3
lodger
19.05.22
✎
15:32
|
?(Месяц(ДатаВходящая)>6,КонецГода(ДатаВходящая),?(Месяц(ДатаВходящая)>3,КонецКвартала(ДатаВходящая),КонецКвартала(ДобавитьМесяц(ДатаВходящая,3))))
|
|||
4
Ryzeman
19.05.22
✎
15:33
|
КонецКвартала(?(Месяц(Дата) % 3 < 2), ДобавитьМесяц(Дата, 3), Дата)
|
|||
5
Ryzeman
19.05.22
✎
15:34
|
(4) гм, <3 а не <2
|
|||
6
Ychenik1c
19.05.22
✎
15:35
|
Спасибо.
Я думал может я не нашел, а значит её нет. |
|||
7
Ryzeman
19.05.22
✎
15:36
|
Ну... в СП нет. Или думаешь есть недокументированная?)
|
|||
8
Выпрь
19.05.22
✎
15:41
|
(3) всетаки Если Иначе читается куда проще
|
|||
9
Kassern
19.05.22
✎
15:58
|
(0) КонецМесяца(ДобавитьМесяц(Дата,?(Месяц(Дата)>6,12,6)-Макс(6,Месяц(Дата))))
|
|||
10
Kassern
19.05.22
✎
16:06
|
Месяц=Месяц(Дата);
НужнаяДата=КонецМесяца(ДобавитьМесяц(Дата,?(Месяц>6,12-Макс(6,Месяц),6-Мин(6,Месяц)))); |
|||
11
yopQua
19.05.22
✎
16:22
|
(10) да он хотел готовую функцию без кракозябной песанины
|
|||
12
Kassern
19.05.22
✎
16:24
|
(11) А в чем проблема?) ОбщегоНазначения.КонецПолугодия(Дата) - а уж что вы впихнете в эту функцию, это уже не важно)
|
|||
13
yopQua
19.05.22
✎
16:26
|
(12) прально, подальше ее с глаз долой)) тоже вариант)
|
|||
14
hhhh
19.05.22
✎
16:27
|
(7) что-то фигня какая-то. Например, октябрь. По вашей формуле не работает.
|
|||
15
Kassern
19.05.22
✎
16:30
|
(14) все работает. Октябрь это 10 месяц, следовательно получаем добавить к дате 12-10=2 месяца. И берем конец месяца в итоге получится конец года текущей даты
|
|||
16
Kassern
19.05.22
✎
16:31
|
||||
17
Kassern
19.05.22
✎
16:31
|
(14) а блин вы не мне)
|
|||
18
Asmody
19.05.22
✎
16:32
|
(0) может сервис написать?
|
|||
19
Kassern
19.05.22
✎
16:34
|
(18) ахаха, как было со строкой наоборот?) Только чур конкурс на минимум символов)
|
|||
20
Ненавижу 1С
гуру
19.05.22
✎
16:40
|
Интересно, почему есть функция КонецКвартала, но нет КонецПолугодия?
хотя КонецКвартала и КонецПолугодия можно вывести из КонецМесяца и Месяц |
|||
21
1Сергей
19.05.22
✎
16:41
|
(20) потому что полугодия в учёте вроде нигде не нужны
|
|||
22
Asmody
19.05.22
✎
16:52
|
(20) ещё бы к этим КонецКвартала(), КонецПолугодия(), КонецГода() можно было бы прикручивать свой "управленческий" календарь. А то было у меня всякое. Например, учетный фин.год начинался 1.02. Или ещё было такое, что границы фин.месяцев были в районе 22 ± 2 числа. А потому что фин.дир. был затейник с фантазией
|
|||
23
Kassern
19.05.22
✎
16:55
|
(22) ахахах, это хорошо, что ваш фин дир. не решил по ацтекскому календарю управленческий учет вести. Пришлось бы еще 6 месяцев прикрутить к году)
|
|||
24
1Сергей
19.05.22
✎
17:10
|
Марсианский календарь http://uploads.ru/NrQ3c.jpg
|
|||
25
RomanYS
19.05.22
✎
17:59
|
(10) Макс и Мин тут явно лишнее
и можно совсем без условий НужнаяДата = КонецМесяца(ДобавитьМесяц(Дата, (12 - Месяц(Дата)) % 6)); |
|||
26
youalex
19.05.22
✎
18:18
|
Дата(Год(ТекущаяДата()), 6, 30, 23, 59,59)
|
|||
27
Ненавижу 1С
гуру
19.05.22
✎
18:23
|
(22) Да-да. Даёшь начало статистической недели в четверг
|
|||
28
Конструктор1С
19.05.22
✎
19:21
|
(4) фу-фу-фу такой код писать. Сиди потом, глаза ломай об вложения функций в одной строке. Экономишь на строчках кода?
|
|||
29
Конструктор1С
19.05.22
✎
19:34
|
Функция КонецПолугодия(Знач Дата)
КонецТекущегоГода = КонецГода(Дата); ТекущийМесяц = Месяц(Дата); Если ТекущийМесяц > 6 Тогда КонецПолугодия = КонецТекущегоГода; Иначе КонецПолугодия = ДобавитьМесяц(КонецТекущегоГода, -6); КонецЕсли; Возврат КонецПолугодия; КонецФункции |
|||
30
Asmody
19.05.22
✎
19:34
|
(23) всему есть разумное объяснение. Там, где год начинался с февраля, просто в то время после январских праздников проходила крупная отраслевая выставка, которая во многом определяла год.
А там, где месяц начинался в 20х числах, это была "дочка" импортной компании, где фин.месяц начинался "с первого понедельника после 20 числа месяца". Как-то так. |
|||
31
Asmody
19.05.22
✎
19:35
|
(27) я не отрицаю, что это возможно. Например, производство может считать по своим циклам, которым календарные недели и месяцы вообще пофиг.
|
|||
32
vierzehn
19.05.22
✎
19:54
|
(29) Т-щ поборник чистоты, а какое отношение к задаче имеет слово "Текушее" в имени переменной "КонецТекущегоГода"? Фу-фу-фу такой код писать.
|
|||
33
Конструктор1С
19.05.22
✎
20:03
|
(32) можешь переименовать на своё усмотрение. Видишь ли, самое главное чтобы ты быстро понял чт и как делает код. А не полировал его глазами сверху вниз, снизу вверх, слева направо, справа налево, и так на несколько кругов
|
|||
34
Конструктор1С
19.05.22
✎
20:34
|
(22) это же не сложно. Создаешь общий модуль и в нем реализуешь свои функции
КонецКвартала = МарсианскийКалендарь.КонецКвартала(Дата); НачалоГода = МарсианскийКалендарь.НачалоГода(Дата); |
|||
35
Asmody
19.05.22
✎
20:46
|
(34) и переписать выбор периодов, расчёт итогов, чуть поправить запросы и СКД. Всего-то делов
|
|||
36
Ryzeman
20.05.22
✎
04:59
|
(28) На самом деле так не пишу никогда) Просто решил повыёживаться на форуме, типа как крутые пацаны на нормальных языках пишут)
|
|||
37
yopQua
20.05.22
✎
06:47
|
может календарь программно прикрутить как то или стандартный период из скд например или где там еще такое есть
|
|||
38
Конструктор1С
20.05.22
✎
07:31
|
(35) ну выбор периодов часто и так самопальная форма, расчет итогов не понятно зачем менять, СКД умеет работать с общими модулями. Слабое звено только запросы, но и те можно переписать
|
|||
39
Конструктор1С
20.05.22
✎
07:39
|
(36) молодец. Но если всё-таки сделал вложенные вызовы, то хотя бы немного облегчи страдания будущих читателей кода. Добавь переносов, отступов и всего такого
КонецКвартала( ?(Месяц(Дата) % 3 < 2), ДобавитьМесяц(Дата, 3), Дата) ) |
|||
40
Ненавижу 1С
гуру
20.05.22
✎
08:38
|
(39) КонецМесяца(ДобавитьМесяц(Дата, (12-Месяц(Дата))%6))
|
|||
41
Конструктор1С
20.05.22
✎
08:53
|
(40) это не мой код, а код из (4). Тебе тоже не помешало бы создать переменные, или хотя бы с переносами заморочиться
|
|||
42
yopQua
20.05.22
✎
09:57
|
(39) есть у нас один такой - понаставит отступов, стрелочек и звездочек с подчеркиваниями, очень похоже на картинки символами. если плохое настроение, заходишь и тешишься
|
|||
43
Выпрь
20.05.22
✎
09:59
|
(39) автоформатирование текста убьет такую красоту
|
|||
44
Dmitrii
гуру
20.05.22
✎
10:25
|
А в спортивных организациях финансовые периоды могут определяться сезонами, где календарный Новый Год - это середина сезона.
|
|||
45
Ненавижу 1С
гуру
20.05.22
✎
10:43
|
(41) 1С итак многословно, чего только работа с запросом стоит
|
|||
46
yopQua
20.05.22
✎
10:45
|
(44) да у большинства свой календарь, регламент наверно только по официальному работает, что лишь подтверждает, что это еще одна из альтернативных форм календаря
|
|||
47
yopQua
20.05.22
✎
10:46
|
(45) чего она стоит? что объект создать надо и параметры поставить?
|
|||
48
Aleksandr N
20.05.22
✎
10:48
|
Выдрано из типовой:
Если Месяц(Дата) < 7 Тогда Возврат КонецДня(Дата(Год(Дата), 6, 30)); Иначе Возврат КонецГода(Дата); КонецЕсли; |
|||
49
Ненавижу 1С
гуру
20.05.22
✎
12:10
|
(47) посмотри как это делается в LINQ, например
чисто по размеру кода |
|||
50
yopQua
20.05.22
✎
14:11
|
(49) поинтересней конечно, но не критично. в шарпе нопример муторней, чем в 1с, теория относительности.. да и сравнивать разные архитектуры тоже не торт
|
|||
51
Конструктор1С
20.05.22
✎
14:18
|
(43) это не красота, а уменьшение боли для глаз. Переносы после форматирования останутся
|
|||
52
1Сергей
20.05.22
✎
14:19
|
(48) Очень просто и понятно. Именно так и должен выглядеть код
|
|||
53
Конструктор1С
20.05.22
✎
14:21
|
(45) это не повод лепить код в одну строку
(49) в других системах не пишут запросы в 30 этажей. Это изобретение 1с и 1сников - устраивать месиво из запросов |
|||
54
Ryzeman
20.05.22
✎
14:29
|
(53) грамотными и сложными запросами в других системах решаются те же задачи, что и в 1с. Другой вопрос, что вряд ли где ещё увидишь текст запроса собираемый в 150 модулях.
|
|||
55
Конструктор1С
20.05.22
✎
14:36
|
(54) увы, нет) Тащить бизнес-логику в запросы к БД уже давно считается моветоном. За бизнес-логику не в коде могут даже а-та-та
|
|||
56
yopQua
20.05.22
✎
14:43
|
(55) а хранимые процедуры считаются запросами, в которых бизнес-логика?
|
|||
57
Конструктор1С
20.05.22
✎
14:55
|
(56) считаются. Хранимки тоже зло, от которого стараются отказываться. Другое дело, что в распоряжении 1сника никаких хранимок нет, только довольно примитивный select
|
|||
58
Ryzeman
20.05.22
✎
14:58
|
(57) у нас есть ODBC
|
|||
59
Выпрь
20.05.22
✎
14:58
|
(51) отступы пропадут
|
|||
60
Конструктор1С
20.05.22
✎
15:22
|
(58) и?
|
|||
61
Ненавижу 1С
гуру
20.05.22
✎
15:27
|
(53) не лепи, я ж не против
но лично я считаю, что в данном случае кода в строке в меру |
|||
62
ДедМорроз
20.05.22
✎
18:39
|
Если месяц(дата)>6 тогда дата(год(дата),12,31,23,59,59) иначе дата(год(дата),6,30,23,59,59)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |