Подсистема запрет редактирования реквизитов объектов

ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(Форма, ГруппаДляКнопкиЗапрета, ЗаголовокКнопкиЗапрета, Объект);

//
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   // Подсистема запрета редактирования ключевых реквизитов объектов.
   ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
   // Обработчик подсистемы запрета редактирования реквизитов объектов.
   ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтаФорма);
КонецПроцедуры

В одном из занятий курса Настройка и доработка прав доступа, профилей пользователей и RLS в типовых конфигурациях рассматривается работа с подсистемой БСП “Запрет редактирования реквизитов объектов”. На конкретном примере тренер реализовывает запрет редактирования ряда полей и табличной части “Товары” на форме документа “План продаж”.

Напомним, что для реализации запрета редактирования данных формы нужно выполнить ряд действий, среди которых:

  1. Подключение документа к подсистеме БСП

Общий модуль ЗапретРедактированияРеквизитовОбъектовПереопределяемый

Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами()

Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты) Экспорт    
 //++ НЕ ГОСИС
ОбменДаннымиУТУП.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты);
Объекты.Вставить(Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолноеИмя(), "ПолучитьБлокируемыеРеквизитыОбъекта");//-- НЕ ГОСИС

 //++ изменения
 Объекты.Вставить(Метаданные.Документы.ПланПродаж.ПолноеИмя(), "ПолучитьБлокируемыеРеквизитыОбъекта");
 //-- изменения    
КонецПроцедуры

  1. Добавление в модуле менеджера документа функции ПолучитьБлокируемыеРеквизитыОбъекта(), где следует перечислить имена реквизитов формы, объекта и табличных частей, которые предполагается запретить для редактирования.
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
    Результат = Новый Массив;
    Результат.Добавить("Статус;ФормаПровестиИЗакрыть,ФормаЗаписать,ФормаПровести");
    Результат.Добавить("НачалоПериода;УстановитьИнтервал");
    Результат.Добавить("ОкончаниеПериода");
    Результат.Добавить("Сценарий");
    Результат.Добавить("ВидПлана");
    Результат.Добавить("Товары;ТоварыПоПериодам");    
    Возврат Результат;
КонецФункции

Вопрос

Добрый день! Как заблокировать доступ не к табличной части целиком, а к отдельной колонке табличной части? Например: Товары.Номенклатура.

Ответ тренера

Добрый день! Для блокировки редактирования отдельной колонки табличной части, например, колонки “Номенклатура”, нужно исправить код функции ПолучитьБлокируемыеРеквизитыОбъекта() на следующий:

Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
Результат = Новый Массив;
Результат.Добавить("Статус;ФормаПровестиИЗакрыть,ФормаЗаписать,ФормаПровести");
Результат.Добавить("НачалоПериода;УстановитьИнтервал");
Результат.Добавить("ОкончаниеПериода");
Результат.Добавить("Сценарий");
Результат.Добавить("ВидПлана");
Результат.Добавить("Товары.Номенклатура; ТоварыНоменклатура, ТоварыПоПериодамНоменклатура");
Возврат Результат;
КонецФункции

Создали новый вид цены в программе 1с: Управление Торговлей 11.4. Теперь его нужно изменить, но  поля неактивны и нельзя что-либо поменять.

Не редактируются реквизиты Вида Цены Ут11

Данное ограничение связано с  Подсистемой «Запрет редактирования реквизитов объектов», которая запрещает изменять некоторые реквизиты объектов, которые являются ключевыми и оказывают влияние на поведение других объектов. Данная

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

В данном случае Вид цены был только создан и нигде не используется. 

Проверяем доступна ли команда “Разрешить редактирование реквизитов “:

Разрешить редактирование реквизитов

Если Пользователи.РолиДоступны(«РедактированиеРеквизитовОбъектов»)

   И ПравоДоступа(«Редактирование», Ссылка.Метаданные())

   И НЕ ВсеРеквизитыБезПраваРедактирования Тогда

// Добавление команды

Команда = Форма.Команды.Добавить(«РазрешитьРедактированиеРеквизитовОбъекта»);

Если нет, то добавляем роль “РедактированиеРеквизитовОбъектов” и возможность редактирования данного объекта.

