Имя: Пароль:
1C
1С v8
БСП 2.1.6, подсистема вариантов отчета
,
0 Ayvengo
 
26.09.13
12:00
Где там включить возможность использования внешних функций? Может кто уже сталкивался?
В СП не посылайте, про процессор уже читал, ищу где, но сложно это сделать, т.к. на сервере отладка не работает, но это отдельная история :)
1 Ayvengo
 
26.09.13
13:01
Нашаманил такую штуку

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка         = Ложь;

    МассивЗаголовковРесурсов     = Новый Массив;
    НастройкиОтчета             = КомпоновщикНастроек.ПолучитьНастройки();
    КомпоновщикМакета             = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки             = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);

    //Создадим и инициализируем процессор компоновки
    ПроцессорКомпоновки         = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

    //Создадим и инициализируем процессор вывода результата
    ПроцессорВывода                = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

    //Обозначим начало вывода
    ПроцессорВывода.НачатьВывод();
    ТаблицаЗафиксирована         = Ложь;

    ДокументРезультат.ФиксацияСверху = 0;
    //Основной цикл вывода отчета
    Пока Истина Цикл
        //Получим следующий элемент результата компоновки
        ЭлементРезультата         = ПроцессорКомпоновки.Следующий();

        Если ЭлементРезультата = Неопределено Тогда
            //Следующий элемент не получен - заканчиваем цикл вывода
            Прервать;
        Иначе
            // Зафиксируем шапку
            Если  Не ТаблицаЗафиксирована
                  И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
                  И ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда

                ТаблицаЗафиксирована = Истина;
                ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;

            КонецЕсли;
            //Элемент получен - выведем его при помощи процессора вывода
            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        КонецЕсли;
    КонецЦикла;

    ПроцессорВывода.ЗакончитьВывод();
КонецПроцедуры


Вроде бы все ок, возможность использования внешних функций включил. Но функция все-равно не работает :( Использую функцию
ПользователиКлиентСервер.ТекущийПользователь()
2 banco
 
26.09.13
13:04
(0) о чем вообще речь? при чем тут БСП?
3 Ayvengo
 
26.09.13
13:07
(2) думал, что в ней проблема, ошибся ..
А речь идет о том, что не получается использовать внешние функции в СКД.
4 Ayvengo
 
26.09.13
13:31
Ну что, нет никаких идей?
5 banco
 
26.09.13
13:34
(4) никто не знает где и как ты используешь эту функцию
6 Ayvengo
 
26.09.13
13:34
(5) БСП =\
7 Ayvengo
 
26.09.13
13:35
8 Ayvengo
 
26.09.13
13:36
9 Ayvengo
 
26.09.13
13:36
Вот вся инфа или нужно что-то еще? :)
10 Ayvengo
 
26.09.13
13:39
(5) тут скорее всего никто не знает как решить эту проблему ...
11 banco
 
26.09.13
13:44
(10) нет никакой проблемы, все работает, непонятно как потом используешь и определяешь что не работает. а текущийпользователь скорее параметр, чем вычисляемое поле.
12 Ayvengo
 
26.09.13
13:48
(11) да тут не суть что это, все-равно наборов никаких нет. тупо одно вычисляемое поле и настройка его на вывод.
13 Ayvengo
 
26.09.13
13:51
(11) Банально создаю внешний отчет, добавляю только одно вычисляемое поле, потом в настройках вывожу этого текущего пользователя.
14 Ayvengo
 
26.09.13
13:57
При чем это происходит на разных конфигурациях ... типовая УНФ, конфа на основе БСП. жесть в общем... куда рыть не понятно =\
15 banco
 
26.09.13
14:13
(12) так суть именно в этом, что набора никаких нет. как вычисляемое поле будет работать?
16 Ayvengo
 
26.09.13
14:18
(15) За время беседы я начинаю склоняться к тому, что Вы очень хотите помочь, но не можете, в связи с тем, что не знаете как.
Я же подробно все описал, что еще нужно сделать?
Если я в выражении пишу "фывадлфывадло", то выводится именно это "фывадлфывадло". Если я использую функцию - вылетает ошибка, что функция не найдена.
17 banco
 
26.09.13
14:23
(16) за всю беседу вы первый раз написали про ошибку. у меня все работает, значит вы что то не так делаете, вот и пытаюсь узнать что.
18 Ayvengo
 
26.09.13
14:25
(17) что я не так делаю? Я просто добавляю одно вычисляемое поле и вывожу его .. может опять проблема с платформой, а нет. с платформами :(
19 zmaximka
 
26.09.13
14:26
Функции общих модулей
Выражение механизма компоновки данных может содержать вызовы функций глобальных общих модулей конфигурации. Никакого дополнительно синтаксиса для вызова таких функций не требуется.

Пример:
СокращенноеНаименование(Документы.Ссылка, Документы.Дата, Документы.Номер)
В данном примере будет осуществлен вызов функции "СокращенноеНаименование" из общего модуля конфигурации.

Отметим, что использование функций общих модулей разрешено только при указании соответствующего параметра процессора компоновки данных.

Кроме того, функции общих модулей не могут быть использованы в выражениях пользовательских полей.
20 RomaH
 
naïve
26.09.13
14:31
вроде функции общих модулей не работают на внешних отчетах
?
21 Ayvengo
 
26.09.13
15:16
(20) Проблема точно не во внешнем отчете. Разные варианты пробовал.
(15) Вы были правы, извиняюсь, если где-то что-то не так сказал :) Причина в том, что нет данных, что бы отрабатывались  вычисляемые поля.
Добавил
в данные запрос
ВЫБРАТЬ
    &ТекущийПользователь КАК ТекущийПользователь

Далее в параметрах написал выражение нужное. Все заработало.