|
Загрузка данных из Excel в 1С 8.3 с преобразованием типа "Дата" | ☑ | ||
---|---|---|---|---|
0
Reclaim
13.11.15
✎
22:10
|
Здравствуйте. Задача стоит такая: если Дата в Excel равна какому-то значению, то нужно записать его в реквизит Справочники.ФизическиеЛица
--------------------------------------------------------------------- Для НомерСтроки = 2 ПО КоличествоСтрок Цикл ОбработкаПрерыванияПользователя(); ФизЛицоСсылка = Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(Excel.Cells(НомерСтроки,2).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,3).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,4).Text)); Если НЕ ЗначениеЗаполнено(ФизЛицоСсылка) Тогда Сообщить("Не найдено физлицо: " + СокрЛП(Excel.Cells(НомерСтроки,2).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,3).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,4).Text)); Продолжить; КонецЕсли; ИНН = СокрЛП(Excel.Cells(НомерСтроки,5).Text); ДатаРождения = СокрЛП(Excel.Cells(НомерСтроки,14).Text); //В экселе дата представлена в таком формате "08.02.1984" СтрокаДатаРождения = СтрЗаменить(СокрЛП(Excel.Cells(НомерСтроки,14).Text), ".", ""); ДатаРоджения = Формат(СтрокаДатаРождения, "ДЛФ=Д"); //Тут я предполагаю что дата будет записываться в таком формате "08.02.1984" в реквизит физического лица МестоРождения = СокрЛП(Excel.Cells(НомерСтроки,15).Text); ФизЛицоОбъект = ФизЛицоСсылка.ПолучитьОбъект(); Если ЗначениеЗаполнено(ИНН) ИЛИ ЗначениеЗаполнено(МестоРождения) ИЛИ ЗначениеЗаполнено(ДатаРождения) Тогда // ФизЛицоОбъект.ИНН = ИНН; ФизЛицоОбъект.ДатаРождения = ДатаРождения; //В итоге дата вообще не заносится в реквизит ФизЛицоОбъект.МестоРождения = МестоРождения; ФизЛицоОбъект.Наименование = ФизЛицоСсылка; ФизЛицоОбъект.Записать(); КонецЕсли; КонецЦикла; Никаких ошибок не выдает, а просто не записывает дату в реквизит. Подскажите правильно ли я задаю преобразование даты из экселя. |
|||
1
MUXACb
13.11.15
✎
22:18
|
(0) Формат() возвращает строку
|
|||
2
blutang
13.11.15
✎
22:19
|
ДатаРоджения - опечатка
|
|||
3
Reclaim
13.11.15
✎
22:27
|
Заменил:
ДатаРоджения = Формат(СтрокаДатаРождения, "ДЛФ=Д"); На ДатаРождения = Дата(СтрокаДатаРождения); Но теперь выдает такую ошибку: {Форма.Форма.Форма(34)}: Преобразование значения к типу Дата не может быть выполнено ДатаРождения = Дата(СтрокаДатаРождения); |
|||
4
Lexey_
13.11.15
✎
22:30
|
(3) почитай в СП про функцию Дата()
|
|||
5
Reclaim
13.11.15
✎
22:31
|
Также попробовал сделать так:
ДатаРождения = Дата(СтрокаДатаРождения); //Заменил на ДатаРождения = Формат(Дата(СтрокаДатаРождения), "ДЛФ=DD"); В итоге все равно выдает ошибку:{Форма.Форма.Форма(34)}: Преобразование значения к типу Дата не может быть выполнено ДатаРождения = Формат(Дата(СтрокаДатаРождения), "ДЛФ=DD"); Направьте немного конкретнее в каком направлении думать. |
|||
6
Lexey_
13.11.15
✎
22:33
|
(5) че гадать? СП читал? вопросы отпадут
|
|||
7
marvak
13.11.15
✎
22:36
|
в дату рождения записываешь строку а не дату
|
|||
8
Reclaim
13.11.15
✎
22:37
|
СП читал, дата задается форматом ('годмесяцдень'), но пока озарение не приходит как мне из "день.месяц.год" сделать как нужно.
В любом случае ищу-разбираюсь. |
|||
9
marvak
13.11.15
✎
22:43
|
(8)
дата задается не Форматом(), а функцией Дата() |
|||
10
marvak
13.11.15
✎
22:44
|
у функции Дата()
хитрые параметры попробуй их соблюсти |
|||
11
hhhh
13.11.15
✎
23:26
|
(8) а если так?
ФизЛицоОбъект.ДатаРождения = Excel.Cells(НомерСтроки,14).Value; |
|||
12
fantomrik
13.11.15
✎
23:38
|
Не совсем понял вопрос... Че строку в дату что ли не переделать?
ДатаРождения = Дата(Сред(СтрокаДатаРождения,7,4),Сред(СтрокаДатаРождения,4,2),Сред(СтрокаДатаРождения,1,2))) |
|||
13
fantomrik
13.11.15
✎
23:46
|
(8) Нужно открыть СП и посмотреть функции работы со строкой. И прикинуть как ее преобразовать в нужную последовательность. Собственно решение - (12)
|
|||
14
fantomrik
13.11.15
✎
23:47
|
последняя ковычка лишняя (12)
|
|||
15
fantomrik
13.11.15
✎
23:47
|
Тьфу скобка) сплю уже)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |