Содержание:
1. Введение и постановка задачи
2. Подключение документа к подсистеме БСП 1
3. Доработки в форме документа
4. Форма для разблокирования реквизитов
1. Введение и постановка задачи.
Рассмотрим пример на конфигурации 1С 8 УТ 11 (аналогично можно сделать и в ЕРП системе 1С и в 1С:Комплексная автоматизация 2), как можно запретить пользователям редактировать ряд реквизитов документа. При этом будет использоваться подсистема БСП.
Итак, на примере сохраненного документа «План продаж по номенклатуре» сделаем блокировку пользователя на возможность редактирования полей формы:
- Статус;
- Начало и окончание периода;
- Сценарий;
- Вид планов;
- ТЧ Товары;
- Кнопки: ПровестиИЗакрыть, Записать, Провести.
При этом должна быть возможность, что при нажатии на специальную кнопку, поля становятся доступными для редактирования.
Данную, задачу можно решить или с помощью ручного изменения обработчиков формы или с использованием подсистемы БСП «Запрет редактирования реквизитов объектов». Рассмотрим именно подсистему БСП.
Имеются преимущества использования БСП:
- в типовых решениях уже реализованы примеры, которые можно взять за основу;
- применяется для других конфигураций на базе БСП.
2. Подключение документа к подсистеме БСП 1
Первое, с чего нужно начать – это подключить новый документ «План продаж по номенклатуре» к подсистеме БСП.
Для этого его нужно прописать в процедуре «ПриОпределенииОбъектовСЗаблокированнымиРеквизитами» общего модуля «ЗапретРедактированияРеквизитовОбъектовПереопределяемый».
В типовой процедуре уже подключено много справочников, но нет документов. Подключаем наш документ, как показано коде на скрине:
Таким образом мы подключили документ 1С:КА 2, ERP системы 1С, 1С 8 УТ 11 к подсистеме БСП.
Далее нужно определить список блокируемых реквизитов.
Для этого в модуле менеджера документа «План продаж по номенклатуре» нужно реализовать специальную функцию «ПолучитьБлокируемыеРеквизитыОбъекта». Функция будет возвращать массив строк с именами реквизитов формы, объекта и табличных частей, которые предполагается запретить для редактирования.
На скрине представлено, как должна выглядеть данная функция:
Теперь обновим конфигурацию, запустим базу и увидим, что реквизиты доступны на редактирование, так как еще необходимо произвести доработки в форме документа.
3. Доработки в форме документа
В 1С:КА 2, ERP системе 1С, 1С 8 УТ 11 в процедуре «ПриСозданииНаСервере» и «ПослеЗаписиНаСервере» необходимо добавить процедуру «ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты»
ПриСозданииНаСервере:
ПослеЗаписиНаСервере:
Также необходимо подключить специальные процедуры для работы с разблокировкой реквизитов и работой формы разблокировки. Примеры данных процедур можно взять за основу, например, из справочника Склады
Добавляем процедуры в модуль формы документа и далее нужно будет разработать форму «РазблокированиеРеквизитов».
4. Форма для разблокирования реквизитов
За основу копируем форму из справочника Склады и вставляем в документ. Далее делаем заготовку с модулем, как на скрине (удаляем ненужный текст):
Также удаляем ненужные реквизиты, оставим только несколько, чтобы переименовать. Получается вот такая заготовка
Далее переименовываем реквизиты и размещаем на форме, в итоге получаем результат:
Далее возвращаемся к модулю формы и дорабатываем наши заготовленные процедуры, которые в итоге будут выглядеть, как на скрине
Теперь можем обновиться и проверить работоспособность механизма. Видим, что у нас заблокированы перечисленные реквизиты, а также кнопки проведения и записи.
Обработку по кнопкам добились конструкцией, которая уже была ранее показана на скрине, где элементы прописаны в поле статус через запятую. Также обратим внимание на «Товары», где добавлено еще «ТоварыПоПериодам», зависимая таблица необходимая в интерактивных действиях.
Для вызова разблокировки обратимся через «Еще» меню формы – «Разрешить редактирование реквизитов»
Откроется наша форма разблокировки редактирования, оставим несколько полей на разблокировку
В результате у нас включились на редактирование выбранные реквизиты и от них - подчиненные (например, кнопки проведения и записи от статуса).
Вот так с помощью подсистемы БСП можно доработать и получить отличный по образцу типовых решений необходимый механизм доступности к полям документа или других объектов метаданных в 1С:КА 2, ERP системе 1С, 1С 8 УТ 11.
Специалист компании ООО «Кодерлайн»
Сергей Омельчук.