1С и Excel - защита листа

1. NicNiconovna 20.06.22 08:52 Сейчас в теме
Есть вот такой код:

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

Валится с сообщением об исключительной ошибке на Лист.Protect.
Пробовала указывать пароль с кавычками и без, пробовала использовать не Лист, а ActiveSheet - ошибка остается.
Находила похожие темы, но так и не поняла, в чем может быть причина.
Заранее спасибо за помощь.
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user1326147 20.06.22 09:07 Сейчас в теме
Лист.UnProtect(); еше не предлагали?
3. NicNiconovna 20.06.22 09:29 Сейчас в теме
(2) Еще нет. И в каком месте применить? Сразу после Лист = Книга.WorkSheets(ИмяЛиста);?
4. user1326147 20.06.22 10:33 Сейчас в теме
А что нужно-то, убрать защиту?
5. NicNiconovna 20.06.22 10:42 Сейчас в теме
(4) Нет, нужно поставить защиту
6. user1326147 20.06.22 11:02 Сейчас в теме
7. NicNiconovna 20.06.22 11:09 Сейчас в теме
(6) Да там вроде все параметры Optional. И те варианты использования Protect, которые я видела в разных темах в сети, - там не все параметры были заполнены. Но можно попробовать.
8. NicNiconovna 20.06.22 12:10 Сейчас в теме
9. user1326147 20.06.22 12:41 Сейчас в теме
Книга.WorkSheets(ИмяЛиста).Activate
Книга.WorkSheets(ИмяЛиста).Protect("12345", 1, 1, 1);

Так?
10. NicNiconovna 20.06.22 15:15 Сейчас в теме
11. NicNiconovna 21.06.22 16:05 Сейчас в теме
Проблема, похоже, заключается в том, что файл, в котором нужно защитить листы, выгружается из 1С через ПакетОтображаемыхДокументов. Причем если таким образом формировать книгу с одним листом - все нормально, Protect срабатывает; если формируем книгу с несколькими листами - получаем исключительную ситуацию.
12. unknown181538 152 21.06.22 16:08 Сейчас в теме
Я с такой проблемой сталкивался, и у меня так и не получилось Protect назначить. Файл сохранялся через табличныйДокумент.Записать()
13. NicNiconovna 21.06.22 16:34 Сейчас в теме
Проблема решена.

Для Счетчик = 1 По Книга.WorkSheets.Count Цикл
Книга.WorkSheets(Счетчик).Select();
КонецЦикла;
unknown181538; +1 Ответить
14. NicNiconovna 21.06.22 17:26 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот