Импорт данных типа "Дата" из csv файла в 1С 8

1. rogovae 1 27.08.21 07:13 Сейчас в теме
Доброго дня Знатоки. Есть задачка импортировать данные из csv в 1С. Все поля импортированы кроме даты.
Подскажите пожалуйста, как прописать импорт Даты из CSV в 1С. Форматы дат в 1С и csv отличаются. Никак не могу додумать алгоритм.
Буду признателен.
По теме из базы знаний
Найденные решения
8. Kim1C 183 27.08.21 07:54 Сейчас в теме
(7) Да, конечно. Я описал саму суть - как можно сделать.
У вас можно так:
НовыйКлиент.ДатаРождения = Дата(Прав(Стр.ДатаРождения,4)+Сред(Стр.ДатаРождения,4,2)+Лев(Стр.ДатаРождения,2)+"000000")
markw; rogovae; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Kim1C 183 27.08.21 07:32 Сейчас в теме
(1) Так а в каком формате дата в csv файле? Первое, что приходит в голову используя лев, прав, сред получить отдельно каждую часть даты из строки и собрать потом Дата(год, месяц, день, час, минута, секунда).
Если дата все-таки в более менее каноническом виде ("ГГГГММДДччммсс") просто разделители разные - можно попробовать поудалять разделители и получить единую строку
3. rogovae 1 27.08.21 07:33 Сейчас в теме
Формат ячеек общий для всей таблицы.
4. Kim1C 183 27.08.21 07:35 Сейчас в теме
(3) как выглядит дата в файле? Скопируйте, пожалуйста, одну для примера сюда
5. rogovae 1 27.08.21 07:37 Сейчас в теме
ФИО ;ПОЛ;Дата рождения;
Вышегородцев Сергей Иванович;М;02.12.1977;
6. Kim1C 183 27.08.21 07:40 Сейчас в теме
По идее должно сработать так:

ИсходнаяДата = "02.12.1997" // ваше значение из csv файла
//Тут хорошо бы добавить хотя бы проверку на то, что дата не пустая и строка содержит именно 10 символов иначе получится ерунда
ИтоговаяДата = Дата(Прав(ИсходнаяДата,4)+Сред(ИсходнаяДата,4,2)+Лев(ИсходнаяДата,2)+"000000");

т.е. мы получаем год + месяц + день и добавляем временем нулевым для преобразования стандартной функцией
7. rogovae 1 27.08.21 07:46 Сейчас в теме
(6)
т.е. мы получаем год + месяц + день и добавляем временем нулевым для преобразования стандартной функцией

Так как у меня есть не 1 дата получается так:
ИсходнаяДата = Стр.Дата;
Если Не Стр.Дата = 0 Тогда
ИтоговаяДата = Дата(Прав(ИсходнаяДата,4)+Сред(ИсходнаяДата,4,2)+Лев(ИсходнаяДата,2)+"000000");
КонецЕсли;
НовыйКлиент.ДатаРождения = ИтоговаяДата;
Прикрепленные файлы:
9. spacecraft 27.08.21 07:56 Сейчас в теме
(7)
ИтоговаяДата = Дата(Стр.Дата+" 00:00:00");
homer_; rogovae; +2 Ответить
8. Kim1C 183 27.08.21 07:54 Сейчас в теме
(7) Да, конечно. Я описал саму суть - как можно сделать.
У вас можно так:
НовыйКлиент.ДатаРождения = Дата(Прав(Стр.ДатаРождения,4)+Сред(Стр.ДатаРождения,4,2)+Лев(Стр.ДатаРождения,2)+"000000")
markw; rogovae; +2 Ответить
10. rogovae 1 27.08.21 08:02 Сейчас в теме
(8)
Дата(Прав(Стр.ДатаРождения,4)+Сред(Стр.ДатаРождения,4,2)+Лев(Стр.ДатаРождения,2)+"000000")

Спасибо Большое - Помогло!
Прописал Ваш код в остальных строках с датами, изменив переменные и все встало на место!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот