8.х Преобразование строки в дату+время

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Greck, 1 ноя 2007.

  1. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Вот столкнулся и с такой проблемкой - дату и время поставшик передает в формате:

    Код:
    03.09.2007-12:00:10
    
    ясное дело, функция Дата, не воспринимает это... и функция Формат - не работает тоже...

    Что посоветуете?

    Спасибо за ответы :unsure:
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Тире убрать, либо парсить строку самому
  3. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Да убирал уже тире - бестолку... ты попробуй без тире сам :unsure: мож я что-то не так делаю...
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Попробовал, вот так работает:
    Код:
    ДатаПоставщика = Дата("03.09.2007 12:00:10");
    
  5. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Странно у меня вот такой резулттат( в чем может между нами разница быть?

    Код:
    {Документ.ЗагрузкаУслугОтПоставщика.Форма.ФормаДокумента(65)}: Преобразование значения к типу Дата не может быть выполнено
    ДатаПоставщика = Дата("03.09.2007 12:00:10");
    
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Посмотреть вложение 445

    Как вариант, напиши в начале функции/процедуры
    Код:
    Перем ДатаПоставщика;
    
    А версия платформы какая?

    Вложения:

  7. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Переменную обьявлял - не помогло...(

    Платформа:
    1С:Предприятие 8.0 (8.0.18.2)
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Поставь бряк на этой строке, и посмотри через отладчик, что получается...

    ЗЫ. Я проверял на 17.25
  9. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Да отладчик тоже самое показывает (((

    Вложения:

    • 1c.JPG
      1c.JPG
      Размер файла:
      19,4 КБ
      Просмотров:
      77
  10. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Вообще у меня сработало без проблем. И на 8.0.18 и на 8.1

    Если ну никак - проверь на что тире заменяешь - там иногда из-за левых незаметных символов все не работает.

    Если опять таки никак делай так:
    Код:
    Стр = "03.09.2007-12:00:10";
    СтрДата = Лев(Стр, 10);
    СтрВремя = Прав(Стр, 8);
    ДатаПоставщика = НачалоДня(Дата(СтрДата)) + (Число(Лев(СтрВремя,2))*60 + Число(Сред(СтрВремя, 3, 2)))*60 + Число(Прав(СтрВремя,2));
    
    
    Но этот метод - в крайнем случае. Получаем дату с точностью до дня и добавляем секунды...
  11. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Хммм что-то у меня не правильно работет все.... в твоем варианте выдает ошибку:

    Код:
    {Документ.ЗагрузкаУслугОтПоставщика.Форма.ФормаДокумента(68)}: Преобразование значения к типу Дата не может быть выполнено
    ДатаПоставщика = НачалоДня(Дата(СтрДата)) + (Число(Лев(СтрВремя,2))*60 + Число(Сред(СтрВремя, 3, 2)))*60 + Число(Прав(СтрВремя,2));
    

    Короче дебаггером проверяю:
    Код:
    Дата("03.09.2007")
    
    - выдает ошибку

    Код:
    Дата("20070903")
    
    - выдает значение 03.09.07 00:00:00 типа "Дата"...

    че делать...???
  12. Nau
    Offline

    Nau

    Регистрация:
    1 ноя 2007
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Иногда такого рода проблемы именно с датой возникают из-за региональных настроек. Может стоит взглянуть туда?...
  13. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Да смотрел уже... сталкивался как раз на днях с тем что региональные настройки на это влияют...
    вот мои настройки...

    Вложения:

    • 1c2.JPG
      1c2.JPG
      Размер файла:
      44,8 КБ
      Просмотров:
      72
  14. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Проблема в региональный настройках, т.к. последний вариант работает, а это настройка, а-ля "америка"
    ЗЫ. У тебя винда стоит мульти- может в этом дело быть...
  15. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Короче проверенно было на 3-х компьютерах с разной виндой... у всех не работает(( и русская и английская... не работает :unsure: тестить...

    сделал тяпляп:

    Код:
    Стр = СтрЗаменить(ПолеУслуги[2],"-"," ");
    Год = Сред(Стр,7,4);Месяц = Сред(Стр,4,2);День = Сред(Стр,1,2);
    Час = Число(Сред(Стр,12,2));Минута = Число(Сред(Стр,15,2));Секунда = Число(Сред(Стр,18,2));
    НоваяУслуга.Дата =  Дата(Год+Месяц+День)+(Час*60*60)+(Минута*60)+Секунда;
    
  16. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Проблема в ОС, скорей всего.
    Вернее - в настройках...

    А 1С лицензия? В саппорт напиши - что ответят?

Поделиться этой страницей