Как запретить создание новой номенклатуры в форме подбора в 1С:Предприятие 7.7?

Программист 1С v7.7 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы с типовыми конфигурациями на платформе 1С:Предприятие 7.7, такими как «Торговля и Склад», часто возникает необходимость разграничить права пользователей. Одна из наиболее частых задач — запретить пользователю создавать новую номенклатуру непосредственно в момент подбора товаров в приходную накладную. Это необходимо для обеспечения порядка в справочнике и предотвращения появления дублей или некорректно заполненных карточек товаров. Разберем, как реализовать этот запрет эффективно и просто.

Вариант 1: Использование свойства формы «ТолькоПросмотр»

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

Для реализации этого метода нам потребуется внести изменения в модуль формы справочника Номенклатура. Рассмотрим шаги, которые необходимо выполнить:

  1. Откройте конфигуратор вашей базы данных.
  2. Найдите справочник Номенклатура в дереве объектов.
  3. Перейдите к редактированию Формы подбора (или той формы, которая используется для выбора товаров в табличную часть документа).
  4. В модуле формы найдите (или создайте, если её нет) процедуру ПриОткрытии().
  5. Добавьте в эту процедуру команду переключения режима формы.

Код, который необходимо разместить в модуле формы, выглядит следующим образом:


Процедура ПриОткрытии()
    // Устанавливаем режим только просмотр, чтобы запретить создание и редактирование
    Форма.ТолькоПросмотр(1);
КонецПроцедуры

После сохранения изменений, при каждом вызове формы подбора, пользователь увидит, что кнопки «Новый», «Копировать» и «Изменить» станут недоступны. Это полностью решает вопрос несанкционированного создания элементов номенклатуры.

Вариант 2: Анализ контекста при открытии формы

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

В этом случае в процедуре ПриОткрытии() мы можем проверять, откуда именно открыта форма. Если форма вызвана из документа, мы можем применять ограничение, а если она открыта из главного меню «Справочники», ограничение применять не будем.

Разберем логику такой проверки:


Процедура ПриОткрытии()
    // Предположим, мы передали через контекст признак того, что открываемся из документа
    Если глВызовИзДокумента = 1 Тогда
        Форма.ТолькоПросмотр(1);
    КонецЕсли;
КонецПроцедуры

Этот подход требует небольшой доработки в коде документов, которые вызывают подбор. Мы должны передать глобальную переменную или параметр формы, чтобы форма справочника «понимала», в каком режиме её открыли.

Почему это важно для учета?

Ограничение создания номенклатуры «на лету» — это не просто прихоть программиста, а важная часть методологии ведения управленческого учета. Когда пользователи создают элементы хаотично:

Принуждая пользователя создавать номенклатуру через отдельное меню (Справочник — Номенклатура — Новый), вы гарантируете, что ответственный сотрудник (например, менеджер по закупкам или оператор) внесет все необходимые данные согласно регламенту компании. Это значительно повышает качество базы данных и облегчает последующую отчетность и анализ продаж.

Мы проанализировали основные способы решения задачи. Метод с Форма.ТолькоПросмотр(1) является наиболее оптимальным с точки зрения трудозатрат и надежности для типовых конфигураций на платформе 7.7. Надеемся, что данные инструкции помогут вам настроить работу пользователей максимально эффективно!

← На главную