Появляется предупреждение о разблокировании реквизитов и необходимости проверить использование объекта. Если объект используется, то не рекомендуется разблокировать реквизиты и нужно нажать кнопку “Закрыть”.

Разблокирование реквизитов

Если же нажата кнопка “Разрешить редактирование”, то реквизиты на форме станут доступны для изменения:

Редактирование формы Виды Цен 

Внимание!!! Разблокирование реквизитов для редактирования Вы делаете на свой страх и риск.

Поделиться ссылкой:

Похожие записи

Состав библиотеки стандартных подсистем

Состав библиотеки стандартных подсистем (БСП) , редакция 2.3

Библиотека стандартных подсистем 2.3  включает в себя  набор универсальных функциональных подсистем, предназначенных для использования в  прикладных решениях на платформе «1С:Предприятие 8.3», версии 8.3.6 и выше.

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

Все функциональные подсистемы, входящие состав библиотеки, относятся к родительской  подсистеме «Стандартные подсистемы» в дереве объектов метаданных конфигуратора. Их  больше 52 подсистем и   можно условно разделить на следующие группы или категории:

Подсистемы  средств администрирования и  обслуживания

  1. Анализ журнала регистрации – Отчеты по активности пользователей, по продолжительности работы регламентных заданий и о критичных записях в журнале регистрации.
  2. Дополнительные отчеты и обработки – Подключение к программе дополнительных (внешних) отчетов и обработок без внесения изменений в конфигурацию.Привязка дополнительных отчетов и обработок к
    конкретным типам объектов или разделам командного
    интерфейса .Регламентное выполнение обработок по расписанию. Средства администрирования списка дополнительных отчетов и обработок
  3. Настройки программы – Готовые рабочие места (панели) для раздела “администрирование”. Подстройка состава панелей администрирования под текущий режим работы программы.
  4. Обновление конфигурации – Автоматическое обновление конфигурации (без открытия конфигуратора) по требованию, в указанное время в
    будущем или при завершении работы программы.  Проверка и получение обновлений конфигурации через Интернет (по требованию или по расписанию).  Обновление из указанного файла на локальном или
    сетевом диске.  Применение изменений основной конфигурации к
    конфигурации базы данных.
  5. Оценка производительности – Оценка интегральной производительности системы по методике APDEX. Упрощает и автоматизирует сбор информации о времени выполнения каждой ключевой операции. Средства анализа результатов замера. Автоматический экспорт показателей
    производительности.
  6. Поиск и удаление дублей – Поиск и удаление дублирующихся элементов справочник
  7. Резервное копирование ИБ – Сохранение резервных копий файловой информационной базы по требованию или по заданному расписанию. Восстановление файловой информационной базы из
    копии. Уведомление о необходимости настройки резервного
    копирования (также в клиент-серверном режиме).
  8. Регламентные задания– Вывод списка и настройка параметров регламентных заданий (расписание, запуск, остановка).
  9. Удаление помеченных объектов – Удаление объектов, помеченных на удаление. С контролем целостности (проверка ссылок на удаляемые объекты из других объектов). Фоновое удаление по расписанию
  10. Управление итогами и агрегатами – Администрирование итогов и агрегатов оборотных регистров накопления. Регламентное выполнение операций переноса границы итогов, пересчета и обновления агрегатов (по расписанию, при завершении работы программы)

Подсистемы  администрирования пользователей и  прав доступа

  1. Завершение работы пользователей – Просмотр и завершение активных сеансов работы в программе. Временная блокировка работы пользователей
  2. Пользователи – Ведение списка пользователей, работающих в программе. Ведение списка внешних пользователей, имеющих ограниченный доступ к специализированным рабочим местам, предусмотренным в программе (например, «Мои заказы», «Анкеты респондента», «Оформление заявок» и т. п.). Настройка прав доступа пользователей и внешних пользователей
    (при внедрении совместно с подсистемой «Управление доступом»
    осуществляется средствами подсистемы «Управление доступом»). Группировка списка пользователей (и внешних пользователей). Очистка и копирование настроек отчетов, форм, рабочего стола, разделов командного интерфейса, избранного, печати табличных
    документов и других персональных настроек пользователей (и внешних пользователей).
  3. Управление доступом – Индивидуальная и групповая настройка прав доступа пользователей с помощью профилей и групп доступа. Настройка ограничений прав доступа на уровне записей – для отдельных элементов данных информационной базы (элементов справочников, документов, записей регистров и т. д.). Отчет по правам интересующего пользователя или группы пользователей. Предусмотрены два варианта внедрения в прикладное решение –обычный и упрощенный. Обычный режим настройки прав  доступа рассчитан на многопользовательские прикладные решения, в
    которых, как правило, выполняется групповая настройка прав, на базе групп доступа. В упрощенном режиме настройка прав выполняется  индивидуально для каждого пользователя. Второй режим предназначен для конфигураций с небольшим числом пользователей, каждый из которых обладает своим собственным уникальным набором прав.

Подсистемы  интеграции с другими программами и системами

  1. Загрузка данных из файла– Загрузка табличных данных в произвольные справочники и табличные части документов.
  2. Интеграция с 1С-Бухфон   –  Возможность пользователям сервиса для связи с клиентами «1С-Бухфон» запускать приложение из конфигурации.
  3. Обмен данными – Программный интерфейс и готовые рабочие места для
    организации совместной работы в распределенной информационной базе и для синхронизации данных с другими программами. Синхронизация данных по требованию и в автоматическом режиме по расписанию. Подключение через различные каналы связи: локальный или сетевой каталог, электронная почта, FTP-ресурс или через Интернет (в том числе синхронизация данных с приложениями в «облаке»). Гибкая настройка правил синхронизации данных между программами, помощник сопоставления одинаковых данных.  Средства мониторинга и диагностики синхронизации данных. Возможность разработки планов обмена с использованием правил конвертации данных или без них, удобная отладка обработчиков событий правил конвертации в конфигураторе.  Автоматическое обновление конфигурации подчиненного узла  РИБ (при совместном использовании с подсистемой «Обновление
    конфигурации»).
  4. Отправка SMS– Программный интерфейс по рассылке и проверка статусов доставки сообщений SMS
  5. Получение файлов из Интернета – Программный интерфейс для получения файлов из Интернета. Получение файла из сети на клиенте. Сохранение файлов на клиентском компьютере, в информационной базе. Запрос и хранение параметров прокси-сервера.
  6. Работа с почтовыми сообщениями – Программный интерфейс для отправки и получения сообщений электронной почты. Ведение списка учетных записей для работы с электронной почтой. Базовый пользовательский интерфейс для отправки сообщений.
  7. Рассылка отчетов – Рассылка отчетов и дополнительных отчетов по электронной почте. Публикация отчетов на FTP, в сетевых каталогах и в папках подсистемы «Работа с файлами». Запуск по расписанию или интерактивно.

Подсистемы технологических механизмов и программных интерфейсов

  1. Базовая функциональность – Процедуры и функции общего назначения, по работе со строками, с другими типами данных, с журналом регистрации и т. п.  Стандартные роли (Администрирование, Полные Права,Запуск Тонкого Клиента и др.). Автоматическое отслеживание переименований объектов  метаданных. Базовые сервисные возможности администратора программы (журнал регистрации, настройка заголовка окна программы и другое).
  2. Запрет редактирования реквизитов объектов – Программный интерфейс для проверки обязательного заполнения некоторых реквизитов объектов, которые определяют характер данного объекта (условно называются «ключевыми» реквизитами). Запрет редактирования «ключевых» реквизитов записанных  объектов. Проверка возможности изменения «ключевых» реквизитов пользователем, имеющим на это права.
  3. Обновление версии ИБ – Выполнение первоначального заполнения и обновления  данных информационной базы при изменении версии конфигурации. Отображение информации об изменениях в новой версии конфигурации. Программный интерфейс для выполнения монопольных, оперативных и отложенных обработчиков обновления.
  4. Префиксация объектов – Автоматическое назначение префиксов объектам с учетом настроек программы. Префиксация объектов в разрезах информационных баз и элементов справочника Организации. Программный интерфейс для перепрефиксации справочников и документов при изменении префикса информационной базы.
  5. Файловые функции – Технологическая подсистема, не предназначенная для самостоятельного использования; только совместно с  подсистемами «Работа с файлами» и/или «Присоединенные файлы» Общие функции и базовые пользовательские интерфейсы по  работе с файлами, хранение файлов в томах на диске, функции для поддержки РИБ и создания первоначального образа информационной базы.
  6. Центр мониторинга– Собирает обезличенную статистику по использованию Конфигурации. Передает обезличенную статистику в единый центр контроля качества.
  7. Работа в модели сервиса – Включает в себя ряд подсистем, необходимых для работы конфигурации в модели сервиса SaaS(англ. software as a service — программное обеспечение как услуга; также англ. software on demand — программное обеспечение по требованию) — одна из форм облачных вычислений, модель обслуживания, при которой подписчикам предоставляется готовое прикладное программное обеспечение, полностью обслуживаемое провайдером.

Важно! Эти  подсистемы Работа в модели сервиса , не предназначены  для  работы в локальном режиме. Эти подсистемы предназначены для  использования в тех или иных объектах конфигурации-потребителя (тесная интеграция).

Прикладные подсистемы и рабочие места пользователей

  1. Анкетирование – Проведение анкетирования для внешних пользователей. Разработка шаблонов анкет и проведение опросов по списку респондентов. Средства анализа результатов анкетирования.
  2. Программы Бизнес-процессы и задачи – Интерактивный ввод задач для пользователей программы. Информирование пользователей об их текущих задачах. Мониторинг и контроль исполнения задач со стороны заинтересованных лиц – авторов и координаторов выполнения задач. Базовая функциональность для разработки произвольных бизнес-процессов в конфигурации
  3. Варианты отчетов – Совместная работа с вариантами отчетов, предусмотренных в программе и настроенных пользователями. Панель быстрого доступа к вариантам отчетов. Универсальная форма отчета с быстрыми настройками, отправкой отчетов по почте, настройкой рассылок отчетов, другими сервисными возможностями. Программный интерфейс по тонкой настройке внешнего вида отчетов
  4. Взаимодействия –  Планирование, регистрация и упорядочивание  взаимодействий: переписка по электронной почте, звонки, встречи и сообщения SMS. Хранение всех взаимодействий и их контактов в информационной базе. Работа с результатами взаимодействий.
  5. Работа с файлами – Коллективное редактирование файлов в иерархической структуре папок. Хранение и предоставление доступа к версиям файлов. Присоединение файлов из файловой системы, создание файлов по шаблону или получение со сканера. Электронная подпись, шифрование.
  6. Текущие дела- Вывод списка текущих дел пользователя на рабочем столе (новые письма, задачи, заявки, несогласованные заказы и т. п.)

Нормативно-справочная информация и  классификаторы

  1. Адресный  классификатор – Хранение и предоставление адресного классификатора (ФИАС)  для использования в других прикладных подсистемах.  Ввод и проверка корректности адресов через Интернет с
    помощью веб-сервиса фирмы «1С».  Загрузка адресного классификатора в программу с  пользовательского раздела сайта фирмы «1С» или из указанного
    каталога (при автономной работе без постоянного подключения к
    Интернету).
  2. Банки  –  Хранение и предоставление классификатора банков РФ (БИК)
    для использования в других прикладных подсистемах.  Загрузка классификатора банков РФ (БИК) с диска ИТС и с веб-сайта РБК, автоматически или по требованию.
  3. Валюты – Хранение и предоставление доступа к списку и курсам валют.  Загрузка курсов валют с веб-сайта РБК . Выбор валют из общероссийского классификатора (ОКВ).
  4. Графики работы – Хранение сведений о производственных календарях,
    используемых на предприятии. Получение даты, которая наступит через указанное количество дней по указанному календарю и другой программный интерфейс
  5. Календарные графики – Хранение сведений о календарных графиках, используемых на предприятии.
  6. Организации –  Ведение в программе справочника Организации с контактной
    информацией. Шаблон для разработки справочника Организации в
    прикладной конфигурации.
  7. Работа с  контрагентами – Проверка реквизитов контрагентов по данным ФНС в  справочнике контрагентов, документах, отчетах.  Заполнение реквизитов контрагентов и формирование «Досье контрагента» по данным ЕГРЮЛ и ЕГРИП.

