Запрет выбора элемента справочника 1с

Обновлено: 07.07.2024

Как сделать в выпадающем списке отбор по набраному тексту
Есть выпадающий список, как сделать чтоб при наборе текста в нем предлагало варианты которые.

Отбор по владельцу в выпадающем списке (8.3)
Раньше как-то делал, после перерыва в практике забыл начисто. Потыкался наугад, не помогло. Есть.

Как в выпадающем списке сделать поле для ввода?
как сделать чтобы в выпадающем списке можно было не только выбрать, но и ввести значение?

Как разместить кнопку в выпадающем списке
Подскажите требуется сделать кнопочку добавить при выборе из выподающего списка (<select><option>).

Получите запросом все нужные счета и установите отбор по списку счетов

Tklwegsd, не представляю как это сделать, нашел в инете похожий пример, но по моему там лишнего

gabd_marat, Выборкой или получением каждого нужного счета через

и т.д., но это увеличит количество обращений к базе, что в принципе считается не очень хорошим тоном.
К тому же во втором случае если будет в план счетов добавлен новый субсчет - придется дописывать код. нашел в инете похожий пример, но по моему там лишнего Если вы хотите писать под 1С и не умеете делать запросы к базе - то самое время научиться =)
Код в примере то что нужно, только в условие иерархии нужно вставить список значений в вашем случае. renat_dmitriev, Запрос не написал. но если даже создаю функцию на сервере и вставляю код выше, все равно не работает (выдает полный список плана счетов). В чем причина ? (Читал что в 1с 8.3 нужно правильно настроить свойства поля, были какие то изменения, никто не в курсе)

gabd_marat, Может причина в том, что эта процедура у вас на сервере, а на клиенте ничего не вызывается? Вы смотрели в отладчике? В процедуру заходит? Отбор устанавливает? В форме выбора при открытии отбор установлен?

Добавлено через 23 минуты
Если счетов немного, то 100% работающий вариант через ДанныеВыбора:

В обработчике на клиенте пишете

где ПолучитьСписокСчетов - серверная функция, возвращающая список значений из вашего запроса.

По поводу этого кода - мне вообще непонятно как на сервер можно в управляемом приложении передать Элемент. Я пытаюсь - выдает ошибку. Похоже нужно открывать прямо с клиента через открытьФорму. Сейчас посмотрю как это делается.

Добавлено через 9 минут
Рабочий код:

Через окно свойств элемента формы, а не просто в коде, создаете обработчик на клиенте

На сервере создаете серверную процедуру ПолучитьСписокСчетов, которая возвращает список счетов отбора.
И все должно прекрасно работать.

Спасибо , сейчас попробую

gabd_marat, Почитайте пожалуйста в синтакс-помощнике событие Автоввод, думаю по аналогии разберетесь. Там нас интересует параметр ДанныеВыбора, который опять же можно заполнить нашим списком, добавив в запрос дополнительное условие

а в параметры запроса добавив

где переменная Текст является параметром обработчка.


Как отфильтровать значения в выпадающем списке?
Здравствуйте! Суть вопроса вот в чем: есть таблица "Table1" с набором различных полей, одно из.


Как посчитать сумму значений в выпадающем списке?
Подскажите, пожалуйста. Есть выпадающий список в той же ячейке. Каждому элементу списка присвоено.


Как убрать повторяющиеся записи в выпадающем списке
Всем привет! Столкнулся со следующей проблемой: Ни с того, ни с сего, в моём выпадающем списке по.

Как установить font bold в выпадающем списке?
В тэге <select> внутри тэгов <option> хочу чтобы был текст жирным шрифтом. Но успеха не добился.

Как в webbrowser'е выбрать пункт в выпадающем списке
Доброго времени суток, подскажите как в webbrowser'е выбрать пункт в выпадающем списке ? .


Как в выпадающем списке выбрать несколько записей
Всем привет! Необходимо сделать так, что бы при добавление в расписание занятия записи, я мог.

Коллеги, добрый вечер! Сориентируйте пожалуйста новичка, подскажите куда копать?

Задача: есть ряд констант, назначаемых вручную через формы констант. По типу все они привязаны к одному и тому же справочнику. Справочник иерархический. Необходимо запретить выбор элемента из одной из групп. Можно ли сделать это глобально, так чтобы вообще больше не думать и отдельно не повторять примерно один и тот же код на формах констант? Например под предлогом того, что элементы из этой группы являются исключительно справочными и их в системе нельзя нигде больше использовать.

Развивая вопрос - как запретить не только в рамках назначения констант, но и при использовании в каких-либо других справочниках и документах.

