Имя: Пароль:
1C
1С v8
Ошибка: Изменение свойств команд недоступно на клиенте
0 Hawk_1c
 
06.09.12
18:24
Происходит вызов следующей процедуры:
#Если НаСервере Тогда
ДобавитьКнопкуПриПустомПодменю(Форма);
#КонецЕсли

&НаСервере
Процедура ДобавитьКнопкуПриПустомПодменю(Форма) Экспорт
   Если Форма.Команды.Найти("КнопкаПриПустомПодменю") = Неопределено Тогда
       Команда = Форма.Команды.Добавить("КнопкаПриПустомПодменю");
       Команда.Действие = "ДействиеКнопкаПриПустомПодменю";
   КонецЕсли;
   Кнопка = Форма.Элементы.Добавить("КнопкаПриПустомПодменю", Тип("КнопкаФормы"), Форма.КоманднаяПанель);
   Кнопка.ИмяКоманды = "ДействиеКнопкаПриПустомПодменю";
   Кнопка.Заголовок = Форма.Элементы.Состояние.Заголовок;
КонецПроцедуры
1 Hawk_1c
 
06.09.12
18:25
Ошибка:
Ошибка при вызове метода контекста (Добавить)
  Команда = Форма.Команды.Добавить("КнопкаПриПустомПодменю");
по причине:
Изменение свойств команд недоступно на клиенте
2 Hawk_1c
 
06.09.12
18:51
Подниму. Вопрос в ошибке.. Почему пишет, что недоступно на клиенте, хотя выполнение происходит на сервере.
3 ChAlex
 
06.09.12
18:54
(2) - ну так стоит проверить код, может все-таки в коде немного не то что здесь на форуме
4 Hawk_1c
 
06.09.12
18:56
Копипастил. Все так и есть в коде.
5 vmv
 
06.09.12
19:00
#Если НаСервере
#Если НаКлиент


это директивы компилятору, который всего-лишь "готовит" код до его непоредственного вызова на клиенте или сервере.
В зависимости от контекста вызова - исполняемый код будет "УРЕЗАН"!

&НаСервере - это уже контекст исполнения код непосредственно при вызове
мдя где мои 15 лет, шо щас не учат основам компиляции эти яговых лабатрясов
6 Hawk_1c
 
06.09.12
19:13
(5)Ну я не вижу противоречия в своих словах. Я привел пример, показывая что эта процедура вызываться может только НаСервере...
7 Hawk_1c
 
06.09.12
19:40
(5) Или подскажите, в чем я не прав...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший