Имя: Пароль:
1C
1С v8
Как корректней/правильней получить значение реквизита?
0 ARumshin
 
08.01.21
17:50
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    СчетНаОплатуПокупателю.ДоговорКонтрагента.бит_стр_Строительство.бит_стр_Проект КАК Проект
                   |ИЗ
                   |    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
                   |ГДЕ
                   |    СчетНаОплатуПокупателю.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка", Основание);
1 Ненавижу 1С
 
гуру
08.01.21
18:00
в чем вопрос?
2 ARumshin
 
08.01.21
18:03
Мне нужно получить значение реквизита из одно справочника, который доступен по ссылке. Если я через точку в запросе буду обращать это корректно будет?
В счете покупателей есть договор, в договоре указана номенклатурная группа (это реквизит "бит_стр_Строительство"), в номенклатурной группе указан проект (это реквизит "бит_стр_Проект").
3 ДенисЧ
 
08.01.21
18:10
Если у тебя все реквизиты определённого типа (нет составных) - никакого криминала тут нет.
4 ARumshin
 
08.01.21
18:17
В данному (3) случае не составные. А если составные здесь хватит функции Выразить()? Почему-то предполагал, что правильней через связи это делать, т.е. делать связи через справочники. Или это одно и тоже?
5 Ненавижу 1С
 
гуру
08.01.21
18:41
(4) в случае простого типа - одно и тоже. В случае составного "выразить" эквивалентно конкретной связи
6 ildary
 
08.01.21
22:48
(0) а почему не используется ОбщегоНазначения.ЗначениеРеквизитовОбъекта()? Там тоже можно поля через точку получать.
7 whitedi
 
08.01.21
22:57
Если получение реквизита не часто и не в цикле используется, а например при проведении 20-30 документов в день, то и составной тип через точку не вижу криминала получать. Иначе в погоней за совершенством кода можно потерять что-то другое.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс