Мы часто сталкиваемся с ситуацией, когда в информационных системах на платформе 1С:Предприятие 8.3 пользователи не видят все необходимые данные в списках документов, хотя администраторы или пользователи с полными правами наблюдают полную картину. В частности, речь идет об отсутствии поля "Дата" (а иногда и "Ссылка") в списках таких важных документов, как Приходные Кассовые Ордера (ПКО) и Расходные Кассовые Ордера (РКО). Давайте подробно разберем, почему это происходит и как можно эффективно решить эту проблему.
Наш опыт и анализ подобных ситуаций показывают, что основная причина кроется в некорректно настроенных правах доступа для пользователей. Если при предоставлении пользователю роли "Полные права" поле "Дата" чудесным образом появляется, это прямо указывает на ограничения в текущей пользовательской роли.
В системе 1С:Предприятие 8.3, особенно на управляемых формах, реализована гибкая система управления правами. Эти права могут регулировать не только общий доступ к объектам (документам, справочникам), но и видимость отдельных реквизитов (полей) динамического списка. Таким образом, для корректного отображения полей "Дата" и "Ссылка" могут требоваться специфические права доступа, которые не были включены в роль пользователя.
Следует тщательно проверить, какие именно права отсутствуют у пользователя для документов ПриходныйКассовыйОрдер и РасходныйКассовыйОрдер. Проблема может затрагивать не только общие права на чтение или просмотр документов, но и более тонкие настройки, связанные с доступом к конкретным реквизитам или регистрам, на которых базируется формирование динамического списка.
Также важно отметить, что 1С:Управление торговлей (УТ) часто использует различные формы списков для одних и тех же документов. Например, "Оформление ПКО" и "ПКО" могут представлять собой разные формы списков. "Оформление ПКО" — это специализированная форма, возможно, для ввода новых документов или для определенного рабочего места (например, кассира), которая может иметь упрощенный интерфейс или скрывать некоторые поля по умолчанию. "ПКО" же, вероятно, является более общим списком, предоставляющим полный набор данных и функций. Каждая из этих форм может иметь свои настройки видимости полей и собственные ограничения по правам.
Прежде чем переходить к более сложным решениям, рассмотрим стандартные действия, которые могут помочь, хотя в данном конкретном случае они не привели к полному устранению проблемы:
В нашем случае эти действия не помогли, что еще раз подтверждает глубокую связь проблемы с правами доступа.
Раз проблема кроется в правах, давайте рассмотрим, как мы можем провести более глубокий анализ, чтобы найти то самое отсутствующее право:
Документ.ПриходныйКассовыйОрдер, Документ.РасходныйКассовыйОрдер, а также на их реквизиты, связанные с датой и ссылкой.Когда стандартные методы не помогают, а изменение типовой конфигурации нежелательно, мы можем применить более гибкий подход — использование расширений. Этот метод позволяет внести точечные изменения в логику работы формы, не затрагивая при этом исходную конфигурацию. Именно такой подход был предложен в одном из сообщений форума и является весьма эффективным обходным путем, если проблема действительно в том, как поля запрашиваются или связываются с элементами формы для данного пользователя.
Рассмотрим шаги по реализации этого решения:
Первым шагом нам необходимо создать новое расширение конфигурации. Это делается в режиме "Конфигуратор" через меню "Конфигурация" -> "Расширения конфигурации" -> "Добавить". Присвоим расширению понятное имя, например, "ИсправлениеСпискаПКО".
Далее нам потребуется добавить в наше расширение ту форму списка, в которой отсутствует поле "Дата".
Документ.ПриходныйКассовыйОрдер.ФормаСписка или ФормаСпискаДокументов, как в сообщении форума).Динамический список в 1С формируется на основе запроса, который использует Систему Компоновки Данных (СКД). Нам необходимо скорректировать этот запрос, чтобы поля "Дата" и "Номер" явно выбирались и были доступны.
Таблица и имя, схожее с Список).Дата и Номер, присвоив им новые псевдонимы (алиасы). Это поможет обойти потенциальные проблемы с правами на стандартные имена полей. Например, если в запросе есть строка ПриходныеКассовыеОрдера.Дата, мы изменим ее на ПриходныеКассовыеОрдера.Дата КАК ДатаПКО. Аналогично для номера: ПриходныеКассовыеОрдера.Номер КАК НомерПКО.Пример фрагмента запроса (предполагая, что основная таблица документа называется ПриходныеКассовыеОрдера):
ВЫБРАТЬ
ПриходныеКассовыеОрдера.Ссылка,
ПриходныеКассовыеОрдера.ВерсияДанных,
ПриходныеКассовыеОрдера.ПометкаУдаления,
ПриходныеКассовыеОрдера.Номер КАК НомерПКО, // Изменено
ПриходныеКассовыеОрдера.Дата КАК ДатаПКО, // Изменено
ПриходныеКассовыеОрдера.Проведен,
... // Другие поля
ИЗ
Документ.ПриходныйКассовыйОрдер КАК ПриходныеКассовыеОрдера
Мы должны убедиться, что эти поля присутствуют в запросе и имеют новые, уникальные псевдонимы, чтобы избежать конфликтов и обеспечить их явную доступность.
После изменения запроса динамического списка нам необходимо связать элементы формы (колонки) с новыми именами полей, которые мы определили в запросе.
ПутьКДанным (DataPath).ПутьКДанным = ПриходныеКассовыеОрдера.ДатаПКО, а для колонки "Номер" — ПутьКДанным = ПриходныеКассовыеОрдера.НомерПКО.Это действие обеспечивает правильную привязку визуального представления колонки к данным, полученным из модифицированного запроса динамического списка.
После внесения всех изменений необходимо сохранить расширение и обновить конфигурацию базы данных. Затем мы должны протестировать работу списка документов под учетной записью проблемного пользователя, чтобы убедиться, что поле "Дата" (и "Номер", если оно тоже отсутствовало) теперь отображается корректно.
Мы выяснили, что отсутствие поля "Дата" в списках документов для пользователя при его наличии у администратора в 1С:Предприятии 8.3 практически всегда является следствием некорректно настроенных прав доступа. Несмотря на то, что это может быть вызвано точечными ограничениями на реквизиты, найти это конкретное право бывает чрезвычайно сложно и трудоемко.
Именно поэтому предложенное решение с использованием расширения конфигурации является оптимальным. Оно позволяет нам:
Применяя этот подход, мы не только устраняем видимую проблему, но и делаем это максимально безопасно и эффективно, поддерживая возможность легкого обновления конфигурации в будущем. Всегда помните о комплексном подходе: начинайте с анализа прав, но будьте готовы использовать гибкие инструменты, такие как расширения, для решения сложных и специфических задач.