Нельзя изменять поле, содержащее объект данных формы

1. Dmitry888 41 10.12.20 17:43 Сейчас в теме
Добрый день.
Помогите обойти эту ошибку. "Нельзя изменять поле, содержащее объект данных формы".
Пытаюсь тут изменить значение реквизита документа на новый, который я получил в запросе. Тип реквизита "строка".
//....
РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
	    Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
		Объект.НомерВходящегоДокумента = ВыборкаДетальныеЗаписи.НовыйНомерСчетФактуры;
//.....
Показать

В данном случае объектом выступает "СчетФактураПолученный"
По теме из базы знаний
Найденные решения
2. FatPanzer 10.12.20 17:47 Сейчас в теме
Нельзя использовать слово "Объект" для именования переменных. Вот и все.
ЛИК1111; MaQo; mihuilka; Andy_NTG; Fatenm; so-lf; RomanKod; jobkostya1c_ERP; 777use777; One_Assembler; pahad; PLAstic; Vlamity; Calvin; +14 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 10.12.20 17:47 Сейчас в теме
Нельзя использовать слово "Объект" для именования переменных. Вот и все.
ЛИК1111; MaQo; mihuilka; Andy_NTG; Fatenm; so-lf; RomanKod; jobkostya1c_ERP; 777use777; One_Assembler; pahad; PLAstic; Vlamity; Calvin; +14 Ответить
3. Dmitry888 41 10.12.20 17:54 Сейчас в теме
(2)Ты был прав. Я час все меня и переписывал, гуглил, даже переменные использовал, присваивал, Но этот "Объект" не трогал...ОМГ.
4. FatPanzer 10.12.20 17:55 Сейчас в теме
(3) Потому что у тебя модуль формы объекта. Соответственно там есть основной и неизменяемый реквизит с именем "Объект"... И ты пытаешься в него что-то левое засунуть... Я бы тоже обиделся на его месте.
user1072381; +1 Ответить
5. Dmitry888 41 10.12.20 18:04 Сейчас в теме
(4)да, я тебя понял. Вспоминаю, что уже не первый раз такое у меня. Помню в названии процедуры использовал какое-то слово, которое также используется в 1с как какой-то идентификатор и 5 минут голову ломал, над тем что 1С не нравится.
В данном случае, я про это не подумал, так как брал часть кода из другой обработки и там как раз было название переменной "Объект" и обработка работает. Вот это меня и подкосило. Спасибо тебе за оперативный ответ.
6. -AI- 10.12.20 22:52 Сейчас в теме
(5) от таких проблем помогают безконтекстные процедуры (функции)

в последнее время стараюсь ими почаще пользоваться, что защитит от ошибок если вдруг, через много-много времени, придёт в голову сделать одноимённый реквизит на форме.
7. Umka23 12 03.11.21 19:09 Сейчас в теме
От таких проблем избавляет качественное написание информации об ошибках, а не обрубки умных фраз. В 1С сообщения об ошибках это просто...микрософт какой то.
user901979; TryToRun; _Vovik; isn; RustIG; +5 Ответить
10. gybson 29.05.22 16:53 Сейчас в теме
(7)Конкретно по этой ошибке сообщение исчерпывающее. Что тут еще добавить надо? Что-то типа : "Чувак, ты прошел слишком дешевые и короткие курсы"?
11. krlexa 14.11.22 15:52 Сейчас в теме
(10)
А если я и хотел изменить что-то в Объекте, то почему нельзя?
16. user1214212 12.12.22 10:30 Сейчас в теме
(11)Никаких проблем, есть конечно один момент)) в параметрах функции в которую вы передаете реквизит Объект(тип данные формы структура), нужно перед параметром добавить "Знач": Процедура ЗаполнитьОбъект(Знач ДокОбъект)
nat_stav; Gaudamus; +2 Ответить
8. lev6975 27.05.22 20:27 Сейчас в теме
Еще вариант когда заполняешь два объекта, содержащие табличные части через ЗаполнитьЗначенияСвойств(Объект1, Объект2) такая ошибка вылезла у меня. Причем, 1С - ники в типовой косякнули так...
Нужно писать: ЗаполнитьЗначенияСвойств(Объект1, Объект2,,"ТЧ1,ТЧ2..."); то есть, исключать табличные части из заполнения, а заполнять их отдельно
9. Dmitry888 41 29.05.22 02:30 Сейчас в теме
12. soft_wind 14.11.22 16:10 Сейчас в теме
(5)
Вспоминаю, что уже не первый раз такое у меня.

во многих примерах кода, многие программисты используют префиксы, позволяющие гарантированно избежать пересечения с со стандартными/служебными реквизитами.
например
лкОбъект
лкСтр
лкРезультат
лкОтбор

вот как раз такой подход очень часто помогает избежать подобных ошибок.
13. user1831019 14.11.22 16:59 Сейчас в теме
(12) Плохой подход.
Надо использовать не префиксы, а нормальные наименования

Префиксы просто бесят, потому что не несут в себе никакой информативной нагрузки!
14. soft_wind 14.11.22 17:08 Сейчас в теме
(13) очень даже несут в себе полезную информацию
например
лк - локальная переменная
гл - глобальная
м - массив
пр - параметр
и т.д.
15. user1831019 14.11.22 17:10 Сейчас в теме
(14) Это еще в клюшках надоело - предлагать префиксы по типу значения.
17. romandredan 20.01.24 19:05 Сейчас в теме
Возможно, кому-то будет полезно, хоть и спустя время.
Словил данную ошибку при попытке использовать "ЗаполнитьЗначенияСвойств", где приемником был связанный объект создаваемой формы, а источником - ссылка, из которой создавал док.

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

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

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

Удачи)

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот