(7) Если надо именно код можно так:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ПроверяемыеРеквизиты.Найти(<ИмяРевизита>) = Неопределено Тогда
ПроверяемыеРеквизиты.Добавить(<ИмяРевизита>);
КонецЕсли;
КонецПроцедуры
(16)
Процедура ПередЗаписью(Отказ, Замещение)
НужноеЗначениеРеквизита = "НужноеЗначение";
Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл
ЕстьЗначениеРеквизита = ЗначениеЗаполнено(ТекущаяЗапись.Реквизит );
Если НЕ ЕстьЗначениеРеквизита Тогда
ТекущаяЗапись.Реквизит = НужноеЗначениеРеквизита;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Вот что у меня получилось
(12) См. выше
(13) Не в этот раз
(14) сам именно там сделал мне было непонятно как проверить. А где писать и что писать я в курсе был тогда.
(15) см.выше
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший