Вызов любой функции во внешнем отчете/обработке при открытии

Небольшой, но "Супер" полезный "приёмчик" для разработчиков 1с. Те, кто используют у себя в программе (1с77) некое "подобие" шедулера, меня поймут.

Смысл в том, чтобы можно было используя одну обработку, вызывать в ней на выполнение любую процедуру или функцию (поддерживается передача сколь угодно много параметров).

Например:

СписПарам = СоздатьОбъект(«СписокЗначений»);
СписПарам.Установить(«OUT_Balance2»);
СписПарам.Установить(Agent,СпрТП.ТекущийЭлемент());
СписПарам.Установить(Client,СпрКонтр.ТекущийЭлемент());
// . . . .
ОткрытьформуМодально(«Отчет», СписПарам, КаталогИБ()+»ExtFormsOnOpen.ert»);

P.S. модуль универсален!Wink

10 Comments

  1. Ёпрст

    Ну и нафига всё это ?

    Про Шаблон — это боян чистой воды, и еще — процедуру в нём не выполнишь, так что, поправь описалово.

    Reply
  2. vbuots

    Боян? Может быть. На инфостарте не видел ничего подобного. Смысл выполнять проц. не вижу! Функция — универсальнее. Нафига это? может подать идею, может для неопытных спец. Решать не мне, см рис. как я это применяю!

    Reply
  3. Vortigaunt

    А я бы сделал немного по другому. На форму бросается, допустим, реквизит типа число. И текст с формулой вида «УстДоступность()». В модуле формы описыается функция УстДоступность(), которая в зависимости от значения числового реквизита выполняет какое-то действие (при значении 0 — ничего не делается). При после открытия формы обработки методом ОткрытьФорму(«Обработка.НашаОбработка»,КонтФормы); Через контекст (КонтФормы.НашЧисловойРеквизит = НужноеЧисло) устанавливается значение числового реквизита. А затем выполняется метод «КонтФормы.Форма.Обновить(0)». При обновлении формы срабатывает Функция «УстДоступность()» и отрабатывает нужный сценарий.

    Я таким образом вызывал процедуры модуля формы документа, которые нужны при заполнении табличной части. Правда больше 1 строки таким способом не заполнишь.

    Reply
  4. yuraos
    Reply
  5. yuraos
    Ёпрст пишет:

    Ну и нафига всё это ?

    Про Шаблон — это боян чистой воды, и еще — процедуру в нём не выполнишь, так что, поправь описалово.

    Поддерживаю, но не во всем:

    Неплохо бы для порядка описать зверюг, окружающих ШАБЛОН(tFunction):

    LocalConnect();

    ….

    LocalDisconnect();

    ;))))))))))))))))

    Reply
  6. Ёпрст

    Ну, ознакомься с баяном, что ли :

    http://my1c-archive.narod.ru/knowhow/shablon.html

    а так, выкини из описалова, что можно выполнять процедуру.

    В шаблоне работают только функции!

    Reply
  7. vbuots

    (6) а так, выкини из описалова, что можно выполнять процедуру.

    В шаблоне работают только функции!

    Выкинул

    Reply
  8. vbuots

    (5) yuraos,

    LocalConnect();

    ….

    LocalDisconnect();

    Ах — да это не относится к обработке 🙂

    Reply
  9. dicwork

    Чесно говоря не могу придумать для чего это можна приспособить в ежедневной работе программиста 1С.

    Reply
  10. yuraos

    (9) dicwork,

    это больше для извращенцев …

    … таких как я ;)))))

    Ну позарез нужно бывает иногда

    в обобщенных алгоритмах

    разные методы в контексте вызвать

    (в зависимости от погоды в конторе) !!!

    ЗЫ

    Скромность — не порок, но средство для сокрытия оных.
    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *