Как обновить дату в Excel-файле из 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32792
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Процедура КнопкаВыполнитьНажатие(Кнопка)
        ОбновитьДатуВФайле();
        КонецПроцедуры
        // Внешняя обработка «ВыгрузкаКонстант.epf»
        // Формирует Excel-файл со значениями заданных констант
        // Поддерживает толстый клиент (Обычное приложение)

        Процедура ОбновитьДатуВФайле()

        ПутьФайла = «C:UsersАдминистраторDesktopТабКонстанты.xlsx»;

        // Проверка существования файла
        //Если Не Новый Файл(ПутьФайла).Существует() Тогда
        // Сообщить(«Файл не найден: » + ПутьФайла);
        // Возврат;
        //КонецЕсли;

        Попытка
        Excel = Новый COMОбъект(«Excel.Application»);
        Excel.Visible = Истина;
        Excel.DisplayAlerts = Ложь;

        Книга = Excel.Workbooks.Open(ПутьФайла);
        Лист = Книга.Sheets(1);

        // Обновляем дату в ячейке C8 (строка 8, столбец 3)
        Лист.Cells(8, 3).Value = ТекущаяДата();
        Лист.Cells(8, 3).NumberFormat = «dd.mm.yyyy»;

        Книга.Save();
        Книга.Close(); // Закрываем с сохранением изменений
        Excel.Quit();

        Сообщить(«Дата успешно обновлена в файле: » + ПутьФайла);

        Исключение
        Сообщить(«Ошибка: » + ОписаниеОшибки());
        Попытка
        Если Книга Неопределено Тогда Книга.Close(Ложь); КонецЕсли;
        Если Excel Неопределено Тогда Excel.Quit(); КонецЕсли;
        Исключение
        КонецПопытки;
        КонецПопытки;

        Книга = Неопределено;
        Excel = Неопределено;

        КонецПроцедуры

      • #32793
        bot_avaOdin — Одинэсник
        Участник

          Привет, Расул!

          Чтобы обновить дату в Excel-файле с помощью процедуры, вы можете использовать следующий код, который вы уже предоставили. Он открывает указанный Excel-файл, обновляет значение в определенной ячейке и сохраняет изменения. Вот пример процедуры, которая выполняет эту задачу:

          1C
          Процедура ОбновитьДатуВФайле()
              ПутьФайла = "C:UsersАдминистраторDesktopТабКонстанты.xlsx";
          
              Попытка
                  Excel = Новый COMОбъект("Excel.Application");
                  Excel.Visible = Истина; // Установите в Ложь, если не хотите показывать Excel
                  Excel.DisplayAlerts = Ложь;
          
                  Книга = Excel.Workbooks.Open(ПутьФайла);
                  Лист = Книга.Sheets(1); // Открываем первый лист
          
                  // Обновляем дату в ячейке C8 (строка 8, столбец 3)
                  Лист.Cells(8, 3).Value = ТекущаяДата();
                  Лист.Cells(8, 3).NumberFormat = "dd.mm.yyyy"; // Устанавливаем формат даты
          
                  Книга.Save(); // Сохраняем изменения
                  Книга.Close(); // Закрываем книгу
                  Excel.Quit(); // Закрываем Excel
          
                  Сообщить("Дата успешно обновлена в файле: " + ПутьФайла);
          
              Исключение
                  Сообщить("Ошибка: " + ОписаниеОшибки());
                  Попытка
                      Если Книга  Неопределено Тогда Книга.Close(Ложь); КонецЕсли;
                      Если Excel  Неопределено Тогда Excel.Quit(); КонецЕсли;
                  Исключение
                  КонецПопытки;
              КонецПопытки;
          
              Книга = Неопределено;
              Excel = Неопределено;
          КонецПроцедуры
          

          ### Объяснение кода:
          1. **Создание COM-объекта**: Создается объект Excel для работы с приложением Excel.
          2. **Открытие файла**: Файл открывается по указанному пути.
          3. **Обновление ячейки**: В ячейку C8 записывается текущая дата с заданным форматом.
          4. **Сохранение и закрытие**: Изменения сохраняются, книга и приложение Excel закрываются.
          5. **Обработка ошибок**: В случае ошибки выводится сообщение, и приложение Excel закрывается, если оно было открыто.

          Этот код можно вызывать из другой процедуры, например, по нажатию кнопки, как в вашем примере.

          Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С