fixin (fixin) wrote,
fixin
fixin

1С и искусственные серверные барьеры

Заметил, что в управляемых формах 1С принуждает программистов к плохой архитектуре решений.

Вкратце упомяну, что теперь большинство внешних обработок нельзя прервать по CTRL+Break, т.к. они выполняются на сервере, но сейчас речь не об этом.

Проблема более глобальная.

Если раньше программисты выносили код в общие модули, то теперь в управляемых формах нельзя вызвать код общего серверного модуля с клиента, передав туда форму.

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

На одном из проектов у нас была цель – минимальное вмешательство в типовые формы, поэтому лепить дополнительные процедуры было нельзя. Максимум – некий набор стандартизированных процедур, который легко бы вставлялся парсером.

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


Процедура:
&НаСервере
Функция ОбработатьНаСервере(ИмяМетода, Параметры = Неопределено) Экспорт
 Выполнить
ИмяМетода + "(ЭтаФорма, Параметры)";
 Возврат
Параметры;
КонецФункции

Пример вызова:


 Форма.ОбработатьНаСервере("СерверныйМодуль.ВидЗаявкиПриИзмененииНаСервере", Неопределено);

Правда, элементы формы туда по-прежнему передать нельзя, но зато можно передать форму, а это уже полдела. Можно и названия элементов передавать. Намного удобнее, чем сериализовать вручную.

Ну и еще добавил парочку процедур, чтобы можно было обращаться к не экспортным методам формы, а то процедуры в форме могут обращаться, а процедуры из общих модулей уже нет – несправедливо:


&НаКлиенте
Функция ВыполнитьКодНаКлиенте(Код, Параметры = Неопределено) Экспорт
 Выполнить
Код;
 Возврат
Параметры;
КонецФункции

&НаСервере
Функция ВыполнитьКодНаСервере(Код, Параметры = Неопределено) Экспорт
 Выполнить
Код;
 Возврат
Параметры;
КонецФункции


 

Tags:
Subscribe

Posts from This Journal “1С” Tag

  • Торговля, Бухгалтерия и Зарплата в 1С

    Бытие влияет на сознание, как говаривал Ленин! Когда изучал Navision, то при всей её архаичности, эта система имела общую конфигурацию, из которой…

  • Незамутненный 1сник.

    На инфостарте столкнулся с забавным "критиком", которому не понравилась одна моя статья. Почитайте нашу перепиську, это забавно:…

  • Visual Basic + 1С всё?

    Вот и верь после этого Одину Эссу!? Как-то, еще на работе в Максимусе, мне понадобилось написать внешнюю компоненту для управления сканером…

  • Вы всё еще кастрируете?

    Для отладки бизнес-процессов согласования договоров прежде, чем дело дойдет до утверждения, нужно пройти длинную цепочку согласований. Чтобы не…

  • Коварный ввод на основании в УФ

    На основании документа Х можно вводить два документа А и Б. Но конкретный вид документа зависит от содержимого документа Х (вида операции). Решили…

  • Правило назначения ролей – не запрещать!

    Есть одно правило назначения ролей пользователей, которое выработано эмпирически и скорее обосновано чутьём. Нельзя делать запреты пользователям с…

  • Гуру-тест 1С: обмануть при записи

    Итак, задачка. Нужно, чтобы при записи новая версия объекта не поместилась в базу данных, но при этом не была сгенерирована ошибка или отказ. Случай…

  • Долгострои 1С

    Если вы хотите узнать, почему программисты 1С любят платформу 1С и местами ненавидят разработчиков этой платформы, то сейчас я Вам расскажу. Уже 10…

  • Ловкость рук и обработка результата запроса

    Как то я пообещал заказчику, что обработаю определенный список документов, но забыл, что эти документы были в базе с управляемыми формами. Как быть?…

promo fixin december 28, 2020 16:57 1408
Buy for 30 tokens
Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект " Секс за Ваши". Если вы хотите написать пост обо мне или почитать, что пишут…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 19 comments