8.х Как обратиться к функции из Вычисляемого поля Компановки данных, при создании внешнего отчета?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем amt779, 1 ноя 2012.

  1. TopicStarter Overlay
    amt779
    Offline

    amt779

    Регистрация:
    27 апр 2012
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте.
    Есть следующия практическая задача:

    Я создал внешний отчет. В модуле внешнего отчета разместил функцию, которая на вход принимает значение типа Дата, а возвращает число.
    [​IMG]


    Далее в Схеме компановки данных, я создал Вычисляемое поле и в Выражении этого поля написал обращение к созданному методу. При сохранении Конфигуратор никаких ошибок не выдал.
    [​IMG]

    Но, при тестировании отчета, получаю ошибку, мол. Компилятор не может найти функцию, к которой я обращаюсь в вычисляемом поле.
    [​IMG]

    Отсюда моя печаль и мой вопрос:
    Как из Вычисляемого поля обратиться к методу, описанному в Модуле?
    или
    Где описать метод внешнего отчета, чтобы к нему можно было обратиться из Вычисляемого поля?

    PS
    версия платформы 8.1, конф.:УТ10.3.11.4
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Никак
    В подобных случаях можно использовать только функции общий модулей. Т.е. делаете все тоже самое только в общем модуле. Отчет придется выполнять программно. И в макете компоновки указать возможность использования общих модулей.
  3. TopicStarter Overlay
    amt779
    Offline

    amt779

    Регистрация:
    27 апр 2012
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Т.е. мою конкретную задачу можно решить только если изменить Конфигурацию? Можно ли обойтись без переписывания конфигурации?

    можно ли сей алгоритм как-то запихнуть в Выражение Вычисляемого поля?
    Код:
    тд = ТекущаяДата();
    Возраст = Год(тд)-Год(ДатаРождения);
    Если Формат(ДатаРождения,"ДФ=ММ.дд")>Формат(ТекущаяДата(),"ДФ=ММ.дд") Тогда
    Возраст = Возраст+1;
    КонецЕсли;
    Возврат Возраст;
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    А в запросе почему не можете такие данные вычислить? Религия не позволяет?
  5. TopicStarter Overlay
    amt779
    Offline

    amt779

    Регистрация:
    27 апр 2012
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Честно говоря, не понимаю, какие операторы встроенного языка запросов мне помогут это сделать. Может вы подскажете? Вот мой текущий запрос
    Код:
    ВЫБРАТЬ
    ИнформационныеКарты.ВидДисконтнойКарты КАК ВидДисконтнойКарты,
    Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
    ФизическиеЛица.ДатаРождения КАК ДатаРождения,
    ФизическиеЛица.Наименование КАК ДержательКарты,
    Контрагенты.Ссылка КАК Контрагент,
    ФизическиеЛица.Ссылка КАК ФизЛицо,
    ИнформационныеКарты.Ссылка КАК Карта
    ИЗ
    Справочник.ИнформационныеКарты КАК ИнформационныеКарты
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
    ПО Контрагенты.ФизЛицо = ФизическиеЛица.Ссылка
    ПО ИнформационныеКарты.ВладелецКарты = Контрагенты.Ссылка
    ГДЕ
    ИнформационныеКарты.ЭтоГруппа = &Ложь
  6. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    У языка запросов есть так называемые "Функции языка запросов". В справке наберите, увидите описание. Там практически все тоже самое.

Поделиться этой страницей