Имя: Пароль:
1C
1С v8
COM-объект Excel Метод Protect Параметр AllowFormattingCells
, , ,
0 Lucky68
 
11.02.13
11:37
Здравствуй, подскажите пожалуйста как установить значение "Истина" для этого параметра. Я делаю так:

Эксель = Новый COMОбъект("Excel.Application");
Книга = Эксель.WorkBooks.Open(ПутьКФайлуШаблона);
Книга.Protect("123");
Книга.ActiveSheet.Protection.AllowFormattingCells = Истина;

Выдает ошибку:
{Форма.Форма.Форма(112)}: Поле объекта недоступно для записи (AllowFormattingCells)
Книга.ActiveSheet.Protection.AllowFormattingCells = Истина;
1 Lucky68
 
11.02.13
11:41
+
2 Ololoshka
 
11.02.13
11:42
можно так попробовать. Книга.ActiveSheet.Protection.AllowFormattingCells:= true;

или вот так
Книга.ActiveSheet.Protect Password:="test", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=False, AllowDeletingRows:= _
True
3 Ololoshka
 
11.02.13
11:42
точнее последнее это как задается в  VB
4 Lucky68
 
11.02.13
11:43
вот и  я тож думаю в 1с синтаксис то другой
5 Lucky68
 
11.02.13
11:48
понедельник день тяжелый?))
6 Ololoshka
 
11.02.13
12:00
Книга.Protect("123", DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables);

с методами Protect может поиграться?

(5) что-то да :) сглючило
7 dk
 
11.02.13
12:08
либо (6) либо попробовать поменять сначала установить св-ва Protection и потом вызывать Protect
8 Lucky68
 
11.02.13
12:47
(7) я уж и так и эдак изголяюсь
(6) а Protect и есть метод и мне нужен конкретный параметр этого метода((
9 Lucky68
 
11.02.13
12:48
(6) сорри))поробую его потерзать))
10 Lucky68
 
11.02.13
12:59
эмм..сейчас во время отладки посмотрел доступные свойства нашего СОМ-объекта, там метода Protect даже и нету((
11 dk
 
11.02.13
13:18
метод <> свойство
12 Ololoshka
 
11.02.13
13:26
(10) Книга.ActiveSheet.Protect("123",...);
так делал? метод Protect насколько я помню применяется к листу, а не ко книге, хотя не возьмусь утверждать. Поправьте, если что.

(8)неверная формулировка, конечно с параметрами метода)
13 Lucky68
 
11.02.13
13:30
(12) работает и для книги в целом
14 Lucky68
 
11.02.13
14:50
блин, ну никак не идут дела((
15 SherifSP
 
11.02.13
14:53
(0) Объясни подробнее, зачем используешь именно эту компоненту?
16 SherifSP
 
11.02.13
14:56
(0) На мб это заинтересует
17 Lucky68
 
11.02.13
14:56
Для того что бы содержимое ячеек изменять было нельзя, а вот форматировать (раздвигать границы, например) было можно
18 SherifSP
 
11.02.13
14:56
19 Lucky68
 
11.02.13
15:08
не, чет не то

Я вот грешу на то, что может быть СОМ-объект не так получаю, поэтому он мне параметр не дает записать
20 dk
 
11.02.13
15:11

   экс = СоздатьОбъект("Excel.application");
   книга = экс.WorkBooks.Add("C:\11.xlt");
   Лист = книга.WorkSheets(1);
   Лист.protect("222",0,0,0,0,-1);
   книга.Saveas("C:\11.xlsx");

тока нифига не защищает
может надо книгу еще защищать
21 Lucky68
 
11.02.13
15:15
вообще я книгу то и защищаю:

Книга.Protect("123");
22 SkrAn
 
11.02.13
15:16
А в шаблоне макрос на защиту книги записать и потом его программно вызывать есть возможность?
23 SkrAn
 
11.02.13
15:22
Как нибудь вроде Книга.Apllication.Run("Макрос"); ))
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший