В БСП, есть специальная функция ЗначениеСсылочногоТипа(), она экспортная находится в модуле ОбщегоНазначения.
Пример вызова
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(Заказы) Тогда
...
На примере базы ЕРП 2.4
В БСП, есть специальная функция ЗначениеСсылочногоТипа(), она экспортная находится в модуле ОбщегоНазначения.
Пример вызова
Если ОбщегоНазначения.ЗначениеСсылочногоТипа(Заказы) Тогда
...
На примере базы ЕРП 2.4
Разберем пример получение значения из пользовательских параметров отчета СКД.
Добавим параметр Валюта в схему компоновки данных, получаем его не из условий запроса а вводим вручную.
Добавим вывод в пользовательские настройки.
Далее в модуле объекта отчета, опишем получение параметра в процедуре ПриКомпоновкеРезультата, она вызывается в момент формирования отчета.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
УстановитьПривилегированныйРежим(Истина);
НастройкиПользователя = ПолучитьНастройкиПользователяФранчайзи();
ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("Валюта");
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки);
Если ПараметрСКД <> Неопределено Тогда
ПользовательскийПараметрВалюты = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрСКД.ИдентификаторПользовательскойНастройки);
Если ПользовательскийПараметрВалюты <> Неопределено Тогда
ВалютаВНастройках = ПользовательскийПараметрВалюты.Значение;
КонецЕсли;
КонецЕсли;
Кратко поясню, ПараметрКомпоновки создаем новый объект и даем ему наименование сходное с нашим параметром "Валюта". Затем получаем параметр из компоновщика настроек.
И по уникальному идентификатору выполняем поиск в пользовательских настройках компоновщика данных.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Отбор.Свойство("Владелец") Тогда
Элементы.Код.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОбратитсяКМодулюОбъектаОбработки()
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
ОбъектОбработки.ПроцедураМодуляОбъекта();
КонецФункции // ПолучитьКлиентПутьКлиентаHelpDesk()
&НаКлиенте
Функция ПолучитьТекущуюСредуВыполнения() Экспорт
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
Возврат "Толстый клиент";
#ИначеЕсли Сервер Тогда
Возврат "Сервер";
#ИначеЕсли ВнешнееСоединение Тогда
Возврат "Внешнее соединение";
#ИначеЕсли ТонкийКлиент Тогда
Возврат "Тонкий клиент";
#ИначеЕсли ВебКлиент Тогда
Возврат "Веб-клиент";
#Иначе
Возврат "Ошибка определения среды выполнения";
#КонецЕсли
КонецФункции //ПолучитьТекущуюСредуВыполнения
Shell = Новый COMОбъект("WScript.Shell");
LOCALAPPDATA = Shell.ExpandEnvironmentStrings("%LOCALAPPDATA%");
КаталогКэша = LOCALAPPDATA + "\Microsoft\Windows\Temporary Internet Files";Сообщить(СтандартныеПодсистемыСервер.ВерсияБиблиотеки());
НовыйПереносДанных = Документы.ПереносДанных.СоздатьДокумент();
НовыйПереносДанных.Дата = ТекущаяДата();//выберем движения по документу
ДвиженияПереносДанных = НовыйПереносДанных.Движения; //добавляем табличную часть регистра в документ, обязательно указываем имя регистра
НовыйПереносДанныхРН = НовыйПереносДанных.ТаблицаРегистров.Добавить();
НовыйПереносДанныхРН.Имя = "ВзаиморасчетыСДепонентами";//выбираем движения по регистру
ВзаиморасчетыСДепонентами = ДвиженияПереносДанных.ВзаиморасчетыСДепонентами;
НовыйПереносДанных.Записать(); //обязательно записываем документ т.к. нужна ссылка на регистратор
Строка = ВзаиморасчетыСДепонентами.Добавить(); //добавляем движения
Строка.Период = ДатаРегистрацииДвижений;
Строка.Регистратор = НовыйПереносДанных.Ссылка;
Строка.ВидДвижения = ВидДвиженияНакопления.Приход;
Строка.Ведомость = ВедомостьНаВыплатуЗарплатыВКассу;
Строка.Активность = Истина;
Строка.Организация = ОрганизацияДляДвижения;
Строка.ФизическоеЛицо = ФизЛицоДляДвижения;
Строка.Сумма = Сумма;
//записываем сначала движения затем документ
ВзаиморасчетыСДепонентами.Записать();
НовыйПереносДанных.Записать();
// Выполнить в фоне.
Попытка
Задание = ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяПроцедуры, ПараметрыВыполнения, ПараметрыЭкспортнойПроцедуры);
Исключение
Результат.Статус = "Ошибка";
Если Задание <> Неопределено И Задание.ИнформацияОбОшибке <> Неопределено Тогда
Результат.КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(Задание.ИнформацияОбОшибке);
Результат.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(Задание.ИнформацияОбОшибке);
Иначе
Результат.КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Результат.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецЕсли;
Возврат Результат;
КонецПопытки;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Объект, "Дата") Тогда
Если НЕ Объект.Проведен Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;