Сервисные подсистемы

  1. Версионирование объектов –  Хранение и просмотр истории изменений справочников и документов (пользователь, внесший изменения, время
    изменения и характер изменения с точностью до реквизитов объекта и реквизитов его табличных частей).  Сравнение произвольных версий объектов.  Просмотр и откат к ранее сохраненной версии объекта.
  2. Групповое изменение объектов – Групповое изменение произвольных реквизитов и табличных частей объектов программы (справочников,
    документов и пр.). Возможность изменения значений дополнительных
    реквизитов и сведений. С учетом предустановленных в программе правил запрета редактирования реквизитов объектов.
  3. Даты запрета изменения –  Блокировка изменений любых данных (документов, записей регистров, элементов справочников и др.),
    введенных ранее определенной даты.  Гибкая настройка одной общей даты запрета изменения для всех объектов программы в целом либо нескольких дат по разделам и/или отдельным объектам разделов учета.
  4. Заметки пользователя – Электронная замена стикеров по краям монитора, которой можно воспользоваться, не покидая окна своей программы. Быстрый список заметок на рабочем столе, список заметок по предмету, общий список..  Различные цвета и оформление текста заметок, вставка
    картинок в заметки.
  5. Защита персональных данных – Поддержка требований 152-ФЗ («О персональных данных»).  Управление событиями доступа к персональным данным (установка использования события, получение актуального
    состояния использования событий, подготовка формы настройки системы).  Классификация персональных данных по областям.  Учет согласий на обработку персональных данных.
  6. Информация при запуске – Отображение различной информации (например,
    рекламы) при запуске программы
  7. Контактная информация – Добавление к произвольным справочникам и документам реквизитов для ввода контактной информации: почтовых
    адресов, адресов электронной почты, телефонов и т. д.  Автоматическая или ручная проверка корректности адресов (при совместном использовании с подсистемой «Адресный классификатор»).  Предоставление классификатора стран мира (ОКСМ).
  8. Напоминания пользователя – Ввод персональных напоминаний в программе на нужное время.  Привязка напоминаний к произвольным объектам программы.
  9. Настройка порядка элементов – Настройка порядка элементов произвольных списков с помощью кнопок Вверх и Вниз.
  10. Печать – Программный интерфейс и готовое рабочее место для
    формирования печатных форм произвольных объектов
    программы.  Вывод печатных форм в виде табличных документов и
    офисных документов в форматах Microsoft Word и
    OpenOffice.org Writer.  Отправка печатных форм по электронной почте,
    сохранение на компьютер или в присоединенных файлах
    (при совместном использовании с подсистемой «Присоединенные файлы»). Подключение внешних печатных форм, а также печать
    внешних печатных форм в комплекте с основными печатными формами (при совместном использовании с подсистемой «Дополнительные отчеты и обработки»).  Вывод в печатную форму изображения QR-кода по
    заданной текстовой строке.
  11. Полнотекстовый поиск –  Настройка и выполнение полнотекстового поиска по всем данным в программе.
  12. Присоединенные файлы – Программный и пользовательский интерфейсы для присоединения файлов (вложений) к произвольным. объектам программы.  Поддержка произвольного количества разных типов
    владельцев файлов без потери в скорости работы в условиях ограничения доступа пользователей на уровне записей (RLS).  Коллективное редактирование файлов, сканирование, электронная подпись и шифрование.
  13. Проверка легальности получения обновлений – Программный и пользовательский интерфейсы для подтверждения легальности получения обновления конфигурации.
  14. Свойства –  Добавление дополнительных свойств к произвольным
    документам и справочникам.  Вывод значений свойств в любых отчетах и динамических списках.  Раздельное хранение свойств как в самом объекте
    (дополнительные реквизиты), так и вне объекта-владельца в отдельном регистре сведений (дополнительные сведения).  Возможность задавать одинаковые свойства для различных объектов, свойства, обязательные к заполнению, и другие сервисные возможности.
  15. Структура подчиненности – Отображение информации о родительских и дочерних документах для выбранного документа, а также всей
    структуры их взаимосвязей.
  16. Электронная подпись – Программный и пользовательский интерфейс для работы со средствами криптографии: электронная подпись и проверка подписи.  Отправка заявлений на выпуск сертификата КЭП в УЦ «1С» и установка их на компьютере.

