Как добавить пользовательский реквизит 'Проверено' в документы 1С:Управление торговлей 10.3?

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

При работе с типовыми конфигурациями 1С:Предприятие, такими как "Управление торговлей", редакция 10.3, у пользователей часто возникает потребность в добавлении новых полей или флагов для отражения специфических бизнес-процессов. Одним из таких распространённых требований является необходимость отметки документов как "проверенных". В этой статье мы подробно рассмотрим, как можно реализовать добавление такого пользовательского реквизита под названием "Проверено" в документы вашей системы, проанализируем различные подходы и выясним их особенности, особенно в контексте устаревших, но всё ещё актуальных конфигураций, таких как УТ 10.3.

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

Механизм дополнительных реквизитов: Гибкое расширение без изменения конфигурации

Наиболее рекомендуемым и гибким решением для добавления пользовательских полей, таких как наш реквизит "Проверено", является использование механизма дополнительных реквизитов. Этот подход позволяет вносить изменения в структуру данных документов и справочников непосредственно в режиме "1С:Предприятие", без необходимости заходить в "Конфигуратор" и снимать конфигурацию с поддержки. Это критически важно для сохранения возможности лёгкого обновления типовой конфигурации в будущем.

Рассмотрим по шагам, как добавить дополнительный реквизит "Проверено" в документы УТ 10.3.

  1. Включение функционала дополнительных реквизитов:

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

    • Переходим в меню "Сервис".
    • Выбираем пункт "Настройки пользователя" или "Настройка программы". В некоторых версиях УТ 10.3 или более новых платформах это может быть "Администрирование" -> "Общие настройки" или "Настройки пользователя и прав".
    • Находим раздел, связанный с настройками дополнительных свойств или реквизитов. Обычно он называется "Дополнительные реквизиты и сведения" или "Использование дополнительных свойств и сведений". Устанавливаем флажок (галочку) для активации этой возможности. Без включения этого функционала мы не сможем добавлять новые реквизиты.

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

  2. Создание нового дополнительного реквизита:

    Теперь, когда механизм включён, мы можем приступить к созданию самого реквизита "Проверено".

    • Возвращаемся в меню "Сервис" или "Администрирование".
    • Находим пункт, который называется "Дополнительные реквизиты и сведения" или "Настройка дополнительных свойств".
    • Открывается список видов объектов, для которых можно добавить дополнительные реквизиты (справочники, документы и т.д.). Мы должны выбрать тот тип документа, куда хотим добавить наш реквизит. Например, если мы хотим добавлять реквизит "Проверено" в документ "Реализация товаров и услуг", то находим и выбираем этот вид документа из списка.
    • После выбора объекта (например, "Реализация товаров и услуг") мы увидим список уже существующих для него дополнительных реквизитов (если они есть). Нажимаем кнопку "Добавить" или "Создать новый" для создания нашего реквизита.
    • Откроется форма создания нового дополнительного реквизита. Здесь нам нужно будет заполнить следующие поля:
      1. Наименование: Вводим "Проверено". Это будет отображаемое имя нашего реквизита на форме документа.
      2. Тип значения: Для флага "Проверено" наиболее подходящим является логический тип. Выбираем "Булево" (или "Истина/Ложь", "Да/Нет" в зависимости от версии платформы). Этот тип значения будет отображаться на форме документа в виде удобного флажка (галочки), что позволит пользователям легко отмечать документ как проверенный или не проверенный.
      3. Заголовок: Можно оставить таким же, как "Наименование", или уточнить при необходимости.
      4. Подсказка: По желанию можно добавить краткую подсказку для пользователей.
      5. Значение по умолчанию: Мы можем установить значение по умолчанию. Если документ изначально должен быть не проверенным, оставляем это поле пустым или устанавливаем "Ложь". Если же по умолчанию документы считаются проверенными, можно установить "Истина".
    • Сохраняем новый дополнительный реквизит.
  3. Отображение реквизита на форме документа:

    После создания дополнительный реквизит автоматически появится на форме выбранного документа. Обычно он размещается на отдельной закладке, часто называемой "Дополнительно", "Реквизиты" или в специальном разделе формы документа. Пользователи смогут отмечать этот флажок непосредственно при работе с документом.

    Преимущества использования дополнительных реквизитов очевидны:

    • Гибкость: Мы можем легко добавлять и удалять реквизиты без участия программиста.
    • Обновляемость: Конфигурация остаётся типовой, что существенно упрощает процесс обновления системы.
    • Пользовательские настройки: Идеально подходит для реализации специфических пользовательских флагов и свойств, не влияющих на основную логику учёта.

Общие реквизиты: Альтернативный подход через "Конфигуратор"

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

Рассмотрим, в каких случаях мы можем использовать общие реквизиты и как это делается:

  1. Что такое общие реквизиты и когда их применять:

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

    • Для разделения данных: Это основной сценарий, когда необходимо изолировать данные разных организаций, филиалов или проектов в одной информационной базе. Например, если у нас есть несколько компаний, и мы хотим, чтобы каждый документ был привязан к определённой организации, и данные одной организации не были видны другой без специальных прав.
    • Для расширения состава реквизитов без разделения данных: В нашем случае, когда мы хотим добавить просто флаг "Проверено" для многих документов, без разделения данных.
  2. Процесс добавления общего реквизита в "Конфигураторе":

    Для добавления общего реквизита мы должны:

    • Запустить 1С:Предприятие в режиме "Конфигуратор".
    • Открыть дерево конфигурации (меню "Конфигурация" -> "Открыть конфигурацию").
    • В дереве конфигурации найти ветку "Общие", а внутри неё – "Общие реквизиты".
    • Нажать правую кнопку мыши на "Общие реквизиты" и выбрать "Добавить".
    • Задать имя реквизита (например, ПровереноОбщий) и выбрать тип значения "Булево".
    • Важно указать, для каких объектов метаданных этот реквизит будет доступен. Мы можем выбрать конкретные документы или все документы сразу.
    • После этого необходимо обновить конфигурацию базы данных (меню "Конфигурация" -> "Обновить конфигурацию базы данных").
    • После обновления, наш общий реквизит появится на форме выбранных документов. Возможно, потребуется ручная настройка формы документа через "Конфигуратор" для его удобного отображения.
  3. Особенности и ограничения для УТ 10.3:

    Как было упомянуто в обсуждении на форуме, в конфигурации УТ 10.3 могут существовать определённые ограничения или особенности режима совместимости платформы, которые могут усложнить или сделать менее предпочтительным использование общих реквизитов для простых пользовательских флагов. Работа с общими реквизитами в старых конфигурациях требует осторожности, так как любое изменение в "Конфигураторе" несёт риски и требует тестирования. Кроме того, любое изменение конфигурации в "Конфигураторе" ведёт к снятию с поддержки или созданию расширения (что не всегда доступно в УТ 10.3), что может затруднить будущие обновления.

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

Разграничение прав доступа к реквизиту "Проверено"

Вопрос разграничения прав доступа к созданному реквизиту – это не менее важный аспект, который мы должны обязательно рассмотреть. Часто бывает так, что не все пользователи должны иметь возможность устанавливать или снимать отметку "Проверено". Например, только главный бухгалтер или руководитель отдела должен иметь право на такую отметку.

Разберем, как мы можем управлять правами доступа для наших реквизитов.

  1. Права доступа для дополнительных реквизитов:

    Для дополнительных реквизитов права на их изменение обычно тесно связаны с правами пользователя на сам объект (документ). Это означает, что:

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

      В этом примере, мы бы создали новую роль "ИзменениеФлагаПроверено" и назначили бы её тем пользователям, которые должны иметь такое право. Отметим, что механизм получения дополнительного свойства (ПолучитьДополнительноеСвойство("Проверено")) может потребовать адаптации под конкретный способ хранения и доступа к дополнительным реквизитам в УТ 10.3, которые часто хранятся в отдельных регистрах сведений.

  2. Права доступа для общих реквизитов:

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

    В обоих случаях, для детального контроля доступа в 1С используются стандартные механизмы ролей и профилей групп доступа. В разделе "Администрирование" -> "Настройки пользователей и прав" мы можем настроить роли и профили, которые определяют, какие действия разрешены или запрещены для различных групп пользователей. В УТ 10.3 этот функционал может быть менее развит по сравнению с более новыми версиями, поэтому для специфических требований к безопасности может потребоваться доработка конфигурации.

    Особо хотим отметить ограничение доступа на уровне записей (RLS - Record Level Security). В УТ 10.3 RLS не был так развит, как в современных конфигурациях, и его использование для отдельных полей без глубоких изменений конфигурации может быть затруднительным. Если требуется ограничить доступ не только к изменению, но и к просмотру флага "Проверено" для определённых документов, это уже будет сложной задачей, требующей значительной доработки.

Заключение

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

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

Всегда помним, что перед внесением любых изменений в рабочую базу данных рекомендуется сделать её резервную копию и протестировать изменения на тестовой копии, чтобы избежать непредвиденных проблем. При обслуживании нескольких баз для этого можно использовать автоматическое архивирование и тестирование баз 1С.

← На главную