8.х Запрос 1С 8.1

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Light-lexa, 19 июн 2013.

  1. TopicStarter Overlay
    Light-lexa
    Offline

    Light-lexa

    Регистрация:
    19 июн 2013
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Как лучше всего сделать?
    Есть три Функции
    Печать 1 Экспорт
    Печать 2 Экспорт
    Печать 3 Экспорт
    И есть Запрос который заполнят подвал всем трем этим "функциям" (в макете)
    Как сделать так, что бы три раза не копировать этот запрос в три функции печать, а как то сделать его Общим(Как есть же общие модули) что бы к нему обращаться?
  2. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Копируете текст запроса в функцию под названием ПолучитьТекстЗапроса(). Далее в каждой процедуре просто делаете так
    Код:
    Запрос.Текст = ПолучитьТекстЗапроса(); 
  3. TopicStarter Overlay
    Light-lexa
    Offline

    Light-lexa

    Регистрация:
    19 июн 2013
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    сейчас попробую
  4. TopicStarter Overlay
    Light-lexa
    Offline

    Light-lexa

    Регистрация:
    19 июн 2013
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Функция ПолучитьТекстЗапроса ();

    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    | СУММА(КнигаДоходовОбороты.ВыручкаОборот) КАК ВыручкаОборот,
    | СУММА(КнигаДоходовОбороты.ИмущественныеПраваОборот) КАК ИмущественныеПраваОборот,
    | СУММА(КнигаДоходовОбороты.ВнерализационныеДоходыОборот) КАК ВнерализационныеДоходыОборот,
    | СУММА(КнигаДоходовОбороты.ПокупнаяСтоимостьРеализованныхТоваровОборот) КАК ПокупнаяСтоимостьРеализованныхТоваровОборот,
    | СУММА(КнигаДоходовОбороты.РасходыБезПокупнойСтоимостиОборот) КАК РасходыБезПокупнойСтоимостиОборот
    |ИЗ
    | РегистрНакопления.КнигаДоходов.Обороты(&НачГода, &КонецПериода, , ) КАК КнигаДоходовОбороты
    |
    |СГРУППИРОВАТЬ ПО
    | КнигаДоходовОбороты.Организация";

    Запрос.УстановитьПараметр("НачГода",НачалоГода(Дата)); //с начала года
    Запрос.УстановитьПараметр("КонецПериода",Новый Граница(Дата, ВидГраницы.Исключая)); //выбрать по документ


    КонецФункции

    Вот я скопировал



    вот кусок текста куда я вставляю


    Область.Параметры.ИтогоИтого = ИтогоИтого;
    ТабДок.Вывести(Область);

    (Тут был этот запрос)

    Запрос.Текст = ПолучитьТекстЗапроса();

    Выборка = Запрос.Выполнить().Выбрать();

    Если Выборка.Следующий() Тогда
    ИтогоНГВыручка = Выборка.ВыручкаОборот;
    ИтогоНГИмущественныеправа = Выборка.ИмущественныеПраваОборот;
    ИтогоНГВнерализационныеДоходы = Выборка.ВнерализационныеДоходыОборот;
    КонецЕсли;

    Выдает ошибку {Документ.КнигаДоходовУСН(32,2)}: Переменная не определена (Запрос)
    <<?>>Запрос.Текст = ПолучитьТекстЗапроса();
    {Документ.КнигаДоходовУСН(34,12)}: Переменная не определена (Запрос)
    Выборка = <<?>>Запрос.Выполнить().Выбрать();
  5. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Вы либо в функции возвращайте результат запроса, либо сам текст
    Если результат, то тогда в функции возвращайте Выборку (т.е. Запрос.Выполнить().Выбрать())
    Если текст, то в функции пишите
    Код:
    Текст = "...ТутВашЗапрос..."; Возврат Текст;
    А в процедуре вывода
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = ПолучитьТекстЗапроса();
    // и пр.пр.пр.
    

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