Содержание:

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.

Специалист компании ООО «Кодерлайн» 

Сергей Омельчук.

Ermak
13.03.2013 13:38 Прочитано: 11263

Подскажите что я не так делаю, выдает ошибку

{Документ.Подписаный.Форма.ФормаДокумента.Форма(20)}: Поле объекта не обнаружено (Доступность)
Результат.Ответственный.Доступность = Ложь;

Код 1C v 8.х

 Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Форма1.Ссылка,
| Форма1.Ответственный
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал";

Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
Результат.Ответственный.Доступность = Ложь;
КонецЦикла;

Ответственный тип Справочник

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
13.03.2013 13:56 Ответ № 1

так ты же это перебираешь результат запроса — в нем только выборка и нет ни какой доступности!

Ermak
13.03.2013 16:12 Ответ № 2

А как тогда можно сделать через запрос?

E_Migachev
13.03.2013 17:16 Ответ № 3

(2) Ermak, ни как… запрос служит только для получения данных…
А что ты хочешь ограничить, расскажи подробнее

Ermak
13.03.2013 17:19 Ответ № 4

я хочу при нажатии на кнопку в документе Подпись, в документе Документы.Форма1 реквизит Ответственный был не доступен для редактирования

DJ_Serega
13.03.2013 17:40 Ответ № 5

(4) Ermak, я так понял, если нажали на ПОДПИСЬ, то редактировать ответственного вообще нельзя?
Вижу выход только через дополнительный реквизит. При нажатии на ПОДПИСЬ устанавливать как истина, снимать доступность у открытого документа и при открытии проверять «доступно или нет»

Ermak
13.03.2013 17:51 Ответ № 6

Да вы правильно поняли, при нажатии вообще редактировать нельзя.
А можно на пример как через дополнительный реквизит

E_Migachev
13.03.2013 18:03 Ответ № 7

В модуле кнопки подпись напиши:
Код 1C v 8.х

 ЭлементыФормы.Ответсвенный.Доступность = Не РеквизитХраненияДоступностиБулево;   

создай РеквизитХраненияДоступностиБулево

Ermak
13.03.2013 19:34 Ответ № 8

а как обратиться к документу Документы.Форма1 так как кнопка подписи находится в Документы.Подпись

DJ_Serega
13.03.2013 22:08 Ответ № 9

Код 1C v 8.х

 
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Форма1.Ссылка КАК Документ
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал"
;

Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
ДокументБлокировки = Результат.Документ.ПолучитьОбъект();
ДокументБлокировки.РеквизитХраненияДоступностиБулево = Истина;
ДокументБлокировки.Записать(РежимЗаписиДокумент.Запись);
КонецЦикла;

На корректность кода (если что) не обращайте внимания. Писал «от руки» *09 Но смысл думаю будет доставлен *17


Изменено 13.03.13 22:10:49

Ermak
14.03.2013 08:55 Ответ № 10

Не много код не понял, создал реквизит РеквизитХраненияДоступности в документе Форма1 и добавил код в документ Подпись, после нажатия на кнопку все равно можно редактировать документ Форма1.


Изменено 14.03.13 09:02:52

DJ_Serega
14.03.2013 18:44 Ответ № 11

(10) Ermak, а при открытии не забыл доступность устанавливать исходя из зна чения нового реквизита?
Пенечитай (7) E_Migachev,

Ermak
14.03.2013 19:17 Ответ № 12

(11) DJ_Serega, Я не понимаю, реквизит Ответственный находится в документе Форма1, а кнопка Подпись находится в документе Подпись, если я напиши он не поймет что за реквизит Ответственный.

DJ_Serega
14.03.2013 23:00 Ответ № 13

Приду домой напишу. А то с телефона сижу *07

E_Migachev
15.03.2013 00:11 Ответ № 14

(12) Ermak, Форма1 и Подпись это формы одного документа???

DJ_Serega
15.03.2013 02:00 Ответ № 15

