8.х Через COM соединение вызвать обработчик события модуля формы

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

  1. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Возможно ли вызвать обработчик события "ПриИзменении", "ПриСозданииНаСервере", "При открытии" модуля форма (клиентские не экспортные процедуры) через COM соединение из внешней ИБ?
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    ЭЭЭ....если эти процедуры будут экспортными, то вероятно можно(так глубоко не копал, как-то не было необходимости)

    А в чем сложность, например, взять этот код этих процедур и использовать его при работе через COM?
    Euronymous нравится это.
  3. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Слишком много кода в обработчиках:) Буду скорее всего пробовать так
  4. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    А реально ли вообще вызывать не экспортные процедуры по ком соединению?
  5. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    Не экспортные процедуры локально-то нельзя вызвать из другого модуля, а уж через COM - и подавно :)
    Euronymous нравится это.
  6. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Обращаюсь
    Код:
    COMСоединение.НаименованиеОбщегоМодуля.НаименованиеЭкспортнойПроцедурыОбщегоМодуля(НовыйДокументCOMОбъект,, СтроковыйПараметр)
    Вылетает ошибка
    Код:
    {ВнешняяОбработка.УТ.МодульОбъекта(817)}: Ошибка при вызове метода контекста (ЗаполнитьПоЗначениямАвтозаполнения)
            COM.ОбщегоНазначенияУТ.ЗаполнитьПоЗначениямАвтозаполнения(НовыйДокумент,, "Склад, ХозяйственнаяОперация");
    по причине:
    Параметр не опциональный
    Что это за опциональность такая и как её убить?
  7. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    Чессказать, не знаю. Гугл чего-нить говорит по этому поводу? ИМХается мне, что надо эти самые параметры автозаполнения передавать как-то....второй параметр эт чего там?
    Euronymous нравится это.
  8. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    В базе первый параметр это ДокументОбъект, я передаю COMДокументОбъект, второй не обязательный, третий строка - и там и там одинаковая...
  9. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    Второй параметр определить все же нужно, либо просто НЕОПРЕДЕЛЕНО, либо УдаленнаяБД.НЕОПРЕДЕЛЕНО запихать в него.
    Euronymous нравится это.
  10. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    Идиотизм :confused: -Android- -Dead- Но это действительно сработало >_< Спасибо огроменное :)
    И вот документ создан, записан... Но! Как его провести? Обработка проведения не является экспортной, поэтому обратиться к ней напрямую нет возможности, значит ли это, что единственный способ провести данный документ - это перенести содержимое этой обработки проведения в базу, из который данный документ и создавался http://gyazo.com/3cd71601c43975f23e0d6b1e54cc5703 ???
  11. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    it's a COM, baby :)

    нет, все просто: COMДокумент.Записать(COMРежимЗаписиДокумента.Проведение) :)
    Euronymous нравится это.
  12. TopicStarter Overlay
    Euronymous
    Offline

    Euronymous Опытный в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    206
    Симпатии:
    0
    Баллы:
    26
    :)
    Код:
    {ВнешняяОбработка.УТ.МодульОбъекта(866)}: Ошибка при вызове метода контекста (NewObject)
            НовыйДокумент.Записать(COM.NewObject("РежимЗаписиДокумента", РежимЗаписиДокумента.Проведение), COM.NewObject("РежимПроведенияДокумента", РежимПроведенияДокумента.Оперативный));
    по причине:
    Неверное число параметров
    Код:
    {ВнешняяОбработка.УТ.МодульОбъекта(866)}: Ошибка при вызове метода контекста (Записать)
            НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
    по причине:
    Произошла исключительная ситуация (1C:Enterprise 8.3.5.1068): Несоответствие типов (параметр номер '1')
    Спасибо! Получилось с третьего или четвертого раза, не повторяйте моих ошибок, правильный вариант внизу))))

    Код:
    НовыйДокумент.Записать(COM.РежимЗаписиДокумента.Проведение, COM.РежимПроведенияДокумента.Неоперативный);

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