Здравствуйте!
Есть справочник Мероприятия. У него есть ТЧ. На форме в Объект.ТЧ добавлены колонки реквизитов.
В другой справочник добавляю эту тч и программно создаю элементы на форме.
Добавленные колонки делаю так
Но затык в другом месте. Есть процедура, которая меняет в строках значение добавленных колонок.
Но в случае Мероприятий все происходит нормально. в моем варианте ругается и пишет "Нельзя изменять поле, содержащее объект данных формы"
Я не так добавляю реквизит на форму? или что-то еще упустил?
Есть справочник Мероприятия. У него есть ТЧ. На форме в Объект.ТЧ добавлены колонки реквизитов.
В другой справочник добавляю эту тч и программно создаю элементы на форме.
Добавленные колонки делаю так
НовыйРеквизит = Новый РеквизитФормы("МестнаяНачало", Новый ОписаниеТипов("Дата"),"Объект.МФТИ_Программа","МестнаяНачало");
ДобавленныеРеквизиты = Новый Массив;
ДобавленныеРеквизиты.Добавить(НовыйРеквизит);
Форма.ИзменитьРеквизиты(ДобавленныеРеквизиты);
Но затык в другом месте. Есть процедура, которая меняет в строках значение добавленных колонок.
Но в случае Мероприятий все происходит нормально. в моем варианте ругается и пишет "Нельзя изменять поле, содержащее объект данных формы"
Я не так добавляю реквизит на форму? или что-то еще упустил?
Прикрепленные файлы:
По теме из базы знаний
- Итоговая сумма в формах с динамическими списками и программный вывод в эти же формы доп. реквизитов.
- Программное добавление реквизитов на форму документа. Без изменения самой формы.
- Программный интерфейс для доработки форм
- Программное формирование элементов и реквизитов на управляемой форме
- Использование внешних программных средств при обновлении конфигураций 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Мероприятия вызывают процедуру в модуле формы с клиента
УправлениеМероприятиямиКлиентСервер.ПересчитатьНачалоОкончаниеПунктовПрограммы(Объект, ПараметрыПреобразованияМестногоВремени);
где Объект имеет тип ДанныеФормыСтруктура, ПараметрыПреобразованияМестногоВремени просто структура
у модуля УправлениеМероприятиямиКлиентСервер стоят галки Клиент, Сервер, ВнешнееСоединение
У меня вызывается так же, только форма в расширении.
И пока это писал и проверял, понял что у моего модуля, где находится "ПересчитатьНачалоОкончаниеПунктовПрограммы" не такие галки, как у "УправлениеМероприятиямиКлиентСервер". Создал новый модуль с такими же, и все заработало.
Спасибо)
УправлениеМероприятиямиКлиентСервер.ПересчитатьНачалоОкончаниеПунктовПрограммы(Объект, ПараметрыПреобразованияМестногоВремени);
где Объект имеет тип ДанныеФормыСтруктура, ПараметрыПреобразованияМестногоВремени просто структура
у модуля УправлениеМероприятиямиКлиентСервер стоят галки Клиент, Сервер, ВнешнееСоединение
У меня вызывается так же, только форма в расширении.
И пока это писал и проверял, понял что у моего модуля, где находится "ПересчитатьНачалоОкончаниеПунктовПрограммы" не такие галки, как у "УправлениеМероприятиямиКлиентСервер". Создал новый модуль с такими же, и все заработало.
Спасибо)
(3) Видимо, до исправления процедура выполнялась на сервере. При серверном вызове, если параметры передаются не по значению, на клиенте происходит неявное присвоение значений параметрам по окончании вызова. В вашем случае процедура пыталась перезаписать параметр "Объект", на это и ругалась платформа.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот