Уведомления
Очистить все

Приводим строковое представление даты к её значению. Тип строка в тип дата, в том числе и из булево в 1С8

1 Записи
1 Пользователи
0 Likes
3,712 Просмотры
49dc5d9fe770f247ca425df82453f85b?s=80&d=mm&r=g Okolokompa Форум
 Urri
(@urri)
Eminent Member
Присоединился: 1 год назад
Записи: 15
Создатель темы  

Функция ниже:

// Функция приводит строковое представление даты к её значению
//
// Параметры:
//  Представление - Представление числа
//  ОписаниеТипов - Допустимое описание типов значения типа дата
//
// Возвращаемое значение:
//  Значение типа дата
//
&НаСервере
Функция мПривестиКДате(Представление, ТипРеквизита, Примечание = "")
	
	Результат = ТипРеквизита.ПривестиЗначение(Представление);
	Если Результат = '00010101' Тогда
		
		МассивЧастей = ПолучитьЧастиПредставленияДаты(Представление);
		Если ТипРеквизита.КвалификаторыДаты.ЧастиДаты = ЧастиДаты.Время Тогда
			
			Попытка
				
				Если МассивЧастей.Количество() = 3 Тогда
					Результат = Дата(1,1,1, МассивЧастей[0],МассивЧастей[1],МассивЧастей[2]);
				ИначеЕсли МассивЧастей.Количество() = 6 Тогда
					Результат = Дата(1,1,1, МассивЧастей[3],МассивЧастей[4],МассивЧастей[5]);
				КонецЕсли;
				
			Исключение
				Примечание = "Неправильный формат даты";
			КонецПопытки;
			
		ИначеЕсли МассивЧастей.Количество() = 3 или МассивЧастей.Количество() = 6 Тогда
			
			Если МассивЧастей[0] >= 1000 Тогда
				Временно = МассивЧастей[0];
				МассивЧастей[0] = МассивЧастей[2];
				МассивЧастей[2] = Временно;
			КонецЕсли;
			
			Если МассивЧастей[2] < 100 Тогда
				МассивЧастей[2] = МассивЧастей[2] + ?(МассивЧастей[2] < 30, 2000,1900);
			КонецЕсли;
			
			Попытка
				Если МассивЧастей.Количество() = 3 или ТипРеквизита.КвалификаторыДаты.ЧастиДаты = ЧастиДаты.Дата Тогда
					Результат = Дата(МассивЧастей[2],МассивЧастей[1],МассивЧастей[0]);
				Иначе
					Результат = Дата(МассивЧастей[2],МассивЧастей[1],МассивЧастей[0],МассивЧастей[3],МассивЧастей[4],МассивЧастей[5]);
				КонецЕсли;
			Исключение
				Примечание = "Неправильный формат даты";
			КонецПопытки;
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

   
Цитата
Поделиться: