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 70 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 Сейчас в теме
Оставьте свое сообщение
Вакансии
Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 190 000 руб.
Полный день

Ведущий аналитик-разработчик 1С
Москва
зарплата от 230 000 руб. до 270 000 руб.
Полный день

1С:Эксперт по производительности
Москва
зарплата от 400 000 руб. до 950 000 руб.
Полный день

Ведущий аналитик 1С (ERP, ЗУП)
Краснодар
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Тверь
зарплата от 150 000 руб. до 250 000 руб.
Полный день