Подробный гайд: Почему в веб-клиенте 1С кнопки становятся неактивными - Часть 3

Почему в веб-клиенте 1С кнопки становятся неактивными: режим просмотра, права, блокировки, код, кэш и браузер. Практический разбор причин и решений.

2026.10.04                  


Подробный гайд: Почему в веб-клиенте 1С кнопки становятся неактивными - Часть 3Подробный гайд: Почему в веб-клиенте 1С кнопки становятся неактивными - Часть 3

10. Если кнопка стандартная: «Записать», «Провести», «Записать и закрыть»

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

Причины

1. Форма только просмотр

Проверьте, открыта ли форма в режиме только просмотр.

2. Объект не изменён

Некоторые стандартные команды могут быть недоступны, если данные не изменены. Например, форма уже записана, пользователь ничего не менял, и кнопка «Записать» может быть неактивна.



Иногда в разработке делают так:

ЭтаФорма.Модифицированность = Истина;

Но это нужно использовать осторожно. Это заставит форму считать данные изменёнными.


3. Нет прав

Проверьте права:

  • изменение;
  • запись;
  • проведение;
  • отмена проведения;
  • удаление;
  • интерактивная активация;
  • использование нужных команд.

4. Объект заблокирован

Если объект заблокирован, стандартные команды записи могут быть недоступны.


5. Статус или бизнес-логика

В типовых конфигурациях часто нельзя менять:

  • проведённые документы;
  • закрытые периоды;
  • документы в определённом статусе;
  • элементы с пометкой удаления;
  • объекты после закрытия месяца;
  • объекты чужой организации;
  • объекты чужого склада или подразделения.

11. Если кнопка находится в списке

Если кнопка относится к динамическому списку, доступна/недоступна она может быть по другим правилам.

Возможные причины

1. Не выбрана текущая строка

Например, кнопка «Открыть», «Изменить», «Удалить» должна быть доступна только при выбранной строке.

Проверьте:

Элементы.МойСписок.ТекущиеДанные

Если ТекущиеДанные = Неопределено, кнопка может быть неактивна.

Пример логики:

&НаКлиенте
Процедура ОбновитьДоступностьКнопки()
    Элементы.МояКнопка.Доступность =
        Элементы.МойСписок.ТекущиеДанные <> Неопределено;
КонецПроцедуры

Такую процедуру можно вызывать при:

  • открытии формы;
  • активизации строки;
  • смене текущего элемента;
  • обновлении списка.

2. Список пуст

Если данных нет, кнопки, зависящие от текущей строки, могут быть неактивны.


3. Нет прав на строки из-за RLS

Пользователь может видеть список, но не иметь прав на изменение конкретных строк.


4. Настройки списка

Пользователь мог настроить список так, что:

  • нет текущей строки;
  • отбор скрывает данные;
  • список не заполнен;
  • данные ещё не загружены.

12. Проверка пользовательских настроек формы

Пользовательские настройки иногда ломают ожидаемое поведение.

Что сделать:

  1. Открыть проблемную форму.
  2. Нажать кнопку «Ещё».
  3. Найти пункт изменения формы или настроек.
  4. Сбросить настройки на стандартные.

В разных конфигурациях название может отличаться:

Ещё -> Изменить форму
Ещё -> Настроить форму
Ещё -> Установить стандартные настройки

Также можно очистить сохранённые настройки пользователя через администрирование, если это допустимо в вашей системе.

Признак, что дело в настройках:

  • у одного пользователя кнопка неактивна;
  • у другого активна;
  • в тонком клиенте и веб-клиенте ведёт себя по-разному;
  • после сброса настроек становится нормально.

13. Проверка расширений конфигурации

Если используются расширения, они могут быть источником проблемы.

Проверьте:

  • расширение активно;
  • расширение подключено к нужной базе;
  • расширение не конфликтует с основной конфигурацией;
  • в расширении нет переопределения модуля формы;
  • в расширении нет своей версии ПриСозданииНаСервере;
  • расширение не добавляет обработчик, который меняет доступность;
  • расширения применяются в веб-клиенте так же, как в тонком клиенте.

Особенно важно, если в расширении есть:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // свой код
КонецПроцедуры

или:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // свой код
КонецПроцедуры

Иногда основная конфигурация работает нормально, а расширение в веб-клиенте даёт побочный эффект.


14. Особенности веб-клиента, которых нет в тонком клиенте

Веб-клиент — это не просто «та же 1С в браузере». Есть важные отличия.

1. Асинхронность



В веб-клиенте многие пользовательские взаимодействия асинхронные. Нельзя рассчитывать, что диалог вернёт результат сразу, если используется старый синхронный стиль.

Проверяйте все места с:

Вопрос
Предупреждение
ВвестиЧисло
ВвестиСтроку
ВвестиДату
ВыбратьФайл

и аналогичными.

Для веб-клиента предпочтительны асинхронные методы:

ПоказатьВопрос
ПоказатьПредупреждение
ПоказатьВводЧисла
ПоказатьВводСтроки
ПоказатьВводДаты
ПоказатьВыборФайла

2. Модальные окна

Если открыто модальное окно, основная форма блокируется.

В браузере это может быть неочевидно:

  • окно могло открыться неактивным;
  • браузер мог заблокировать всплывающее окно;
  • окно могло потеряться среди вкладок;
  • пользователь мог не заметить диалог;
  • модальное окно могло зависнуть.

3. Долгие серверные вызовы

Пока сервер обрабатывает запрос, платформа может блокировать интерфейс. Если серверный вызов длится долго, кнопки становятся неактивными и появляется состояние ожидания.

Причины:

  • тяжёлый запрос;
  • блокировка таблицы;
  • фоновое задание;
  • взаимоблокировка;
  • большая транзакция;
  • медленный сервер;
  • проблемы с веб-сервером;
  • сетевые задержки.

4. Ошибки сети

Веб-клиент сильно зависит от сети. Если соединение оборвалось или сервер не ответил, интерфейс может остаться в некорректном состоянии.

Что проверить:

  • стабильность сети;
  • файрвол;
  • таймауты веб-сервера;
  • HTTP-коды в браузере;
  • ошибки в журнале регистрации.

5. Кэш браузера

Иногда старый скрипт, кэш формы или кэш платформы даёт некорректное поведение.

Сделайте:

  • очистку кэша браузера;
  • открытие в режиме инкогнито;
  • проверку в другом браузере;
  • перезапуск веб-сервера, если есть подозрение на кэш публикации;
  • перезапуск сеанса пользователя.

6. Расширения браузера

Мешать могут:

  • блокировщики рекламы;
  • блокировщики всплывающих окон;
  • антивирусы с веб-защитой;
  • расширения для приватности;
  • корпоративные политики;
  • плагины, блокирующие скрипты.

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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