fixin (fixin) wrote,
fixin
fixin

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

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

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

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

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

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

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

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


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

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


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

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

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


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

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


 

Tags:
Subscribe

Posts from This Journal “1С” Tag

  • Особенности белорусского Налогоплательщика

    Взял подработку у одного знакомого чувака из Беларуси. Платил мало (я то беру 1500 в час, а там по 800), но знакомый хороший, грех было отказывать,…

  • 1С отрицает очевидное

    Работаю с флагманом 1С, конфигурацией ERP. Вижу, что 1С прошило всю конфигурацию обращениями к модулям, где разработчик, внедряющий 1С может…

  • Как обмануть макет 1с?

    В 1С можно менять макеты в режиме 1с Предприятия. Но 1с-овцы не подумали, что пользователи не захотят видеть некоторые поля. Если просто удалить…

  • Корректировка регистра на 80 документов

    Мне прислали список из 80 документов, суммы которых нужно было внести в УПП в документ корректировки записей регистров для того, чтобы закрыть…

  • Ручной способ получить список реквизитов справочников

    Была поставлена задача расписать реквизиты справочника договоров и контрагентов в двух базах, написать соответствия между ними. Для начала нужно…

  • Открытие файла с нужным именем

    Небольшой гуру-тест. При сохранении файла в базу 1С сохраняется его первоначальное имя, например «Договор ННН.PDF». Задача – при открытии файла из…

  • Перемещение по строкам документа

    Перемещение на предыдущую-следующую строку в 1С УФ. Казалось бы, реализация таких простых кнопок, как переход к предыщей/следующей строке в списке…

  • Гипер-рефакторинг силами Гения 1С

    У клиента, к которому я пришел делать доработки по бизнес-процессам на УПП, вскрылось, что архитектура изуродована множественными копипастами, на…

  • Хитрый двухуровневый кэш

    Как вам такой хитрый двухуровневый кэш? Первый уровень – ДатаПотребности, второй – Номенклатура, на третьем – массив Заказов. Искать можно без учета…

promo kibernetika 20:58, вчера 5
Buy for 40 tokens
Одно время мой закадычный друг в Йемене, Саша Воронин, жил в Сане в типичном йеменском доме, который хозяин через министерство обороны сдавал советским специалистам. Сам хозяин вместе с семьей оставался в этом же доме в полуподвальном помещении. Семья была очень большая, где-то около 12 человек.…
  • 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