Надеюсь описал понятно. Спасибо!

Коллеги, "я шмогла". Вдруг кому нужно, хотя, вероятно, это банальная задача. Решилось всё созданием формы выбора для справочника моего. А сам код в модуле упомянутой формы вот такой:
Развивая вопрос - как запретить не только в рамках назначения констант, но и при использовании в каких-либо других справочниках и документах.

Как раз мой вариант в форме выбора справочника и позволяет из любых форм запретить выбор определённых элементов.
Но повторюсь, работает только при вызове формы выбора. Если есть быстрый выбор из выпадающего списка, не поможет. Для Справочника нужно создать предопределенные группы по которым устанавливаться будет запрет, например: "Группа1", "Группа2", "Группа3". Нужно создать для каждой группы соотв. константу: "ЗапретитьГруппу1", "ЗапретитьГруппу2", "ЗапретитьГруппу3".
В форме где будет происходить выбор, для реквизита определить событие Реквизит1ОбработкаВыбора(
(2) Мне кажется автор немного не то имеет в виду. Ему не хочется повторять один и тот же код на каждой форме константы. Ему необходимо в нескольких формах запретить выбрать определенную группу.
Проще всего в форме выбора в событии "ОбработкаВыбора" сделать проверку, что-то типа этого:

Единственное, что это не сработает, если не будет вызываться стандартная форма выбора. Ну или будет выбран элемент из выпадающего списка. о имеет в виду. Ему не хочется повторять один и тот же код на каждой форме константы. Ему необходимо в нескольких формах запретит
Ну просто если это выбор элемента из справочника - тогда будет открываться форма выбора?
Весь код по фильтрации будет только в этой форме в одном месте. Вместо повтора кода в форме констант.
Если конечно это не быстрый выбор.. Хотя справочник ирерархический вроде.. (5) Да, иерархический, именно так. И к запрету будет одна из групп. (4) Соверешенно верно! А ещё лучше бы запретить на уровне самого справочника, элементы которого по типу привязаны к константе. Может быть есть возмжность какая-то? (4) Так точно, своей формой выбора, в рамках её модуля это и решил. Решение приложил. Если есть какие-то нарекания, прошу озвучить :) Может прописать условие с фильтром в форме списка и форме выбора этого справочника?
Тогда везде будет это использоваться

Вариант I
RLS не подойдёт?
Добавить в справочник реквизит: "СправочныйЭлемент" и роль, которая "видит" только не справочные.

Вариант II
Забодяжить подписку на событие "ОбработкаПолученияДанныхВыбора" для источника "СправочникМенеджер.МойЛюбимыйСправочник"

Вариант II
Забодяжить подписку на событие "ОбработкаПолученияДанныхВыбора" для источника "СправочникМенеджер.МойЛюбимыйСправочник"

А как это можно реализовать? Чуть-чуть бы подробнее. Мне намекали на менеджер справочника, но я не разобрался. Что-то такое мне и видится, чтобы на уровне справочника решить, а дальше уже бы не волноваться о том, как и где мы будем выбирать из него элементы. Если это так работает.

(12) Конфигуратора рядом нет. Но там легко разобраться:
1. Добавляете новую подписку.
2. Источник СправочникМенеджер.ВашСправочник
3. Событие ОбработкаПолученияДанныхВыбора

Создаёте процедуру нажав лупу в палитре свойств (ну как обычно). Процедура создаётся с параметрами.
Далее с ИТС:

ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

ДанныеВыбора – это переменная, в которую разработчик должен поместить собственный список выбора. При входе в обработчик этот параметр не содержит никаких значений, то есть через него нельзя получить доступ к списку выбора, который сформирует платформа. Просто потому, что этот список формируется уже после выхода из этого обработчика. Однако может возникнуть желание в этом обработчике получить список, формируемый платформой, и добавить в него (удалить) несколько элементов. Как это сделать – рассказано в разделе «Метод "ПолучитьДанныеВыбора()"».

Переменная Параметры содержит набор параметров, которые платформа будет использовать для формирования списка выбора. Особенность заключается в том, что при формировании списка выбора платформа будет учитывать свойства Параметры выбора и Связи параметров выбора, заданные для соответствующего реквизита объекта конфигурации. Поэтому в параметрах могут содержаться какие-то отборы.
.

Таким образом, у нас есть следующие возможности:

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

Интересует быстрый выбор, или как он там называется - когда в поле набиваешь наименование, а он подставляет элемент. Надо и в УФ и в обычном приложении.

(0) переименовать их - например в начале добавить символ "_"

(4) +1, в рлс оченьп росто убрать видимость и подбор помеченых на удаление эл-тов для определенных ролей

