Небольшой faq:
http://its.1c.ru/db/v837doc#bookmark:dev:TI000000535
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(«Справочник.Магазин»);
ЭлементБлокировки.УстановитьЗначение(«Код», 100);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(«РегистрНакопления.ТоварыНаСкладах»);
ЭлементБлокировки.УстановитьЗначение(«Качество», Справочники.Качество.НайтиПоКоду(«1»));
http://its.1c.ru/db/pubdevguide83#content:298:hdoc
http://v8.1c.ru/overview/Term_000000642.htm
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=605679
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=606570
Прежде всего непонятна сама задача. Для того, чтобы изменить вид номенклатуры у справочника не нужно его блокировать. Тем более не нужно его блокировать для редактирования. Если вас интересует вопрос блокировок, нужно рассматривать реальный конкретный пример.
Если стоит задача «вообще» заблокировать элементы справочника для редактирования, то нужно использовать механизм пессимистических объектных блокировок. Это похоже на ваш вариант №3, но раз вы работаете с 8.2.15.301, то нужно использовать не метод объекта Заблокировать(), а метод глобального контекста ЗаблокироватьДанныеДляРедактирования().