|
В списокначений одно представление, выбирающее разные значения ? | ☑ | ||
---|---|---|---|---|
0
mailwood
27.04.12
✎
12:38
|
СтандартнаяОбработка = Ложь;
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Сотрудники.Ссылка КАК Ссылка |ИЗ | Справочник.Сотрудники КАК Сотрудники | |УПОРЯДОЧИТЬ ПО | Сотрудники.Наименование"; Выборка = Запрос.Выполнить().Выбрать(); Список = Новый СписокЗначений; Пока Выборка.Следующий() Цикл Список.Добавить(Выборка.Ссылка); КонецЦикла; РезультатВыбора = ВыбратьИзСписка(Список, Элемент); Если РезультатВыбора <> Неопределено Тогда Элемент.Значение = РезультатВыбора.Значение; КонецЕсли; Допустим, если одно физлицо работает дворником и грузчиком - это разные сотрудники, имеющие одно представление "Иванов Иван Иванович". Хочу сделать, чтобы в списке было один вариант "Ивановича", а при выборе выбирались оба варианта работника. Кто подскажет ? |
|||
1
acsent
27.04.12
✎
12:39
|
как ты в реквизит запишешь 2х работников?
|
|||
2
Господин ПЖ
27.04.12
✎
12:39
|
>Кто подскажет ?
хорошего нарколога? |
|||
3
Axel2009
27.04.12
✎
12:43
|
а если вдруг попадутся 2 однофамильца?
|
|||
4
mailwood
27.04.12
✎
12:52
|
(3) Это да, но можно по физлицу формировать группу. Вопрос, реально ли со списком такое сделать.
|
|||
5
х86
27.04.12
✎
12:55
|
(0)в элемент.значение ложи Сруктуру, в представление "ВанВаныч"
|
|||
6
Лоботряс
27.04.12
✎
12:56
|
(5) клади
|
|||
7
mailwood
27.04.12
✎
16:30
|
Сделал так:
Запрос = Новый Запрос; Если ОрганизацияДолжностьСотрудник = "Организация" Тогда Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ФизическиеЛицаСписокСотрудников.Организация.Представление КАК ПредставлениеОрганизации |ИЗ | Справочник.ФизическиеЛица.СписокСотрудников КАК ФизическиеЛицаСписокСотрудников |ГДЕ | ФизическиеЛицаСписокСотрудников.Ссылка = &ЭтоФизлицо"; ИначеЕсли ОрганизацияДолжностьСотрудник = "Должность" Тогда Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ФизическиеЛицаСписокСотрудников.Должность.Представление КАК ПредставлениеДолжности |ИЗ | Справочник.ФизическиеЛица.СписокСотрудников КАК ФизическиеЛицаСписокСотрудников |ГДЕ | ФизическиеЛицаСписокСотрудников.Ссылка = &ЭтоФизлицо"; Иначе Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ФизическиеЛицаСписокСотрудников.Сотрудник КАК Сотрудник, | ФизическиеЛицаСписокСотрудников.Сотрудник.Представление КАК ПредставлениеСотрудника, | ФизическиеЛицаСписокСотрудников.Организация.Представление КАК ПредставлениеОрганизации, | ФизическиеЛицаСписокСотрудников.Должность.Представление КАК ПредставлениеДолжности |ИЗ | Справочник.ФизическиеЛица.СписокСотрудников КАК ФизическиеЛицаСписокСотрудников |ГДЕ | ФизическиеЛицаСписокСотрудников.Ссылка = &ЭтоФизлицо"; КонецЕсли; Запрос.УстановитьПараметр("ЭтоФизлицо", ПараметрыСеанса.Физлицо); Выборка = Запрос.Выполнить().Выбрать(); Список = Новый СписокЗначений; Пока Выборка.Следующий() Цикл Если ОрганизацияДолжностьСотрудник = "Сотрудник" Тогда Представление = Выборка.ПредставлениеСотрудника + ", " + Выборка.ПредставлениеОрганизации + ", " + Выборка.ПредставлениеДолжности; Список.Добавить(Выборка[ОрганизацияДолжностьСотрудник],Представление); ИначеЕсли ОрганизацияДолжностьСотрудник = "Организация" Тогда Представление = Выборка.ПредставлениеОрганизации; Список.Добавить(Представление); ИначеЕсли ОрганизацияДолжностьСотрудник = "Должность" Тогда Представление = Выборка.ПредставлениеДолжности; Список.Добавить(Представление); КонецЕсли; Список.СортироватьПоПредставлению(); КонецЦикла; РезультатВыбора = ВыбратьИзСписка(Список, Элемент, НомерОргДолжСотр[ОрганизацияДолжностьСотрудник]); Если РезультатВыбора <> Неопределено И ОрганизацияДолжностьСотрудник = "Сотрудник" Тогда Элемент.Значение = РезультатВыбора.Значение; НомерОргДолжСотр[ОрганизацияДолжностьСотрудник] = Список.Индекс(РезультатВыбора); ИначеЕсли РезультатВыбора <> Неопределено И ОрганизацияДолжностьСотрудник = "Организация" Тогда Элемент.Значение = Справочники.Организации.НайтиПоНаименованию(РезультатВыбора.Значение); НомерОргДолжСотр[ОрганизацияДолжностьСотрудник] = Список.Индекс(РезультатВыбора); ИначеЕсли РезультатВыбора <> Неопределено И ОрганизацияДолжностьСотрудник = "Должность" Тогда Элемент.Значение = Справочники.Должности.НайтиПоНаименованию(РезультатВыбора.Значение); НомерОргДолжСотр[ОрганизацияДолжностьСотрудник] = Список.Индекс(РезультатВыбора); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |