7.7 Автоматическое нажатие кнопки для активизации поля

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем DenisMSL, 10 май 2007.

  1. TopicStarter Overlay
    DenisMSL
    Offline

    DenisMSL

    Регистрация:
    10 май 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Подскажите, как в сделать автоматическое нажатие кнопки?
    Ситуация следующая:
    В документе есть поле ввода штрих-кода, сканером ввожу штрих-код в соответствии с порядком обхода перемещаюсь на кнопку к которой привязана процедура:

    Процедура СделатьПолеАктивным();
    Активизировать("ШтрихКод");
    КонецПроцедуры

    Вот только чтобы процедура запустилась, надо нажать на эту кнопку, а хочется чтобы это было автоматически.
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А когда система должна узнать время нажатия кнопки??? (нажать другую :) )

    Сначала надо определиться, в какой момент это сделать.

    Можно попробовать вывести текстовый реквизит на форму, ему поставить в соответствие функцию, и в ее теле описать необходимые действия. Данная функция будет запускаться при любых действиях в системе. А конкретное выполнение поставить при выполнении необходимого условия, например, прошло времени, заполнен реквизит и т.д.
  3. TopicStarter Overlay
    DenisMSL
    Offline

    DenisMSL

    Регистрация:
    10 май 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Я наверно не совсем корректно описал вопрос.
    Сейчас хочу усовершенствовать процедуру заполнение товаром документа - Счет.
    А именно заполнение товаром по штрих-коду. Подключил сканер. В форме счета создал новое поле ввода, туда сканируется штрихкод, после этого ищется в справочнике товар и подставляется в таблицу счета.
    Соответственно, когда я вожу штрих год, сканер автоматом после ввода эмулирует нажатие Enter. И курсор из поля ввода переходит в следующий элемент диалога документа. А я хочу чтобы он возвращался снова в окно ввода штрих-кода и ждал введение нового штрих-кода.
    В общем как мне сказать системе чтобы она устанавлявала курсор в нужное мне поле.
  4. Illarion
    Offline

    Illarion

    Регистрация:
    12 май 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Ессть предопределенная процедура ПриОкончанииРедактированииСтроки() (кажется так) она реагирует на Enter после ввода значения в любой колонке табличной части документа :unsure:
  5. рамиль
    Offline

    рамиль Опытный в 1С

    Регистрация:
    12 мар 2006
    Сообщения:
    595
    Симпатии:
    0
    Баллы:
    26
    Есть одно ограничение на использование метода АктивизироватьОбъект(<?>).Работает этот метод только в предопределенных процедурах формы.Например
    Пишешь ее
    Процедура ПриЗакрытии ()
    .....//Условие какое нибудь , что бы форма когда надо закрывалась.
    АктивизироватьОбъект();
    Закрыть(0);
    КонецПроцедуры;
  6. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    Пропишите название процедуры СделатьПолеАктивным() на вкладке Дополнительно у элемента диалога в который сваливается штрих код. Должно заработать.
  7. ДенисКa
    Offline

    ДенисКa

    Регистрация:
    24 ноя 2009
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Активизировать("ШтрихКод") и вправду нормальным путём не попрёт... сам уже помучился

    ...Короче у себя сделал так: Поле ШтрихКод сделал недоступным, формулу для него удалил, рядом с ним (полем) добавил кнопку "ВвестиШК"
    Для неё в модуле формы прописал такую процедуру:
    Код:
    Процедура ПоКнВвестиШК()
    Перем Х;
    
    Х=1;
    Пока Х=1 цикл
    Если ВвестиСтроку(ШК,"ввод штрих-кода",13) = 1 тогда
    Если ПустоеЗначение(ШК) = 0 тогда 
    
    //ищем штрих-код
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Тов"); 
    
    Спр = СоздатьОбъект("Справочник.ШтрихКод");
    
    //Кодд = СокрЛП(ШК);
    КоличествоШК = 0;
    
    Спр.ВыбратьЭлементыПоРеквизиту("ШтрихКод",ШК,0,0);
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
    //ШК = Кодд;
    Товар1 = Спр.ТекущийЭлемент();
    Товар0 = товар1.Владелец;
    ТЗ.НоваяСтрока();
    ТЗ.Тов = Товар0;
    КоличествоШК = КоличествоШК + 1;
    КонецЦикла;      
    
    Если КоличествоШК = 0 Тогда
    Сообщить("Позиция не найдена. Штрих-код="+ШК);
    ИначеЕсли КоличествоШК > 1 Тогда
    ВидПодбора = 1;
    ОткрытьПодбор("Обработка.ВыборШК", "Выбор позиции", Контекст,1);
    Х=0;
    Иначе
    // ищем есть ли такая позиция
    товар0 = ТЗ.ПолучитьЗначение(1,"Тов");
    НайденнаяСтрока = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Если Товар = Товар0 Тогда
    НайденнаяСтрока = НомерСтроки;
    прервать;
    КонецЕсли;
    КонецЦикла;
    
    Если НайденнаяСтрока = 0 Тогда
    НоваяСтрока();
    Товар = Товар0;
    Иначе      
    ПолучитьСтрокуПоНомеру(НайденнаяСтрока);
    КонецЕсли;
    
    ШК_Н = СокрЛП(Товар.Наименование);
    //ВвестиЧисло(Кол,"Введите количество:",1,0);
    Количество = Количество+1;
    Пересчет(1);
    
    Если Количество <> 0 Тогда
    ШК_Цена = Сумма/Количество;
    КонецЕсли;
    
    ШК_Кол = Количество;
    ШК_Баллы = Товар.Баллы.Получить(ДатаДок);
    КонецЕсли;
    
    иначе
    Сообщить("Вы не ввели штрих-код");
    КонецЕсли;
    ШК = "";
    иначе
    Х=2;
    КонецЕсли;
    КонецЦикла;
    
    Если Х=2 тогда
    Сообщить("Завершено пользователем");
    иначе
    Предупреждение("По этому штрих-коду найдено несколько товаров. Выберите из найденных товаров тот, который следует ввести в документ");
    КонецЕсли; 
    
    КонецПроцедуры //ПоКнВвестиШК()
    
    
    
    Если любому штрих-коду соответствует только один элемент справочника "Номенклатура", то можно и попроще (перем Х - не нужна, цикл по (ВвестиСтроку(ШК,"ввод штрих-кода",13) = 1) и т.д.)

    Работает чётко и как надо... но если сделаешь лучше - не забудь поделиться :)
    Успехов в работе и поменьше геморроев в личной жизни!

    [warn=Внимание!]
    Не забываем пользоваться тегами!
    [/warn]

    [guote]
    Я и не забыл - я с этими кодами не знаком пока... за исключением уже присутствующих в этом сообщении :)
    [/guote]
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  9. ДенисКa
    Offline

    ДенисКa

    Регистрация:
    24 ноя 2009
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    спасибо
Похожие темы
  1. kamrad
    Ответов:
    2
    Просмотров:
    977
  2. mailua
    Ответов:
    2
    Просмотров:
    816
  3. vol2hv
    Ответов:
    6
    Просмотров:
    688
  4. slon-genia
    Ответов:
    1
    Просмотров:
    886
  5. Артемka
    Ответов:
    0
    Просмотров:
    223
Загрузка...

Поделиться этой страницей