Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 фев 2024, 09:40

как программно обратится к libreoffice calc

Автор margo, 06 дек 2023, 17:05

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

margo

Доброго времени суток. Вопрос есть функция Табличный документ.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLS). Я пыталась записать в ескель. ДЛя этого предварительно создаю файлы программно ПриложениеExcel = Новый COMОбъект("Excel.Application");
    ПриложениеExcel.DisplayAlerts = 0;
    ПриложениеExcel.Visible = 0;
    ПриложениеExcel.SheetsInNewWorkbook = 1;

    КнигаExcel = ПриложениеExcel.Workbooks.Add();
    ПутьКФайлу = Строка(Объект.Путь) +"\" + Строка(Контр) + ".xls";
    КнигаExcel.SaveAs(ПутьКФайлу, -4143);
   
    ПриложениеExcel.Quit();
Но у меня на сервере нету Екселя и выдало ошибку -2147221005(0x800401F3): Недопустимая строка с указанием класса. Есть libreoffice calc. Как к ниму обратится, чтобы создать файл с наименованием контрагента и далее записать туда данные функцией ТабличныйДокумент.Записать()

LexaK

не нужно создавать такие файлы!
табличный документ сам по себе может создать файл ХЛС
просто сохраняйте и все.
если помогло нажмите: Спасибо!

margo

LexaK, спасибо. А подскажите, как тогда задать имя сохраняемого файла, потому что если пишу так

ПутьКФайлу= Строка(Объект.Путь) +"\" [b]+ Строка(Контр)[/b] + ".xls"; Табличный документ.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLS) То пишет, что файл не найден. А если так

ПутьКФайлу= Строка(Объект.Путь) +"\" + ".xls"; то создается файл без имени, а в цикле для каждого контрагента при создании должно быть свое имя

antoneus

В имени контрагента могут быть разные запрещенные в файловой системе Windows символы. Слэши, звездочки и так далее.

Недопустимое имя файла или папки в Windows

Многие пользователи сталкивались с тем, что при попытке создать или сохранить файл они видели сообщение о том, что это «недопустимое имя файла», если там присутствуют некоторые символы или было введено неподходящее имя.

Дело в том, что в операционной системе Windows имеются запрещенные имена файлов. Не все имена файлов и папок разрешены, потому что существуют недопустимые символы в имени файла или папки.

Есть способы, чтобы обойти эти ограничения, но вам потребуется приложить определенные усилия, чтобы удалить такие элементы из системы.

Обычно, операционные системы Microsoft, например, Windows 7, Windows 8.1, Windows 10, Windows 11, не привередливы, когда речь идет об именах файлов и папок. Хотя там есть ограничение на максимальное количество символов в имени файла или папки, чтобы соответствовать файловой системе NTFS (New Technology File System).

Операционная система Windows принимает почти все имена для файлов и каталогов. Однако некоторые заголовки для объектов файловой системы применить невозможно при создании обычным образом.

Например, если вы попытаетесь назвать новую или существующую папку именем «CON», то появится сообщение об ошибке «Указано неверное имя устройства».

В данном случае, это имя зарезервировано для сокращенного наименования консоли - «console». Это связано с тем, что некоторые имена файлов или папок не могут быть назначены, потому что в Windows запрещенные имена файлов не разрешено использовать.

Во времена DOS, когда в Windows не было графического пользовательского интерфейса (GUI), определенные термины были зарезервированы для операционной системы и устройств. В настоящий момент времени в этом нет особой необходимости, и различные блокировки имен остаются пережитками прошлого.

В этом руководстве мы рассмотрим, какие символы запрещены в имени файла. Из инструкций этой статьи вы узнаете, что делать, если на компьютере имеются запрещенные символы в имени файла Windows и эти объекты не удаляются с ПК.

Недопустимые имена файлов Windows

В операционной системе Windows запрещены имена не только «CON», но и «NUL», «AUX» некоторые другие, которые зарезервированы для имен устройств. Верхний и нижний регистр символов в имени не имеют значения, поэтому «con» или «CON» одинаково не разрешены в качестве обозначения файла или папки.

Не используйте подобные имена с расширением имени файла, потому что в этом случае расширение не учитывается. Операционная система воспринимает файлы «CON» и «con.txt» как одно и тоже.

Список недопустимых имен в Windows:

  • CON, PRN, AUX, NUL, COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.

Не называйте папки и файлы такими именами, чтобы избежать конфликтов с различными устройствами.

Запрещенные символы в имени файла или папки

Помимо собственно имени файла, в операционной системе Windows имеются запрещенные символы в имени файла или папки. Кроме того, нельзя забывать, что пользователи могут открывать и просматривать файлы в других операционных системах (macOS, Linux, Android), поэтому лучше избегать некоторых символов в именах файлов.

В ОС Windows в имени файла запрещено использование следующих символов в файловой системе NTFS (таблица):

< знак меньше, чем
> знак больше, чем
: двоеточие
« двойные кавычки
/ косая черта (прямой слеш)
\ обратная косая черта (обратный слеш)
| вертикальная черта
? вопросительный знак
* звездочка

В файловой системе FAT имеются следующие запрещенные символы в имени файла (таблица):

