Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

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

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

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

Если Вы НЕ программист 1С

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

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

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

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

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

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

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

Петров.НомерПаспорта = "2156363";

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

Получите понятные самоучители по 1С бесплатно:

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

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

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

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

ПетровОбъект.НомерПаспорта = "2156363";

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

В данном случае Вы из ссылки получаете объект, а только потом изменяете его. И потом, естественно, фиксируете новое состояние объекта — записываете его.

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

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

Пример:

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

Читайте также другие статьи по 1С:

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 9 на “Поле объекта недоступно для записи в 1С
  1. Добрый день.
    Спасибо за замечательную статью, но остается одна закавыка.

    Отключаю стандартную обработку, открываю форму выбора с нужным мне отбором, но при двойном щелчке на выбираемом элементе поле в исходной форме не заполняется.

    Как это исправить?

    Ответить

    • Добрый день!
      Спасибо за отзыв.

      Так как вы отключили стандартную обработку он и не обрабатывает установку нового значения в поле выбора. То есть нужно сделать что то вроде «ТекущиеДанные.Реквизит = ВыбранноеЗначениеИзСписка».

      Ответить

  2. Здравствуйте! Очень помогла ваша статья, раньше пользовался ЗагрузкаДанныхИзТабличныхДокументов, теперь все намного упростилось. Спасибо большое!

    Ответить

  3. Добрый день.
    Есть еще один вопрос.
    Представим что у меня документ из 1527 строк и исправить надо 3 реквизита в 588 строке????

    Ответить

    • Сам нашел. Все просто… Если знаешь

      Ответить

  4. Спасибо! Всё толком и по делу. То что надо для юных падаванов)

    Ответить

  5. поле объекта недоступно для записи (обратное значение ндс)

    Ответить

  6. В форме выбора есть отбор по полю Статья оборотов. Пишу:
    ФормаВ.Отбор.СтатьяОборотов = ЭлементыФормы.СтатьяДвиженияДенежныхСредств
    Пишет, что поле объекта недоступно для записи (СтатьяОборотов). Помогите разобраться, пожалуйста

    Ответить

  7. кратко и по делу, спасибо за «меняй объект, а не ссылку» сразу ошибку выявил и избавился от нее

    Ответить

Добавить комментарий:

Ваш адрес email не будет опубликован.