Поле объекта недоступно для записи вид движения

Для более глубокого изучения 1С скачайте книгу «Разработка оперативного учёта в 1С 8.3»

При работе с 1С довольно часто может появляться сообщение об ошибке «Поле объекта недоступно для записи». Рассмотрим, какие действия могут привести к ней, и как её можно устранить.

Причины возникновения ошибки

К появлению системного окна с этой ошибкой может привести 6 факторов:

  1. Попытка изменения значений в полях, смена которых бессмысленна;
  2. Ошибка в коде;
  3. Попытка изменения системных полей;
  4. Недостаточно прав на изменение;
  5. Устаревшая конфигурация 1С;
  6. В управляемой форме используется элемент и реквизит с одним именем.

1. Попытка изменения значений в полях, смена которых бессмысленна

Например, в программе происходит попытка замены ссылки, а не объекта. Но сделать этого невозможно. Если изменить ссылку, то, во-первых, она будет ссылаться на несуществующий объект (в никуда), во-вторых, нужный объект по ней вы больше не найдёте.

Пример неправильного фрагмента кода:

Иванов = Справочники.ФизическиеЛица.НайтиПоНаименованию(«Иванов Петр»);

Иванов.НомерПаспорта = «2175353»;

И при вводе последней строчки появляется ошибка «Поле объекта недоступно для записи».

Причина в том, что происходит попытка редактирования свойств или реквизитов ссылки. В указанном примере параметру «НомерПаспорта» вы пытаетесь задать определённое значение. Но эти данные можно менять только у объекта. В данном примере «Иванов» — это именно ссылка, которая предназначена для чтения. По ней человек идентифицируется в базе данных. Во второй строчке указана «точка» — «Иванов.НомерПаспорта». Но это также не объект, потому что при обращении к «точке» выполняется все тот же запрос к базе данных. Сделано это для удобства использования 1С.

Как исправить ошибку? Чтобы сообщение «Поле объекта недоступно для записи» больше не появлялось, нужно прописать следующее:

ИвановСсылка = Справочники.ФизическиеЛица.НайтиПоНаименованию(«Иванов Петр»);

ИвановОбъект = ИвановСсылка.ПолучитьОбъект();

ИвановОбъект.НомерПаспорта = «2175353»;

ИвановОбъект.Записать();

Теперь по ссылке выполняется обращение к объекту, а затем уже он редактируется. После этого объект записывается, то есть фиксируется его новое состояние.

2. Ошибка в коде

Возможно причина в том, что программист, который работал с текущей конфигурацией 1С, допустил ошибку при доработке. Тогда исправить её сможет также только специалист. Желательно, чтобы это был именно тот человек, который изначально настраивал 1С.

3. Попытка изменения системных полей

Пользователь пытается редактировать те данные, на замену которых он не имеет прав. Например, номер строки в таблице, установка «ТекущаяСтрока» вместо «ТекущиеДанные» и т. д. Иногда ошибка возникает из-за простой невнимательности. Если обращаться к правильным полям – ошибка появляться не будет.

4. Недостаточно прав на изменение

Иногда поле, которое пытается изменить пользователь, доступно только для чтения. Это связано с правами на объекты конкретного пользователя. Чтобы устранить возникающую ошибку, необходимо проанализировать права на конкретный объект и либо разрешить пользователю доступ к соответствующему полю (на запись), либо вообще исключить поле (или целый объект) из рассмотрения.

5. Устаревшая конфигурация 1С

Иногда ошибка «Поле объекта недоступно для записи» появляется при обновлении 1С. Чтобы убрать её, нужно обновиться до самой свежей версии платформы.

Устранить ошибку обычно не сложно и сделать это может сам пользователь. Если же серьёзно нарушена конфигурация 1С, исправить положение сможет только специалист.

6. В управляемой форме используется элемент и реквизит с одним именем

Достаточно редко ошибка «Поле объекта недоступно для записи» появляется при совпадении имён реквизита и элемента управляемой формы. Чтобы устранить ошибку, необходимо явно прописать обращение к реквизиту или элементу формы.

К примеру, в форме 1С имеется реквизит с именем «Сумма». С таким же именем на форме находится элемент «Сумма».

1 2 3 4 5 6 //Возможна ошибка присвоения Сумма = 1; // Правильно так Элементы.Сумма = 1; //Происходит присвоение значения элементу формы ЭтаФорма.Сумма = 1; //Происходит присвоение значения реквизиту формы

Иногда случается, что после обновления 1С пишет «Поле объекта не обнаружено», с указанием на тот или иной объект. Это может случиться при входе в программу, при заполнении какой-либо формы и т.п.

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

Рис.1 «Поле объекта не обнаружено»

Модуль, к которому идет обращение, перестает работать, но работу программа может не прерывать. Когда ошибка находится в модуле приложения или обработки, то при его запуске программа может и не запуститься.

Обновление платформы

При этом важно посмотреть на описание поставки, которое открывается при установке обновления. Там обязательно указывают рекомендации по использованию версии платформы.

Рис.2 Рекомендации по обновлению платформы

Таким образом, первый и основной вариант решения проблемы – это обновление платформы «1С:Предприятие».

Чтобы посмотреть, какая платформа у нас установлена, необходимо зайти в пункт меню «Сервис» — «О программе», где в верхней строке мы видим версию нашей платформы и сравниваем с рекомендуемой, при установке обновления конфигурации.

Рис.3 Обновление платформы

Очистка настроек пользователя

Ошибка может возникнуть даже при обновленной платформе программы, например, после обновления конфигурации, при нажатии кнопки «Подбор» в документе реализация, стало появляться сообщение «Поле объекта не обнаружено (Валюта)». В чем здесь может быть причина, ведь платформа обновлена? Какие-то параметры программы могут быть зафиксированы в настройках у пользователя, и для устранения ошибки достаточно очистить его настройки. В «1С:Бухгалтерия 3.0» этот пункт находится в «Администрирование» — «Настройки программы» — «Настройки пользователя и прав».

Рис.4 Настройки пользователя и прав

В подразделе «Персональные настройки пользователя» переходим по гиперссылке «Очистка настроек», где мы можем выбрать – очистить настройки у всех пользователей или только у выбранного. Также мы можем выбрать – очистить все настройки или какие-то отдельные виды настроек.

Рис.5 Гиперссылка «Очистка настроек»

При этом пункт «Отдельные виды настроек» доступен только при очистке настроек конкретного пользователя.

Рис.6 При этом пункт «Отдельные виды настроек» доступен только при очистке настроек конкретного пользователя

Перед нами откроются настройки пользователя, в которых как раз он и мог использовать устаревшие объекты, на которые и ссылается ошибка программы. Мы можем выбрать конкретную настройку (по подсказке ошибки) или очистить все настройки.

Рис.7 Настройки пользователя

Тестирование и исправление информационной базы

В том случае, если возникновение ошибки не связано с платформой и настройками пользователя, то возможно произошел просто сбой в информационной базе, который повредил указанный объект. В таком случае рекомендуется провести «Тестирование и исправление информационной базы», в режиме Конфигуратор, в пункте меню «Администрирование». Обратите внимание, что работа в конфигураторе требует определенных знаний, поэтому, если вы не уверены в своих силах, обращайтесь за консультацией по программе 1С к специалистам.

Рис.8 Тестирование и исправление информационной базы

В тестировании и исправлении необходимо проверить логическую и ссылочную целостность базы. Если произошло необнаружение объекта, мы можем задать настройки программе проверки, что делать с такими объектами – создавать объекты, очищать ссылки или не изменять.

Рис.9 Проверка информационной базы

При выборе варианта «Создавать объекты», программа при обнаружении несуществующей ссылки на объект формирует элемент, своего рода заглушку. При выборе варианта – «Очищать ссылки» или «Удалять объект», некорректные ссылки будут просто удалены. Если оставить переключатель в положении – «Не изменять», программа просто укажет нам на этот объект, не предпринимая никаких действий. Этот вариант нам явно не поможет.

Таким образом, любой ошибке в программе 1С есть логическое объяснение. Если у вас остались вопросы, связанные с исправлением ошибок, и вы нуждаетесь в консультации по программе 1С, звоните, а также оставляйте заявки на нашем сайте. Наши специалисты свяжутся с вами в кратчайшие сроки.

