1с получить день недели по дате
Изобретать велосипед неохота никому, но то ли я гуглом пользоваться не умею, то ли авторы статью пишут не с теми ключевыми словами.
Один из хороших вариантов решения описан в статье Номер дня недели в месяце.
Мой вариант выглядит следующим образом
Специальные предложения
В функции, приведенной в статье, мне не нравится "Попытка-Исключение", которую лучше не использовать для относительно простой календарной арифметики, а оставить для более серьезных и сложных случаев. И то, что возвращается в исключении. Если результат функции будет без проверки на неопределено использоваться в выражении, то получится еще одно исключение. А если делать проверку, то она будет еще одной.
(2) Проще, не спорю. Даже привел статью, где рассматривается этот вариант. Просто это другой вариант решения.
В функции, приведенной в статье, мне не нравится "Попытка-Исключение", которую лучше не использовать для относительно простой календарной арифметики, а оставить для более серьезных и сложных случаев. И то, что возвращается в исключении. Если результат функции будет без проверки на неопределено использоваться в выражении, то получится еще одно исключение. А если делать проверку, то она будет еще одной.
(3) интересный алгоритм. Только не правильно отрабатывает на параметрах вне диапазона. Точнее если указать параметры меньше допустимого для данного месяца.
Пример:
ДатаМесяц = Дата(2017,1,1);
НомерНеделиМесяца = 1;
НомерДняНедели = 1;
Получим '02.01.2017'.
В большую сторону отрабатывает.
Это конечно проблема передачи корректных данных, но забавно.
(6) А мне кажется, что результат верный, ведь спрашивается дата первого понедельника месяца (как я понял задачу). Это и есть второе января.
(7) если так подходить к задаче, тогда верно. Только получается, что начало первой недели больше конца первой недели. Логический нонсенс.
(8) Да, согласен, наверное, мне нужно было по другому функцию и параметры называть. ближе к формулировке задачи в анонсе.
(9) да, тут не номер недели задается, а порядковый номер нужного дня недели в месяце. То есть первый понедельник, а не понедельник первой недели. Если месяц начинается не с понедельника, или любой другой день недели не попадает в первую неделю, то всегда будет сдвиг номера недели)
Ну и этой функции пофиг, она получает хоть 10-й понедельник месяца, что может сбивать с толку)
А на самом деле, это 10-й понедельник от начала месяца заданной даты.
А так спасибо, пригодилось!
(11)Сам спросил, сам понял. Нужно было вот это
""+НеделяГода(ЭтаФорма.ДатаМесяца)+""+ДеньНедели(ЭтаФорма.ДатаМесяца)
Просмотры 12947
Загрузки 0
Рейтинг 10
Создание 12.09.17 20:11
Обновление 12.09.17 20:11
№ Публикации 672632
Тип файла Нет файла
Конфигурация Не имеет значения
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Да
См. также
Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо
Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.
11.07.2007 56253 tormozit 52
Модули общего назначения - готовые полезные функции и процедуры конфигураций на БСП
В данной статье я рассматриваю несколько полезных "классических" функций и процедур для работы с данными, которые уже встроены в БСП и готовы к использованию.
25.04.2022 2811 quazare 11
Вывод табличных документов с разной ориентацией страниц в один pdf файл
Привожу код для вывода нескольких табличных документов c разной ориентацией страниц в один файл pdf.
06.04.2022 1077 sdjoker 5
Полезный код для программистов 1С (часть 3). Подготовка печатных форм + подсистема Управление печатью (БСП)
Мы все любим 1С, не так ли? Вот дает 1С прекрасный механизм возможности модификации макетов печатных форм в БСП. А из всех рекомендаций это получение макета и заполнение параметров областей. И вы спросите: "А что не так. ты печатные формы накодить не можешь без указаний сверху?". Да вот в том то и дело, что я могу все. А вот пользователям от такого механизма пользы 0, если из всех доступных изменений остаются только шрифты, да текст произвольный накинуть. А ведь можно больше, надо только соблюдать несколько правил при подготовке печатных форм.
07.03.2022 3238 vandalsvq 0
Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо
Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки
10.09.2017 53143 tormozit 74
Убираем параметры из отбора СКД
Заметка о некоторых технических нюансах параметров данных и отборов СКД.
17.02.2022 2679 Yashazz 28
Конвертируем печатную форму pdf в картинку (jpg, gif, png и прочие) на сервере
Была поставлена интересная задача конвертировать печатную форму в файл картинку. По условию задачи клиенту на почту нужно присылать только файл картинку (jpg, gif).
22.12.2021 2905 John_d 23
Несколько простых приемов для удобной работы в конфигураторе
Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С - в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.
12.11.2021 7850 acces969 95
Универсальные функции с примерами использования Промо
14 универсальных функций, с примерами использования - для обычного и управляемого интерфейса
26.02.2016 44114 unichkin 47
Простейший способ учета изменений управляемых форм объектов 1С
Описание методологии, позволяющей контролировать список изменений форм + вспомогательные функции программного изменения форм. Пригодятся при внесении изменений в расширениях, если есть необходимость видеть и контролировать все сделанные с формой изменения.
02.11.2021 1362 avalakh 12
Функции для преобразования справочников и документов в соответствие и обратно
Функции для преобразования справочников и документов в соответствие и обратно. Предназначены для передачи данных между одинаковыми и не очень конфигурациями или как очередной вариант сохранения (архивирования) объектов перед редактированием с последующим восстановлением.
01.11.2021 1101 avalakh 5
Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".
Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом). То вам - сюда.
08.10.2021 2016 e-9 13
Программные перечисления, ч.2: приемы кэширования при разработке Промо
Все знают, что такое кэш, и зачем он нужен. Но в 1С разработчик обычно использует кэширование только на уровне конфигурации, а в какой-нибудь обработке скорее ломает голову над запросом - как получить все данные за один заход. Хочется рассказать о том, как можно добиться хороших результатов с стратегией "разделяй и властвуй".
30.10.2017 28423 unichkin 18
Взаимодействие с api Честный знак (Молочная продукция)
Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.
30.08.2021 5105 user5300 57
Из Word в табличный документ
Быстро и просто: текст, списки, таблицы. Готовый код
18.08.2021 2126 Yashazz 5
Префиксация объектов - полезный типовой функционал БСП
В данной публикации предлагаю рассмотреть основные типовые возможности библиотеки стандартных подсистем (БСП), касаемые префиксации объектов конфигураций.
21.06.2021 6619 quazare 4
Выполнение произвольного кода в фоновых заданиях Промо
Если надо быстро провести 100`000 документов.
13.01.2016 25542 unichkin 13
Своя функция &Вместо &ИзменениеИКонтроль
Как добавить контроль в расширения, если не доверяешь аннотации &ИзменениеИКонтроль.
06.06.2021 8629 AntonProgma 162
Предотвращение многократного вызова "ПриПолученииДанных" во время поиска в табличном поле в обычных формах
Долго искал решение: как при выводе строк заполнить значениями колонки, которые созданы программно, чтобы, не было тормозов при стандартном поиске. И с минимальными изменениями (легко контролируемыми, при обновлении).
07.04.2021 2413 Vlad_CK 9
Самый простой, на мой взгляд, способ получить QR код для 1СV8. Без внешних компонент, как говорится, бесплатно, без смс и регистрации))
17.12.2020 6559 shell_maxim 28
Ускорение отладки управляемых форм Промо
Ускорение отладки управляемых форм в больших неповоротливых конфигурациях, когда заказчик просит что-то и сам не знает, что из этого получится.
23.05.2015 15404 moolex 5
Сохранение настроек
Делюсь еще одним не самым очевидным способом хранения настроек в базах на БСП без доработки конфигурации. Весь код в статье.
22.11.2020 5845 the1 8
Сохранение настроенного запроса набора данных СКД
Как сохранить запрос набора данных СКД в том виде, каким он будет выполнен системой для открытия в консоли запросов с диска ИТС.
09.11.2020 1904 Serge R 0
Произвольные колонтитулы и повтор шапки таблицы в табличном документе (функция)
Пример рекурсивной функции, при помощи которой в табличный документ можно выводить верхний или нижний колонтитулы с произвольным содержимым, а также делать повтор шапки таблицы (или таблиц, если их несколько).
07.10.2020 7424 ellavs 3
УстановитьСсылкуНового() как ход оптимизации! Промо
Для себя открыл новую возможность применения данного метода в типовых конфигурациях. Особенность чрезвычайно интересная при загрузке справочников.
22.10.2014 57665 logarifm 85
Лайфхаки для разработчиков 1С. Часть 1
Собрали 20 лайфхаков, которые используют наши программисты при работе с 1С. Формы, контрагенты, СКД, процедуры, глюки платформы и многое другое. В этой статье публикуем первую часть.
30.09.2020 7679 Neti 47
Самый простой парсинг и обработка веб-страниц в 1С
Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.
07.08.2020 16814 YPermitin 27
Выполнение внешней обработки по расписанию для управляемого и обычного приложения
Использование БСП для выполнения внешних обработок в управляемом и обычном приложении
06.08.2020 19241 RPGrigorev 0
[8.2] Глобальные переменные в контексте сервера (управляемое приложение) Промо
09.12.2009 38462 Душелов 34
Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)
В данном обзоре приведу примеры встроенных используемых функций для работы с печатными формами на примерах конфигураций Управление торговлей 11.4 и Бухгалтерия 3.0.
10.07.2020 9814 quazare 5
Вывод дерева в табличный документ СКД
Вывод содержимого элемента формы "ДанныеФормыДерево" в табличный документ средствами СКД.
09.07.2020 5013 Yashazz 11
Форма выбора (подбор) в управляемых формах
Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.
При разработке часто пользователю хочется видеть на форме день недели словом, например: Вторник , Среда и т.д. Собственно как получить день недели словом?
Через функцию формат:
Еще вариант для краткого представления:
Похожие FAQ
Еще в этой же категории
Момент Времени и Граница, назначение, примеры использования 39
Момент времени: Фирма 1С описывает так: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методо Преобразование даты 1С в unixtime (Unix Time Stamp) 17
Как известно, unixtime содержит количество секунд, прошедших с 1 января 1970 года. Поэтому, для преобразования даты 1С в дату unixtime нам всего то нужно от нашей даты отнять дату 01.01.1970 и перевести получившееся значения в удобоваримый формат. Функция месяц прописью 11
// пример от glory01 А = Формат(20020820153309, " ДФ=ММММ" ) // А = " Август" А = Формат(ТекущаяДата(), " ДФ=ММММ" ) // А = " Март" Функция МесяцПрописью(НомерМесяца) Экспорт НомерМесяца=Число(НомерМесяца); Если НомерМесяца = 1 Тогда Воз Как вычислить разницу между двумя датами в месяцах 11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Как вычислить разницу между двумя датами в часах и минутах 10
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); Посмотреть все в категории Работа с Датами (Временем)
При разработке часто пользователю хочется видеть на форме день недели словом, например: Вторник , Среда и т.д. Собственно как получить день недели словом?
Через функцию формат:
Еще вариант для краткого представления:
Похожие FAQ
Заполнить программно Партии в проводках 0
Добрый день! В счете учета включили Субконто3=Партии. Как заполнить партии в проводках, которые уже проведены ранее? Спасибо. Как в программе 1С Бух 3 отразить начисление фиксированных страховых взносов ИП? 2
Порядок расчета фиксированных страховых взносов за 2014 и 2015, 2016 год Сумма взноса в ПФР = МРОТ * 12 * 26 % Сумма взноса в ФОМС = МРОТ * 12 * 5.1 % где МРОТ (Минимальный Размер Оплаты Труда): 5554 рублей в 2014 году 5965 рублей в 2015 Как в табеле обозначается нерабочий праздничный день во время отпуска ОТ или В? 0
Каким кодом правильно отображать в табеле учета рабочего времени нерабочий праздничный день, пришедшийся для данного работника на период отпуска: В или ОТ в разделе "Отметки о явках и неявках на работу по числам месяца"? Например, если у работника Как получить количество рабочих дней в месяце по календарю? 1
Для одного проекта потребовалось получить количество рабочих дней в месяце по календарю, без учета праздников. В результате получилась простая функция: Функция ПолучитьКолВоРабочихДнейПоКалендарю(ДатаМесяца) Рабочие=0; Кон=НачалоМесяца(ДатаМес Как преобразовать дату в формат RFC 822 и обратно? 0
Создавая обмены данными между 1С и сайтами, часто приходится форматировать вывод даты в стандарт RCF-822 или преобразовывать его в понятную для 1С ДатуВремя. Дата в формате RFC-822 выглядит так: Tue, 12 Aug 2013 14:15:00 +0400 Небольшая справка п Посмотреть все результаты поиска похожих
Еще в этой же категории
Разница между датами в рабочих днях, подсчет рабочих дней в 1С 5
Разрабатывая некий функционал в 1С, бывает, необходимо посчитать количество рабочих дней после какой-то даты. В этой статье примеры кода и запросы в которых считается количество рабочих дней: Код, при вычислении определяет только по дню недели, ви Как посчитать разницу между двумя датами? 5
Код уникален и сработает везде. Функция ПолучитьКоличествоДней() Счетчик = 1; НачалоПериода = Объект.НачалоПериода; Пока НачалоПериода Объект.КонецПериода Цикл Счетчик = Счетчик + 1; Как получить количество рабочих дней в месяце по календарю? 1
Для одного проекта потребовалось получить количество рабочих дней в месяце по календарю, без учета праздников. В результате получилась простая функция: Функция ПолучитьКолВоРабочихДнейПоКалендарю(ДатаМесяца) Рабочие=0; Кон=НачалоМесяца(ДатаМес Подсчет реального количества месяцев между датами, включая начало и конец месяца 0
В одном проекте понадобилось подсчитывать полное количество месяцев между датами, Допустим надо получить кол-во месяцев между датами 25.10.14 и 21.11.14 Функция РазницаДатВМесяцах ( Как вычислить разницу между двумя датами в месяцах ) вернет Как преобразовать дату в формат RFC 822 и обратно? 0
Создавая обмены данными между 1С и сайтами, часто приходится форматировать вывод даты в стандарт RCF-822 или преобразовывать его в понятную для 1С ДатуВремя. Дата в формате RFC-822 выглядит так: Tue, 12 Aug 2013 14:15:00 +0400 Небольшая справка п Посмотреть все в категории Работа с Датами (Временем)
Работа с Датами (Временем) | Версия | |
---|---|---|
Ввести дату, ввод даты | [7.x, 8.x] | |
Выбор периода, задать период | [7.x, 8.x] | |
Вычислить возраст человека и выразить его прописью | [8.x] | |
Добавить к Дате указанное количество дней | [8.x] | |
Добавить к Дате указанное количество лет | [8.x] | |
Как Выбрать Месяц формирования отчета? | [8.x, 8.2 УП] | |
Как вывести месяц прописью в родительском падеже?(Як вивести місяц в батьківському відмінку?) | [8.x] | |
Как вычислить количество дней между датами | [7.x, 8.x, 8.2 УП] | |
Как вычислить разницу между двумя датами в днях | [8.x] | |
Как вычислить разницу между двумя датами в месяцах | [8.x] | |
Как вычислить разницу между двумя датами в часах и минутах | [8.x, 8.2 УП] | |
Как перебрать все даты с НачалоПериода по КонецПериода и получить таблицу периодов? | [8.x, 8.2 УП] | |
Как по Номеру Недели Года получить Дату | [8.x, 8.2 УП] | |
Как показать период времени в формате hh:mm:ss | [] | |
Как получить день недели прописью? | [8.3] | |
Как получить количество ЛЕТ, МЕСЯЦЕВ, ДНЕЙ между датами? | [8.x] | |
Как получить количество рабочих дней в месяце по календарю? | [8.x, 8.2 УП, 8.3] | |
Как получить количество часов/минут из интервал с исключением ночного времени | [8.2 УП] | |
Как получить номер Декады месяца ( Например: 1 Декада )? | [7.x, 8.x, 8.2 УП] | |
Как получить текущее время с милисекундами? | [7.x, 8.x, 8.2 УП] | |
Как получить текущую (системную) дату на сервере 1С:Предприятия? | [8.x] | |
Как посчитать разницу между двумя датами? | [7.x, 8.x, 8.2 УП, 8.3] | |
Как преобразовать дату в формат RFC 822 и обратно? | [8.2 УП, 8.3] | |
Как при выполнении обработки сообщить пользователю текущее время и дату? | [8.x] | |
Как прибавить к дате день, месяц? | [8.x] | |
Как проверить дату на пустое значение? | [8.x] | |
Как соединить дату и время? | [8.x, 8.2 УП] | |
Как сравнить две даты (дни)? | [8.x] | |
Как узнать количество дней в месяце? | [8.x, 8.2 УП] | |
Как указать нужную,конкретную дату? | [7.x, 8.x] | |
Количество месяцев и дней между 2-мя датами | [8.x] | |
Месяц прописью и День Прописью | [7.x] | |
Момент Времени и Граница, назначение, примеры использования | [7.x, 8.x] | |
Неправильно рассчитывает номер недели в году, функция корректного расчета | [] | |
Перебор дат, заполнение списка, массива дат по порядку | [8.x] | |
Перевод, преобразование Даты в Строку и Обратно | [8.x, 8.2 УП] | |
Передаем в функцию дату, например 13.08.2009 11:13:54, получаем 13 августа 2009 г. | [8.x] | |
Подсчет реального количества месяцев между датами, включая начало и конец месяца | [8.x, 8.2 УП, 8.3] | |
Преобразование времени в универсальное (GMT) и местное в 1С | [8.x, 8.2 УП] | |
Преобразование даты 1С в unixtime (Unix Time Stamp) | [8.x] | |
Процедура вычисляет количество лет, месяцев и дней между двумя датами | [7.x, 8.x] | |
Пустая дата в запросе и в модуле | [8.x, 8.2 УП] | |
Разница между датами в рабочих днях, подсчет рабочих дней в 1С | [8.x, 8.2 УП, 8.3] | |
Синхронизация времени рабочей станции с сервером | [7.x, 8.x, 8.2 УП] | |
Синхронизация системного Времени по запросу | [8.x] | |
Сколько лет, месяцев, дней прошло между датами | [8.x] | |
Сколько лет, месяцев, дней прошло между датами | [8.x] | |
Строку в дату по форматной строке | [] | |
Функции для работы с датами через запрос (Разность, Добавление, Граница) | [8.x] | |
Функции преобразуют время из представления в виде строки в число и обратно | [8.x] | |
Функция вычисляет даты начала/конца периодов за интервал в виде таблицы значений | [8.x] | |
Функция дата прописью | [8.x] | |
Функция Дата прописью | [7.x, 8.x, 8.2 УП] | |
Функция месяц прописью | [7.x, 8.x] | |
Функция описывает период, определяемый датой и периодичностью | [8.x] | |
Функция переводит Дату в формате 1С в формат вида 'YYYYMMDD hh:mm:ss' и обратно | [8.x, 8.2 УП] | |
Функция пересчитывает сумму из валюты ВалютаНач по курсу КурНач в валюту ВалютаКон по курсу КурКон | [8.x] | |
Функция ПредставлениеПериода() аналог 7-ной функции ПериодСтр() | [8.x, 8.2 УП] | |
Функция преобразует строку вида 04/30/09 в дату | [8.x] | |
Функция преобразует строку вида 31.01.2015 в дату | [8.x, 8.2 УП, 8.3] | |
Функция проверяет является ли передаваемое значение датой или нет | [8.x] |
Функция Формат в 1С 8.3 предоставляет достаточно интересный инструмент разработчику для форматирования значений. Особенно часто эта функция используется для вывода примитивных типов данных (даты, времени, чисел, строки, булево) в нужном формате.
Рассмотрим подробнее функцию и способ составления форматной строки.
Функция Формат()
Синтаксис функции достаточно прост:
Значение — форматируемое значение, Форматная строка — строка, заданная определенным образом, из которой формируется правило обработки формата.
Самое интересное — форматная строка. Рассмотрим её подробнее.
Конструктор форматной строки
Для облегчения труда разработчика фирма 1С встроила в платформу специальный конструктор форматной строки.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Для запуска конструктора достаточно вызвать контекстное меню (правая кнопка мыши) и выбрать в списке «Конструктор форматной строки»:
Сам конструктор выглядит следующим образом:
Где необходимо выбрать нужную Вам вкладку в зависимости от типа данных — Число, Дата или Булево.
Рассмотрим использование функции на примерах.
Формат даты в 1С на примере месяца: прописью, без времени
Получить формат даты без времени:
Формат даты 1С, где месяц прописью:
Формат времени без даты, только час, минута и секунда:
Примеры формата числа
Получим формат числа с двумя точками после запятой:
Число без неразрывных пробелов:
Использование запятой вместо точки для дробной части:
Округление числа (не математическое) до целых:
Вывод лидирующих нулей без неразрывных пробелов:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Читайте также: