Часто в процессе разработки конфигураций на платформе 1С 8.1 программисты сталкиваются с ситуацией, когда табличная часть формы документа принудительно переходит в режим ТолькоПросмотр, несмотря на то, что в коде при открытии формы явно заданы параметры доступности. Рассмотрим, как проанализировать эту ситуацию и найти источник проблемы, который блокирует редактирование.
Первым делом проанализируем программный код, отвечающий за изменение статусов элементов формы. Часто ошибка кроется в избыточном управлении свойством ТолькоПросмотр. Рассмотрим пример, где разработчик пытается управлять видимостью и доступностью:
// Пример логики управления доступностью
ЭтаФорма.ЭлементыФормы.ПШапка.Страницы.ИнформацияОПеревозкахСтр.Видимость = Ложь;
ЭтаФорма.ЭлементыФормы.ПШапка.Страницы.ИнформацияОПеревозкахСтр.Доступность = Ложь;
ЭтаФорма.ЭлементыФормы.ИнформацияОПеревозках.ТолькоПросмотр = Истина;
Если в коде присутствует установка ТолькоПросмотр = Истина, она может перекрывать последующие попытки сделать элементы доступными. Мы рекомендуем полностью закомментировать все строки, где устанавливается это свойство для всей табличной части, и проверить, не нормализовалось ли поведение формы. Также важно убедиться, что видимость и доступность самих колонок или элементов управления ТЧ настроены корректно в свойствах формы (проверьте установку галочек в конфигураторе).
Если программная очистка кода не помогает, значит, ограничение накладывается платформой или скрытыми механизмами. Разберем, где именно может возникать блокировка:
ПриЧтенииНаСервере, ОбработкаЗаполнения или даже в подписки на события.RLS может принудительно устанавливать режим «только просмотр». Попробуйте запустить конфигурацию под пользователем с полными правами (Администратор). Если редактирование станет возможным, проблема однозначно заключается в правах доступа конкретной роли.Чтобы точно выяснить, в какой момент форма становится недоступной, воспользуйтесь следующими методами:
1. Использование отладчика на «горячих» точках: Не ограничивайтесь только процедурой ПриОткрытии. Поставьте точку останова в самом начале модуля формы и проверяйте свойство ЭтаФорма.ТолькоПросмотр на каждом шаге. Если вы видите, что значение изменилось с Ложь на Истина, посмотрите стек вызовов (Call Stack), чтобы понять, какая процедура или подписка на событие спровоцировала это изменение.
2. Проверка состояния объекта: В 1С 8.1 состояние документа (проведен/не проведен, помечен на удаление) может влиять на доступность элементов формы. Проверьте, не срабатывает ли какая-либо проверка статуса документа в модуле объекта, которая устанавливает ТолькоПросмотр для всей формы.
3. Исключение влияния командной панели: Если у вас настроена КоманднаяПанель, проверьте, не привязана ли она к действиям, которые блокируются платформой. Иногда отсутствие кнопок добавления или удаления строк в ТЧ связано не с доступностью самой ТЧ, а с настройками командной панели, связанной с источником данных.
Анализируя ситуацию, помните: платформа 1С 8.1 обладает механизмом приоритетности прав и событий, который часто оказывается сильнее локального кода в модуле формы. Последовательная проверка прав, дат запрета и событий модуля объекта позволит вам быстро устранить препятствие и вернуть табличной части возможность редактирования.