(4), (7) как запретить выбор с помощью РЛС, но оставить их видимыми в форме выбора?

удалить их не предлагать? зачем помечены, если испольхуются?

(0) (3) в модуле менеджера событие ОбработкаПолученияДанныхВыбора

(14) действительно, зачем придумали эту дурацкую пометку. :)

(16) что-то в обычной форме эта процедура не запускается

(16) и чем это поможет?
Возникает на сервере перед стандартным формированием списка при вводе по строке, автоподборе текста и быстром выборе, а также при выполнении метода ПолучитьДанныеВыбора.
в быстрый выбор допустим не попадет
но что мешает открыть справочник и выбрать

(22) УФ там не причем
он пытается её поймать там где её нет - при выборе из справочника - см (24)

Хмм. если я правильно понял ситуацию автора, то пометка на удаление - своеобразный "идентификатор". Типа - "ООО Рога и копыта (не использовать с 01.01.1917г.)" :))

проверка перед записью объекта (с обходом всех реквизитов)
?

(25) я про то что модуля менеджера нет в обычном приложении

(0) Малой кровью - в форме выбора перед открытием отбор устанавливай ПометкаУдаления=Ложь

(7) а потом мучаться с отчетами. Хотя может и РЛС это единственный способ.

(30) Сорри, не в тему. ". когда в поле набиваешь наименование, а он подставляет элемент"(0) - у тс несколько другой случай :)

(32) тут либо малой кровью, либо надежно. Надо выбрать что-то одно.

(16) с УФ разобрался. Всё как надо. Спасибо

Осталось разобраться с обычным приложением. Меня всегда убивало окошко о том что, дескать, элемент помечен на удаление и его крайне нежелательно выбирать. И эту штуку никак не переопределить - зашито намертво

В формах выбора ограничение поставил, это очень просто делается. Осталось одно место - Автоподбор в обычном приложении. И тут пичалька. Остаётся только (29) или РЛС.
Попытаюсь на РЛС сделать

Когда справочник наполняется помеченными на удаление объектами, они начинают мешать пользователям выбирать значение справочника. Бывает, что долго не представляется возможным удалить помеченные на удаление элементы. Чтобы пользователям они не мешали, можно программным путем отключить их видимость при открытии формы выбора (или формы списка) справочника с помощью предустановки отбора.
Делается это примерно таким способом. В диалоговой форме справочника назначается процедура «При открытии». И в модуле формы пишется примерно такой код:
Код 1C v 8.х
Источник

Разместил: E_Migachev  Версии: | 8.x |  Дата: 20.05.2011   Прочитано: 18730

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно?  6
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C: Enterprise Development Tools  50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это?  11
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Посмотреть все результаты поиска похожих

Еще в этой же категории

Создание и запись нового элемента справочника  12
НаКлиенте Процедура ПоКнопкеНовыйКонтрагент(Команда) // Вставить содержимое обработчика. Перем НовыйКонтрагент; НовыйКонтрагент = Новый Структура(" Наименование, ПолноеНаименование, ИНН" ); НовыйКонтрагент.Наименование = " РиК ООО" ; НовыйКон Как для Выбора Элемента Справочника Открыть Форму Выбора с нужной Открытой Группой?  8
Порядок действий такой: 1. В поле ввода " Номенклатура" добавь событие ПриНачалеВыбора. 2. Установи в них СтандартнаяОбработка = Ложь; 3. Получи форму выбора нужного справочника 4. Установи отбор по родителю 5. Открой форму для выбора Теп Перебрать, выбрать элементы справочника  7
Выборка = Справочники.Сотрудники.Выбрать(); //или Выборка = Справочники.Сотрудники.ВыбратьИерархически(); Пока выборка.Следующий() = 1 Цикл . //действия с очередным элементом . Сообщить(" Сотрудник " + выборка.Наименование); КонецЦикла; / Перебрать, выбрать элементы подчиненного справочника  7
Перебор элементов справочника принадлежащих элементу другого справочника, т.е когда один справочник подчинен другому справочнику. // Получить выборку по указанному контрагенту. Выборка = Справочники.КонтактныеЛица.Выбрать( , Контрагент); Пока Вы Как программно открыть и выбрать элемент справочника, выбор элемента справочника?  7
Просто открыть: // Получить форму выбора справочника как подчиненную форме документа ФормаСписка = Справочники.Номенклатура.ПолучитьФормуСписка( , ЭтаФорма); // Открыть полученную форму ФормаСписка.Открыть(); Открыть для выбора элемента: Ф Посмотреть все в категории Справочники

Читайте также: