0. 1C_Casual 70 25.03.20 11:45 Сейчас в теме

[v8] Несколько решений для работы с периодами и датами

Несколько готовых решений нетривиальных задач.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. danjer74 2 25.03.20 12:19 Сейчас в теме
Автор молодец. Может пригодиться на сдаче спеца по платформе.
1C_Casual; +1 Ответить
2. Dach 295 27.03.20 00:31 Сейчас в теме
Можно немного улучшить:


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

СГРУППИРОВАТЬ ПО
	РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря

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

ОБЪЕДИНИТЬ ВСЕ

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

СГРУППИРОВАТЬ ПО
	РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря

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

Показать
3. Eremkin 27.03.20 15:11 Сейчас в теме
Добрый день. А рассматривали в качестве решения БСП-ую функцию ДатыБлижайшихРабочихДней модуля КалендарныеГрафики? Или она не подошла для вашего случая?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Специалист 1 категории (Методист-аналитик 1С)
Фрязино
зарплата от 100 000 руб.
Полный день

Главный архитектор 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (Оперативный учет)
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист по 1С:ЗУП
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:Бухгалтерии
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день