Передача параметра из формы документа в форму выбора. 1С: 8.2, обычные формы

18.05.17

Разработка - Инструментарий разработчика

Установить принудительный отбор по номенклатуре в форме выбора при добавлении из определенного вида документа. В моем примере ограничение к номенклатуре только из документа Установка цен номенклатуры.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Передать параметр из формы документа в в форму выбора 1с 8.2 обычные формы.:
.docx 12,06Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Организовано через принудительные отборы

1. Добавлен справочник группы доступа к номенклатуре, он добавлен реквизитом на форму справочника номенклатура.

2. Добавлен РС Группы доступа номенклатуры непереодический, независимый с двумя измерениями Пользователь, Группа доступа номенклатуры с соответствующими ссылками на эти справочники.

3. Добавлена роль ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры

4. В форме документа установка цен номенклатуры:

в обработчике ТаблицаЦенНоменклатураНачалоВыбора добавить код

Процедура ТаблицаЦенНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)

                Если РольДоступна("ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры") тогда

                               Элемент.Подсказка = Элемент.Подсказка + "$QWERTY$" + ЗначениеВСтрокуВнутр(Ссылка);

                КонецЕсли;

КонецПроцедуры



(Если обработчик не будет срабатывать, необходимо в процедуру УстановитьНедостающиеПараметры() установить необходимые параметры номенклатуры, но это если срабатывать не будет, такое бывает очень редко).

5. В справочник Номенклатура, в форму выбора процедура ПриОткрытии

ЭлементУправления = ЭтаФорма.ВладелецФормы;

                Если ТипЗнч(ЭлементУправления) = Тип("ПолеВвода") Тогда

                               Если  Не ПустаяСтрока(ЭлементУправления.Подсказка) Тогда

                                               ТекстПодсказки = ЭлементУправления.Подсказка;

                                               ПозицияСсылки = Найти(ТекстПодсказки, "$QWERTY$");

                                               Если ПозицияСсылки > 0 Тогда

                                                               ТекПользователь = ПараметрыСеанса.ТекущийПользователь;

                                                              

                                                               Запрос = Новый Запрос;

                                                               Запрос.Текст =

                                                               "ВЫБРАТЬ

                                                               |             ГруппыДоступаНоменклатуры.ГруппаДоступаНоменклатуры КАК ГруппаДоступа

                                                               |ИЗ

                                                               |             РегистрСведений.ГруппыДоступаНоменклатуры КАК ГруппыДоступаНоменклатуры

                                                               |ГДЕ

                                                               |             ГруппыДоступаНоменклатуры.Пользователь = &ТекПользователь";

                                                              

                                                               Запрос.УстановитьПараметр("ТекПользователь", ТекПользователь);

                                                              

                                                               Результат = Запрос.Выполнить().Выгрузить();

                                                              

                                                               МассивГрупп = Результат.ВыгрузитьКолонку("ГруппаДоступа");

                                                              

                                                               СписокГрупп = Новый СписокЗначений;

                                                              

                                                               Для Каждого Стр из МассивГрупп Цикл

                                                                              СписокГрупп.Добавить(Стр);

                                                               КонецЦикла;

                                                              

                                                               ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.ВидСравнения = ВидСравнения.ВСписке;

                                                               ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.Значение = СписокГрупп;

                                                               ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.Использование = Истина;

                                                               ЭлементыФормы.СправочникСписок.НастройкаОтбора.ГруппаДоступаНоменклатуры.Доступность = Ложь;

                                               КонецЕсли;

                               КонецЕсли;

                КонецЕсли;

6. Заполнить справочник Группы доступа к номенклатуре, Номенклатура - указать группу в том реквизите который был добавлен, заполнить регистр сведений Группы доступа номенклатуры.

7. Добавить роль ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры пользователю, которому необходимо урезать права на просмотр номенклатуры.

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    202071    1114    410    

1021

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    35475    206    104    

195

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    23915    63    26    

92

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    16409    69    39    

88

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

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

9360 руб.

17.05.2024    34600    122    53    

165

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    1634    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

6000 руб.

07.02.2018    107113    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MSConfig 18.05.17 10:08 Сейчас в теме
Прошу уточнить, зачем это все нужно и в чем преимущество относительно RLS.
3. Sanek32 20 19.05.17 11:57 Сейчас в теме
(1) тема актуальна на форумах. может у кого будет похожая задача и кому то станет полезной. на уровне РЛС Вы ограничиваете доступ к объекту на уровне записи, а в это примере просто используются отборы для определенного документа.
2. A_Max 20 18.05.17 17:56 Сейчас в теме
И что мешало самому открыть форму выбора (сделав СтандартнаяОбработка=Ложь) и передать нормальным способом параметры?
4. Sanek32 20 19.05.17 12:00 Сейчас в теме
(2)

это один из вариантов как можно сделать.
5. drjc 29.05.17 10:35 Сейчас в теме
Это АД какой-то, не завидую программисту, которому придётся разбираться в этом кошмаре.
6. Sanek32 20 29.05.17 14:09 Сейчас в теме
(5) где ты там кошмар увидел? в трех строчках кода?
Оставьте свое сообщение