1с поле формы поле объекта недоступно для записи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

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

Сообщение «Поле объекта недоступно для записи (Имя_поля)» выдается пользователю, когда программа в процессе исполнения кода не может присвоить элементу требуемое значение.

image002

Доступно только для чтения данных

При работе с объектами 1С различают два способа обращения к данным:

image004

image006

Для перехода к месту ошибки:

В открывшемся служебном окне в нижней части конфигуратора отразится информация о месте сбоя:

image008

Чтобы исправить ошибку:

Объекты конфигурации делятся:

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

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

В 1С существуют специальные системные поля, которым программа присваивает значения по умолчанию:

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

image022image024

Один из вариантов решения:

Имя переменной совпадает с именем объекта

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

image032

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

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

image034

Изменение элемента формы

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

image036

Чтобы изменить значение элемента, используют:

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

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

Источник

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

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

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

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

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

image002 5

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

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

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

image003 7

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

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

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

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

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

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

image007 5

image008 4

image009 4

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

image010 3

image011 4

image012 3

image013 3

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

image014 1

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

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

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

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

image015 1

image016 1

image017 1

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

image018 1

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

См. также:

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

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

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

Похожие публикации

Карточка публикации

rating onrating onrating onrating on rating on

(1 оценок, среднее: 5,00 из 5)

Вы можете задать еще вопросов

Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8

Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>

Спасибо огромное за Ваш труд! Как всегда все доступно и грамотно.

Источник

Обучение программированию на 1С

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

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

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

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

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

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

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

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

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

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

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

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

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

image0021

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

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

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

image00312

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

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

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

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

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

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

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

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

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

Источник

Поле объекта недоступно для записи (Документы)

Поле объекта недоступно для записи (Документы)

Ошибка «Поле объекта недоступно для записи (Документы)» или «Поле объекта недоступно для записи (Справочники)» возникает вследствие использования зарезервированного объекта системы 1С в качестве переменной или параметра функции в момент присвоения к ней значения.

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

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

Переименовать переменную в разрешенное системой наименование.

Например: пДокументы, лДокументы, _Документы, всеДокументы, v_Doc

Для снижения риска такой ошибки используется именование переменных с префиксами места исполнения или типа:

л — локальные, м — модульные, ф — формы, сзДокументы — список значений, мас — массив, спр — ссылка справочника и т.п.

Жестких стандартов нет, но многие отраслевые конфигурации характеризуются своей уникальной системой имен переменных.

Поведение системы

Зависит от места использования этого присвоения: выполнение модуля прерывается, если это произойдет при старте системы, старт не происходит.

Такая ошибка не отлавливается на этапе сохранения модуля.

Ни одно, даже самое верное дело не двигается без рекламы… Обычно думают, что надо рекламировать только дрянь,- хорошая вещь и так пойдет. Это самое неверное мнение. Реклама — это имя вещи… Реклама должна напоминать бесконечно о каждой, даже чудесной вещи… Думайте о рекламе!»

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с поле счет дебета не заполнено
  • 1с поле список значений на форме