Имя: Пароль:
1C
1С v8
Вопросы по полю ввода
0 Boudybuilder
 
29.11.12
15:48
Хочу запретить действие кнопки выбора ,если в поле ввода нет текста. Так как это СерииНоменклатуры , то по окончании ввода текста у меня запрос ищет нет ли с таким серийником отличающейся номенклатуры. А менеджер часто не вводит текст , а тупо открывает список и вводит новый элемент справочника.
Так вот , хочется чтобы после отработки запроса срабатывала как и есть стандартная обработка и искало ЭлементСправочника по текущему владельцу , и если таковой не найдено по тексту то предложило создать новую и заполнило поле.
Как это сделать в каком событии???

Процедура СерияНоменклатурыНачалоВыбора(Элемент, СтандартнаяОбработка)
   
   Если НЕ ЗначениеЗаполнено(Элемент.Значение) Тогда
       СтандартнаяОбработка = Ложь;
       Сообщить ("Заполните поле серии!");
   КонецЕсли;
   
КонецПроцедуры


Процедура СерияНоменклатурыОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    СерииНоменклатуры.Владелец,
   |    СерииНоменклатуры.Ссылка
   |ИЗ
   |    Справочник.СерииНоменклатуры КАК СерииНоменклатуры
   |ГДЕ
   |    СерииНоменклатуры.Наименование = &Наименование
   |    И СерииНоменклатуры.Владелец <> &Владелец
   |
   |УПОРЯДОЧИТЬ ПО
   |    СерииНоменклатуры.Владелец";
   Запрос.УстановитьПараметр("Наименование",Текст);
   Запрос.УстановитьПараметр("Владелец",Номенклатура);
   Результат = Запрос.Выполнить();
   Если НЕ Результат.Пустой() Тогда
       НайденыеСерии = Результат.Выбрать();
       Форма = ЭтотОбъект.ПолучитьФорму("НайденыСерии");
       Форма.Заголовок = "Серия:  """+ Текст+"""";
       Пока НайденыеСерии.Следующий() Цикл
           НовСтр = Форма.Номенклатура.Добавить();
           НовСтр.Номенклатура = НайденыеСерии.Владелец;
           НовСтр.Серия = НайденыеСерии.Ссылка;
       КонецЦикла;
       Форма.Объект = ЭтотОбъект;
       Форма.ОткрытьМодально();
   КонецЕсли;
   
КонецПроцедуры
1 yc4
 
29.11.12
16:19
>> Хочу запретить действие кнопки выбора ,если в поле ввода нет текста.

Процедура СерияНоменклатурыНачалоВыбора(Элемент, СтандартнаяОбработка)
   Если Элемент.ТекстРедактирования = "" Тогда
       СтандартнаяОбработка = Ложь;    
   КонецЕсли;    
КонецПроцедуры
2 yc4
 
29.11.12
16:21
>> А менеджер часто не вводит текст , а тупо открывает список и вводит новый элемент справочника.

Если по-любому менеджер должен сначала текст ввести, то может вообще кнопку убрать?
3 Boudybuilder
 
29.11.12
17:31
(1)
{(1)}: Поле объекта не обнаружено (ТекстРедактирования)
4 yc4
 
29.11.12
17:38
(3) извиняюсь, я для управляемой формы пример привел.