helpf.pro
Регистрация
 +1 
Распечатать

Сколько лет, месяцев, дней прошло между датами

Код 1C v 8.х
 
//////////////////////////  параметры даты в запрос /////////////////////////
///////////// приведем период в нормальную форму к виду (с лДата по пДата) ///////////
ВЫБРАТЬ
	МИНИМУМ(пДаты._Дата) КАК лДата,
	МАКСИМУМ(пДаты._Дата) КАК пДата
ПОМЕСТИТЬ _д
ИЗ 
	(ВЫБРАТЬ НАЧАЛОПЕРИОДА(&лДата,ДЕНЬ) AS _Дата
		ОБЪЕДИНИТЬ ВСЕ
	ВЫБРАТЬ	НАЧАЛОПЕРИОДА(&пДата,ДЕНЬ)) КАК пДаты;
//////////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	_д.лДата,.пДата,
	
	ВЫБОР
		КОГДА ГОД(.пДата) >= ГОД(.лДата) ТОГДА
			ВЫБОР
				КОГДА МЕСЯЦ(.пДата) >= МЕСЯЦ(.лДата) ТОГДА ГОД(.пДата) - ГОД(.лДата)
				КОГДА МЕСЯЦ(.пДата) < МЕСЯЦ(.лДата) ТОГДА ГОД(.пДата) - ГОД(.лДата) - 1 
			КОНЕЦ
	КОНЕЦ КАК Лет,
	
	ВЫБОР
		КОГДА ГОД(.пДата) >= ГОД(.лДата) ТОГДА
			ВЫБОР
				КОГДА МЕСЯЦ(.пДата) >= МЕСЯЦ(.лДата) ТОГДА
					ВЫБОР
						КОГДА ДЕНЬ(.пДата) >= ДЕНЬ(.лДата) ТОГДА МЕСЯЦ(.пДата) - МЕСЯЦ(.лДата)
						КОГДА ДЕНЬ(.пДата) < ДЕНЬ(.лДата) ТОГДА МЕСЯЦ(.пДата) - МЕСЯЦ(.лДата) - 1
					КОНЕЦ
				КОГДА МЕСЯЦ(.пДата) < МЕСЯЦ(.лДата) ТОГДА
					ВЫБОР
						КОГДА ДЕНЬ(.пДата) >= ДЕНЬ(.лДата) ТОГДА 12 + МЕСЯЦ(.пДата) - МЕСЯЦ(.лДата)
						КОГДА ДЕНЬ(.пДата) < ДЕНЬ(.лДата) ТОГДА 12 + МЕСЯЦ(.пДата) - МЕСЯЦ(.лДата) - 1
					КОНЕЦ
			КОНЕЦ
	КОНЕЦ КАК Месяцев,
	
	ВЫБОР
		КОГДА ГОД(.пДата) >= ГОД(.лДата) ТОГДА
			ВЫБОР
				КОГДА МЕСЯЦ(.пДата) >= МЕСЯЦ(.лДата) ТОГДА
					ВЫБОР
						КОГДА ДЕНЬ(.пДата) >= ДЕНЬ(.лДата) ТОГДА ДЕНЬ(.пДата) - ДЕНЬ(.лДата)
						КОГДА ДЕНЬ(.пДата) < ДЕНЬ(.лДата) ТОГДА (ДЕНЬ(КОНЕЦПЕРИОДА(.лДата,МЕСЯЦ)) - ДЕНЬ(.лДата)) + ДЕНЬ(.пДата)
					КОНЕЦ
				КОГДА МЕСЯЦ(.пДата) < МЕСЯЦ(.лДата) ТОГДА
					ВЫБОР
						КОГДА ДЕНЬ(.пДата) >= ДЕНЬ(.лДата) ТОГДА ДЕНЬ(.пДата) - ДЕНЬ(.лДата)
						КОГДА ДЕНЬ(.пДата) < ДЕНЬ(.лДата) ТОГДА (ДЕНЬ(КОНЕЦПЕРИОДА(.лДата,МЕСЯЦ)) - ДЕНЬ(.лДата)) + ДЕНЬ(.пДата) + 1
					КОНЕЦ
			КОНЕЦ
	КОНЕЦ КАК Дней   
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 9479
 +1 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
1С Предприятие что это? 13
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
ZIP-архив Создание 0
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий: * Создать архив с необходимыми параметрами, в который будут помещаться файлы. * Поместить в архив необходимые файлы. * Записать архив. Создание объекта За
Автоматизация обмена данных используя обработку "Универсальный обмен данными в формате XML" 12
Автоматизация обмена между базами используя обработку " Универсальный обмен данными в формате XML" В основу данной публикации положены найденные мною материалы по cозданию обмена между двумя базами с использованием обработки " Универсальный обме
Автоматическая выгрузка загрузка данных используя регламентное задание 18
Для обмена данными между программами необходимо сделать следующее: 1. При помощи Конвертации Данных создать правила выгрузки данных 2. Нужно чтобы в конфигурации была обработка УниверсальныйОбменДаннымиXML , желательно последней версии! (При помо
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!