При первых начинания неопытных разработчиков 1С 8.3 достаточно часто возникает такая проблема: Поле объекта недоступно для записи 1С. Необходимо разобраться, почему же может возникать подобная проблемы и что следует делать, чтобы она больше не беспокоила пользователя. В случае если вы НЕ программист 1С, а обычный пользователь. Если программирование для вас всего лишь обычное слово и к нему вы не имеете никакого отношения, то лучше ничего не трогать, так как вы можете ещё больше усугубить ситуацию.

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

Автор Тема: Поле объекта недоступно для записи (Номер строки) (Прочитано 18133 раз). 0 Пользователей и 1. Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(Структура.контрагент); ДокРасчетов. Можно использовать какую-то функцию 1С, чтобы номер заполнялся? МодульОбъекта(166)}: Поле объекта недоступно для записи (Формы) Формы = ЭтотОбъект.Метаданные().Формы; ТУТ: Код: // ЭКСПОРТИРУЕМЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ Процедура вЗагрузитьОбработки(ДоступныеОбработки, ВыбранныеОбработки) Экспорт Формы = ЭтотОбъект. Поместил кнопку в форме списка справочника, написал код: Процедура ДействияФормыНомера(Кнопка) Выборка = Справочники.СписокУпражнений.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Родитель.Наименование = » Тогда Если Выборка.ГруппаМышц.

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

Для подробного разъяснения, необходимо рассмотреть следующие ситуации: Следует менять объект, а не ссылку! Самым распространенным объяснением появления данной ошибки следует считать изменение свойств ссылки, а не объекта. Как правило, это выглядит так: Сидоров = Справочник.ФизЛицо.ПоискПоНаименованию(«Сидоров Федор»); Сидоров.НомерУдостоверенияЛичности = «6574928»; В таком случае и возникает проблема «Поле объекта недоступно для записи 1С». Нужно запомнить, что возможность менять реквизиты или какие-либо свойства характерна только объекту. В приведенном примере переменная «Сидоров» включает в себя идентификатор для поддержки уникальности в базе, то есть ссылку. Верный вариант: СидоровСсылка = Справочник.ФизЛицо.ПоискПоНаименованию («Сидоров Федор»); СидоровОбъект = СидоровСсылка.ПолучитьОбъект(); СидоровОбъект.

