Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Июн 2021, 00:00
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
МультиВход
 
collapse

Автор Тема: Как проверить возможность преобразования строки в дату?  (Прочитано 3719 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gennadiyy

  • ***
  • Регистрация: 2015-12-08
  • Сообщений: 100
  • РЕПУТАЦИЯ: 5
  • КПД: 5%
Здравствуйте! В общем ситуация следующая: необходимо распарсить огромный эксель, в некоторых ячейках есть числа, к примеру 8.9, которые автоматически преобразуются в дату (8.9 = 08.09.2016 00:00:00), так вот: можно ли как то проверить, что ячейку возможно преобразовать в дату Дата(Строка), что бы в коде проверять "если можно преобразовать, значит нужно из даты спарсить день и месяц иначе оставить как есть"


Оффлайн ilyay

  • 1С:Специалист, 1С:Эксперт
  • *****
  • Регистрация: 2011-06-09
  • Сообщений: 562
  • РЕПУТАЦИЯ: 104
  • КПД: 19%
  • Профессия: Разработчик 1С
Неправильная постановка задачи заключается в борьбе с неверно оформленным в Ексель файлом средствами 1С. Не лучше ли причесать Ексель его же средствами?

Оффлайн Gennadiyy

  • ***
  • Регистрация: 2015-12-08
  • Сообщений: 100
  • РЕПУТАЦИЯ: 5
  • КПД: 5%
Неправильная постановка задачи заключается в борьбе с неверно оформленным в Ексель файлом средствами 1С. Не лучше ли причесать Ексель его же средствами?
Не легче, в файле несколько миллионов строк и порядка 30 столбцов с числами, конечно можно через если ячейка = "01.01.2016 00:00:00" тогда ячейка = "1.1"; иначеесли... но это будет не очень красиво, вот хотел бы узнать более красивый способ)

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • *****
  • Регистрация: 2010-11-06
  • Сообщений: 5748
  • РЕПУТАЦИЯ: 1105
  • КПД: 19%
  • Красная армия всех сильней!
    • Skype: cska-fanat-kz81
  • Профессия: Разработчик 1С
строковый формат даты, который "понимает" функция Дата() - далеко не "08.09.2016 00:00:00"
в 1С это "ГГГГММДД..." и т.д.
то есть можете смело парсить :ooifh:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн ilyay

  • 1С:Специалист, 1С:Эксперт
  • *****
  • Регистрация: 2011-06-09
  • Сообщений: 562
  • РЕПУТАЦИЯ: 104
  • КПД: 19%
  • Профессия: Разработчик 1С
Неправильная постановка задачи заключается в борьбе с неверно оформленным в Ексель файлом средствами 1С. Не лучше ли причесать Ексель его же средствами?
Не легче, в файле несколько миллионов строк и порядка 30 столбцов с числами, конечно можно через если ячейка = "01.01.2016 00:00:00" тогда ячейка = "1.1"; иначеесли... но это будет не очень красиво, вот хотел бы узнать более красивый способ)
Напишите макрос, который определит тип значения в ячейке и перезапишет его в однозначном представлении.

Оффлайн Gennadiyy

  • ***
  • Регистрация: 2015-12-08
  • Сообщений: 100
  • РЕПУТАЦИЯ: 5
  • КПД: 5%
Неправильная постановка задачи заключается в борьбе с неверно оформленным в Ексель файлом средствами 1С. Не лучше ли причесать Ексель его же средствами?
Не легче, в файле несколько миллионов строк и порядка 30 столбцов с числами, конечно можно через если ячейка = "01.01.2016 00:00:00" тогда ячейка = "1.1"; иначеесли... но это будет не очень красиво, вот хотел бы узнать более красивый способ)


Напишите макрос, который определит тип значения в ячейке и перезапишет его в однозначном представлении.

Да я уже так, в самой обработке добавил код:

Если СтрДлина(Строка)>5 Тогда
Массив = РазложитьСтрокуВМассивПодстрок(Строка, ".");
ЦелаяЧасть = Массив[0];
ДробнаяЧасть = Массив[1];

Если Лев(ЦелаяЧасть, 1) = "0" Тогда
ЦелаяЧасть = Сред(ЦелаяЧасть, 2);
КонецЕсли;

Если Лев(ДробнаяЧасть, 1) = "0" Тогда
ДробнаяЧасть = Сред(ДробнаяЧасть, 2);
КонецЕсли;
Строка = ЦелаяЧасть + "." + ДробнаяЧасть;

КонецЕсли;

Всё в принципе устраивает, по скорости примерно так же парсится, как и без дат)


Теги:
 

Как создать напоминание на каждый день например в случае если дата отгрузки завтра

Автор Igor1981Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 1489
Последний ответ 01 Ноя 2017, 06:54
от Геннадий ОбьГЭС
Как привести справочники по контрагентам к единообразию

Автор ДанилРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 654
Последний ответ 22 Мая 2017, 11:13
от MuI_I_Ika
Как выгрузить данные из 1с 8.2 в базу firebird

Автор sevenswordРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 950
Последний ответ 20 Июн 2017, 08:05
от alex0402
Как сделать иерархический отчёт с помощью построителя?

Автор mila1231Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 615
Последний ответ 02 Фев 2017, 05:54
от mila1231
Как посчитать сумму в колонках ТЧ отчета в расчетно платежной ведомости?

Автор Vladimir369Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1175
Последний ответ 16 Фев 2017, 12:41
от Vladimir369

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Последние вакансии

* Том 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
65 Сообщений
LexaK
62 Сообщений
antoneus antoneus
31 Сообщений
Ивашка
26 Сообщений
neek666
23 Сообщений
KATERINA 861
19 Сообщений
SSC
15 Сообщений
alexandr_ll
13 Сообщений
Алексей_1985_06
11 Сообщений
MiThO
8 Сообщений

* Кто онлайн

  • Точка Гостей: 184
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Инструменты

* Дополнительно

Поиск