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