. точка
« двойные кавычки
/ косая черта (прямой слеш)
\ обратная косая черта (обратный слеш)
[ левая квадратная скобка
] правая квадратная скобка
: двоеточие
; точка с запятой
| вертикальная черта
= знак равенства
, запятая

Помимо вышеперечисленных примеров лучше не использовать в именах файлов и папок следующие символы из-за ограничений Интернета или других файловых систем (таблица):

# решетка
% процент
& амперсанд
пробел
+ плюс
@ символ «собака»

Имена файлов не могут заканчиваться пробелом или точкой.

Как создать папку с недопустимым именем

Если вы хотите создать папку с названием, запрещенным в Windows, вы можете использовать обходной путь с командной строкой. Создавать подобные папки не рекомендуется из-за возможного конфликта устройств на компьютере.

Для примера, мы создадим папку с именем «CON» на локальном диске «C:».

Выполните следующие действия:

  1. В поле поиска Windows введите «cmd».
  2. Запустите командную строку от имени администратора.
  3. В окне интерпретатора командной строки введите предложенную команду, а потом нажмите на клавишу «Enter»:
md "\.\C:\CON"

После выполнения команды в указанном расположении появится папка с именем «CON».

Подобная папка на компьютере довольно бесполезна, потому что эту папку невозможно открыть в Windows 8.1 и Windows 10.

Кроме того, удалить папку с компьютера не получится простым способом, с помощью щелчка правой кнопкой мыши и выполнения команды контекстного меню «Удалить».

Другая ситуация наблюдается в последних версиях Windows 11. Операционная система не позволяет создать папку с именем «CON» и другими неподдерживаемыми именами, но у вас получится удалить этот каталог, созданный в командной строке, обычным способом (кроме папки с именем «NUL»). Вы можете открыть подобную папку и вложенные в нее файлы.

Как удалить папку с недопустимым именем файла - 3 способа

На жестком диске (HDD) или на твердотельном накопителе (SSD) вашего компьютера находится неудаляемая папка. Независимо от того, создали ли вы сами папку или ее создал кто-то другой, вы захотите от нее избавиться. Простые методы решения этой проблемы не подойдут.

Используйте три предложенных метода.

1 способ.

Вызовите командную строку, как описано выше в статье и выполните команду:

rmdir \.\C:\CON

Эта команда работает, если обрабатываемая папка была пустой. При необходимости измените команду, если местоположение и имя удаляемого каталога отличаются от этих.

Если в папке «CON» есть файлы, сначала очистите этот каталог через консоль командой:

del \.\C:\CON /q

Затем удалите ненужную папку:

rmdir \.\C:\CON

2 способ.

Для выполнения задачи используйте бесплатную программу Windows Tweaker, с помощью которой вы можете изменять параметры операционной системы.

Несмотря на то, что программа Windows Tweaker давно не обновлялась, но она хорошо подходит для наших целей. Мы используем переносную версию (portable) приложения, которую не нужно устанавливать на компьютер.

Пройдите шаги:

  1. Скачайте Windows Tweaker по ссылке из облачного хранилища.
  2. Запустите приложение на ПК.
  3. В окне «Windows Tweaker» откройте вкладку «Задачи».
  4. На верхней панели выберите раздел «специальные имена папок».
  5. Здесь вы можете создать папку с любым запрещенным именем в Windows, например, для проведения исследований.
  6. Нажмите на кнопку «Просмотр и удаление». Убедитесь, что эта папка должна быть пуста перед удалением.
  1. В окне «Выбор папки» выделите нужную папку, а затем нажмите на кнопку «Выбор папки».
  1. Эта папка сразу удаляется с компьютера.

3 способ.

Создание и удаление неподдерживаемых файлов и папок возможно с помощью «живого» DVD-диска или USB-накопителя с Linux. Вам нужно использовать загрузочные Live CD, Live DVD или Live USB носители с операционной системой Linux. Также для этих целей подходят антивирусные спасательные диски, потому что они созданы на основе дистрибутивов Linux.

Загрузитесь с Live USB на ПК. С помощью файлового менеджера, установленного на подобном диске, можно получить доступ к системе Windows. Linux нужен только драйвер для доступа на запись к файловой системе Windows. Удалите или переименуйте файл или папку с недопустимым именем.

Выводы статьи

У некоторых пользователей возникают вопросы, какие символы запрещено использовать в имени файла или папки. В операционной системе Windows имеются запрещенные знаки в имени файла или папки, а отдельные имена нельзя использовать на компьютере.

Имеется способ, позволяющий создать папку или файл с неподдерживаемым именем, но его будет не просто удалить с ПК. Удаление подобного файла или папки с компьютера выполняется с помощью нескольких методов.


margo

всем спасибо, у меня вышло. Я внесла ИмяИспользуемогоФайла и прописала его в пути для сохранения и вышло
    ТабДок.ИспользуемоеИмяФайла = Строка(Контр);

Если ЗначениеЗаполнено(Объект.Путь) Тогда
Поток = Строка(Объект.Путь) +"\" + Строка(Контр) + ".xls";
Попытка
ТабДок.Записать(Поток, ТипФайлаТабличногоДокумента.XLS);
Исключение
КонецПопытки;
Иначе
Сообщить("Не задан путь к файлу");
КонецЕсли;

 

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск