Имя: Пароль:
1C
 
1С и Excel - защита листа
,
0 Nicole
 
17.06.22
13:16
Есть вот такой код:

Книга = Excel.WorkBooks.Open(ИмяФайла);
Лист = Книга.WorkSheets("Имя листа");
.....
Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1 = МассивЯчеек; // инициализация формул
Лист.Protect("12345", 1, 1, 1);

Валится с сообщением об исключительной ошибке на Лист.Protect. Находила похожие темы, но так и не поняла, в чем может быть причина.
Заранее спасибо за помощь.
1 vicof
 
17.06.22
13:18
2 Nicole
 
17.06.22
14:01
(1) Речь о том, что пароль нужно указывать без кавычек?
3 vicof
 
17.06.22
14:04
(2) И про ActiveSheet
4 Nicole
 
17.06.22
14:40
(3) Переделала

Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1 = МассивЯчеек; // инициализация формул
Книга.ActiveSheet.Protect(12345, 1, 1, 1);

Все равно валится с той же ошибкой
5 Nicole
 
20.06.22
08:36
Подниму, пожалуй.
Решение так и не найдено.
6 vbus
 
20.06.22
09:15
Private Sub CommandButton_Click()
    Worksheets("Лист1").Unprotect Password:="1111"
End Sub

Private Sub CommandButton__Click()
    Worksheets("Лист1").Unprotect "1111"
End Sub

Private Sub CommandButton___Click()
    Password = "1111"
    Worksheets("Лист1").Unprotect Password
End Sub
7 Nicole
 
20.06.22
10:19
(6) Простите, не поняла, на что вы предлагаете обратить внимание
8 Nicole
 
21.06.22
16:06
Проблема, похоже, заключается в том, что файл, в котором нужно защитить листы, выгружается из 1С через ПакетОтображаемыхДокументов. Причем если таким образом формировать книгу с одним листом - все нормально, Protect срабатывает; если формируем книгу с несколькими листами - получаем исключительную ситуацию.
9 Nicole
 
21.06.22
16:35
Проблема решена.
https://infostart.ru/1c/articles/979007/
Ответ (44)
10 Nicole
 
21.06.22
16:49
Нет предела совершенству. Есть вариант проще.

Для Счетчик = 1 По Книга.WorkSheets.Count Цикл
     Книга.WorkSheets(Счетчик).Select();
КонецЦикла;
Независимо от того, куда вы едете — это в гору и против ветра!