8.х Программный запуск обработки

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

  1. TopicStarter Overlay
    KoD
    Offline

    KoD

    Регистрация:
    23 сен 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Приветствую! Задача состоит в том, чтобы открыть внешнюю обработку и программно нажать на кнопку выполнить.

    НовоеДействие = Новый Действие("КнопкаВыполнитьНажатие");
    ЗапускаемаяОбработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("123", Истина);
    ФормаЗапускаемойОбработки = ЗапускаемаяОбработка.ПолучитьФорму();
    кнопка = ФормаЗапускаемойОбработки.ЭлементыФормы.Найти("Флажок1");

    Загвостка в том как обратиться к флажку и нажать кнопку Выполнить. Отпишитесь, еслиесть какие идеи. Запанее спасибо...
  2. Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    ну вам не то что бы на кнопку нажать нужно, а, скорее, выполнить процедуру-обработчик нажатия на эту кнопку, правильно?
  3. TopicStarter Overlay
    KoD
    Offline

    KoD

    Регистрация:
    23 сен 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Вообще задача состоит в том, чтобы в заданное время запускать обработку. Вопрос с временем я решил. Осталось только решить как обратиться к внешней обработке, поставить нужные галки и запустить ее
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Мне кажется нужно сделать обработчик нажатия на кнопку Выполнить экспортной, и потом уже к ней обращаться.
  5. TopicStarter Overlay
    KoD
    Offline

    KoD

    Регистрация:
    23 сен 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    хммм. Идея хорошая. Вопрос только как обратиться к самой обработке. В качестве тестовой сделал обработку и на форму поместил поле ввода. Если следовать моему коду, то обращение к обработке не идет.
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Вот примерчик:
    Код:
    Обработки.ВашаОбработка.ПолучитьФорму("ИмяВашейФормы").Открыть();
    
  7. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Кстати, конфу скажите. Это зависит от обращения к элементам.
  8. TopicStarter Overlay
    KoD
    Offline

    KoD

    Регистрация:
    23 сен 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Торговля 10.3.5.1.
    еее = Обработки.ВнешняяОбработка1.ПолучитьФорму("Форма").Открыть();

    Пишет - Обращение к процедуре объекта как к функции (Открыть)
    еее = Обработки.ВнешняяОбработка1.ПолучитьФорму("Форма").Открыть();
    ((((
  9. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    А обработку вы где храните? Просто файлом? Добавили в конфигурацию? В справочник "Внешние печатные формы и обработки"?
  10. TopicStarter Overlay
    KoD
    Offline

    KoD

    Регистрация:
    23 сен 2010
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    В качестве тестовой сделал внешнюю обработку и добавил ее в конфигурацию.
  11. Пеппи
    Offline

    Пеппи Опытный в 1С

    Регистрация:
    26 мар 2009
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26
    KoD а в качестве рабочей- где потом будет находиться ваша обработка?
  12. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Вот так вроде работает.
    Код:
    Обработки."ВашаОбработка".ПолучитьФорму("ВашаФорма").Открыть();
    Обработки."ВашаОбработка".ПолучитьФорму("ВашаФорма").ЭлементыФормы."ВашРеквизит" = "Значение";
    ...
    
    Shell = Новый COMОбъект("WScript.Shell");
    Shell.SendKeys("Комбинация клавиш на кнопке");
    Shell.SendKeys("{ESC}");
    Обработки."ВашаОбработка".ПолучитьФорму("ВашаФорма").Закрыть("ОК");
    
  13. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Желательно программный код. обрамлять тегом код.
    Пишет так, потому что вы обращаетесь к процедуре как к функции :)
    Правильнее будет сначала в какую-то переменную получить форму необходимой обработки, а потом уже работать с переменной:
    Код:
    резфрм = обработки.Обработка2.ПолучитьФорму();
    
    Относительно вопроса запуска процедуры, то можно, на форме создать какой-то флажок, который будет не видимый для пользователя, а включатся будет программным путем и при открытии формы, проверяете, если есть отметка, то запускаете все что надо.

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