Ошибка «Поле объекта недоступно для записи (ЦенаБезНДС)» возникает, потому что выборка из справочника — это объект только для чтения, и напрямую менять её реквизиты нельзя. Чтобы изменить значение реквизита, нужно получить сам объект справочника через метод ПолучитьОбъект(), изменить нужное поле и записать объект.
В вашем случае правильный подход такой:
1. Получить объект справочника по ссылке из выборки.
2. Изменить реквизит объекта.
3. Записать объект.
Пример кода:
// Использовать метод НайтиПоКоду или НайтиПоРеквизиту вместо НайтиПоНаименованию
Выборка = Справочники.УслугиТранспорта.Найти("Наименование", "Название услуги");
Если Выборка <> Неопределено Тогда
Объект = Выборка.ПолучитьОбъект();
Объект.ЦенаБезНДС = 0;
Объект.Записать();
КонецЕсли;
Если у вас есть уже выборка, например:
Для Каждого Строка Из Справочники.УслугиТранспорта.Выбрать() Цикл
Объект = Строка.ПолучитьОбъект();
Объект.ЦенаБезНДС = 0;
Объект.Записать();
КонецЦикла;
Обратите внимание, что метод ПолучитьОбъект() возвращает объект для записи, а выборка — только для чтения.
Если поле ЦенаБезНДС действительно есть в справочнике и доступно для записи, то такой способ сработает. Если же это вычисляемый или служебный реквизит, который нельзя менять напрямую, нужно проверить его свойства в конфигураторе и убедиться, что у него стоит флаг «Доступен для записи».
Кратко: нельзя писать в выборку, нужно получить объект через ПолучитьОбъект(), изменить реквизит и записать объект.