Отчет по оказанным услугам с полным наименованием
22.04.2011
14:03
#1
"Добрый день. В конторе потребовалась табличка вида: Номер Акта --- полное наименование услуги
полное наименование услуги спокойно можно увидеть в печатной форме выбранного документа, но мне нужно получить табличку за нужный период а точнее за квартал
вот код, сделал мастером
при выполнении выдает ошибку:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.ГТДе.Форма.модуль(24)}: Наименование2 = Документ.ОказаниеУслуг.Услуга.полнНаименование <>>);
Запрос[7]: Запрос не оперирует величинами типа "Строка" неопределенной длины
Что-то можно сделать?
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|ОказаниеУслуг = Документ.ОказаниеУслуг.ТекущийДокумент;
|Услуга = Документ.ОказаниеУслуг.Услуга;
|Наименование = Документ.ОказаниеУслуг.Услуга.Наименование;
|Наименование2 = Документ.ОказаниеУслуг.Услуга.ПолнНаименование;
|Группировка ОказаниеУслуг;
|Группировка Услуга;
|Группировка Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей ОказаниеУслуг
Таб.ВывестиСекцию("ОказаниеУслуг");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Услуга
Таб.ВывестиСекцию("Услуга");
Пока Запрос.Группировка(3) = 1 Цикл
// Заполнение полей Наименование
Таб.ВывестиСекцию("Наименование");
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");
КонецПроцедуры"
полное наименование услуги спокойно можно увидеть в печатной форме выбранного документа, но мне нужно получить табличку за нужный период а точнее за квартал
вот код, сделал мастером
при выполнении выдает ошибку:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.ГТДе.Форма.модуль(24)}: Наименование2 = Документ.ОказаниеУслуг.Услуга.полнНаименование <>>);
Запрос[7]: Запрос не оперирует величинами типа "Строка" неопределенной длины
Что-то можно сделать?
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|ОказаниеУслуг = Документ.ОказаниеУслуг.ТекущийДокумент;
|Услуга = Документ.ОказаниеУслуг.Услуга;
|Наименование = Документ.ОказаниеУслуг.Услуга.Наименование;
|Наименование2 = Документ.ОказаниеУслуг.Услуга.ПолнНаименование;
|Группировка ОказаниеУслуг;
|Группировка Услуга;
|Группировка Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей ОказаниеУслуг
Таб.ВывестиСекцию("ОказаниеУслуг");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Услуга
Таб.ВывестиСекцию("Услуга");
Пока Запрос.Группировка(3) = 1 Цикл
// Заполнение полей Наименование
Таб.ВывестиСекцию("Наименование");
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");
КонецПроцедуры"
22.04.2011
17:36
#2
"
В шаблоне таблицы в разделе "Услуга" где выводится наименование услуги пишешь:"
Услуга.ПолнНаименование //для полного
Услуга.Наименование //для краткого
и запрос делаешь так:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|с ВыбНачПериода по ВыбКонПериода;
|ОказаниеУслуг = Документ.ОказаниеУслуг.ТекущийДокумент;
|Услуга = Документ.ОказаниеУслуг.Услуга;
|Группировка ОказаниеУслуг;
|Группировка Услуга;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей ОказаниеУслуг
Таб.ВывестиСекцию("ОказаниеУслуг");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Услуга
Таб.ВывестиСекцию("Услуга");
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");
КонецПроцедуры
24.04.2011
22:06
#3
"Vladko, помощь твоя неоценима!
Выполнил. Думаю все правильно понял. Посмотри пожалуйста скриншоты, циклично вылезают ошибки:
Переменная не определена (Запрос)
переменная не определена (Таб)
Хотя как я понял мы же их определили строками
Запрос = СоздатьОбъект("Запрос");
и
Таб = СоздатьОбъект("Таблица");"
Выполнил. Думаю все правильно понял. Посмотри пожалуйста скриншоты, циклично вылезают ошибки:
Переменная не определена (Запрос)
переменная не определена (Таб)
Хотя как я понял мы же их определили строками
Запрос = СоздатьОбъект("Запрос");
и
Таб = СоздатьОбъект("Таблица");"
25.04.2011
02:15
#4
Текст процедуры не тот, в ошибках ругается на
Пока Запрос.Группировка(3) = 1 Цикл
а в тексте процедуры такого нет.
Пока Запрос.Группировка(3) = 1 Цикл
а в тексте процедуры такого нет.
25.04.2011
11:27
#5
1. поправка: я писал:
В шаблоне таблицы в разделе "Услуга" где выводится наименование услуги пишешь:
Услуга.ПолнНаименование //для полного
Услуга.Наименование //для краткого
надо так:
В шаблоне таблицы в разделе "Услуга" где выводится наименование услуги пишешь:
Запрос.Услуга.ПолнНаименование //для полного
Запрос.Услуга.Наименование //для краткого
В свойстах ячейки проверяешь, чтоб было не "Текст", а "Выражение"
2. ошибки точно не от этой процедуры, которая у тебя получилась.
И ещё, откуда в макете:
Запрос.ОперацииВыбытияИмущества?
У тебя в запросе нигде не определяется такая переменная ОперацииВыбытияИмущества
В шаблоне таблицы в разделе "Услуга" где выводится наименование услуги пишешь:
Услуга.ПолнНаименование //для полного
Услуга.Наименование //для краткого
надо так:
В шаблоне таблицы в разделе "Услуга" где выводится наименование услуги пишешь:
Запрос.Услуга.ПолнНаименование //для полного
Запрос.Услуга.Наименование //для краткого
В свойстах ячейки проверяешь, чтоб было не "Текст", а "Выражение"
2. ошибки точно не от этой процедуры, которая у тебя получилась.
И ещё, откуда в макете:
Запрос.ОперацииВыбытияИмущества?
У тебя в запросе нигде не определяется такая переменная ОперацииВыбытияИмущества
Читают тему
(гостей: 1)