Имя: Пароль:
1C
1C 7.7
v7: ТиС 9.2 глючит??
0 konovl
 
22.08.11
10:36
В ТиС 9.2 в документе ЧекККМ нужно в строке табличной части после заполнении поля Штрихкод курсор сразу перескакивал на поле Количество. Но вот загадка - не перескакивает!!! Но при выполнении кода через отладчик все работает без проблем. Подскажите в чем может быть причина???

Приведу код:

Процедура ПриИзмененииШтрихКода() //Модуль Формы документа

//......стандартный текст модуля

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

КонецПроцедуры // ПриИзмененииШтрихКода()



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



P.S. Могу переслать конфигурацию если интересует
1 andrewks
 
22.08.11
10:40
модальная обработка специально для активизации поля? это какой-то современный нано-тренд?
2 Aleksey
 
22.08.11
10:42
(1) Нормальный финт ушами, я у себя тоже так делал
3 Aleksey
 
22.08.11
10:43
Потому что Активизировать ты не можешь из любого места, только из предопределенной процедуры
4 andrewks
 
22.08.11
10:43
(2) это чтобы забороть ошибку при вызове из формулы элемента диалога?
5 Aleksey
 
22.08.11
10:45
(4) В данной формуле не может быть вызвана эта процедура(функция)
В данной формуле не может быть вызвана эта процедура(функция)
6 andrewks
 
22.08.11
10:45
(5) ну да, я уже понял
7 andrewks
 
22.08.11
10:46
(0) винда какая?
8 Ёпрст
 
гуру
22.08.11
10:54
(0)

Перем МожноЗакрыть;

Процедура ПриИзмененииШтрихКода() //Модуль Формы документа


//......стандартный текст модуля


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

//   Сп=Форма.Параметр;
//  Если НРег(ТипЗначенияСтр(Сп))<>"списокзначений" Тогда
//      Сообщить("Активизировать поле: неверный //вызов","!");
//       СтатусВозврата(0);
//       Возврат;
//   КонецЕсли;
 
//   Конт=Сп.Получить("Контекст");  
//  Поле=Сп.Получить("Поле");
//  Конт.Активизировать(Поле, 1);
 
//   СтатусВозврата(0);
//КонецПроцедуры
9 Ёпрст
 
гуру
22.08.11
10:56
+8 за модальные окошки, можешь ознакомиться:
http://my1c-archive.narod.ru/knowhow/chk_val.html
10 konovl
 
22.08.11
11:20
(8),(9) Спасибо. Сейчас попробую.
11 konovl
 
22.08.11
11:25
Ёпрст3, спасибо. Все заработало.
Закон Брукера: Даже маленькая практика стоит большой теории.