поле объекта недоступно для записи этогруппа

Поле объекта недоступно для записи в 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. Мы работаем в Москве и области.

Источник

Ошибка записи Владельца

Помогите разобраться где ошибка.
<Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(270)>: Поле объекта недоступно для записи (Владелец)
Характеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;

вроде Тип правильный!

Может быть стоит запрет на редактирование Характеристика.Владелец?

(17) config, еще попробуйте переименовать переменную Характеристика

Нашел ошибку:
Вот как надо: РегистрЗначенияСвойствОбъектов.Объект = ЭлементыФормы.МодельМатраса.Значение.Ссылка;

Но теперь он создает Характеристику, но не заполняет Значение

<Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(278)>: Ошибка при вызове метода контекста (Записать)
РегистрЗначенияСвойствОбъектов.Записать();
по причине:
Запись не верна! Значение поля «Свойство» не может быть пустым!: ЗначенияСвойствОбъектов: Discovery (Дискавери) Sleep Style Askona Матрас, (Регистр сведений: Значения свойств объектов)

блин не могу найти,

что те так, нужно выбрать как-то значение свойства в характеристике номенклатуры

на отладчике по строке Записать(): ошибка на фото

после продолжения ошибка в приложении:
<Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(277)>: Ошибка при вызове метода контекста (Записать)
РегистрЗначенияСвойствОбъектов.Записать();
по причине:
Запись не верна! Значение поля «Свойство» не может быть пустым!: ЗначенияСвойствОбъектов: Discovery (Дискавери) Sleep Style Askona Матрас, (Регистр сведений: Значения свойств объектов)

Источник

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

Запрос = Новый Запрос;

Запрос.Текст =
«ВЫБРАТЬ
| ВложенныйЗапрос.Регион,
| ВложенныйЗапрос.ЗаказПоставщику,
| ВложенныйЗапрос.СуммаЗаказа
|ПОМЕСТИТЬ ЗакрытыеЗаказы
|ИЗ
| (ВЫБРАТЬ
| ЗакрытиеЗаказовПоставщикамЗаказы.ЗаказПоставщику.Склад.Регион КАК Регион,
| ЗакрытиеЗаказовПоставщикамЗаказы.ЗаказПоставщику КАК ЗаказПоставщику,
| ЗакрытиеЗаказовПоставщикамЗаказы.ЗаказПоставщику.СуммаДокумента КАК СуммаЗаказа
| ИЗ
| Документ.ЗакрытиеЗаказовПоставщикам.Заказы КАК ЗакрытиеЗаказовПоставщикамЗаказы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗакрытиеЗаказовПоставщикам КАК ЗакрытиеЗаказовПоставщикам
| ПО ЗакрытиеЗаказовПоставщикамЗаказы.Ссылка = ЗакрытиеЗаказовПоставщикам.Ссылка
| И (ЗакрытиеЗаказовПоставщикам.Дата МЕЖДУ &НачПериода И &КонПериода)) КАК ВложенныйЗапрос
|;
|
|//////////////////////////////////////////////////////////// ­////////////////////
|ВЫБРАТЬ
| ЗаказыПоставщикам.Регистратор,
| ЗаказыПоставщикам.ЗаказПоставщику,
| ЗаказыПоставщикам.Номенклатура,
| ЗаказыПоставщикам.ХарактеристикаНоменклатуры,
| ЗаказыПоставщикам.Количество КАК Количество
|ПОМЕСТИТЬ ИсследуемыеЗаписи
|ИЗ
| РегистрНакопления.ЗаказыПоставщикам КАК ЗаказыПоставщикам
|;
|
|//////////////////////////////////////////////////////////// ­////////////////////
|ВЫБРАТЬ
| Закрытия.ЗаказПоставщику,
| Закрытия.Номенклатура,
| Закрытия.ХарактеристикаНоменклатуры,
| СУММА(Закрытия.Количество) КАК Количество
|ПОМЕСТИТЬ Закрытия
|ИЗ
| (ВЫБРАТЬ
| ИсследуемыеЗаписи.ЗаказПоставщику КАК ЗаказПоставщику,
| ИсследуемыеЗаписи.Номенклатура КАК Номенклатура,
| ИсследуемыеЗаписи.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ИсследуемыеЗаписи.Количество КАК Количество
| ИЗ
| ИсследуемыеЗаписи КАК ИсследуемыеЗаписи
| ГДЕ
| ИсследуемыеЗаписи.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПоставщикам) КАК Закрытия
|
|СГРУППИРОВАТЬ ПО
| Закрытия.ЗаказПоставщику,
| Закрытия.Номенклатура,
| Закрытия.ХарактеристикаНоменклатуры
|;
|
|//////////////////////////////////////////////////////////// ­////////////////////
|УНИЧТОЖИТЬ ИсследуемыеЗаписи
|;
|
|//////////////////////////////////////////////////////////// ­////////////////////
|ВЫБРАТЬ
| ВложенныйЗапрос.Регион,
| ВложенныйЗапрос.ЗаказПоставщику,
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ХарактеристикаНоменклатуры,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.СуммаЗаказа
|ИЗ
| (ВЫБРАТЬ
| ЗакрытыеЗаказы.Регион КАК Регион,
| ЗакрытыеЗаказы.ЗаказПоставщику КАК ЗаказПоставщику,
| Закрытия.Номенклатура КАК Номенклатура,
| Закрытия.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| Закрытия.Количество КАК Количество,
| ЗакрытыеЗаказы.СуммаЗаказа КАК СуммаЗаказа
| ИЗ
| ЗакрытыеЗаказы КАК ЗакрытыеЗаказы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Закрытия КАК Закрытия
| ПО ЗакрытыеЗаказы.ЗаказПоставщику = Закрытия.ЗаказПоставщику) КАК ВложенныйЗапрос
|;
|
|//////////////////////////////////////////////////////////// ­////////////////////
|УНИЧТОЖИТЬ ЗакрытыеЗаказы
|;
|
|//////////////////////////////////////////////////////////// ­////////////////////
|УНИЧТОЖИТЬ Закрытия»;

Запрос.УстановитьПараметр(«НачПериода», НачПериода);
Запрос.УстановитьПараметр(«КонПериода», КонПериода);

Выдает ошибку: Поле объекта недоступно для записи (ЗакрытыеЗаказы)
ЗакрытыеЗаказы = Запрос.Выполнить().Выгрузить();

В какую сторону копать решение?

(5)ТОгда можно сделать так:

Но сначала объект завернуть в значение, а потом в реквизит формы

Источник

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

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