Имя: Пароль:
1C
 
Есть в БСП функция ПолучитьРеквизитСправочникаНАСервере(ИмяСправочника,ИмяРеквизитаШапки)
, ,
0 Вася Теркин
 
30.01.19
13:19
Писать в модуле
&НаСервереБезКонтекста
функция  ПолучитьРеквизитСправочникаНАСервере(ИмяСправочника,ИмяРеквизитаШапки)
Возврат Справочники[ИмяСправочника][ИмяРеквизитаШапки];
КонецФункции


или искать в БСП - вот в чем вопрос?
1 Вася Теркин
 
30.01.19
13:20
Стоп, чего-то не то...
2 OldCondom
 
30.01.19
13:21
общегоназначения.значениеобъекта...
там еще значение объектОВ есть
3 Numerus Mikhail
 
30.01.19
13:21
И что тебе должно вернуться?
4 OldCondom
 
30.01.19
13:21
значениереквизита + значенияРеквизитов что-то такое
5 Numerus Mikhail
 
30.01.19
13:22
Если ты имеешь в виду получить по ссылке значение реквизита, то вот так, наверное.

ОбщегоНазначения.ЗначениеРеквизитаОбъекта
6 OldCondom
 
30.01.19
13:23
7 Вася Теркин
 
30.01.19
13:23
функция  ПолучитьРеквизитСправочникаНАСервере(СсылкаСправочника,ИмяРеквизитаШапки)
Возврат СсылкаСправочника[ИмяРеквизитаШапки];
КонецФункции

Проще надо, там через структуру, универсально написано. А мне надо один реквизит
8 Вася Теркин
 
30.01.19
13:24
ОК. Свою напишу промежуточную и из нее буду ОбщегоНазначения вызывать
9 Numerus Mikhail
 
30.01.19
13:26
(7) Это плохой способ получения значения реквизита. При обращении через точку тащится весь объект. Тащи нужный реквизит запросом.
10 Вася Теркин
 
30.01.19
13:26
Или такую оставить:
функция  ПолучитьРеквизитСправочникаНАСервере(СсылкаСправочника,ИмяРеквизитаШапки)
Возврат СсылкаСправочника[ИмяРеквизитаШапки];
КонецФункции

в общий модуль свой вставлю. Не обязательно же все через БСП?
11 Вася Теркин
 
30.01.19
13:27
(9) Тогда через БСП
12 Вася Теркин
 
30.01.19
14:37
Одно не понятно - почему вместо
    Результат = Новый Структура;
    Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
        Результат.Вставить(КлючИЗначение.Ключ);
    КонецЦикла;
    ЗаполнитьЗначенияСвойств(Результат, Выборка);
    
    Возврат Результат;

не написать

    ЗаполнитьЗначенияСвойств(Реквизиты, Выборка);
    
    Возврат Реквизиты;
13 Вася Теркин
 
30.01.19
14:38
Ну в смысле

ЗаполнитьЗначенияСвойств(СтруктураРеквизитов, Выборка);
    
    Возврат СтруктураРеквизитов;
14 Вася Теркин
 
30.01.19
14:43
Ну он же NULL все равно нигде не вернет и ни одного реквизита выборка не пропустит.
15 Вася Теркин
 
30.01.19
14:44
Вот вся функция у кого нету

Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты) Экспорт
    
    Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда
        Если ПустаяСтрока(Реквизиты) Тогда
            Возврат Новый Структура;
        КонецЕсли;
        Реквизиты = СтрРазделить(Реквизиты, ",", Ложь);
    КонецЕсли;
    
    СтруктураРеквизитов = Новый Структура;
    Если ТипЗнч(Реквизиты) = Тип("Структура") Или ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда
        СтруктураРеквизитов = Реквизиты;
    ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
        Для Каждого Реквизит Из Реквизиты Цикл
            СтруктураРеквизитов.Вставить(СтрЗаменить(Реквизит, ".", ""), Реквизит);
        КонецЦикла;
    Иначе
        ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неверный тип второго параметра Реквизиты: %1'"), Строка(ТипЗнч(Реквизиты)));
    КонецЕсли;
    
    ТекстПолей = "";
    Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
        ИмяПоля   = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
                      СокрЛП(КлючИЗначение.Значение),
                      СокрЛП(КлючИЗначение.Ключ));
        
        Псевдоним = СокрЛП(КлючИЗначение.Ключ);
        
        ТекстПолей  = ТекстПолей + ?(ПустаяСтрока(ТекстПолей), "", ",") + "
        |    " + ИмяПоля + " КАК " + Псевдоним;
    КонецЦикла;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.Текст =
    "ВЫБРАТЬ
    |" + ТекстПолей + "
    |ИЗ
    |    " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы
    |ГДЕ
    |    ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка
    |";
    Выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
    
    Результат = Новый Структура;
    Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
        Результат.Вставить(КлючИЗначение.Ключ);
    КонецЦикла;
    ЗаполнитьЗначенияСвойств(Результат, Выборка);
    
    Возврат Результат;
    
КонецФункции
16 Victorov_S
 
04.02.19
13:29
Добрый день, для выполнения практических заданий нужна БСП 2.3.2.59, кто знает где взять?
17 Вася Теркин
 
04.02.19
13:56
Разве на ИТС нету?
18 Nikoss
 
04.02.19
14:31
(5)(6) откуда вы помните все эти функции БСП? Просто по опыту? Или прям по списку с ИТС учить приходится?
П.С. там одних процедур/функций в общем назначении 300 штук
19 Вася Теркин
 
04.02.19
14:33
(18) Там 61 подсистема, вроде...
20 Numerus Mikhail
 
04.02.19
14:35
(18) Помню только самые часто используемые
Остальные, которые когда-то использовал примерно помню где лежат, так что найти их не составляет труда
21 Victorov_S
 
04.02.19
14:40
Неа, нашел только 2.1.8.2 ли 3.0.2.164 там.
22 Victorov_S
 
04.02.19
14:47
Вернее БСП 2.3.2.59 - 2.3.2.73 подойдет
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан