Уведомления
Очистить все
1С:Предприятие 8.x
1
Записи
1
Пользователи
0
Likes
3,712
Просмотры
Создатель темы 17/12/2023 6:31 дп
Функция ниже:
// Функция приводит строковое представление даты к её значению // // Параметры: // Представление - Представление числа // ОписаниеТипов - Допустимое описание типов значения типа дата // // Возвращаемое значение: // Значение типа дата // &НаСервере Функция мПривестиКДате(Представление, ТипРеквизита, Примечание = "") Результат = ТипРеквизита.ПривестиЗначение(Представление); Если Результат = '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]); КонецЕсли; Исключение Примечание = "Неправильный формат даты"; КонецПопытки; КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции