Почему в 1С:УНФ не редактируется документ и не выбирается номенклатура: причины и решение

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет
← На главную

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

1. Проверка программной блокировки формы (Только просмотр)

Первым делом проанализируем состояние формы документа. Если поля неактивны, скорее всего, для формы программно установлен режим ТолькоПросмотр = Истина. В конфигурации УНФ это часто происходит в процедуре ПриСозданииНаСервере. Система проверяет определенные условия и, если они соблюдены, блокирует редактирование. Для разблокировки элементов и изменения данных без вмешательства в код можно использовать обработку для открытия доступа к заблокированным реквизитам форм.

Разберем, на что именно стоит обратить внимание в коде:

  1. Статус документа: В УНФ многие документы (например, «Заказ покупателя» или «Заказ-наряд») завязаны на бизнес-процессы. Если документ имеет статус «Завершен» или «Закрыт», форма автоматически переходит в режим чтения. Попробуйте временно изменить статус на «В работе» и проверьте доступность полей.
  2. Признак проведения: Некоторые документы блокируются от изменений сразу после проведения, если это заложено в логику расширений или специфических настроек прав.
  3. Программный код: Нам необходимо зайти в Конфигуратор, найти форму соответствующего документа и изучить обработчик события ПриСозданииНаСервере.

Пример кода, который может вызывать блокировку:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Проверка статуса документа
    Если Объект.Статус = Справочники.СостоянияЗаказовПокупателей.Завершен Тогда
        ЭтаФорма.ТолькоПросмотр = Истина;
    КонецЕсли;

    // Проверка прав на редактирование цен
    Если Не РолиДоступны("ПолныеПрава, РедактированиеЦенВДокументах") Тогда
        Элементы.ЗапасыЦена.Доступность = Ложь;
    КонецЕсли;

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

2. Анализ прав доступа и RLS

Если программный код не содержит жестких блокировок, проанализируем права текущего пользователя. В 1С:УНФ права могут быть настроены очень гибко, и отсутствие прав на один связанный объект может блокировать работу со всей формой.

Выясним причину через стандартный отчет:

  1. Перейдем в раздел Настройки — Настройки пользователей и прав.
  2. Выберем пункт «Анализ прав доступа».
  3. Сформируем отчет по конкретному пользователю и документу. Нам нужно убедиться, что у пользователя есть право «Редактирование» (Update), а не только «Просмотр» (View).

Также стоит проверить настройки RLS (Record Level Security). Если в базе включено ограничение прав на уровне записей, пользователь может видеть документ, но не иметь права на его изменение, если документ относится к «чужой» организации, складу или кассе, доступ к которым пользователю закрыт.

3. Проверка даты запрета редактирования

Даже если документ создан недавно, стоит проверить настройки даты запрета изменений. Иногда администраторы устанавливают дату запрета «на вчера» или используют динамические настройки (например, «конец предыдущего дня»).

Выполним следующие шаги:

  1. Зайдем в раздел Администрирование — Поддержка и обслуживание — Дата запрета изменения данных.
  2. Проверим, установлена ли галочка «Дата запрета изменения».
  3. Посмотрим детализацию по пользователям. Убедимся, что для проблемного сотрудника или его группы не установлена дата, охватывающая текущий период (апрель текущего года).

4. Специфика файлового режима и сетевых блокировок

Поскольку база файловая и лежит на сервере, доступ к ней осуществляется через общую сетевую папку. Это накладывает определенные технические риски. Проанализируем сетевое взаимодействие.

Иногда операционная система Windows (через протоколы SMB 2/3) некорректно кэширует состояние файлов базы данных (1Cv8.1CD). Если кто-то другой открывал этот документ и сессия завершилась аварийно, в папке с базой могут остаться временные файлы блокировок с расширениями *.lck или *.pfl. Программа может решить, что файл занят, и открыть его в режиме «только чтение» для текущего сеанса.

Рекомендация: Попросите всех пользователей выйти из базы, проверьте через «Управление компьютером» на сервере наличие открытых файлов в папке с базой и завершите все сессии. Удалите файлы *.lck, если они остались после выхода всех пользователей.

5. Электронный документооборот (ЭДО)

В современных версиях УНФ активное использование ЭДО накладывает свои ограничения. Если документ (например, «Расходная накладная») был отправлен контрагенту через 1С-ЭДО и уже имеет статус «Завершен» (подписан обеими сторонами), система блокирует любые изменения в табличной части. Это необходимо для обеспечения юридической значимости: данные в базе должны строго соответствовать тому, что подписано электронной подписью.

6. Тестирование и исправление (ТиИ)

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

Запустим процедуру обслуживания:

  1. Создадим резервную копию базы (обязательно!). Для регулярного обслуживания и автоматического выполнения этой операции применяется программа для создания резервных копий и тестирования 1С.
  2. Зайдем в Конфигуратор.
  3. Выберем меню Администрирование — Тестирование и исправление.
  4. Отметим пункты:
    • Реиндексация таблиц информационной базы.
    • Проверка логической целостности.
    • Пересчет итогов.
  5. Нажмем «Выполнить».

Часто именно реиндексация помогает оживить «зависшие» формы выбора номенклатуры, которые перестали открываться из-за поврежденных индексов таблиц.

7. Масштабирование и невидимые окна

Существует редкий визуальный баг: когда пользователь нажимает кнопку выбора номенклатуры, окно выбора открывается, но за пределами видимости экрана или «схлопнутым» в узкую полоску. Это происходит из-за некорректного сохранения настроек положения окна в кэше пользователя.

Поскольку кэш вы уже чистили, попробуйте также сбросить настройки конкретной формы: Главное меню — Настройки — Настройки форм — выбрать нужную форму — Установить стандартные настройки. Это вернет все элементы интерфейса и окна выбора в исходное состояние.

← На главную