Вот еще: вот решил попробовать замену значений в справочнике в табличной части, надо отобрать и просто удалить значение (заменить на пустое) и вот после отбора: «»{Форма.ПодборИОбработка.Форма(991)}: Ошибка при вызове метода контекста (Вывести): Ошибка вывода результата: Ошибка при выводе результата: Ошибка получения данных: Ошибка создания набора данных «»НаборДанныхЗапроса»»: Ошибка при исполнении запроса набора данных: {(223, 31)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. ТаблицаСсылок.Ссылка.Рационы >= &П»».

Похожие темы Тема Автор Форум Ответов Посл. Сообщение Важная: Обработка (управляемое и обычное приложение, обмен данными УТ 10.3/10.2 — БП 3.0) Предназначена для переноса документов и справочников из базы УТ 10.3/УТ 10.2 в базу БП 3.0 без использования планов обмена.:arrow: Поддерживаемые релизы (для платформ 1С Предприятия 8.1, 8.2, 8.3): Управление торговлей: 79 Сб 09 Сен, 2017 00:22 Обработка (управляемое приложение) Позволяет упростить процесс отладки и тестирования внешних обработок заполнения, в том числе табличных частей, или создания связанных объектов (ввода на основании) для конфигураций 1С: Предприятия 8.2/8.3, разработанных 39 Вт 18 Апр, 2017 19:43 Обработка (управляемое и обычное приложение) Предназначена для просмотра/изменения ролей (прав доступа) пользователей информационной базы как в режиме управляемого, так и обычного приложения без привязки к конкретной конфигурации. Для группового изменения ролей 8 Чт 02 Фев, 2017 19:45 Обработка (управляемое и обычное приложение), обмен данными Назначение: универсальная обработка для регистрации, отмены регистрации изменений (управления регистрацией) в планах обменов, мониторинга состояния обмена данными как в режиме управляемого, так и обычного приложения без 28 Пт 18 Авг, 2017 01:06 Универсальный механизм контроля заполнения реквизитов объектов в режиме предприятия (обычное приложе Универсальный механизм контроля заполнения реквизитов (контроль незаполненных реквизитов) шапки и табличных частей объектов конфигурации (справочников, документов, бизнес-процессов, задач, планов обмена, планов видов 15 Чт 09 Июл, 2015 15:29.

Поместил кнопку в форме списка справочника, написал код: Процедура ДействияФормыНомера(Кнопка) Выборка = Справочники.СписокУпражнений.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Родитель.Наименование = «» Тогда Если Выборка.ГруппаМышц. 14 окт 10, 17:20 Ответить| Цитировать Сообщить модератору. Re: Поле объекта недоступно для записи. 1c8.2 Справочник Сотрудники Модуль формы элемента. Процедура ПриОткрытии() Если не ЭтоНовый() Тогда.

При работе с 1С довольно часто может появляться сообщение об ошибке » Поле объекта недоступно для записи». Рассмотрим, какие действия могут привести к ней, и как её можно устранить. Причины возникновения ошибки К появлению системного окна с этой ошибкой может привести 6 факторов: Попытка изменения значений в полях, смена которых бессмысленна; Ошибка в коде; Попытка изменения системных полей; Недостаточно прав на изменение; Устаревшая конфигурация 1С; В управляемой форме используется элемент и реквизит с одним именем.

Попытка изменения значений в полях, смена которых бессмысленна Например, в программе происходит попытка замены ссылки, а не объекта. Но сделать этого невозможно. Если изменить ссылку, то, во-первых, она будет ссылаться на несуществующий объект (в никуда), во-вторых, нужный объект по ней вы больше не найдёте. Пример неправильного фрагмента кода: Иванов = Справочники.ФизическиеЛица.НайтиПоНаименованию(«Иванов Петр»); Иванов.НомерПаспорта = «2175353»; И при вводе последней строчки появляется ошибка «Поле объекта недоступно для записи». Причина в том, что происходит попытка редактирования свойств или реквизитов ссылки. В указанном примере параметру «НомерПаспорта» вы пытаетесь задать определённое значение. Но эти данные можно менять только у объекта.

В данном примере «Иванов» — это именно ссылка, которая предназначена для чтения. По ней человек идентифицируется в базе данных. Во второй строчке указана «точка» — «Иванов.НомерПаспорта». Но это также не объект, потому что при обращении к «точке» выполняется все тот же запрос к базе данных. Сделано это для удобства использования 1С. Как исправить ошибку?

Чтобы сообщение » Поле объекта недоступно для записи» больше не появлялось, нужно прописать следующее: ИвановСсылка = Справочники.ФизическиеЛица.НайтиПоНаименованию(«Иванов Петр»); ИвановОбъект = ИвановСсылка.ПолучитьОбъект(); ИвановОбъект.НомерПаспорта = «2175353»; ИвановОбъект.Записать(); Теперь по ссылке выполняется обращение к объекту, а затем уже он редактируется. После этого объект записывается, то есть фиксируется его новое состояние. Ошибка в коде Возможно причина в том, что программист, который работал с текущей конфигурацией 1С, допустил ошибку при доработке. Тогда исправить её сможет также только специалист. Желательно, чтобы это был именно тот человек, который изначально настраивал 1С.

Попытка изменения системных полей Пользователь пытается редактировать те данные, на замену которых он не имеет прав. Например, номер строки в таблице, установка «ТекущаяСтрока» вместо «ТекущиеДанные» и т. Иногда ошибка возникает из-за простой невнимательности. Если обращаться к правильным полям – ошибка появляться не будет. Недостаточно прав на изменение Иногда поле, которое пытается изменить пользователь, доступно только для чтения. Это связано с правами на объекты конкретного пользователя. Чтобы устранить возникающую ошибку, необходимо проанализировать права на конкретный объект и либо разрешить пользователю доступ к соответствующему полю (на запись), либо вообще исключить поле (или целый объект) из рассмотрения.

Устаревшая конфигурация 1С Иногда ошибка » Поле объекта недоступно для записи» появляется при обновлении 1С. Чтобы убрать её, нужно обновиться до самой свежей версии платформы. Устранить ошибку обычно не сложно и сделать это может сам пользователь. Если же серьёзно нарушена конфигурация 1С, исправить положение сможет только специалист. В управляемой форме используется элемент и реквизит с одним именем Достаточно редко ошибка » Поле объекта недоступно для записи» появляется при совпадении имён реквизита и элемента управляемой формы.

Чтобы устранить ошибку, необходимо явно прописать обращение к реквизиту или элементу формы. К примеру, в форме 1С имеется реквизит с именем «Сумма».

С таким же именем на форме находится элемент «Сумма».

После обновления конфигурации 1С:Предприятие столкнулся со следующей проблемой. При вызове списка пользователей возникает ошибка Полный текст ошибки выглядит так {Обработка.СписокПользователейИБ.МодульОбъекта(35)}: Поле объекта недоступно для записи (Пользователи) Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей(); Причем, возникала данная ошибка только у пользователей с полными правами в базе. Источником проблемы оказалось то, что в переменная Пользователи зарезервирована в последних версиях. Решение простое, в процедуре нужно поменять имя переменной с Пользователи на другое, например Пользователи1 Процедура ЗаполнитьСписокПользователейИБ(ОтборСтрок) Экспорт ТабличнаяЧастьПользователей.Очистить(); Пользователи1 = ПользователиИнформационнойБазы.ПолучитьПользователей(); Для Каждого Пользователь Из Пользователи1 Цикл.

Доброго времени суток. Я добавил в БП 3.0 свои роли. В документе РеализацияТоваровУслуг (в моей роли для него установлены все права) есть гиперссылка «»НДС в сумме (сверху)»». Она вызывает общую форму ФормаЦеныИВалюта (в моей роли и для нее установлено право — единственный пункт «»Просмотр»»). На форме 2 поля — Тип цен (оно почему-то только для чтения, хотя с полными правами доступно) и НДС.

При изменении поля НДС появляется следующая ошибка: {ОбщаяФорма.ФормаЦеныИВалюта.Форма(525)}: Поле объекта недоступно для записи (СуммаВключаетНДС) СуммаВключаетНДС = Ложь; СуммаВключаетНДС — это реквизит формы, если открыть его свойство «»Редактирование»», то там есть моя роль. Я провел сравнение с типовой конфигурацией — различий нет. Значит дело в роли. Чего в ней не хватает? Добавлено через 23 часа 58 минут Ап! И откуда только у меня такие проблемы берутся?

Ошибка: «Значение не является значением объектного типа (ПравоеЗначение)» в 1С:Бухгалтерия 8.3. Ошибка при попытке изменить учетную политику «Объект не найден». Иванов = Справочники.ФизическиеЛица.НайтиПоНаименованию(«Иванов Петр»). Иванов.НомерПаспорта = «2175353». И при вводе последней строчки появляется ошибка «Поле объекта недоступно для записи». Причина в том, что происходит попытка редактирования свойств. В итоге, в режиме 1с предприятие выдает ошибку: {Справочник.СписокУпражнений.Форма.СписокУпражнений(7)}: Поле объекта недоступно для записи (Родитель) Выборка.Родитель = «Грудь».

Я подобрал для вас темы с ответами на вопрос 1C 8.x БП 3.0. Ошибка «»Поле объекта недоступно для записи»» (1С): 1c8.2 Справочник Сотрудники Модуль формы элемента Добавил Новыйреквизит Справочника. При добавлении в модуле строки: выдает. При выполнении функции появляется ошибка про недоступность записи для контрагента при этом все равно записывает значение. Здравствуйте, есть обработка для выгрузки данных из Экселя в табличную часть любого документа (см. Пытаюсь выгрузить данные. Помогите решить проблему.

При нажатии на печать сметы выдает ошибку {Документ.Смета.Команда.ПечатьСметы.МодульКоманды(18)}. Для заданого 0. Аналогичная проблема. Создаю новую роль копированием из «»ДобавлениеИзменениеДанныхБухгалтерии»». Ничего в ней не меняю, кроме названия!!!

Ставлю пользователю. Возникает ситуация, как у автора темы — та же самая ошибка вылезает, изменить входимость НДС в сумму никак. Создается впечатление, что возможность изменения этого поля где-то завязана именно на имя роли. Не могу найти где!!! И что все же делать в данной ситуации?

Полные права пользователю давать нельзя. Если же пользователю поставить любую другую роль, кроме «»ДобавлениеИзменениеДанныхБухгалтерии»» и «»ПолныеПрава»», даже если в них все права проставить, поле объекта недоступно. Конфигурация стандартная 1С Бухгалтерия, версия 3.0.40.31, находится на техподдержке с возможностью изменения. Из изменений как раз новые роли пытаемся создавать.

Цель — дать пользователю доступ только к отдельным видам документов и закрыть доступ к большинству справочников. Новые роли создавали копированием из роли «»ДобавлениеИзменениеДанныхБухгалтерии»». В режиме «»Предприятие»» пользователю устанавливаются права по профилю «»Только просмотр»». Затем редактируем в конфигураторе. Если проставить галочку на стандартной роли — все работает. Если снять галочку со стандартной роли и поставить на ее «»клоне»» — нет доступа к изменению входимости НДС. Та же картина, если роль создавать копированием роли «»ПолныеПрава»».

В «»клонированных»» ролях пока никаких изменений не делали! Файл конфигурации весит 450 метров.

Вот еще темы с ответами: Если очень хочется, но не хочется засорять тематические посты — СЮДА! Тэг OFF в данной теме означает «По теме» Для документа «ПродажаТоваров» на форму списка добавить «ПолеВвода» с типом «СправочникСсылка.Контрагенты». На событие формы «ПриОткрытии». Всем добрый день!

Нужна помощь. В Форму элемента «Номенклатура» нужно добавить два поля с выводом остатка и текущей цены в рознице. Есть ли готовое решение, можно через внешнюю форму нужно контроль «Текущая цена розницы» и «Остаток» товаров на складе. Или воспользуйтесь поиском по форуму.

Для начинающих разработчиков 1С 8.3 трудно понять, почему же они так часто получают ошибку — Поле объекта недоступно для записи 1С (РабочаяДата, Код, Таблица, Номер, Дата и т.д.) . Разберемся, почему эта ошибка может появятся, и как с ней бороться.

Если Вы понятия не имеете, что такое программирование, то лучше ничего не трогать. Скорее всего, программисты, которые дорабатывали Вашу конфигурацию, просто допустили досадную ошибку. Просто вызовите специалиста, который работал с Вами. Данная ошибка решается достаточно быстро (если она не тянет за собой другие, более сложные проблемы). Если контакты с личными программистами потеряны, Вы можете обратиться к нашим высококвалифицированным профессионалам, подробности на странице — .

Если ошибка возникла после обновления конфигурации 1С 8.2 или 8.3 , скорее всего, Вам необходимо до последней актуальной версии.

Получите 267 видеоуроков по 1С бесплатно:

Если Вы начинающий программист 1С

Если говорить в общем, то Вы пытаетесь в программном коде изменить данные, которые не имеете права менять. Рассмотрим конкретные случаи:

Меняй объект, а не ссылку

Хит-парад причин появления этой ошибки возглавляет попытка присвоения ссылке элемента новых атрибутов. Делают это обычно примерно так:

Петров = Справочники. ФизическиеЛица. НайтиПоНаименованию(«Петров Иван» ) ; Петров. НомерПаспорта = «2156363» ;

И вот на этом моменте новичок получает ошибку — Поле объекта недоступно для записи 1С.

Следует уяснить: изменять свойства и реквизиты возможно только объекта. В данном случае переменная «Петров» содержит в себе т.н. «ссылку» — уникальный идентификатор в базе данных, с помощью которого система поддерживает уникальность. А то, что нам доступно «по точке» (Петров.НомерПаспорта), — это просто удобство 1С предприятия, и на самом деле любая «точка» — это еще один запрос к базе данных.

Правильное решение задачи:

Попытка изменить системные поля

Второй по популярности причиной возникновения данной ошибки является попытка изменить реквизиты, которые не поддаются изменению.

  • номер строки табличной части;
  • использование ТекущаяСтрока, вместо ТекущиеДанные;
  • и так далее.

Ошибка в 1С 8.3 Поле объекта недоступно для записи появляется при доработках программного кода и обновлениях программы.

Прочитав эту статью, вы:

  • узнаете, на что обращать внимание при возникновении ошибки;
  • получите рекомендации для ее устранения;
  • сможете скачать внешние обработки, содержащие ошибки и их исправление;
  • изучите конкретные примеры возникновения ошибки при доработке программного кода.

Причины ошибки

С ошибкой Поле объекта недоступно для записи в 1С сталкиваются как начинающие программисты при доработке программного кода, так и обычные пользователи при обновлении программы. Полный список причин возникновения ошибки содержит:

  • ошибку обновления программы;
  • обращение к данным изменяемого объекта по Ссылке вместо Объект;
  • попытку изменения системных полей в программном коде.

Во всех перечисленных случаях при попытке записи данных фиксируется ошибка Поле объекта недоступно для записи.

Ошибка обновления

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

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

Ваши действия:

  1. Уточните, зарегистрирована ли ошибка на сайте поддержки пользователей: Публикация ошибок 1С.
    Для этого в форме поиска ошибок наберите текст ошибки и укажите конфигурацию программы, в которой она проявляется.Нажмите кнопку Найти.
  2. Если ошибка зарегистрирована, обратите внимание на:
    • дату регистрации ошибки;
    • релиз исправления ошибки;
    • информацию Способ обхода.
  3. Выполните рекомендации, указанные в Способе обхода или обновитесь на релиз исправления ошибки.
  4. Если ошибка не зарегистрирована, обратитесь на горячую линию 1С для регистрации ошибки:
    • телефон горячей линии 1С: (495) 956-11-81;
    • E-mail:v8@1c.ru для вопросов по программам 1С:Предприятие 8.

Пока ошибку не исправили, восстановите базу и архивной копии или ждите выхода нового релиза обновления.

БухЭксперт8 рекомендует всегда делать копии перед обновлением. Это гарантирует возможность восстановления базы при неудачном обновлении.

Изменение объекта по ссылке

Самая распространенная ошибка начинающих программистов — запись изменений Объекта по Ссылке.

Объект — это внутренняя таблица 1С, в которой содержатся полные данные на элемент справочника, документ, регистр или обработку. Ссылка — указание места этой таблицы в 1С.

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

При доработке программного кода или написании внешних обработок использование для изменения данных объекта Ссылки приводит к появлению ошибки Поле объекта недоступно для записи.

При написании обработки заполнения контактного лица в справочнике Контрагенты программист допустил ошибку в программном коде:

Выполнение записи происходит с ошибкой в поле Основное контактное лицо.

Ошибка записи выбранного контактного лица регистрируется при нажатии на кнопку Неправильно.

В данном программном коде Объект.Контрагент — это Ссылка на поле формы Контрагент обработки Заполнение контактного лица контрагента:

  • Объект — обработка;
  • Контрагент — поле на форме.

Для обращения к Объекту элемента справочника Контрагент нужно выполнить команду ПолучитьОбъект(). Исправленный программный код выглядит следующим образом:

В обработке Заполнение контактного лица контрагента исправление реализовано по кнопке Правильно. В этом случае программный код отработает без ошибки.

Но для получения идеального результата сохранения данных контактного лица в справочнике Контрагенты недостаточно, необходимо записать выбранного контрагента в справочнике Контактные лица.

По кнопке Идеально выбранное контактное лицо отобразится по ссылке Контактные лица контрагента.

БухЭксперт8 рекомендует выполнять все изменения программного кода на копии рабочей базы. Если ошибка появилась после доработки конфигурации или обработки программистом, лучше передать ему информацию по ошибке для исправления, а не пытаться исправлять ее самостоятельно.

Изменение системных полей

Третьей причиной, вызывающей ошибку Поле объекта недоступно для записи, является попытка изменения системных полей и команд в программном коде:

  • Номер строки табличной части;
  • ТекущаяСтрока, вместо ТекущиеДанные;
  • и т. д.

Эти поля недоступны для записи, попытка их изменения приводит к ошибке.

При написании обработки заполнения членов комиссии в документе Требование-накладная программист допустил ошибку в программном коде.

Выполнение записи членов комиссии в документ Требование-накладная происходит с ошибкой по полю Номер строки.

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

Ошибка вызвана присвоением номера системному полю НомерСтроки. Правильный программный код выглядит следующим образом:

По кнопке Правильно запись членов комиссии в документ Требование-накладная происходит без ошибки.

Все выбранные в обработке Заполнение членов комиссии в Требовании-накладной члены комиссии отображаются в документе по ссылке Комиссия.

БухЭксперт8 рекомендует выполнять все изменения программного кода на копии рабочей базы. Если ошибка появилась после доработки программистом конфигурации или обработки, лучше передать ему информацию по ошибке, а не пытаться исправлять ее самостоятельно.

См. также:

  • Ошибка 1С: Поле объекта не обнаружено
  • У пользователя недостаточно прав на исполнение операции
  • Конфигурация узла распределенной ИБ не соответствует ожидаемой
  • 1C Отчетность: не удалось расшифровать файл
  • Этот хост неизвестен 1С: как исправить
  • Ошибка при выполнении операции с информационной базой 1С 8.3

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Начинающие программисты 1С достаточно часто видят перед собой сообщение об ошибке недоступности поля объекта при записи. Существует всего три пути появления этой ошибки, но на практике с ней встречаются достаточно часто, поэтому разработчику надо знать, как исправить ситуацию. Поняв один раз причины появления сообщения системы «Поле объекта недоступно для записи», вы перестанете получать его раз и навсегда.

Почему появляется эта ошибка?

Если вы простой пользователь и видите перед собой такую ошибку, то вряд ли вы сможете с ней справиться самостоятельно. Проблема не в ваших действиях, а в ошибке в коде программы. Чтобы исправить ее, необходимо проанализировать алгоритмы. Поэтому, увидев ошибку «Поле недоступно для записи», сообщите разработчику и ждите его указаний. Если в штате вашей компании нет программистов 1С, то к вам на помощь придут сторонние специалисты.

Рис.1 Окно ошибки

Разработчики выделяют 3 распространенные причины появления окна с ошибкой:

Попытка изменения ссылки, а не объекта. В системе 1С существуют определенные правила, и одно из них гласит: «Изменять можно только объекты». Проблема в том, что ссылка – просто адрес объекта в базе данных, созданный для уникальности. Важно понять разницу между ссылкой и объектом, потому что при некоторых операциях с ними результат будет одинаковый.

Если вы случайно или по незнанию попытались изменить реквизит ссылки и получили ошибку, то необходимо добавить всего пару строк кода. В платформе 8.3 заложена функция получения объекта по ссылке, и для изменения значения реквизитов придется ею воспользоваться. То есть перед изменением нужно получить объект по ссылке, изменить реквизит и записать объект.

Вторым источником данной ошибки по частотности является код, в котором разработчик пытается поменять запрещенные к изменению реквизиты. Этим грешат неопытные программисты 1С, пытаясь изменить номер строки в табличной части, идентификаторы и так далее.

Еще одной причиной появления подобной ошибки является обновления. 1С выпускает их достаточно часто и для конфигураций, и для платформ. Проблема в том, что далеко не все изменения подвергаются тщательному тестированию, и пользователи невольно выполняют эту работу. Именно поэтому рекомендуется пользоваться тестовой базой для обновления, на которой проверять работоспособность нового релиза 1С, сопоставлять на ней значение и параметры.

Что делать, если после обновления вы все-таки не можете работать, наблюдая ошибку недоступности поля объекта для записи?

Специалисты советуют либо установить самый последний выпуск конфигурации и платформы 1С, либо, наоборот, вернуться к предыдущему работоспособному и ждать исправлений. Конечно, можно залезть в код типовой конфигурации и поправить ошибку, но для этого необходимо быть высококвалифицированным разработчиком 1С и помнить, что после изменения вы не сможете обновляться в автоматическом режиме.

Если вы решили обратиться за помощью, имейте в виду, что в вашей компании может быть установлено несколько программных продуктов от 1С, поэтому для облегчения работы программистов при обращении сообщите им подробные данные. К нужным параметрам относится наименование программы, ее версия и действия, которые привели к появлению ошибки. С этими вводными разработчик в разы быстрее разберется с возникшей проблемой.