Имя: Пароль:
1C
1С v8
Подскажите по параметрам метода защиты определенной области листа Excel.
,
0 IBTM
 
24.12.13
12:12
Привет! Есть образец, делаю по нему:

ТекЛист = Книга.ActiveSheet;
    
ТекЛист.Protect("123",True,True,,,,,,,,,,,True,True,);

но при таких параметрах блокируется весь лист, а мне нужно только некую часть, которая будет всегда меняться.
Может у кого есть описание параметров данного метода ну или с ходу кто скажет?
1 Cube
 
24.12.13
12:20
(0) Так Яндекс знает все... Кури MSDN, можешь начать отсюда: http://msdn.microsoft.com/ru-ru/library/microsoft.office.tools.excel.worksheet.protect.aspx
2 grayshadow
 
24.12.13
12:35
сначала у ячеек свойство поставить... Protected вроде называется
потом лист.Protect
3 grayshadow
 
24.12.13
12:37
ЭксельЛист.Cells(Счетчик, СтолбецКолво).Locked = 0;
4 IBTM
 
24.12.13
12:37
(1) Спасибо большое! Получается, что нет там параметров выбора определенных областей для защиты. Может тогда метод не тод я выбрал? Вижу только тогда вариант, сначала формировать область которую надо заблокировать, затем присоединить всё остальное. Может есть у кого идеи получше?
5 grayshadow
 
24.12.13
12:38
в области которую НЕ нужно блокировать делаешь (3)
потом на весь лист Protect
6 IBTM
 
24.12.13
12:39
(5) спасибо, ща пробую
7 IBTM
 
24.12.13
13:22
ну вроде получается, но... для столбцов я тоже цикл сделал т.к. не понял что за СтолбецКолво, там же вроде должен быть номер столбца. Споткнулся на таком моменте, не устанавливается
Locked для ячейки состоящей из двух колонок (она объеденина). Как быть, черт бобери?
8 IBTM
 
24.12.13
13:24
вот код:
    
Для Строка = ПоследняяСтрокаБлокировки + 1 По ВсегоСтрок Цикл
        
        Для Колонка = 1 По ВсегоКолонок Цикл
            
            Если Колонка = 3 Тогда
            
                Колонка = Колонка + 1;
            
            КонецЕсли;
        
            ТекЛист.Cells(Строка, Колонка).Locked = Ложь;
        
        КонецЦикла;
    КонецЦикла;
9 IBTM
 
24.12.13
13:25
ой, вернее вот:

Для Строка = ПоследняяСтрокаБлокировки + 1 По ВсегоСтрок Цикл
        
Для Колонка = 1 По ВсегоКолонок Цикл
            
        
ТекЛист.Cells(Строка, Колонка).Locked = Ложь;
        
        КонецЦикла;
    КонецЦикла;
10 IBTM
 
24.12.13
13:26
    Для Строка = ПоследняяСтрокаБлокировки + 1 По ВсегоСтрок Цикл
        
        Для Колонка = 1 По ВсегоКолонок Цикл
                    
            ТекЛист.Cells(Строка, Колонка).Locked = Ложь;
        КонецЦикла;
    КонецЦикла;  
11 IBTM
 
24.12.13
13:43
подниму.... Споткнулся на таком моменте, не устанавливается
Locked для ячейки состоящей из двух колонок (она объеденина). Как быть, черт бобери?
12 IBTM
 
24.12.13
14:23
{Форма.ФормаОтправки.Форма(44)}: Ошибка при установке значения атрибута контекста (Locked)
            ТекЛист.Cells(Строка, Колонка).Locked = Ложь;
по причине:
Произошла исключительная ситуация (Microsoft Office Excel): Нельзя установить свойство Locked класса Range
13 IBTM
 
24.12.13
15:40
() вот если кому понядобится, по теме...
http://support.microsoft.com/kb/291308

(3) это не сработает при объеденной ячейки. Или я не прав...

там написано использовать не "Cells", а "Range".

но не срабатывает, блокирует опять весь лист. ЧЯДНТ?
    ТекЛист = Книга.ActiveSheet;
    
    ТекЛист.UnProtect();
    
    КоличествоСтрокТЧ = СсылкаНаОбъект.Начисления.Количество();
    
    ВсегоСтрок = ТекЛист.Cells(1,1).SpecialCells(11).Row;
    
    ВсегоКолонок = ТекЛист.Cells(1,1).SpecialCells(11).Column;
    
    ПоследняяСтрокаБлокировки = 26 + КоличествоСтрокТЧ;
        
    //Для Строка = ПоследняяСтрокаБлокировки + 1 По ВсегоСтрок Цикл
        
        //Для Колонка = 1 По ВсегоКолонок Цикл
                    
            ТекЛист.Range("R"+ ПоследняяСтрокаБлокировки,"R" + ВсегоСтрок).Locked = 0;        
        //КонецЦикла;
    //КонецЦикла;  
    
    ТекЛист.Protect("123",,,,,,,,,,,,,,,);
14 grayshadow
 
24.12.13
15:56
йахз почему, но через 1с нельзя использовать range
по крайней мере у меня всегда глючит:)
cells наше всё
15 grayshadow
 
24.12.13
15:58
на объединенных не пробовала, но можно попробовать первую ячейку разлочить
16 IBTM
 
24.12.13
16:03
(14) видимо да

(15) что значит "разлочить"?
17 grayshadow
 
24.12.13
16:05
ну locked = 0:)
18 IBTM
 
24.12.13
17:49
Получилось, всем спасибо за участие.
19 grayshadow
 
24.12.13
18:48
don't mention:)