ge4r
Участник
Offline
|
|
« : 17-07-2009 09:48 » |
|
Добрый день. проблема следующая: есть подчиненный справочник УсловияДоговораАренды в котором содержится инфо о имени арендатора,арендуемой точке,ее площади,сумме оплаты,начале и конце срока. по этому справочнику нужно создать отчет... таблица отчета должна содержать те же столбцы что и поля в справочнике вот код Процедура Сформировать() Запрос = СоздатьОбъект("Запрос"); .//Запрос к справочнику ТекстЗапроса = " |Аренда = Справочник.УсловияДоговораАренды.Наименование; |Группировка Аренда Упорядочить по Аренда.Наименование; |ТорговаяТочка = Справочник.УсловияДоговораАренды.ТорговаяТочка; |Площадь = Справочник.УсловияДоговораАренды.Площадь; |СуммаОплаты = Справочник.УсловияДоговораАренды.СуммаОплаты; |ДатаНачала = Справочник.УсловияДоговораАренды.ДатаНачалаДействия; |ДатаКонца = Справочник.УсловияДоговораАренды.ДатаКонцаОплаты; |Комментарий = Справочник.УсловияДоговораАренды.Комментарий; |" Запрос.Выполнить(ТекстЗапроса); Таб = СоздатьОбъект("Таблица"); Таб.ВывестиСекцию ("Шапка"); Таб.ВывестиСекцию ("Строка") Таб.Показать();
КонецПроцедуры
Сначала выполню запрос к нужному справочнику...а вот как потом все это перенести в таблицу?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #1 : 17-07-2009 10:18 » |
|
Таблица - имеется в виду печатная форма? Пока Запрос.Группировка() Цикл Таб.ВывестиСекцию("Строка"); КонецЦикла; Только боюсь запрос в том виде, как он написан, не выполниться...
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #2 : 17-07-2009 10:23 » |
|
да,имеется в виду печатная форма...сейчас попробую
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #3 : 17-07-2009 10:26 » |
|
у меня еще вопрос назрел..меняю в конфигураторе диалоговое окно,сохраняю отчет,но при запуске в обычном режиме мне все равно выдает окно без тех изменений,которые я в носил...возможно глупый вопрос,но знаком с 1с всего неделю ...)
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #4 : 17-07-2009 10:37 » |
|
//******************************************* Процедура Сформировать() Перем Запрос, Таб, ТекстЗапроса; Запрос = СоздатьОбъект("Запрос"); .//Запрос к справочнику ТекстЗапроса = " |Аренда = Справочник.УсловияДоговораАренды.Наименование; |Группировка Аренда Упорядочить по Аренда.Наименование; |ТорговаяТочка = Справочник.УсловияДоговораАренды.ТорговаяТочка; |Площадь = Справочник.УсловияДоговораАренды.Площадь; |СуммаОплаты = Справочник.УсловияДоговораАренды.СуммаОплаты; |ДатаНачала = Справочник.УсловияДоговораАренды.ДатаНачалаДействия; |ДатаКонца = Справочник.УсловияДоговораАренды.ДатаКонцаОплаты; |Комментарий = Справочник.УсловияДоговораАренды.Комментарий; |" Запрос.Выполнить(ТекстЗапроса); Таб = СоздатьОбъект("Таблица"); Таб.ВывестиСекцию ("Шапка"); Пока Запрос.Группировка(1) = 1 Цикл Таб.ВывестиСекцию("Строка") КонецЦикла; Таб.Показать();
КонецПроцедуры
выдает ошибки: Запрос = СоздатьОбъект("Запрос"); <<?>>.//Запрос к справочнику {D:\Базы\nikel20090717\Условия договора аренды.ert(4)}: Неопознанный оператор Пока Запрос<<?>>.Группировка(1) = 1 Цикл {D:\Базы\nikel20090717\Условия договора аренды.ert(19)}: Переменная не определена (Запрос) Таб<<?>>.ВывестиСекцию("Строка") {D:\Базы\nikel20090717\Условия договора аренды.ert(20)}: Переменная не определена (Таб) Таб<<?>>.Показать(); {D:\Базы\nikel20090717\Условия договора аренды.ert(22)}: Переменная не определена (Таб) Таб.Показать();<<?>> не пойму, почему пишет ,что переменные не определены....
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #5 : 17-07-2009 10:40 » |
|
оу,нашел косяк)
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #6 : 17-07-2009 10:46 » |
|
Отчет внешний? В режиме предприятия нужно обязательно закрыть окно отчета и открыть снова, иначе в памяти остается старая версия, с которой и продолжаешь работать.
Исправлять ошибки всегда нужно начинать с первой. У тебя в строке определения переменной Запрос синтаксическая ошибка (лишня точка перед комментарием). Исправишь эту ошибку - и переменная будет уже определена
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #7 : 17-07-2009 10:48 » |
|
да,точку я нашел....) Пока Запрос.Группировка() Цикл Таб.ВывестиСекцию("Строка"); КонецЦикла;
а так действительно форма не заполняется...
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #8 : 17-07-2009 11:01 » |
|
вот отчет...
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #9 : 17-07-2009 11:26 » |
|
Перенес группировку в конец, поменял реквизит запроса Аренда: Аренда = Справочник.УсловияДоговораАренды.ТекущийЭлемент; исправил таблицу вывода (в ячейках не надо ставить символы "<" и ">" - надо в совйствах ячейки указать Тип - Выражение) У меня работает
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #10 : 17-07-2009 11:28 » |
|
Запрос.Группировка() используется когда в запросе присутствует ключевая фраза "Без итогов", в противном случае правильно использовать вложенные циклы Запрос.Группировка(<Номер группировки>)
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #11 : 17-07-2009 11:31 » |
|
А, еще - простую ошибку в выбоде таблицы оставил умышленно Разбирайся как исправить...
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #12 : 17-07-2009 11:38 » |
|
ошибка я так понимаю это в таблице ячейку запрос.наименование нужно заменить на запрос.аренда?)
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #13 : 17-07-2009 11:40 » |
|
Угу. Но лучше: Запрос.Аренда.Наименование
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #14 : 17-07-2009 11:41 » |
|
спасибо,пойду дальше читать маны)
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #15 : 17-07-2009 16:14 » |
|
делитед,разобрался
|
|
« Последнее редактирование: 17-07-2009 16:33 от ge4r »
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #16 : 24-07-2009 08:04 » |
|
Возник еще вопрос.. Есть справочник "Условия договора аренды",есть внешний отчет...нужно,что бы в режиме "предприятия" при выводе отчета при клике на одну из ячеек с условиями открывалось диалоговое окно справочника,и можно было редактировать данные...это нужно прописывать через конфигуратор в таблице?
То есть ,например,выводится отчет,смотрим,а "площадь" выводится не та,кликаем на нее,открывается диалоговое окно редактирования справочника для этого контрагента,изменяем площадь и эти изменения сохраняются в БД
|
|
« Последнее редактирование: 24-07-2009 08:09 от ge4r »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #17 : 24-07-2009 08:28 » |
|
Смотри в сторону расшифровки ячейки. Чтобы расшифровка была на всю строку - нужно добавить символ # в начало либо конец выражения расшифровки
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #18 : 24-07-2009 08:49 » |
|
Сейчас пытаюсЬ,пишу в расшифровке Справочник.УсловияДоговораАренды.ТекущийЭлемент() ,но 1с пишет, что переменные не объявлены Текущий вариант отчета выглядит так:
|
|
« Последнее редактирование: 24-07-2009 08:55 от ge4r »
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #19 : 24-07-2009 09:02 » |
|
иль нужно в код добавить что то вроде этого: Спр = СоздатьОбъект("Справочник.УсловияДоговораАренды") и расшифровке писать спр.текущийэлемент() ?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #20 : 24-07-2009 09:03 » |
|
Естественно не объявлены... В расшифроке нужно указать существующий объект, в твоем случае: Запрос.Аренда
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #21 : 24-07-2009 09:04 » |
|
Можно конечно почти так, как ты написал, но будет сложнее: После Спр = СоздатьОбъект("Справочник.УсловияДоговораАренды") и перед выводом секции с расшифровкой спр.текущийэлемент() тебе еще нужно спозиционироваться на нужный элемент: Спр.НайтиЭлемент(Запрос.Аренда);
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #22 : 24-07-2009 09:06 » |
|
все,понял...спасибо
|
|
« Последнее редактирование: 24-07-2009 09:13 от ge4r »
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #23 : 29-07-2009 09:27 » |
|
Еще вопрос...) В сей отчет нужно добавить колонку контрагенты,то есть есть справочник контрагенты,ему подчинен справочник договора,и в свою очередь ему подчинен справочник условия договора аренды... вся информация в отчете берется из "условия договора аренды"...и теперь инфо для одного столбца должна браться из "контрагенты" что делаю я: в запрос добавляю строку Контрагент = Справочник.Контрагенты.Наименование и в таблице в нужной ячейке прописываю Запрос.Контрагент но при выводе отчета ячейка контрагент пуста...в чем косяк?
|
|
« Последнее редактирование: 29-07-2009 09:37 от ge4r »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #24 : 30-07-2009 11:30 » |
|
В тексте запроса вместо Контрагент = Справочник.Контрагенты.Наименование; нужно писать Контрагент = Справочник.УсловияДоговораАренды.Владелец.Владелец.Наименование; Иначе 1С не знает как нужно связать данные запроса
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #25 : 01-08-2009 11:30 » |
|
спасибо
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #26 : 05-08-2009 06:02 » |
|
еще косяк нашел.... у меня стоит группировка по торговой точке,по наименованию,но если есть повторяющаяся торговая точка,подчиненая разным контрагентам, то выводится только одна из них....
|
|
|
Записан
|
|
|
|
ge4r
Участник
Offline
|
|
« Ответ #27 : 05-08-2009 06:31 » |
|
разобрался,сделал двойную группировку и всё ок
|
|
|
Записан
|
|
|
|
Ольга111
Интересующийся
Offline
|
|
« Ответ #28 : 13-05-2010 10:04 » |
|
Здравствуйте, у меня простое задание, и мне даже стыдно обращаться к вам с таким вопросом, но помощь ОЧЕНЬ нужна Конфигурация элементарня, самописная. Есть справочник Альбомы. Нужен отчет, который выведет Наименование и Группу (оба они реквизиты справочника Альбомы) альбома, вышедшего позже 2005 года. Я написала так: Процедура Сформировать() Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = " |ГодВыпуска = Справочник.Альбомы.ГодВыпуска; |Альбом = Справочник.Альбомы.Наименование; |Условие (ГодВыпуска>1999); |"; Запрос.Выполнить(ТекстЗапроса); Таб = СоздатьОбъект("Таблица"); Таб.ВывестиСекцию("Заголовок"); Таб.ВывестиСекцию("Данные"); Таб.Показать("ОтчетПоСправочнику"); КонецПроцедуры В секции данные выводит только ГодВыпуска первого попавшегося элемента, который подходит под условие... Чувствую, что надо выводить векцию в цикле, но не могу понять как именно... Помогите, пожалуйста...
|
|
|
Записан
|
|
|
|
Ольга111
Интересующийся
Offline
|
|
« Ответ #29 : 13-05-2010 10:15 » |
|
Пока Запрос.Группировка() Цикл Таб.ВывестиСекцию("Данные"); КонецЦикла; Если выводить таким образом, что написать в условии цикла, у меня же нет Группировки в ТекстеЗапроса? Ну, пожалуйста, помогите! (((
|
|
|
Записан
|
|
|
|
|