Передача параметра из формы документа в форму выбора. 1С: 8.2, обычные формы
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Организовано через принудительные отборы
1. Добавлен справочник группы доступа к номенклатуре, он добавлен реквизитом на форму справочника номенклатура.
2. Добавлен РС Группы доступа номенклатуры непереодический, независимый с двумя измерениями Пользователь, Группа доступа номенклатуры с соответствующими ссылками на эти справочники.
3. Добавлена роль ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры
4. В форме документа установка цен номенклатуры:
в обработчике ТаблицаЦенНоменклатураНачалоВыбора добавить код
Процедура ТаблицаЦенНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
Если РольДоступна("ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры") тогда
Элемент.Подсказка = Элемент.Подсказка + "$QWERTY$" + ЗначениеВСтрокуВнутр(Ссылка);
КонецЕсли;
КонецПроцедуры
(Если обработчик не будет срабатывать, необходимо в процедуру УстановитьНедостающиеПараметры() установить необходимые параметры номенклатуры, но это если срабатывать не будет, такое бывает очень редко).
5. В справочник Номенклатура, в форму выбора процедура ПриОткрытии
ЭлементУправления = ЭтаФорма.ВладелецФормы;
Если ТипЗнч(ЭлементУправления) = Тип("ПолеВвода") Тогда
Если Не ПустаяСтрока(ЭлементУправления.Подсказка) Тогда
ТекстПодсказки = ЭлементУправления.Подсказка;
ПозицияСсылки = Найти(ТекстПодсказки, "$QWERTY$");
Если ПозицияСсылки > 0 Тогда
ТекПользователь = ПараметрыСеанса.ТекущийПользователь;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГруппыДоступаНоменклатуры.ГруппаДоступаНоменклатуры КАК ГруппаДоступа
|ИЗ
| РегистрСведений.ГруппыДоступаНоменклатуры КАК ГруппыДоступаНоменклатуры
|ГДЕ
| ГруппыДоступаНоменклатуры.Пользователь = &ТекПользователь";
Запрос.УстановитьПараметр("ТекПользователь", ТекПользователь);
Результат = Запрос.Выполнить().Выгрузить();
МассивГрупп = Результат.ВыгрузитьКолонку("ГруппаДоступа");
СписокГрупп = Новый СписокЗначений;
Для Каждого Стр из МассивГрупп Цикл
СписокГрупп.Добавить(Стр);
КонецЦикла;
ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.ВидСравнения = ВидСравнения.ВСписке;
ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.Значение = СписокГрупп;
ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.Использование = Истина;
ЭлементыФормы.СправочникСписок.НастройкаОтбора.ГруппаДоступаНоменклатуры.Доступность = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
6. Заполнить справочник Группы доступа к номенклатуре, Номенклатура - указать группу в том реквизите который был добавлен, заполнить регистр сведений Группы доступа номенклатуры.
7. Добавить роль ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры пользователю, которому необходимо урезать права на просмотр номенклатуры.
На кнопку подбор аналогично. Детали описаны в файле, если кому некогда будет разбираться.
Вступайте в нашу телеграмм-группу Инфостарт