Имя: Пароль:
1C
1С v8
Как получить данные у реквизита ссылочного типа?
,
0 kostya1999990
 
27.02.19
12:44
Есть реквизит Клиенты (Ссылочного типа). Имеется запрос и параметром является тот самый клиент, которого выберет пользователь. Думал в запросе дело, в конструкторе проверил и всё работает. Попробовал поставить у реквизита Клиенты тип данных Строка и всё заработало, но это не удобно. Подскажите, кто знает, как решить проблему, чтобы запрос видел данные реквизита Клиенты (ссылочного типа).
1 wondkind
 
27.02.19
12:53
Клиент - ссылка на твоего клиента

Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
                |   Клиенты.Код,
                |   Клиенты.Наименование
                |ИЗ
                |   Справочник.Клиенты КАК Клиенты
                |ГДЕ
                |   Клиенты.Ссылка = &Клиент";
Запрос.УстановитьПараметр("Клиент", Клиент);
РезультатЗапроса = Запрос.Выполнить();
ТаблицаРезультата = Запрос.Выгрузить();

Вот стандартный запрос. Теперь объясни, что тебе не понятно
2 Сисой
 
27.02.19
12:53
Это самый прикольная тема февраля! Спасибо. Повеселил.
3 catena
 
27.02.19
12:55
Если проблема с конкретным кодом, приведите листинг программы, но придерживайтесь принципа разумной достаточности – ошибку проще найти в небольшом листинге, чем изучать весь модуль.
4 kostya1999990
 
27.02.19
17:12
(3) На форме есть реквизит Организация (Тип: Ссылка на справочник Организации). Запрос показан ниже. Когда я в режиме пользователя выбираю организацию, ничего не происходит, но если я поставлю реквизиту Организация тип: Строка и напишу туда организацию, которая есть в справочнике Организации, то всё работает.
Может вся проблема в этой строчке?   Запрос.УстановитьПараметр("Организация",Объект.Организация);



&НаСервере
Процедура ОрганизацияПриИзменении(Элемент)
    Запрос  = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ
                   |    Организации.ДолжностьРуководителя,
                   |    Организации.ФамилияРуководителя,
                   |    Организации.ИмяРуководителя,
                   |    Организации.ОтчествоРуководителя
                   |ИЗ
                   |    Справочник.Организации КАК Организации
                   |ГДЕ
                   |    Организации.Наименование = &Организация";
    Запрос.УстановитьПараметр("Организация",Объект.Организация);    
    Результат = Запрос.Выполнить().Выбрать();

        Пока Результат.Следующий() Цикл
    НовСтр = Объект.ТЧДолжностьФИО.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтр, Результат);
    КонецЦикла;
КонецПроцедуры
5 lodger
 
27.02.19
17:17
ошибка тут:
ГДЕ Организации.Наименование = &Организация
6 kostya1999990
 
27.02.19
17:21
(5) Как исправить?
7 OldCondom
 
27.02.19
17:22
(6) искать не по наименованию, а по ссылке. Твой реквизит на форме - это и есть ссылка.
8 kostya1999990
 
27.02.19
17:23
(5) Думал вроде по наименованию организацию искать надо
9 OldCondom
 
27.02.19
17:23
А ты в имя пихаешь ссылку.
От стеба меня останавливает только нормальный код после запроса. Может человек старается.
10 OldCondom
 
27.02.19
17:24
(8) зачем, когда есть ссылка? Она уже найдена.
11 kostya1999990
 
27.02.19
17:24
(7) То есть правильно будет так? Всё остальное правильно?

ГДЕ Организации.Ссылка = &Организация
12 OldCondom
 
27.02.19
17:24
да. Можно даже без .Ссылка, а просто ГДЕ Организации = &Организация
13 OldCondom
 
27.02.19
17:25
ой
сорян. Все так. Не смотри последнее сообщение)
14 kostya1999990
 
27.02.19
17:25
(12) Спасибо, просто ещё не сильно в этом разбираюсь
15 kostya1999990
 
27.02.19
17:26
(13) Хорошо)
16 OldCondom
 
27.02.19
17:27
Если конфа типовая, привыкай к БСП. В модуле "ОбщегоНазначения" есть функция ЗначенияРеквизитовОбъекта. Она вернет тебе все необходимые значения твох "ДолжностьРуководителя" и прочее. По сути сама напишет запрос.
17 kostya1999990
 
27.02.19
17:30
(16) Модуль общего назначение - это модуль объекта?
18 OldCondom
 
27.02.19
17:30
это общий модуль
19 kostya1999990
 
27.02.19
17:32
(18) Вся суть в том, что я не знаю как с ним работать)
20 OldCondom
 
27.02.19
17:34
21 kostya1999990
 
27.02.19
17:34
(18) Всё равно не работает, когда организацию выбираю, может проблема ещё в чем то?
22 OldCondom
 
27.02.19
17:36
Вместо своего кода попробуй напиши это:
НовСтр = Объект.ТЧДолжностьФИО.
ЗаполнитьЗначенияСвойств(НовСтр, ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Организация, "ДолжностьРуководителя, ФамилияРуководителя, ИмяРуководителя, ОтчествоРуководителя"));
23 igork1966
 
27.02.19
17:37
(4) Если пишешь на конфигурации с БСП то там вообще-то в общем модуле есть целый набор функций
ЗначениеРеквизитаОбъекта, ЗначенияРеквизитовОбъектов, ЗначениеРеквизитаОбъектов
24 OldCondom
 
27.02.19
17:37
в первой строка допиши .Добавить()
25 igork1966
 
27.02.19
17:37
(23) + лучше приучиться не изобретать велосипедов  ;-)
26 eTmy
 
27.02.19
17:38
Тема сделала мой день, тс спасибо!)
27 kostya1999990
 
27.02.19
17:39
(22) Переменная не определена (ОбщегоНазначения)
28 OldCondom
 
27.02.19
17:41
Значит нетиповая конфа) допиливай свой код
29 OldCondom
 
27.02.19
17:42
(25) так сейчас без бсп далеко не уедешь
30 igork1966
 
27.02.19
17:53
(27) Или БСП другой версии.
Перезжали они по модулям.
31 kostya1999990
 
27.02.19
18:39
(29) Всё заработало, спасибо большое, ошибку в параметре сделал)