Вход | Регистрация
 

Есть в БСП функция ПолучитьРеквизитСправочникаНАСервере(ИмяСправочника,ИмяРеквизитаШапки)

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


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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует