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

Выгрузка в Excel из 1С

Автор beginner1, 03 окт 2013, 17:36

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

beginner1

Добрый день! Подскажите, пожалуйста! делаю выгрузку из 1С в Ексель с группировками строк. На лист программно устанавливается защита.
Лист.EnableOutlining = Истина;
Лист.Protect("123",Истина,Истина,Истина,Истина);
Книга.Protect("123");
Запускаю ексель
Excel.Visible = 1;
Группировки работают. Сохраняю файл на диск, открываю заново, группировки перестают работать. Как побороть?


MuI_I_Ika

Может быть проблема с форматами экселя. С каким расширением сохраняется файл?

beginner1

   Excel = Новый COMОбъект("Excel.Application");
   ВременнаяПапка = СоздатьВременнуюПапку();    
   ПутьКФайлу = ВременнаяПапка + "\" + "Price" + Формат(Период, "ДФ=ггггММдд") + ".xls";

mixqn

а как конкретно создаются группировки?
правильно я понимаю, порядок действий такой:
1. программно создан файл
2. программно заполнен
3. программно открыт
4. вручную сохранен
до пункт 4 все работает, пункт 4 - не работает, так?

beginner1

Все верно!
Лист.Range(Лист.Cells(НачСтрока, 1), Лист.Cells(НомерСтроки - 1, 9)).Rows.Group();
Вручную сохранен, файл повторно открыт, группировки не работают на защищенном листе.
Без защиты не обойтись.

mixqn

Цитата: beginner1 от 04 окт 2013, 09:54группировки не работают на защищенном листе
а кстати, по-моему именно в этом корень проблемы. я как-то не придал сначала значения этому.
если не ошибаюсь, делал тоже раньше лист с защитой - от группировок пришлось отказаться, они не работают вроде.

предлагаю:
1. проверить полностью в ручном режиме (исключить 1С вообще - создать документ и "поиграться")
2. поискать в интернете, может как-то можно добиться нужного эффекта.

подозреваю, придется делать выбор: либо защита либо группировки

beginner1

Да проблема именно в этом. Я читала, что обходится это только написание макроса. Если написать вручную макрос, то все работает. Если попытаться программно записать макрос:
Excel.VBE.ActiveVBProject.VBComponents(1).CodeModule.AddFromString("Private Sub Workbook_Open()" +
Символы.ПС + "Worksheets(""Прайс"").Unprotect ""123"" +
Символы.ПС + "Worksheets(""Прайс"").EnableOutlining = True" +
Символы.ПС + "Worksheets(""Прайс"").Protect ""123"" contents:=True, userInterfaceOnly:=True " +
Символы.ПС + "end sub");
Но к сожалению происходит ошибка
{Форма.Форма(528)}: Ошибка при получении значения атрибута контекста (VBE): Произошла исключительная ситуация (Microsoft Excel): Программный доступ к проекту Visual Basic не является доверенным
Уже морально практически отказалась от группировок, последняя надежда на форум, может, кто-то все-таки решил проблему

mixqn

да, вручную не получится...
без кода
Цитата: beginner1 от 03 окт 2013, 17:36Лист.EnableOutlining = Истина;
доступность группировок не работает при установленной защите.
в общем остается один совет: копайте интернет, может еще еще какие свойства у экселя, которые помогу вам решить задачу


Добавлено: 04 окт 2013, 10:31


Цитата: beginner1 от 04 окт 2013, 10:16Я читала, что обходится это только написание макроса
да, я тоже наткнулся на подобную статью.
видимо и правда не работает.
ошибка
Цитата: beginner1 от 04 окт 2013, 10:16{Форма.Форма(528)}: Ошибка при получении значения атрибута контекста (VBE): Произошла исключительная ситуация (Microsoft Excel): Программный доступ к проекту Visual Basic не является доверенным
должна лечиться так:
Кнопка "Office" -> кн. "Параметры Excel" –> меню "Основные" -> поле "Основные параметры работы с Excel" -> Показывать вкладку "Разработчик" на ленте.
Панель "Разработчик" -> группа "Код" -> Безопасность макросов -> меню "Параметры макросов" -> поле "Параметры макросов для разработчика" -> Доверять доступ к объектной модели проектов VBA.

И после этого перезагрузить.

(опять же, нашел в интернете)

beginner1

Да, я тоже это читала. Но я не пойму, прайс будут выгружать менеджеры и каждому нужно настроить это разрешение для Excel у них на пк и помнить об этом, если вдруг у них будет переустановка офиса. Как-то это не есть гуд. Или я чего-то недопонимаю?

mixqn

да, все так.
опять же, с сужу по тому, что прочитал, на практике не пробовал. но судя по тому, что пишут + ваше описание проблемы (то, что без скрипта и правда не работает) наводит на мысль, что иного выхода нет.
так что выбор такой примерно: или защита или структура или каждый раз правка настроек. чем-то неизбежно придется жертвовать (если конечно не существует в природе иного способа, которого мы с вами пока не нашли).

Теги: 1С Excel 

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

Рейтинг@Mail.ru

Поиск