Имя: Пароль:
1C
 
Глюк или фича ? установка доступности в коде
0 Aleks73
 
21.12.10
14:33
8.2
в процедуре ПриОткрытии формы документа.
из одной и той же константы задавал значение
этаформа.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Действие1.
доступность
этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Действие3.
доступность

первое - прокатывает, второе - нет.

Разбираться неохота, сделал по-другому,
вопрос - глюк это или фича ?
если фича - как правильно ?
1 ice777
 
21.12.10
14:38
наверно это от версии платформы зависит )
2 zbv
 
21.12.10
14:38
(0) по твоему
ОсновныеДействияФормы = ДействияФормы - ?
3 Aleks73
 
21.12.10
14:40
(2) это РАЗНЫЕ кнопки, конечно же.
4 Aleks73
 
21.12.10
14:40
(2) проблема в том, что просто кнопку блокирует,а в подменю - не хочет. не изменяет значение, проверял в отладчике.
5 BadTouch
 
21.12.10
14:52
Скорей всего потому что панель ДействияФормы стоит с источником форма и автозаполнением, причем "подменю" - это стандартная заполненная. Для автозаполненных кнопок не работает установка доступности.
6 zbv
 
21.12.10
14:53
(3) а-а понял..
это фича, если кнопки созданы автозаполнением, то доступностью управлять нельзя
7 Aleks73
 
21.12.10
14:57
(6) м-дааа...спасибо конечно. НО как в таких случаях поступать, если надо изменить доступность такой строки в подменю?!
8 73
 
21.12.10
15:05
(7) Горячие клавиши и контекстное меню тоже гасить будешь?
Управляй источником.
9 Aleks73
 
21.12.10
15:07
(8) не понял, как управлять источником ?
Кстати, технически можно погасить горячие клавиши ?
10 ice777
 
21.12.10
15:07
(6) про ком панель есть в хелпе :

КнопкаКоманднойПанели (CommandBarButton)
Доступность (Enabled)
Использование:

Чтение и запись.
Описание:

Тип: Булево. Содержит признак доступности кнопки командной панели.
Истина - доступна.
Может использоваться для кнопок с типом Действие.
Если кнопка панели запрещена системой, значение свойства игнорируется.

Доступность:

Толстый клиент.
11 Aleks73
 
21.12.10
15:08
(10) пример кода, плиз !
12 73
 
21.12.10
15:09
(9) Что за кнопки запртить хочешь?
13 Aleks73
 
21.12.10
15:10
(12) - Записать, Записать и закрыть
14 73
 
21.12.10
15:11
(13) Поставь форме ТолькоПросмотр в Истину.
15 ice777
 
21.12.10
15:11
(10) это не про управление. это уточнение (6).
а погасить "провести" можно установив только чтение. в общем, развивайся, а то "Разбираться неохота.." .)
16 Aleks73
 
21.12.10
15:11
(12) Этаформа.толькопросмотр - НЕ ПРЕДЛАГАТЬ. во-первых, уже сделал, во вторых - визуально некрасиво, в третьих - спрашиваю на будущее, когда возникнет аналогичная проблема с другими кнопками
17 ice777
 
21.12.10
15:12
(14) и даже унитаз показалл ))
18 Aleks73
 
21.12.10
15:12
Меня интересует ответ по ситуации  5-6 в принципе
19 Dmitrii
 
гуру
21.12.10
15:12
(8) 1С-ка должна их сама скотчем заклеивать :))

Настройка прав через интерфейс - это круто, это по-нашему.
20 73
 
21.12.10
15:13
(16) Во-1х, это правильно. Поскольку отражает суть.
Во-2х, смотри (8).
21 Aleks73
 
21.12.10
15:14
(20) в первых, см (18) , во вторых, см (9)
22 ice777
 
21.12.10
15:15
(19) ходют тут всякие.. хотят как в C++ )
23 Aleks73
 
21.12.10
15:16
(19) кстати, почему заблокирована такая возможность ?
24 73
 
21.12.10
15:17
(21) Ну тогда скотч. Ещё может чопиками забить...
25 73
 
21.12.10
15:18
(23) Потому, что этими действиями управляет источник действий.
26 х86
 
21.12.10
15:18
(0)удаляй кнопку
27 Aleks73
 
21.12.10
15:19
(26) она в других ситуациях может пригодиться.
Вообще, можно и форму документа удалить...
А как-то поизячней можно ?
28 х86
 
21.12.10
15:21
(27)
Если <Выражение> Тогда
  УдалитьКнопку();
КонецЕсли;
29 Aleks73
 
21.12.10
15:24
(28) в синтакс-помошнике нет такой команды.
а процедуру писать - если на доступность не реагирует, то на видимость - тем более.
30 ice777
 
21.12.10
15:24
(27) ) сохрани в значение, потом восстановишь )
31 Aleks73
 
21.12.10
15:24
(30) не понял. совсем. кусок кода, плиз.
32 ice777
 
