|
Как получить данные с составного типа | ☑ | ||
---|---|---|---|---|
0
Шурик_1985
07.02.12
✎
14:31
|
Здравствуйте!
Ребят помогите решить задачку!! Имеется реквизит табличной части документа составного типа (два разных справочника 1.СправочникСотрудник и 2 СправочникКонтрагенты). Задача: если пользователь выбрал один тип справочника т.е СправочникСотрудники, то нужно открыть форму выбора и передав параметры в глобальный модуль, а если другой - ничего не делать, вот что я пробовал написать: [code] &НаКлиенте Процедура ТабДокКлиентыПриИзменении(Элемент) ТЗ = ЭтаФорма.Элементы.Долги.ТекущиеДанные; Если ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Сотрудники") Тогда ДанныеСотрудника = ""; ГМВариантыОтчетов.ПолучитьДанныеСотрудника(ТЗ.Клиенты,ДанныеСотрудника); ТЗ.Организация = ДанныеСотрудника.Организация; ТЗ.Подразделение = ДанныеСотрудника.Подразделение; ИначеЕсли ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Сотрудники") Тогда КонецЕсли; КонецПроцедуры Функция ПолучитьДанныеСотрудника (ДанныеСотрудника,Сотрудник) Экспорт Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ | СотрудникиСрезПоследних.Сотрудник, | СотрудникиСрезПоследних.Организация, | СотрудникиСрезПоследних.СтруктурнаяЕдиница Как Подразделение, | СотрудникиСрезПоследних.Должность |ИЗ | РегистрСведений.Сотрудники.СрезПоследних КАК СотрудникиСрезПоследних |ГДЕ | СотрудникиСрезПоследних.Сотрудник = &Сотрудник"; Запрос.УстановитьПараметр("Сотрудник",Сотрудник); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ДанныеСотрудника = Новый Структура; ДанныеСотрудника.Вставить("Организация",Выборка.Организация); ДанныеСотрудника.Вставить("СтруктурнаяЕдиница",Выборка.Подразделение); Возврат ДанныеСотрудника; КонецЕсли; КонецФункции [code\] Спасибо за внимание! |
|||
1
Ненавижу 1С
гуру
07.02.12
✎
14:33
|
ну и какрезультат?
|
|||
2
Шурик_1985
07.02.12
✎
14:43
|
Ошибка коньячно, {Документ.АвансовыйОтчет.Форма.ФормаДокумента(2307)}: Значение не является значением объектного типа (Организация)
ТЗ.Организация = ДанныеСотрудника.Организация; я получаеться передаю группу, я думаю что надо как то обойти родителя, но у вы не знаю как! |
|||
3
Fish
07.02.12
✎
14:47
|
У тебя при вызове ф-ции написано:
ГМВариантыОтчетов.ПолучитьДанныеСотрудника(ТЗ.Клиенты,ДанныеСотрудника) А в самой ф-ции: Функция ПолучитьДанныеСотрудника (ДанныеСотрудника,Сотрудник) Точно параметры не перепутаны? |
|||
4
Шурик_1985
07.02.12
✎
14:56
|
Fish
Не не точно не перепутаны! я на это уже обращал внимание |
|||
5
Шурик_1985
07.02.12
✎
15:02
|
Уважаемы коллеги программисты не у кого не будет других вариантов???
|
|||
6
DrShad
07.02.12
✎
15:06
|
(4) уверен?
|
|||
7
mkanaev
07.02.12
✎
15:12
|
чё ет ты в параметр запроса пустую строку подаёшь а сравниваешь я так понимаю с ссылкой?
|
|||
8
Fish
07.02.12
✎
15:14
|
(4) Поставь точку останова на строке:
Запрос.УстановитьПараметр("Сотрудник",Сотрудник); И посмотри, чему равен Сотрудник. Сильно удивишься :))) |
|||
9
Fish
07.02.12
✎
15:15
|
У тебя функция ничего не возвращает. Вот и ошибка.
|
|||
10
Шурик_1985
07.02.12
✎
15:39
|
Все равно результат не та, при изменении ТЗ.клиента я передаю родителя СправочникаСотрудник в глобальный модуль и уменя результат естественно получаеться пустая строка.
может это следует написать в НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) типа СтандартнаяОбработка = Ложь; и дальше ? ? если я реально туплю прошу не судите строго, начинающий:(( |
|||
11
Fish
07.02.12
✎
15:42
|
(10) Ничего не понял, если честно :))) А по поводу ошибки в (2) я уже тебе написал всё.
|
|||
12
Шурик_1985
07.02.12
✎
16:01
|
Fish большое спасибо за ответы, постараюсь помозговать:))
|
|||
13
Шурик_1985
08.02.12
✎
08:30
|
Всем спасибо, вроде получилос, а самоеглавно я понял как это работает!
&НаКлиенте Процедура ДолгиКлиентыПриИзменении(Элемент) ТЗ = ЭтаФорма.Элементы.Долги.ТекущиеДанные; Если ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Сотрудники") Тогда ДанныеСотрудника = УправлениеНебольшойФирмойСервер.ПолучитьДанныеСотрудника(ТЗ.Клиенты,ДанныеСотрудника); Если ДанныеСотрудника<> Неопределено Тогда ТЗ.Организация = ДанныеСотрудника.Организация; ТЗ.Подразделение = ДанныеСотрудника.СтруктурнаяЕдиница; ИначеЕсли ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Контрагенты") Тогда КонецЕсли; КонецЕсли; КонецПроцедуры Функция ПолучитьДанныеСотрудника (Сотрудник,ДанныеСотрудника) Экспорт Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ | СотрудникиСрезПоследних.Сотрудник, | СотрудникиСрезПоследних.Организация, | СотрудникиСрезПоследних.СтруктурнаяЕдиница Как Подразделение, | СотрудникиСрезПоследних.Должность |ИЗ | РегистрСведений.Сотрудники.СрезПоследних КАК СотрудникиСрезПоследних |ГДЕ | СотрудникиСрезПоследних.Сотрудник = &Сотрудник"; Запрос.УстановитьПараметр("Сотрудник",Сотрудник); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ДанныеСотрудника = Новый Структура; ДанныеСотрудника.Вставить("Организация",Выборка.Организация); ДанныеСотрудника.Вставить("СтруктурнаяЕдиница",Выборка.Подразделение); Возврат ДанныеСотрудника; КонецЕсли; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |