Как добавить новый объект конфигурации в 1С:Управление торговлей 10.3, чтобы он появился в интерфейсе?

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

При переходе от разработки на управляемых формах (например, в современных редакциях «1С:Управление торговлей 11») к поддержке и доработке решений на обычных формах (таких как классическая «1С:Управление торговлей 10.3») программисты часто сталкиваются с неожиданной проблемой. Новый объект — будь то документ, отчет или обработка — успешно создан в конфигураторе, включен в нужные подсистемы, но в пользовательском режиме (в интерфейсе программы) он попросту не отображается.

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

Различие логики построения командного интерфейса

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

В обычном приложении (на платформе которого и спроектирована конфигурация «Управление торговлей 10.3») роль подсистем исключительно декоративная и разработческая. Они служат для логической группировки метаданных внутри конфигуратора и фильтрации при сравнении или объединении. Автоматически меню по подсистемам в обычном приложении не строится. Весь интерфейс здесь необходимо проектировать вручную через специализированные объекты метаданных — Интерфейсы.

Поэтому, если мы просто добавили документ и раскидали его по подсистемам, в режиме «1С:Предприятие» мы его не увидим ни в главном меню, ни в каких-либо стандартных панелях.

Шаг 1. Проверяем физическое наличие объекта в базе данных

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

  1. Запустим программу «1С:Предприятие» под пользователем с полными правами.
  2. В главном меню найдем пункт «Операции».
  3. Выберем интересующий нас тип объектов (например, «Документы» или «Отчеты»).
  4. В открывшемся полном списке всех метаданных конфигурации найдем наш новый объект.

Если в списке «Операции» наш документ присутствует, значит, структура базы данных обновлена корректно, физически объект существует, и проблема кроется исключительно в его визуальном представлении и правах доступа.

Шаг 2. Настраиваем права доступа (Роли и Права)

Даже если мы идеально пропишем кнопку вызова документа в главном меню, обычный пользователь (а иногда и администратор) не сможет ее увидеть, если у него отсутствуют права на чтение или просмотр данного объекта. Платформа 1С работает по принципу безопасности: всё, на что у пользователя нет прав, скрывается из интерфейса автоматически.

Давайте разберем по шагам, как настроить права на новые метаданные в конфигураторе:

  1. Откроем дерево метаданных в конфигураторе и развернем ветку Общие -> Роли.
  2. Дважды кликнем по роли ПолныеПрава. Откроется окно настройки прав.
  3. В левой колонке найдем созданные нами объекты (документ, отчет и перечисление).
  4. Для документа установим все флажки прав (включая Чтение, Просмотр, Добавление, Изменение, Проведение и т. д.).
  5. Для нового перечисления достаточно установить флажки Чтение и Просмотр.
  6. Повторим процедуру для других профильных ролей (например, МенеджерПоПродажам, если документ относится к блоку оптовых продаж).

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

Шаг 3. Добавление объекта в меню (Редактор интерфейсов)

Теперь переходим к самому главному действию — добавлению нашего объекта в конкретные интерфейсы программы, чтобы пользователи могли вызывать его из меню.

В конфигурации «Управление торговлей 10.3» существует несколько предопределенных интерфейсов (например, «Полный», «Продажи», «Закупки», «Склад»). Мы рассмотрим добавление нового документа на примере интерфейса «Полный».

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

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

Шаг 4. Включение документа в Журналы документов

Чтобы работа с новым документом была удобной, его часто требуется отображать в общем списке вместе с другими похожими документами (например, в журнале документов по продажам или в общем журнале документов контрагента).

Давайте рассмотрим, как включить наш документ в существующий журнал:

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

Шаг 5. Реализация логики проведения и движений по регистрам

Просто создать документ и вывести его в интерфейс недостаточно для его полноценной интеграции в учетную систему. Документ должен совершать движения по регистрам накопления или сведений при его проведении.

Давайте разберем пример реализации проведения документа в коде. Откроем модуль объекта нашего нового документа и найдем предопределенную процедуру ОбработкаПроведения. Опишем в ней движения по регистру:


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    // Очищаем старые движения по регистру перед проведением
    Движения.Продажи.Записывать = Истина;
    Движения.Продажи.Очистить();
    
    // Создаем набор записей для формирования движений
    Для Каждого ТекСтрокаИзТабличнойЧасти Из Товары Цикл
        
        Движение = Движения.Продажи.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ТекСтрокаИзТабличнойЧасти.Номенклатура;
        Движение.Количество = ТекСтрокаИзТабличнойЧасти.Количество;
        Движение.Сумма = ТекСтрокаИзТабличнойЧасти.Сумма;
        
    КонецЦикла;
    
КонецПроцедуры

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

Резюмируя все выполненные действия: для успешного добавления нового объекта в «1С:Управление торговлей 10.3» нам обязательно нужно проверить права доступа через Роли, вручную встроить команду открытия в нужные Интерфейсы, а также привязать объект к целевым Журналам документов и прописать логику его движений. Соблюдение этой последовательности гарантирует, что ваш объект будет корректно отображаться и работать у всех конечных пользователей программы.

← На главную