(14) E_Migachev, та походу разные это документы
.(12) Ermak, тебе нужно получить объект документа ответственный и в нем установить запрет на изменение реквизита. И ПриОткрытии того (запрещенного) документа проверять на доступность изменения.
Что бы тебе помочь более детально, нам нужно знать как между собой связаны документ Подпись с документом Ответственный.

Ermak
15.03.2013 08:35 Ответ № 16

Если вы имеет это объединение то у них есть два одинаковый реквизита, это Квартал и Организация, по этим реквизитам я делал отбор в документе Форма1Код 1C v 8.х

 Запрос.Параметры.Вставить("Организация",  ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);

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

Ermak
15.03.2013 13:49 Ответ № 17

Всем спасибо я разобрался!
Кому нужно вот код

В Документы.Подпись

Код 1C v 8.х

 Процедура Кнопка1Нажатие(Элемент)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Форма1.Ссылка КАК Ссылка
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал";

Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
ДокументБлокировки = Результат.Ссылка.ПолучитьОбъект();
ДокументБлокировки.РеквизитХраненияДоступности = Ложь;
ДокументБлокировки.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;
КонецПроцедуры

Документы.Форма1

Код 1C v 8.х

 Процедура ПриОткрытии()
ЭлементыФормы.Ответственный.Доступность = РеквизитХраненияДоступности;
КонецПроцедуры
Ermak
15.03.2013 13:56 Ответ № 18

А можно как нибудь через запрос сделать это действие

ЭлементыФорым…..Доступность = РеквизитХраненияДоступности;

чтобы каждый реквизит не прописывать.

Ermak
15.03.2013 17:06 Ответ № 19

Подскажите, тут я обращаюсь к документуКод 1C v 8.х

 "ВЫБРАТЬ
| Форма1.Ссылка
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал
| И Форма1.Ссылка <> &Ссылка";

и использую ссылку

а если я буду обращаться к регистру накопления там же не ссылки как мне быть тогда?

Код 1C v 8.х

 "ВЫБРАТЬ
| Форма1.Организация,
| Форма1.Квартал,
| Форма1.Исполнитель,
| Форма1.Номенклатура,
| Форма1.Группа,
| Форма1.Подгруппа,
| Форма1.БазЕдиница,
| Форма1.Тип,
| Форма1.Количество,
| Форма1.Цена,
| Форма1.Сумма,
| Форма1.СуммаНДС
|ИЗ
| РегистрНакопления.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал";

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

DJ_Serega
16.03.2013 03:44 Ответ № 20

(19) Ermak, через регистр можно либо через ссылку в измерении или реквизите либо через регистратор.
(18) Ermak, запрос только выбирает данные. Их можно только посмотреть. Что бы изменить, нужно получать объект.

DJ_Serega
16.03.2013 03:48 Ответ № 21

(17) Ermak, у тебя нюансик. По умолчанию реквизит доступности = ложь. А значит изменение всегда заблокировано. Лучше установить блокировку если реквизит приобретет истину. А то получается что в новых документах у тебя уже изменять нельзя.

Ermak
18.03.2013 08:56 Ответ № 22

(20) DJ_Serega, можно пример а то плохо понятно.
(21) DJ_Serega, точно я не заметил, а что вы имеете ввиду блокировку. У меня смысл был такой, я создаю документ Подпись, нажимаю там на кнопку и блокирую все документы с установленными параметрами Организация и Квартал, а почему новые теперь блокируются не понятно.

DJ_Serega
19.03.2013 00:35 Ответ № 23

(22) Ermak, по 21му теперь исправили и оно корректно? *17

(22) Ermak, с (20) DJ_Serega это по поводу (19) Ermak? Если «истина» *17 тогда где-то так:

Код 1C v 8.х

 
ЗапросБлокировка = Новый Запрос(
"ВЫБРАТЬ
| РегистрНакопления1.Регистратор КАК ДокументБлокировкиРегистратор,
| РегистрНакопления1.Измерение1 КАК ДокументБлокировкиИзмерение,
| РегистрНакопления1.Ресурс1 КАК ТутТолькоЧисло,
| РегистрНакопления1.Реквизит2 КАК ДокументБлокировкиРеквизит
|ИЗ
| РегистрНакопления.РегистрНакопления1 КАК РегистрНакопления1
|ГДЕ
| РегистрНакопления1.Регистратор.Номер = &Номер
| И РегистрНакопления1.Регистратор.Дата = &Дата"
);
ЗапросБлокировка.УстановитьПараметр("Номер", НомерПоиска);
ЗапросБлокировка.УстановитьПараметр("Дата", ДатаПоиска);

