Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Создание отчета ошибка


Автор: Aires 11.3.2008, 20:46
При создании отчета в примере, который брал за основу данная ошибка отсутствует. Помогите разобраться почему у меня возникает?
Конфигурация 1cv7.7

Ошибка:
<<?>>|"//}}ЗАПРОС
{Отчет.СортОтгрузка1.Форма.Модуль(26)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>;
{Отчет.СортОтгрузка1.Форма.Модуль(27)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')

Мой Запрос:
Код

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Контрагент = Регистр.ОтчетПродажа.Контрагент;
    |Сумма = Регистр.ОтчетПродажа.Сумма;
    |Отгрузка = Регистр.ОтчетПродажа.Отгрузка;
    |ДатаДок = Регистр.ОтчетПродажа.ТекущийДокумент.РасходнаяНакладная.ДатаДок;
    |Функция СуммаСумма = Сумма(Сумма);
    |Группировка Документ;
    |Группировка Контрагент без упорядочивания без групп;
    |Группировка Сумма без упорядочивания без групп;
    |"//}}ЗАПРОС
    ;   
    Если СортДатаОтгр = 1 Тогда
        ТекстЗапроса = ТекстЗапроса +"Группировка Отгрузка без групп;";
    Иначе
        ТекстЗапроса = ТекстЗапроса +"Группировка Отгрузка без упорядочивания без групп;";
    КонецЕсли;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;


Запрос основа:
Код

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Контрагент = Регистр.Взаиморасчеты.Договор.Владелец;
    |Сумма = Регистр.Взаиморасчеты.Сумма;
    |Функция СуммаНачОст = НачОст(Сумма);
    |Функция СуммаПриход = Приход(Сумма);
    |Функция СуммаРасход = Расход(Сумма);
    |Функция СуммаКонОст = КонОст(Сумма);
    |Группировка Контрагент упорядочить по Контрагент.Наименование;
    |"//}}ЗАПРОС   
    ;      
    Если ИтогиПоДням=1 тогда  
        
    ВидОтчета = "Дата";    
    ТекстЗапроса = ТекстЗапроса +"Группировка День;";   
    
    иначе           
    ВидОтчета = "Документ";
    ТекстЗапроса = ТекстЗапроса +"Группировка Документ;";
    КонецЕсли;
    ТекстЗапроса = ТекстЗапроса +"Условие(Контрагент в ВыбКонтрагент);
    |"//}}ЗАПРОС
    ;

Автор: Itsys 11.3.2008, 22:21
Удали строку 26 и 27 и будет тебе счастье

Добавлено через 14 секунд
А заодно и 20  smile 

Автор: Aires 12.3.2008, 07:01
Цитата(Itsys @  11.3.2008,  22:21 Найти цитируемый пост)
Удали строку 26 и 27

А заодно и 20

Это не решит проблемы, тк данные, что написаны в Условии после "|"//}}ЗАПРОС ;
     не попадут в Запрос...

В примере, эти строки не удалены и отчет работает, это меня и озадачивает, почему так???

Автор: Itsys 12.3.2008, 11:10
Блин тебе говорят удали, а если есть желание разглагольствовать то пожалуйста во флейм....

Извиняюсь 20 строку удалять не надо.

PS Если ни вчем не разбораешься, то делай то, что говорят и пробуй что получится.
PPS У тебя простейшая синтаксическая ошибка в строке 26 идет продолжение текстовой константы, которая нигде не открывается!!!
 smile 

Автор: Aires 12.3.2008, 17:17
Благодарю, Itsys.

Заработало, хотя так и не понял, почему в примере с этими строками работало всё, но так и быть сошлюсь, что автор того запроса сумел убедить 1с, что так надо и всё тут smile

А по теме, не разглаголствовал по тому посту, просто в торопях проверил, меня обругали в районе этих же строк, а вдумываться времени не было, вот вечерком вдумался smile

Ещё раз мои благодарности smile

Автор: Itsys 12.3.2008, 17:21
Тему закрой  smile 

Автор: Naghual 12.3.2008, 22:09
Достаточно было привести строку 26 к виду:

Код

ТекстЗапроса = ТекстЗапроса + "|"//}}ЗАПРОС

Автор: Itsys 13.3.2008, 00:29
Цитата(Naghual @  12.3.2008,  22:09 Найти цитируемый пост)
Достаточно было привести строку 26 к виду:
ТекстЗапроса = ТекстЗапроса + "|"//}}ЗАПРОС


Вопрос, только зачем? В чем смысл данной опреации?

Автор: Naghual 13.3.2008, 00:33
Это уже второй вопрос!   smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)