Я своих молодых сотрудников приучаю сразу создавать объекты, максимально адаптированные к клиент-серверному варианту работы. К тому же это помогает при разборе функционала.
Приведу простой пример. Поставлена задача написать обработку (назовем ее "ОстаткиТоваров"), которая выведет в таблицу значений остатки товаров на складах на указанную дату.
Что делает начинающий?
Рисует форму, располагает на ней поле ввода с типом "Дата", таблицу значений и кнопку "Сформировать".
Что в результате имеем?
В обработчике КнопкаСформироватьНажатие() сначала у элемента формы "ДатаНачала" получаем значение, чуть ниже описываем текст запроса, передаем в него параметр, выполняем запрос и выгружаем его результат в таблицу значений. Вреде бы все работает, без проблем.
Но! Допустим, что для какой-то другой задачи (назовем ее "СуперЗадача") тоже необходимо получать остатки по товарам на складах. Можно, конечно, скопировать основной функционал обработки "ОстаткиТоваров" и вставить его в "СуперЗадачу", подкорректировав, где это необходимо. Но можно ведь и просто использовать "ОстаткиТоваров"!
Для этого у обработки "ОстаткиТоваров" достаточно создать реквизит "ДатаОстатков", который связать с элементом формы, а функцию формирования таблицы значений вынести в модуль объекта, сделав экспортной.
Что это дает?
1. Наглядная структура объекта. По реквизитам обработки сразу видны ключевые параметры. В модуле формы описаны интерфейсные функции и обработчики событий, а в модуле объекта - собственно сам функционал.
2. Доступ к необходимым параметрам из модуля формы и модуля объекта напрямую, без использования конструкции ЭлементыФормы.МойРеквизит.Значение и/или глобальных переменных объекта.
3. Доступ к функционалу объекта без необходимости получения его формы.
4. При запуске в клиент-серверном варианте в 90 случаях из 100 обработка будет корректно работать (про передачу мутабельных значений между сервером и клиентом расписывать не буду, это отдельная тема).
Почему я это все написал? Потому что, когда я открываю чью-то разработку, мне первым делом интересен метод решения задачи, который (несомненно) описан в модуле объекта. Ан нет... Модуль объекта девственно чист, приходится лазить по модулю формы и вычленять функционал из кучи процедур типа "ДатаПриИзменении".
Так что, в принципе, можно считать это криком души :)