Имя: Пароль:
 
1C
 
В данной формуле не может быть вызвана эта процедура(функция)
0 OctoberHammer
 
07.06.04
20:09
Процедура ИзмВремяС()
   Часов = Лев(ВремяС,2);
   Минуты = Прав(ВремяС,2);
   Если (Число(Часов)>23) или (Число(Часов)<0) или (Число(Минуты)<0) или (Число(Минуты)>59)  Тогда
       глАктивизировать(Контекст,"ВремяС");
   КонецЕсли;
КонецПроцедуры
==========\
Процедура глАктивизировать(Конт, ИмяРеквизита) Экспорт
   Конт.Активизировать(ИмяРеквизита);
КонецПроцедуры
{Глобальный модуль(38)}: В данной формуле не может быть вызвана эта процедура(функция)
==========================
Как побороть? Если смысл не понятен, скажите, или задайте наводящие вопросы, я намкну
1 Волшебник
 
07.06.04
20:20
Вот способ обхода этого ограничения платформы:

// глобальный модуль
Процедура глАктивизироватьПоле(Конт, Поле) Экспорт
  Сп=СоздатьОбъект("СписокЗначений");
  Сп.Установить("Контекст", Конт);
  Сп.Установить("Поле", Поле);
  ОткрытьФормуМодально("Обработка.АктивизироватьПоле", Сп);
КонецПроцедуры

// модуль формы Обработка.АктивизироватьПоле
Процедура ПриОткрытии()
  Сп=Форма.Параметр;
  Если НРег(ТипЗначенияСтр(Сп))<>"списокзначений" Тогда
      Сообщить("'Активизировать поле': неверный вызов","!");
      СтатусВозврата(0);
      Возврат;
  КонецЕсли;
 
  Конт=Сп.Получить("Контекст");
  Поле=Сп.Получить("Поле");
  Конт.Активизировать(Поле, 1);
  СтатусВозврата(0);
КонецПроцедуры

Соответственно - вызов в коде:
глАктивизироватьПоле(Контекст, "Артикул");
2 OctoberHammer
 
07.06.04
20:33
Спасибо
4 Волшебник
 
07.06.04
20:36
Спасибо Яндексу!
5 mszsuz
 
08.06.04
08:52
(1) Много лишних движений, сводящихся лишь к тому, чтобы Активизировать() была вызвана из какой-нить предопределенной процедуры.
Всё это можно провернуть и в рамках одного модуля: http://www.sinor.ru/~my1c/knowhow/getskod.html
6 OctoberHammer
 
08.06.04
12:51
сенкс, почти работает и то, и то...
Почему "почти"?
Ну как сказать - а вот почему, если я реквизиту формы назначаю маску "NN:NN", и ничего еще в поле не ввел, то строка получается непустая? Ну ладно, допустим это я поборю...
А вот никто не задал маску строковому реквизиту справочника? и потом выводил его на форму? Что получалось?
зы. Речь идет о в77, 21-й релиз
7 OctoberHammer
 
08.06.04
12:58
сорри, прогнал, пустая строка с маской все-таки 1Сом определяется как пустая строка, все работает.