База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как исправить ошибку “Невозможно получить свойство Add класса Buttons” в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 минуты назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
1 сентября 2025 в 9:15 #33305
Odineski
УчастникПри сохранении документа в 1с типа excel. Выдает ошибку. Не удалось записать данные в файл. Подробности: Произошла исключительная ситуация (Microsoft Excel): Невозможно получить свойство Add класса Buttons
-
1 сентября 2025 в 9:15 #33306
Odin – Одинэсник
УчастникВладимир, ошибка «Невозможно получить свойство Add класса Buttons» при сохранении табличного документа в Excel из 1С обычно связана с проблемами взаимодействия через COM-объект Excel, чаще всего с элементами управления (кнопками) на листе Excel, которые не поддерживаются или повреждены.
Основные причины и решения:
1. **Проблемы с шаблоном Excel**
Если вы используете шаблон Excel с элементами управления (кнопками, ActiveX и т.п.), то при попытке записи табличного документа 1С в такой файл через COM может возникать ошибка.
**Решение:**
– Попробуйте сохранить табличный документ в новый файл без использования шаблона.
– Если нужен шаблон, убедитесь, что в нем нет ActiveX элементов или кнопок, либо удалите их.2. **Версия Excel и совместимость**
Иногда ошибка возникает из-за несовместимости версии Excel и используемого формата файла (например, попытка сохранить в старом формате XLS, а в книге есть элементы, поддерживаемые только в XLSX).
**Решение:**
– Сохраняйте файл в формате XLSX (тип 51), а не XLS (тип 18).
– В коде 1С при вызовеActiveWorkbook.SaveAs
укажите формат 51 для XLSX.3. **Закрытие и очистка COM-объектов**
Если в коде 1С не корректно закрываются объекты Excel, то при повторных вызовах могут возникать ошибки.
**Решение:**
– Убедитесь, что после работы с Excel вызываетсяExcel.Application.Quit()
и объекты освобождаются.
– ИспользуйтеПопытка…Исключение…КонецПопытки
для обработки ошибок и корректного завершения.4. **Обновление и исправление Office**
Иногда проблема связана с багами в установленном Office.
**Решение:**
– Проверьте обновления Office и установите последние патчи.
– Попробуйте выполнить восстановление Office через Панель управления.5. **Пример корректного кода сохранения табличного документа в Excel (8.х)**
1С (Код)12345678910111213141516171819202122232425262728293031321CПроцедура СохранитьТабличныйДокументВExcel(ТабДокумент, ИмяФайла)ИмяФайла = Строка(ИмяФайла) + ".xlsx";Каталог = КаталогВременныхФайлов();ПолныйПуть = Каталог + ИмяФайла;ПопыткаТабДокумент.Записать(ПолныйПуть, ТипФайлаТабличногоДокумента.XLSX);Excel = Новый COMОбъект("Excel.Application");Книга = Excel.Workbooks.Open(ПолныйПуть);Excel.Visible = Ложь;Excel.DisplayAlerts = Ложь;// Убедимся, что нет проблем с элементами управления// Можно удалить все кнопки, если есть необходимость (пример)// Для каждого листа:Для Каждого Лист Из Книга.Worksheets ЦиклПока Лист.OLEObjects.Count > 0 ЦиклЛист.OLEObjects(1).Delete();КонецЦикла;КонецЦикла;Книга.SaveAs(ПолныйПуть, 51); // Сохраняем в формате XLSXКнига.Close();Excel.Quit();ОсвободитьПамять(Excel);Сообщить("Файл успешно сохранен: " + ПолныйПуть);ИсключениеСообщить("Ошибка при сохранении файла: " + ОписаниеОшибки());Если ЗначениеЗаполнено(Excel) ТогдаExcel.Quit();ОсвободитьПамять(Excel);КонецЕсли;КонецПопытки;КонецПроцедуры6. **Если ошибка возникает при работе с кнопками на листе Excel**
– Удалите все элементы управления (кнопки, ActiveX) из шаблона Excel.
– Либо создайте новый чистый шаблон без таких элементов.—
Если проблема сохраняется, рекомендую проверить:
– Используемый шаблон Excel (если есть).
– Версию Excel и 1С.
– Права доступа к папке сохранения.
– Корректность кода, который работает с Excel через COM.Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/323606/
https://helpf.pro/faq8/view/1026.htmlЕсли нужно, могу помочь с адаптацией кода под вашу задачу.
—
Если нужна помощь с конкретным кодом — пришлите его, посмотрю и помогу исправить.
0
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.