|
Конвертация данных. Преобразование даты |
☑ |
0
sfilenok
21.02.13
✎
06:53
|
Доброго всем дня.
Помогите, пжалста, победить конвертацию данных. Создаю правила выгрузки из 7.7 в 8.2. В 7.7 есть реквизит типа дата, в 8.2 нужно засунуть в реквизит составного типа табличной части (тип дата в составе тоже есть).
Пишу в (Перед обработкой) табличной части:
Если ПустоеЗначение(Источник.Срок) = 0 Тогда
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.Значение = СокрЛП(Источник.Срок);
КоллекцияОбъектов.ТекстоваяСтрока = "Срок";
КонецЕсли;
|
|
1
Defender aka LINN
21.02.13
✎
06:54
|
Продолжайте наблюдения
|
|
2
Wobland
21.02.13
✎
06:55
|
Значение=НужнаяДата устроит?
|
|
3
sfilenok
21.02.13
✎
06:55
|
упс, случайно отправилось сообщение..
Так вот, проблема в том, что в хмл файл данные записываются в виде:
<Свойство Имя="Значение" Тип="Дата">
<Значение>08.09.03</Значение>
</Свойство>
и уже в 8.2 не загружается, т.к. формат в хмл должен быть типа
<Свойство Имя="Период" Тип="Дата">
<Значение>2012-12-31T00:00:00</Значение>
</Свойство>
почему-то он не преобразует по правилам даты из 7.7 в 8.2... где че ему еще сказать надо?
|
|
4
Aleksey
21.02.13
✎
06:55
|
А ты уверен?
|
|
5
Aleksey
21.02.13
✎
06:57
|
(3)
При выгрузки из 7-ке доступна функция ПолучитьДатуV8
+ Code
Функция ПолучитьДатуV8(ЧастьДата, ЧастьВремя = "00:00:00")
Если ПустоеЗначение(ЧастьДата) = 1 Тогда
Возврат "0001-01-01T" + ЧастьВремя;
Иначе
// Год может быть введен неверно
Год = ДатаГод(ЧастьДата);
// Возможно случайно ошиблись и не доввели дату
Если Год < 30 Тогда
Год = 2000 + Год;
ИначеЕсли Год < 100 Тогда
Год = 1900 + Год;
ИначеЕсли Год < 1000 Тогда
Год = 1000 + Год;
КонецЕсли;
// Если исправления не помогли, тогда вернум пустой год
// Иначе данные просто не загрузятся
Если Год < 1900 Тогда
Возврат "0001-01-01T" + ЧастьВремя;
КонецЕсли;
Возврат "" + Год + "-" + Формат(ДатаМесяц(ЧастьДата),"Ч(0)2") + "-" + Формат(ДатаЧисло(ЧастьДата),"Ч(0)2") + "T" + ЧастьВремя;
КонецЕсли;
КонецФункции // ПолучитьДатуV8()
|
|
6
sfilenok
21.02.13
✎
06:57
|
в первом посте в обработке перед выгрузкой пробывались варианты:
КоллекцияОбъектов.Значение = Источник.Срок;
КоллекцияОбъектов.Значение = Дата(Источник.Срок);
но результат в хмл один и тот же
|
|
7
sfilenok
21.02.13
✎
06:58
|
Aleksey, спасибо!!!!!! ща попробую
|
|