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

18.05.17

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

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

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

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

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

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

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

                КонецЕсли;

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



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

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

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

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

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

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

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

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

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

                                                              

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

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

                                                               "ВЫБРАТЬ

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

                                                               |ИЗ

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

                                                               |ГДЕ

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

                                                              

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

                                                              

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

                                                              

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

                                                              

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

                                                              

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

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

                                                               КонецЦикла;

                                                              

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

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

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

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

                                               КонецЕсли;

                               КонецЕсли;

                КонецЕсли;

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

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

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

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

См. также

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

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

24900 руб.

20.08.2024    75136    379    170    

325

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

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

10000 руб.

02.09.2020    268461    1494    421    

1179

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

22570 руб.

06.10.2023    40184    113    54    

126

Инструментарий разработчика Нейросети Платные (руб)

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

15250 руб.

25.08.2025    63835    130    36    

137

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    8940    38    46    

52

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

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

17000 руб.

10.11.2023    26436    98    46    

104

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2631    6    0    

21

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    54785    187    63    

220
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MSConfig 18.05.17 10:08 Сейчас в теме
Прошу уточнить, зачем это все нужно и в чем преимущество относительно RLS.
3. Sanek32 20 19.05.17 11:57 Сейчас в теме
(1) тема актуальна на форумах. может у кого будет похожая задача и кому то станет полезной. на уровне РЛС Вы ограничиваете доступ к объекту на уровне записи, а в это примере просто используются отборы для определенного документа.
2. A_Max 21 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) где ты там кошмар увидел? в трех строчках кода?
Для отправки сообщения требуется регистрация/авторизация