Выводить отсортированными по алфавиту не получается...

Форум 1С: Одинэс.Ру

Найти!

Выводить отсортированными по алфавиту не получается...

deefm
23.04.2009 - 04:50
Здравствуйте, подскажите пож-та, как сделать, чтобы контрагенты, при выводе в печатную форму, были отсортированы по алфавиту. Я перебираю документы (шапку и табличную часть), в результате, они выводятся, отсортированными по реквизиту ДатаРег.
Предполагаю, что надо сначала выгрузить в ТаблицуЗначений, в ней уже отсортировать и затем выводить. Может быть можно как-нибудь по-другому?
Вот мой текст:
 
Процедура Сформировать()  
 
Док = СоздатьОбъект("Документ.Договор");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Цикл  
Если (Док.ДатаРег>=НачДата) И (Док.ДатаРег<=КонДата) Тогда
 
Таб.ВывестиСекцию("Договор");  
 
Если Док.КоличествоСтрок()>0 Тогда
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
 
Таб.ВывестиСекцию("Строки");
 
КонецЦикла;
КонецЕсли;
 
КонецЕсли;
КонецЦикла;  
 
КонецПроцедуры
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
22.10.2020 - 14:35
Смотри также:
Учёт и отчётность предпринимателя 7.70.154 - Не завершается обновление ИБ :)
Перечисление в ОЛЕ
Комплексная. Как изменить проводки Поступление (ОС, НМА, услуги и пр.)?

Re: Выводить отсортированными по алфавиту не получается...

deefm
1 - 23.04.2009 - 04:52
+(1) Реквизиты шапки понятно как скинуть в ТабЗначений, а вот как Табличную часть документа тогда выводить?
P.S. Конфигурация самописная.

Re: Выводить отсортированными по алфавиту не получается...

jurii
2 - 23.04.2009 - 04:57
(0) Ужасно!
Когда начинаете что-либо писать, справляйтесь об используемых командах в синтаксисе помошника. А лучше поставьте ОпенКонф с Телепатом!
    ВыбратьДокументы(<Дата1>,<Дата2>) - изменит Ваше представление о Долгом выполнении этой поделки.
    Слово "Запрос" должно включить ещё триггеры Вашего серого вещества в более правильное русло!

Re: Выводить отсортированными по алфавиту не получается...

jurii
3 - 23.04.2009 - 05:00
(1) Чтобы выводить табличную часть документа, достаточно получить ссылку на документ! А уж откуда она будет - разницы нет.
    Даже без запроса, очень просто собрать документы в ТЗ и отсортировать её по нужной колонке.

Re: Выводить отсортированными по алфавиту не получается...

deefm
4 - 23.04.2009 - 05:01
(2) Я в курсе команды ВыбратьДокументы(<Дата1>,<Дата2>). Но в моем случае, она не подходит, т.к. надо отобрать документы именно по реквизиту ДатаРег, но вывести отсортированными по Контрагентам, а в реквизиты НачДата и КонДата пользователь вводит желаемый период.

Re: Выводить отсортированными по алфавиту не получается...

jurii
5 - 23.04.2009 - 05:06
(4) А выполнить запрос религия не позволяет?

Интересные темы

odines.ru
22.10.2020 - 14:35
Смотри также:
Код элемента справочника не уникальный!!!
Универсал 2.7
Невозможно запустить 1С ПУБ

Re: Выводить отсортированными по алфавиту не получается...

deefm
6 - 23.04.2009 - 05:13
(5) Запросом не получается...
Как получить ссылку на документ, чтобы вывести табличную часть?

Re: Выводить отсортированными по алфавиту не получается...

jurii
7 - 23.04.2009 - 05:20
(6)
Пока Запрос.Группировка("Контрагент") = 1 Цикл
    Таб.ВывестиСекцию("Договор");
    Пока Запрос.Группировка("Док") = 1 Цикл
        Док = Запрос.Док;
        Таб.ВывестиСекцию("Док");
        Док.ВыбратьСтроки();
        Пока Док.ПолучитьСтроку() = 1 Цикл
            Таб.ВывестиСекцию("Стр");
        КонецЦикла;
    КонецЦикла;
КонецЦикла;

Re: Выводить отсортированными по алфавиту не получается...

deefm
8 - 23.04.2009 - 05:21
Если делать Запросом, то выходит ошибка:
Длина индекса превышает максимальную длину и не может быть уменьшена.
 
Вот текст Запроса:
 
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
 
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|ДатаРег = Документ.Договор.ДатаРег;
|Исполнитель = Документ.Договор.Исполнитель;
|Номер = Документ.Договор.Номер;
|Примечание = Документ.Договор.Примечание;
|Сумма = Документ.Договор.Сумма;
|НомерДоговора = Документ.Договор.НомерДоговора;
|ДатаДоговора = Документ.Договор.ДатаДоговора;
|СуммаДоговора = Документ.Договор.СуммаДоговора;
|Группировка Исполнитель упорядочить по Исполнитель.Наименование;
|Группировка ДатаРег;
|Группировка Номер;
|Группировка Примечание;
|Группировка Сумма;
|Группировка НомерДоговора;
|Группировка ДатаДоговора;
|Группировка СуммаДоговора;
|Условие(ДатаРег >= ВыбНачПериода);
|Условие(ДатаРег <= ВыбКонПериода);
|"//}}ЗАПРОС
;
 
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
 
Пока Запрос.Группировка() = 1 Цикл
Таб.ВывестиСекцию("Сформировать");
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

Re: Выводить отсортированными по алфавиту не получается...

Sasha
9 - 23.04.2009 - 05:22
(6)ТекстЗапроса = "
|ОбрабатыватьДокументы Проведенные;
|тДок = Документ.Договор.ТекущийДокумент;
|Контрагент = Документ.Договор.Контрагент;
|ДатаРег = Документ.Договор.ДатаРег;
|Условие ((ДатаРег>=НачДата) И (ДатаРег<=КонДата));
|Группировка Контрагент УпорядочитьПо Контрагент.Наименование;
|Группировка тДок;";

Re: Выводить отсортированными по алфавиту не получается...

Sasha
10 - 23.04.2009 - 05:24
(+9)->(7)Соответственно вместо Контрагент пиши Исполнитель

Re: Выводить отсортированными по алфавиту не получается...

jurii
11 - 23.04.2009 - 05:26
(7)+
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(СформироватьТипа)
|Док = Документ.Договор.ТекущийДокумент;
|ДатаРег = Документ.Договор.ДатаРег;
|Договор = Документ.Договор.Договор;
|Контрагент = Документ.Договор.Контрагент;
|Группировка Контрагент;
|Группировка Док;
|Условие((ДатаРег >= НачДата) И (ДатаРег <= КонДата));
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Re: Выводить отсортированными по алфавиту не получается...

jurii
12 - 23.04.2009 - 05:31
(8) А так?
"//{{ЗАПРОС(Сформировать)
|Обрабатывать НеПомеченныеНаУдаление;
|ДатаРег = Документ.Договор.ДатаРег;
|Исполнитель = Документ.Договор.Исполнитель;
|Группировка Исполнитель упорядочить по Исполнитель.Наименование;
|Группировка ДатаРег;
|Условие((ДатаРег >= ВыбНачПериода) И (ДатаРег <= ВыбКонПериода));
|"//}}ЗАПРОС
Только группировки исправь на 2: "Исполнитель" и "ДатаРег"

Re: Выводить отсортированными по алфавиту не получается...

deefm
13 - 23.04.2009 - 06:03
Всем СПАСИБО!!! Запрос получается, только при выводе в печатной форме между секциями оставляет пустую строку. Т.е. сейчас выводит в виде:
 
Гранат
01.01.09   №12   1000  примечание
01.03.09   №13   1500  доп.соглашение
 
Пегас
02.02.09   №22   5000 примечание
01.03.09   №23   6000 доп.соглашение
 

А мне надо, чтобы выводил в виде:
 
Гранат
01.01.09   №12   1000  примечание
01.03.09   №13   1500  доп.соглашение
Пегас
02.02.09   №22   5000 примечание
01.03.09   №23   6000 доп.соглашение
 

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

Re: Выводить отсортированными по алфавиту не получается...

deefm
14 - 23.04.2009 - 06:04
(+13)Секции в конфигураторе идут подряд, т.е. пустых строчек между ними - нет.

Re: Выводить отсортированными по алфавиту не получается...

deefm
15 - 23.04.2009 - 08:54
+(13) Чтобы было нагляднее, выкладываю картинками...
Вот, как у меня секции в конфигураторе:
http://s49.radikal.ru/i125/0904/de/883f77a84a86.jpg
 
Сейчас выводится вот так:
http://i046.radikal.ru/0904/56/51274125e45e.jpg
 
А надо, чтобы выводилось так:
http://i028.radikal.ru/0904/88/c7d74800ec05.jpg
 

Re: Выводить отсортированными по алфавиту не получается...

deefm
16 - 23.04.2009 - 09:49
?

Re: Выводить отсортированными по алфавиту не получается...

Гуня
17 - 23.04.2009 - 09:52
что в секции СТр содержится?

Re: Выводить отсортированными по алфавиту не получается...

Гуня
18 - 23.04.2009 - 10:00
(17) звиняюсь, просмотрел 1 скрин. У тебя секция Договор из двух строк состоит. убери одну пустую

Re: Выводить отсортированными по алфавиту не получается...

Гуня
19 - 23.04.2009 - 10:01
Зачем секция СТр мне непонятно. Она всеравно не выводится

Re: Выводить отсортированными по алфавиту не получается...

deefm
20 - 23.04.2009 - 10:01
(18) Спасибо, что-то совсем заработалась... ))

Re: Выводить отсортированными по алфавиту не получается...

Uho
21 - 23.04.2009 - 11:22
20-deefm >заработалась... ))
ну с этого и надо было начинать)))
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Как начислить аванс с возвратов? Хелп! Перестала работать "Выгрузить данные" »
© 2009 Форум 1С: Одинэс.Ру