|
Помогите с отборами в справочнике | ☑ | ||
---|---|---|---|---|
0
DenAst
09.04.13
✎
15:36
|
Суть задачи:
Есть справочник сотрудников, при вводе нового сотрудника необходимо проверять есть ли такой сотрудник в справочнике. Проверка выполняется по наименованию, путем вхождения, но не в этом суть. Для проверки вызывается обработка. В ней табличная часть, в табличную часть выводятся совпадающие элементы. Если совпадения нашлись, и их несколько, то из табличной части выбирается один нужный элемент. Дальнейшее выполнение задачи выполняем вернувшись в предопределенную процедуру нового элемента справочника ПередОткрытием(), в ней такой код: ФормаСписка = Справочники.Сотрудники.ПолучитьФорму("ФормаСписка"); Если ФормаСписка.Открыта() Тогда ФормаСписка.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр=Ложь; ФормаСписка.Отбор.Сбросить(); ФормаСписка.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = ВыбСотрудник.ссылка; ФормаСписка.Отбор.Наименование.Установить(ВыбСотрудник.Наименование); ФормаСписка.Активизировать(); Отказ=истина; возврат; Таким образом открываю форму списка и устанавливаю фильтр по справочнику по Наименованию найденного элемента, тем самым позволяя выбрать в дальнейшем только нужное в списке справочника. Ну и делаю выборку по коду, устанавливая строку выбора на нужном элементе, затем закрываю форму этого нового элемента справочника так как уже выбрали нужное и ввод нового не понадобился. При обычном открытии списка справочника и попытки завести новый элемент в нем все работает как надо, но хочу тоже самое сделать при открытии формы списка справочника Сотрудников из реквизита документа для выбора сотрудника из него. Поиск совпадений в обработку и проч работает как надо, но необходимо продублировать код, который в списке справочника ищет найденный элемент и выбирает его(аналогично приведеному коду) чтобы пользователь мог сразу выбрать найденный им элемент. Почему-топри выборе из документа эти же строки не работают. 1с8.2 обычное приложение. |
|||
1
DenAst
09.04.13
✎
15:41
|
Предугадываю вопрос, почему бы не сделать обычный поиск и фильтр по найденному в списке справочника - так не годится, сделать его не проблема, но пользователи работающие с этой операцией не будут проверять поиском есть ли элемент, и будут все равно ломиться заводить сразу новых. Единственное средство - это жестко их ограничивать на ввод новых элементов в момент когда они пытаются создать нового сотрудника, поэтому такой сложный путь.
|
|||
2
DenAst
10.04.13
✎
08:14
|
подниму тему, все еще актуально
|
|||
3
shuhard
10.04.13
✎
08:16
|
(0) сделай подписку перед записью и посылай нах при наличии дублей
|
|||
4
DenAst
10.04.13
✎
08:20
|
по сути это уже будет работать даже таким методом, который уже реализовал. проблема в другом: посылать просто так не могу, могут быть одни и те же данные сотрудников, но под разными табельными номерами. Например, внешние совместители. Хочу именно указать пользователю на совпадения, чтобы список совпадений был найден и выведен пользователю, чтобы он тут же из этих совпадений мог выбрать вариант сразу в документ. Но повторюсь: при обычном открытии списка справочника через меню- все работает, а при поиске и вводе нового из реквизита документа - не работает...
|
|||
5
vicof
10.04.13
✎
08:26
|
(4) В одном случае у тебя форма выбора, в другом форма списка, поэтому и не работает
|
|||
6
DenAst
10.04.13
✎
08:43
|
(4) тоже про это подумал сразу же как наткнулся на проблему, проставил и в документе в рексизите форму выбора, которую специально создал, не видит ее модуль все равно
|
|||
7
kosts
10.04.13
✎
09:22
|
(0) Разгранич права. Сотрудников должен добавлять кадровик, а не кто попало.
|
|||
8
DenAst
10.04.13
✎
10:43
|
(7) тут вопрос не только с сотрудниками, есть такой же блок контроля новых элементов и с Контрагентами. Конфигурация управленческая, не бухгалтерская, сотрудников может быть и ссинхронизирую действительно с Бухгалтерской кадровой (задумка уже была такая), а вот с контрами будет сложнее, для них ввод в управленческой базе должен быть, т.к. каких-то контрагентов нет, а некоторым службам необходимо оформлять документы с указанием контрагентов, которых нет в системе. Поэтому вопрос остается в силе.
|
|||
9
SherifSP
10.04.13
✎
10:58
|
В событии НачалоВыбора, Отказ ставишь в истину, вызываешь вручную форму списка справочника уже с отбором по данным которые тебе нужны, но форму открываешь модально с признаком выбора, после отлавливаешь данные и работаешь с ними
|
|||
10
SherifSP
10.04.13
✎
11:07
|
(9) не Отказ, а СтандартнаяОбработка = Ложь
|
|||
11
DenAst
10.04.13
✎
11:12
|
(9) "В событии НачалоВыбора" тогда в каждый документ на каждом элементе контрагента/сотрудника придется блок этот добавлять либо вызов процедуры... Хотелось бы что-то универсальное.. С добавлением блоков есть и простые способы: типа текстовой строки поиска, и только потом открытие элемента или вариантов на основе введенной строки, и сразу передача выбранного в документ, это все на порядок проще. Но хочется сделать в одном месте, чтобы было централизовано.
|
|||
12
SherifSP
10.04.13
✎
11:24
|
(11) А общие модули для чего?
|
|||
13
DenAst
10.04.13
✎
11:56
|
(12) Общие модули для вызова в любом случае придется указывать в каждом документе.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |