15.03.2023 Александр Суворов 44493
Нельзя изменять поле содержащее объект данных...

Содержание:

1. Что такое реквизиты формы в конфигурации системы 1С

2. Ошибка «Нельзя изменять поле содержащее объект данных формы» и два способа ее решения

 

1.  Что такое реквизиты формы в конфигурации системы 1С

 

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


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


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

   

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

&НаКлиенте

Процедура КонтрагентПриИзменении(Элемент)

         КонтрагентПриИзмененииНаСервере(Контрагент);

КонецПроцедуры

&НаСервере

Процедура КонтрагентПриИзмененииНаСервере(ВыбранныйКонтрагент)

         // Вставить содержимое обработчика.

КонецПроцедуры  


2. Ошибка «Нельзя изменять поле содержащее объект данных формы» и два способа ее решения

 

         В описанном выше варианте реализации проставления договора вылетит ошибка «Нельзя изменять поле содержащее объект данных формы».    


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


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

&НаКлиенте

Процедура КонтрагентПриИзменении(Элемент)

         ПеременнаяКонтрагент = Контрагент;

         КонтрагентПриИзмененииНаСервере(ПеременнаяКонтрагент);

КонецПроцедуры

&НаСервере

Процедура КонтрагентПриИзмененииНаСервере(ВыбранныйКонтрагент)

         // Вставить содержимое обработчика.

КонецПроцедуры

         Второй вариант, способный помочь избежать ошибки – использовать возможность передачи элемента по значению, т.е. не сам элемент формы, а только его значение.

&НаКлиенте

Процедура КонтрагентПриИзменении(Элемент)

         КонтрагентПриИзмененииНаСервере(Контрагент);

КонецПроцедуры

&НаСервере

Процедура КонтрагентПриИзмененииНаСервере(Знач ВыбранныйКонтрагент)

         // Вставить содержимое обработчика.

КонецПроцедуры

         Описанными выше способами можно избежать ошибок.

 

Специалист компании "Кодерлайн"

Александр Суворов

Наши проекты

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Бухгалтерский учет Банк и касса Расчеты с контрагентами Торговые операции ...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

Внедренное типовое решение:
1С:Документооборот 8 ПРОФ

- Делопроизводство;
- Учет и хранение документов;
- Учет и контроль исполне...

АО «РЭП Холдинг»
АО «РЭП Холдинг»

Отрасль:
Энергомашиностроительный холдинг

Внедренное типовое решение:
«1С: Управление производственным предприятием» и «1С:Консолидация ПРОФ»

- Функциональный блок «Консолидированная отчетность РСБУ» - разработка час...

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

Отрасль:
Металлургическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием для Украины

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Уч...

Автоматизация интеграции с информсистемами клиентов на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
«1С:Предприятие 8. WMS Логистика. Управление складом»

– Управление складскими запасами;
– Оформление заказов покупателей;
– ...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в
ИП Любо Виктория Александровна (ООО «Рекреация»)

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Осуществлены разработки:
– отчета по спецификации Заказа;
– загрузки сп...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление производственным предприятием

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетнос...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и И...

ООО «Мир Аксиомы»
ООО «Мир Аксиомы»

Отрасль:
Аудиторские и консалтинговые услуги

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

Отрасль:
Нефтесервис

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конф...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение