|   |   | 
| 
 | Как получить данные с составного типа | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Всем спасибо, вроде получилос, а самоеглавно я понял как это работает!
  &НаКлиенте Процедура ДолгиКлиентыПриИзменении(Элемент) ТЗ = ЭтаФорма.Элементы.Долги.ТекущиеДанные; Если ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Сотрудники") Тогда ДанныеСотрудника = УправлениеНебольшойФирмойСервер.ПолучитьДанныеСотрудника(ТЗ.Клиенты,ДанныеСотрудника); Если ДанныеСотрудника<> Неопределено Тогда ТЗ.Организация = ДанныеСотрудника.Организация; ТЗ.Подразделение = ДанныеСотрудника.СтруктурнаяЕдиница; ИначеЕсли ТипЗнч(ТЗ.Клиенты)= Тип("СправочникСсылка.Контрагенты") Тогда КонецЕсли; КонецЕсли; КонецПроцедуры Функция ПолучитьДанныеСотрудника (Сотрудник,ДанныеСотрудника) Экспорт Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ | СотрудникиСрезПоследних.Сотрудник, | СотрудникиСрезПоследних.Организация, | СотрудникиСрезПоследних.СтруктурнаяЕдиница Как Подразделение, | СотрудникиСрезПоследних.Должность |ИЗ | РегистрСведений.Сотрудники.СрезПоследних КАК СотрудникиСрезПоследних |ГДЕ | СотрудникиСрезПоследних.Сотрудник = &Сотрудник"; Запрос.УстановитьПараметр("Сотрудник",Сотрудник); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ДанныеСотрудника = Новый Структура; ДанныеСотрудника.Вставить("Организация",Выборка.Организация); ДанныеСотрудника.Вставить("СтруктурнаяЕдиница",Выборка.Подразделение); Возврат ДанныеСотрудника; КонецЕсли; КонецФункции | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |