Имя: Пароль:
1C
1С v8
Excel, метод Protect
,
0 likesport
 
07.09.21
20:54
Вкратце, ситуация такая:
1. Формируем двух листовой файл Excel с помощью ПакетОтображаемыхДокументов;
2. Сохраняем в формате ТипФайлаПакетаОтображаемыхДокументов.XLS;
3. Открываем файл через Новый COMОбъект("Excel.Application"); (На компьютере стоит Excel 2016)
4. Вызываю метод FileXLS.Worksheets(2).Protect("my_very_nice_pass",false,true,true,true);

5a. Капут. приехали. 0x800A03EC Васся!!!!
5b. Все чики пуки! Лист засисисьчикёН!

Видео, где подробно описываю проблему
https://youtu.be/hno1fwXEOCg

Обработка над которой провожу экзекуции
https://disk.yandex.ru/d/WdhSPtdeai9TvA
1 Смотрящий
 
07.09.21
21:09
Штош. Помолимся.
2 comp2006
 
07.09.21
21:13
Protect("my_very_nice_pass",0,1,1,1)
3 likesport
 
07.09.21
21:27
(2)
Worksheet_Info.Protect("12345678", 0, 1, 1, 1); // НИХТ!
Worksheet_Info.Protect("12345678", 0, -1, -1, -1); // НАЙН!
4 likesport
 
08.09.21
07:26
Решение найдено, всем спасибо, расходимся ))

Перед вызовом функции Protect, надо вызывать Activate.

Worksheet_Info.Activate();
Worksheet_Info.Protect("12345678", Ложь, Истина, Истина, Истина);
5 Lama12
 
08.09.21
07:53
(4) Забавно. Спасибо за инфу.
6 Lama12
 
08.09.21
07:54
(4) Кстати, как до решения дошел? Что послужило толчком сделать Worksheet_Info.Activate();?
7 likesport
 
10.09.21
15:45
(6) Подсказали коллеги из Infostart, а они в свою очередь методом тыка обнаружили. В документации от microsoft я ничего такого не нашел.
8 1Снеговик
 
гуру
10.09.21
15:46
Забавно, даже не читал, поржал с заголовка
9 Garykom
 
гуру
10.09.21
16:18
не активный лист низзя защитить? прикольный фича
10 ДедМорроз
 
12.09.21
10:30
Там в последнем офисе многие функции без активации листа не работают - это,видимо,или фича или недоработка.