21.12.10
15:27
КнопкиКоманднойПанели (CommandBarButtons)
Удалить (Delete)
Синтаксис:

Удалить(<Индекс>)
Параметры:

<Индекс> (обязательный)

Тип: Число; КнопкаКоманднойПанели. Позиция кнопки в командной панели или кнопка.
Описание:

Удаляет кнопку из командной панели.
33 Aleks73
 
21.12.10
15:30
(32) посмотрел пример в помошнике.
А что, это мысль, надо потестировать на черновике,
спасибо !
34 ice777
 
21.12.10
15:32
а есть еще тип ХранилищеЗначения..)
35 73
 
21.12.10
15:34
(33) Скорее всего получишь: Невозможно удалить кнопку, всавленную автоматически.
36 73
 
21.12.10
15:35
(35)* вставленную
37 Aleks73
 
21.12.10
15:41
(36) м-да ? обязательнопопробую на копии !
38 Aleks73
 
21.12.10
15:50
чо-то не понял:
{Документ.ВводНачальныхОстатков.Форма.ФормаДокумента.Форма(240)}: Ошибка при вызове метода контекста (Удалить)
   этаформа.ЭлементыФормы.Удалить(этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Действие3);
по причине:
Несоответствие типов (параметр номер '1')

а если
------------
   Для каждого Элемент Из ЭлементыФормы Цикл
   Если Найти(Элемент.Имя,"Действие3") > 0 Тогда
       ЭлементыФормы.Удалить(Элемент);
   КонецЕсли;
КонецЦикла;
-------------
то просто не встречает такой элемент, как Действие3
39 Aleks73
 
21.12.10
15:53
и даже Подменю не встречает
40 Guk
 
21.12.10
15:53
(0) такая фигня еще в 8.1 была. помню что поборол, как пока не помню...
41 73
 
21.12.10
15:54
(37) Не буду лишать тебя такой возможности...

(38) Метод Удалить у "Кнопки":

этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Удалить(этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Действие3);
42 Aleks73
 
21.12.10
15:56
(41)
окумент.ВводНачальныхОстатков.Форма.ФормаДокумента.Форма(240)}: Метод объекта не обнаружен (удалить)
   этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Действие3.удалить();
43 73
 
21.12.10
15:57
(42) Сравни свой код с (41) и найди различия...
44 ASU_Diamond
 
21.12.10
15:57
(40) убираешь автозаполнение и руками все кнопочки добавляешь. Я так поборол, заодно по нормальному назвал кнопки.
45 Dmitrii
 
гуру
21.12.10
16:01
+ к (44) можно еще убрать автозаполнение и "заполнить автоматически" из контекстного меню по ПКМ на командной панели (чтобы руками все кнопочки не добавлять).
46 Aleks73
 
21.12.10
16:02
(43)этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Удалить(этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Действие3);
этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Удалить(этаформа.ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Действие4);
ДА, РАБОТАЕТ, СПАСИБО !
47 Aleks73
 
21.12.10
16:02
(43) ОТКУДА ЗНАЕШЬ ?
48 Aleks73
 
21.12.10
16:02
(45) это и ежу понятно
49 73
 
21.12.10
16:04
(44) Тогда уж лучше:
убираешь автозаполнение
ПКМ на панели - из контекстного меню выбираешь Заполнить автоматически.
Хоть не руками набрасывать...

ЗЫ. Горячая клавиша(CTRL-S) всё равно работать будет, даже если кнопку "Записать" удалить.
50 Aleks73
 
21.12.10
16:06
(43) скажи, ОТКУДА ЗНАЕШЬ ?
51 х86
 
21.12.10
16:07
вот еще

КнопкиКоманднойПанели (CommandBarButtons)
Очистить (Clear)
Синтаксис:
Очистить()
Описание:
Удаляет все кнопки из командной панели.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Пример:
КП = ЭлементыФормы.КоманднаяПанель;
КП.Кнопки.Очистить();
52 73
 
21.12.10
16:07
(50) Что именно?
53 Aleks73
 
21.12.10
16:07
(52): (41).
54 х86
 
21.12.10
16:08
(32) проверил

// кнопки автозаполнения не удаляются

((
55 Aleks73
 
21.12.10
16:08
(51) все кнопки не интересно удалять
56 73
 
21.12.10
16:13
(53) Не понял. Как кнопки удалять?
Ну, нужно удалять методом коллекции, к которой кнопка принадлежит...
57 Aleks73
 
21.12.10
16:24
(56) Этот приём - где вычитал ? полезный какой-то ресурс, посмотреть хочу.
58 73
 
21.12.10
16:31
(57) А что тут такого? Всё согласно СП.
59 Aleks73
 
21.12.10
16:32
(58) ты его наверно распечатал !
60 Aleks73
 
21.12.10
16:32
(58) в любом случае - большое спасибо, это очень ценный приём.
61 73
 
21.12.10
16:33
(59) И сжёг. Перед прочтением.
Независимо от того, куда вы едете — это в гору и против ветра!