В процессе работы с конфигурацией 1С:Документооборот 8 КОРП (редакция 2.1) пользователи часто сталкиваются с ситуацией, когда в карточке документа (например, во внутреннем документе) невозможно добавить более одного контрагента. При попытке добавить вторую строку кнопка «Добавить» оказывается неактивной или система просто не дает расширить список, хотя у администратора всё работает корректно. Проанализируем причины этой проблемы и разберем по шагам способы её решения.
Рассмотрим наиболее вероятную причину, которая подтверждается практикой многих специалистов. В настройках Вида документа существует опция, регулирующая строгость соблюдения шаблона. Проанализируем ситуацию: если в виде документа установлен флаг «Запретить изменение реквизитов из шаблона», система начинает жестко контролировать все поля, которые были предзаполнены в шаблоне.
Выясним техническую природу этого ограничения. В конфигурации за это отвечает процедура УстановитьДоступностьПоЗапрету. При включенной опции программа просматривает реквизиты шаблона. Если реквизит заполнен, соответствующее поле на форме переводится в режим ТолькоПросмотр.
Важный нюанс: табличная часть Контрагенты в программном коде шаблона часто имеет тип РезультатЗапроса. Функция ЗначениеЗаполнено() для этого типа данных в старых релизах (например, 2.1.9.3) почти всегда возвращает Истина, даже если список фактически пуст или содержит одного контрагента. В итоге система ошибочно «замораживает» всю табличную часть для обычного пользователя, оставляя права на редактирование только пользователям с ролью ПолныеПрава.
Чтобы решить проблему этим способом, выполним следующие действия:
Если манипуляции с шаблоном не помогли, нам необходимо проверить глобальные настройки системы. Проанализируем, включена ли возможность ведения учета по нескольким сторонам сделки или документа. В 1С:Документооборот за это отвечает специальная функциональная опция.
Рассмотрим шаги по проверке этой настройки:
Если эта опция выключена, система на интерфейсном уровне будет ограничивать пользователя выбором только одного контрагента, даже если в виде документа стоит признак Является договором или включен учет по контрагентам. После включения опции может потребоваться перезапуск сеанса пользователя.
Разберем еще один важный механизм «1С:Документооборот» — Матрицу доступности по состояниям. В этой конфигурации права на редактирование полей могут зависеть не только от профиля полномочий пользователя, но и от того, в каком статусе находится документ (например, «Проект», «На согласовании», «Согласован»).
Посмотрим, как проверить эти настройки:
Часто бывает так, что общая галочка Разрешено изменять документ стоит, но в детализации по полям доступ к табличной части Контрагенты ограничен. Установите необходимые разрешения и проверьте результат под обычным пользователем.
Если вы не можете обновить конфигурацию до релиза, где этот баг исправлен (начиная с 2.1.13), а снимать запрет на изменение реквизитов из шаблона нельзя по соображениям безопасности, рассмотрим вариант внесения правок в код. Проанализируем, как можно изменить поведение системы через расширение.
Нам необходимо найти модуль РаботаСШаблонамиДокументов и процедуру, отвечающую за установку доступности. Нам нужно добавить условие, чтобы проверка заполненности не блокировала табличные части. Пример логики исправления может выглядеть следующим образом:
// В процедуре УстановитьДоступностьПоЗапрету
Если ТипЗнч(РеквизитШаблона) = Тип("РезультатЗапроса") Тогда
// Для табличных частей не устанавливаем жесткую блокировку ТолькоПросмотр,
// если логика процесса предполагает добавление новых строк пользователем
Продолжить;
КонецЕсли;
Этот код позволяет игнорировать проверку «заполненности» для сложных типов данных, таких как результаты запросов, которые система использует для представления списков контрагентов или товаров в шаблонах. Таким образом, поля шапки останутся защищенными, а табличные части — доступными для редактирования.
Иногда корень проблемы кроется в RLS (Row Level Security). Если под администратором всё работает, а у пользователя — нет, это верный признак ограничения прав. Проанализируем ситуацию: пользователь может иметь право на добавление строки в документ, но не иметь прав на «Чтение» или «Просмотр» определенных папок в справочнике Контрагенты.
В этом случае кнопка «Добавить» может быть активна, но при попытке выбора или открытия списка система будет вести себя некорректно. Рекомендуется выполнить следующие действия:
ПолныеПрава (в копии базы) для подтверждения, что проблема именно в правах доступа.Подведем итог: в большинстве случаев проблема решается либо отключением запрета изменения реквизитов из шаблона в настройках вида документа, либо включением функциональной опции учета по нескольким контрагентам. Если же это не помогает, следует переходить к анализу матрицы доступности по состояниям и программному коду в части обработки шаблонов.