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

Содержание:

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

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

 

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

 

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


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


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

   

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

&НаКлиенте

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

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

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

&НаСервере

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

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

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


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

 

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


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


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

&НаКлиенте

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

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

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

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

&НаСервере

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

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

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

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

&НаКлиенте

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

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

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

&НаСервере

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

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

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

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

 

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

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

Наши проекты

Внедрение ПП "1С:CRM ПРОФ" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

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

Внедренное типовое решение:
1С:CRM ПРОФ

- Управление отношениями с клиентами (CRM) ...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Управление торговлей

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

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

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

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

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

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

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

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

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

Внедрение 1С:Управление торговлей
ООО «Амперсенд»

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

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам;
- Управление отношениями с поставщиками;...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

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

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

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

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

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

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

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

ООО «ПКП КАБЭЛЕКТРОСНАБ»
ООО «ПКП КАБЭЛЕКТРОСНАБ»

Отрасль:
Производство кабельной продукции

Внедренное типовое решение:
1С:Управление небольшой фирмой 1.6

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

ООО “РТИТС”
ООО “РТИТС”

Отрасль:
Транспортные системы

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

Блок регламентированного кадрового учета и расчета заработной платы в 1С:ERP;...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

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

- Бухгалтерский учет
- Расчет зарплаты и кадровый учет
- Налоговый учет ...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

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

- Расчеты с контрагентами;
- Производственные операции;
- Управление скла...

Разработка функциональных требований к информсистеме на базе «1С:Управление холдингом 8»
ФГУП «СВЯЗЬ-безопасность»

Отрасль:
Охранные услуги

Внедренное типовое решение:
1С:Управление холдингом

- Зафиксировали процессы по блокам бухгалтерского, налогового учета, казнач...

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

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

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

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