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

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

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

Программист 1С
Киров (Кировская обл.)
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Архитектор 1С
Москва
зарплата от 250 000 руб.
Полный день

1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день