8.х установка формата "Дата" при выгрузке данных в Excel

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

  1. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Делаю процедуру выгрузки строк табличной части обработки(в собственной конфигурации на 1с 8.3):
    Код:
    Для Стр = 0 По ТаблицаВыгрузки.Количество()-1 Цикл
               
                Для Кол = 1 По ТаблицаВыгрузки.Колонки.Количество()-1 Цикл
                   
                    Если ТипЗнч(ТаблицаВыгрузки[Стр][Кол]) = Тип("Число") Тогда
                        // Установим формат для типа Число
                        //Лист.Cells(Стр + 2, Кол + 1).NumberFormat = "0,00";
                        Лист.Cells(Стр + 4, Кол).Value = ТаблицаВыгрузки[Стр][Кол];
                    Иначе
                    Если ТипЗнч(ТаблицаВыгрузки[Стр][Кол]) = Тип("Дата") Тогда
                        // Установим формат для типа Дата
                        Лист.Cells(Стр + 4, Кол + 1).NumberFormat= "dd/mm/yyyy";
                        Лист.Cells(Стр + 4, Кол).Value = ТаблицаВыгрузки[Стр][Кол];
                        Иначе
                         //Для всех других типов установим формат "Текстовый"
                        Лист.Cells(Стр + 4, Кол).NumberFormat = "@";
                        Если ЗначениеЗаполнено(ТаблицаВыгрузки[Стр][Кол]) Тогда
                        Лист.Cells(Стр + 4, Кол).Value = Строка(ТаблицаВыгрузки[Стр][Кол]);
                    КонецЕсли;
                КонецЕсли;
                КонецЕсли;
                КонецЦикла;
            КонецЦикла;
    При выполнении ругается:
    {Обработка.ФормированиеПроизводственногоПланаНаГод.Форма.Форма.Форма(94)}: Ошибка при установке значения атрибута контекста (NumberFormat)
    Лист.Cells(Стр + 4, Кол + 1).NumberFormat= "dd/mm/yyyy";
    по причине:
    Произошла исключительная ситуация (Microsoft Excel): Нельзя установить свойство NumberFormat класса Range

    на:
    Код:
    Лист.Cells(Стр + 4, Кол + 1).NumberFormat= "dd/mm/yyyy"
    .Как правильно задать вывод значения в кратком формате даты?
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    может из-за лишних символов? :)

    Код:
    .NumberFormat = "m/d/yyyy" ' дата
    PS
    Как установить формат ячейки при выгрузке из 8.1 в Эксель?
    http://www.forum.mista.ru/topic.php?id=541254
  3. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    пробовал, то же ругательство:
    {Обработка.ФормированиеПроизводственногоПланаНаГод.Форма.Форма.Форма(94)}: Ошибка при установке значения атрибута контекста (NumberFormat)
    Лист.Cells(Стр + 4, Кол + 1).NumberFormat= "m/d/yyyy";
    по причине:
    Произошла исключительная ситуация (Microsoft Excel): Нельзя установить свойство NumberFormat класса Range
    Произошла исключительная ситуация (Microsoft Excel): Нельзя установить свойство NumberFormat класса Range
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    NumberFormat - а почему формат числа ?
  5. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Это же функция Экселя.
    Вот так еще можно:
    Код:
    ДатаФормат = "ДД.ММ.ГГГГ";
                    Лист.Cells(НомерСтроки,НомерКолонки).NumberFormat = ДатаФормат;
    alexburn нравится это.
  6. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    исправил - номер столбца не тот:
    Код:
    Лист.Cells(Стр + 4, Кол).NumberFormat= "m/d/yyyy"
    не работает...
  7. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    C форматной строкой по-русски пробовали? Что-то такое было насчет локальных версий офиса.
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну оно же пишет
    Произошла исключительная ситуация (Microsoft Excel): Нельзя установить свойство NumberFormat класса Range

    Если я правильно понимаю - оно не может установить формат для области ячеек.
    --- Объединение сообщений, 19 май 2016 ---
    З.Ы. Насколько понял, не cells нужно, а range использовать.
  9. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    спасибо, все работает:
    Код:
    Лист.Cells(Стр + 4, Кол).NumberFormat= "ДД.ММ.ГГГГ";
    

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