РезультатБлокировкаВыполнить = ЗапросБлокировка.Выполнить();
Если РезультатБлокировкаВыполнить.Пустой() Тогда
Предупреждение("Документы для блокировки не найдены.");
Возврат;
КонецЕсли;

РезультатБлокировка = РезультатБлокировкаВыполнить.Выбрать();
Пока РезультатБлокировка.Следующий() Цикл

Если НужныйДокумент = "Это регистратор" Тогда
ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиРегистратор.ПолучитьОбъект();
ОбъектБлокировки.РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();
КонецЕсли;

Если НужныйДокумент = "Это Измерение" Тогда
ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиИзмерение.ПолучитьОбъект();
ОбъектБлокировки.РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();
КонецЕсли;

Если НужныйДокумент = "Это Ресурс" Тогда
// Такого быть не может ;)
КонецЕсли;

Если НужныйДокумент = "Это реквизит" Тогда
ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиРеквизит.ПолучитьОбъект();
ОбъектБлокировки. РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();
КонецЕсли;

КонецЦикла;

*09


Изменено 19.03.13 00:37:20 по причине: Очепятки ))

Ermak
20.03.2013 09:34 Ответ № 24

(23) DJ_Serega, по 21 я не исправил, не могу додумать как это сделать, можете подсказать

DJ_Serega
21.03.2013 00:02 Ответ № 25

(24) Ermak, вот ответ (7) E_Migachev

Ermak
22.03.2013 10:18 Ответ № 26

(25) DJ_Serega, я не понимаю этот кодКод 1C v 8.х

 	|	РегистрНакопления1.Измерение1 КАК ДокументБлокировкиИзмерение,
| РегистрНакопления1.Ресурс1 КАК ТутТолькоЧисло,
| РегистрНакопления1.Реквизит2 КАК ДокументБлокировкиРеквизит

Вы имеете ввиду поставить любое измерение и ресурс и реквизит? Мне нужно заблокировать полностью документ, чтобы его можно было только смотреть.


Изменено 22.03.13 10:18:51

DJ_Serega
25.03.2013 12:25 Ответ № 27

Ссылка на документ может быть там где ДокументБлокировки. Вы его таким образом получите для того что бы заблокировать.

Ermak
25.03.2013 12:30 Ответ № 28

че та я не много не понимаю, можете лучше примером показать

DJ_Serega
25.03.2013 22:51 Ответ № 29

(28) Ermak, я ж писал в (23) DJ_Serega.
Если нужный документ находится в измерении тогда «Это измерение», если в реквизите тогда «Это реквизит».
Допустим нужный документ для блокировки это Регистратор регистра. Тогда код по блокировке будет:
Код 1C v 8.х

 
Пока РезультатБлокировка.Следующий() Цикл

ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиРегистратор.ПолучитьОбъект();
ОбъектБлокировки.РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();

КонецЦикла;

Ermak
26.03.2013 12:11 Ответ № 30

(29) DJ_Serega, Большое спасибо разобрался! Сделал не много по другому. )

DJ_Serega
26.03.2013 20:46 Ответ № 31

(30) Ermak, Главное что разобрался и сделал *02
Наша задача «помочь» выполнена *12

з.ы.: темку то можно и закрыть *17

Ermak
27.03.2013 09:05 Ответ № 32

Хорошо )

Ermak
27.03.2013 09:05 Ответ № 33

Вопрос закрыт!

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

Понравилась статья? Поделить с друзьями:
  • Подъемник в белокурихе на церковку часы работы зимой
  • Поезд проехал 20 км за 15 мин какова скорость поезда
  • Поздравление в стихах с годовщиной работы в компании
  • Поздравление для партнера по бизнесу с днем рождения
  • Поздравление для президента компании с днем рождения