Добрый день.
Помогите обойти эту ошибку. "Нельзя изменять поле, содержащее объект данных формы".
Пытаюсь тут изменить значение реквизита документа на новый, который я получил в запросе. Тип реквизита "строка".

```1c
    //....
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
    Объект.НомерВходящегоДокумента = ВыборкаДетальныеЗаписи.НовыйНомерСчетФактуры;
    //.....
```

В данном случае объектом выступает "СчетФактураПолученный"
---
Нельзя использовать слово "Объект" для именования переменных. Вот и все.
---
Нельзя использовать слово "Объект" для именования переменных. Вот и все.
---
Ты был прав. Я час все меня и переписывал, гуглил, даже переменные использовал, присваивал, Но этот "Объект" не трогал...ОМГ.
---
Потому что у тебя модуль формы объекта. Соответственно там есть основной и неизменяемый реквизит с именем "Объект"... И ты пытаешься в него что-то левое засунуть... Я бы тоже обиделся на его месте.
---
да, я тебя понял. Вспоминаю, что уже не первый раз такое у меня. Помню в названии процедуры использовал какое-то слово, которое также используется в 1с как какой-то идентификатор и 5 минут голову ломал, над тем что 1С не нравится.
В данном случае, я про это не подумал, так как брал часть кода из другой обработки и там как раз было название переменной "Объект" и обработка работает. Вот это меня и подкосило. Спасибо тебе за оперативный ответ.
---
от таких проблем помогают безконтекстные процедуры (функции)

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

вот как раз такой подход очень часто помогает избежать подобных ошибок.
---
Плохой подход.
Надо использовать не префиксы, а нормальные наименования

Префиксы просто бесят, потому что не несут в себе никакой информативной нагрузки!
---
очень даже несут в себе полезную информацию
например
лк - локальная переменная
гл - глобальная
м - массив
пр - параметр
и т.д.
---
Это еще в клюшках надоело - предлагать префиксы по типу значения.
---
Возможно, кому-то будет полезно, хоть и спустя время.
Словил данную ошибку при попытке использовать "ЗаполнитьЗначенияСвойств", где приемником был связанный объект создаваемой формы, а источником - ссылка, из которой создавал док.

Ошибка сохранялась ровно до момента точного перечисления заполняемых реквизитов шапки.

Было: ЗаполнитьЗначенияСвойств(ДанныеФормы, сОснование);
Стало: ЗаполнитьЗначенияСвойств(ДанныеФормы, сОснование, "Комментарий, Склад");

Указание исключаемых свойств не спасало.

Удачи)

P.S. табличных частей не было, потому и решил добавить комментарий...