Имя: Пароль:
1C
1С v8
РегистрСведений
0 asrv
 
08.08.12
16:25
Друзья! Помогите пожалуйста! У меня проблема такая: Есть документ ТТН, хочу сформировать печатную форму. Когда нажимаешь на печать, табличный документ формируется очень долго. заранее спасибо! Предупреждаю, я в этом деле, относительно новичек!
Мой пример таков:

Процедура ПечатьТТН(ТабДок, Ссылка) Экспорт
ТабДок.ПолеСлева = 5;
ТабДок.ПолеСправа = 5;
ТабДок.ПолеСверху = 5;
ТабДок.ПолеСнизу = 5;
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.ТолькоПросмотр = Истина;
Макет = ПолучитьОбщийМакет("ПФ_MXL_ТТН");
Запрос = Новый Запрос;
Запрос.Текст =      "ВЫБРАТЬ
|      ТранспортнаяНакладная.Организация КАК ПредставлениеОрганизации,
|      ТранспортнаяНакладная.Контрагент КАК ПредставлениеГрузополучателя,
|      ТранспортнаяНакладная.Контрагент КАК Плательщика,
|      ТранспортнаяНакладная.Номер КАК НомерДокумента,
|      ТранспортнаяНакладная.Дата КАК ДатаДокумента,
|      МАКСИМУМ(ВЫБОР
|                  КОГДА КонтактнаяИнформация.ВидИнформации = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдрес)
|                        ТОГДА КонтактнаяИнформация.Представление      |            КОНЕЦ) КАК ПредставлениеПлательщика
|ИЗ
|      Документ.ТранспортнаяНакладная КАК ТранспортнаяНакладная
|            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|            ПО ТранспортнаяНакладная.Организация.Ссылка = КонтактнаяИнформация.Субъект.Ссылка      |ГДЕ
|      ТранспортнаяНакладная.Ссылка В(&Ссылка)
|
|СГРУППИРОВАТЬ ПО
|      ТранспортнаяНакладная.Организация,
|      ТранспортнаяНакладная.Контрагент,
|      ТранспортнаяНакладная.Номер,
|      ТранспортнаяНакладная.Дата,
|      ТранспортнаяНакладная.Контрагент";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());  
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
КонецПроцедуры
1 hhhh
 
08.08.12
16:30
ну во-первых лишние ссылки выбросьте. Слово ".Ссылка" тормозит запрос в 10 раз. Вот так пробуйте

ПО ТранспортнаяНакладная.Организация = КонтактнаяИнформация.Субъект

или вам за буквы зарплату платят?
2 Reset
 
08.08.12
16:35
Максимальный юр. адрес - сильно
3 asrv
 
08.08.12
17:07
Нет, не платят! Я и без ссылки пробовал и без результатно
4 gosn1ck
 
08.08.12
17:10
"ВЫБРАТЬ
|      ТранспортнаяНакладная.Организация КАК ПредставлениеОрганизации,
|      ТранспортнаяНакладная.Контрагент КАК ПредставлениеГрузополучателя,
|      ТранспортнаяНакладная.Контрагент КАК Плательщика,
|      ТранспортнаяНакладная.Номер КАК НомерДокумента,
|      ТранспортнаяНакладная.Дата КАК ДатаДокумента,
|      ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(100) КАК ПредставлениеПлательщика
|ИЗ
|      Документ.ТранспортнаяНакладная КАК ТранспортнаяНакладная
|            Левое СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|            ПО ТранспортнаяНакладная.Организация = КонтактнаяИнформация.Субъект
|ГДЕ
|      ТранспортнаяНакладная.Ссылка = &Ссылка
|
5 gosn1ck
 
08.08.12
17:10
точнее
|      isnull(ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(100)), "") КАК ПредставлениеПлательщика
6 Maxus43
 
08.08.12
17:10
сколько строк то в результате?
7 asrv
 
08.08.12
17:12
Ща попробую
8 Reset
 
08.08.12
17:13
Вероятно, нужно И КонтактнаяИнформация.ВидИнформации = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдрес) в условия соединения
9 asrv
 
08.08.12
17:16
Если Так:



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

тока эл. почту выдает и все
10 asrv
 
08.08.12
17:20
"Вероятно, нужно И КонтактнаяИнформация.ВидИнформации = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдрес) в условия соединения"

Так тоже долго!
11 asrv
 
08.08.12
17:22
Кстати! Когда повторно нажимаешь кнопку печать, тогда быстра формирует.
12 gosn1ck
 
08.08.12
17:23
(11) братишь, ты в танке? ты зачем группируешь?
13 zladenuw
 
08.08.12
17:24
попробуй добавить два условие по Типу и Виду. должно быть быстрее
14 asrv
 
08.08.12
17:24
Если без группировки, то выводит адреса всех организаций
15 asrv
 
08.08.12
17:31
"попробуй добавить два условие по Типу и Виду. должно быть быстрее"

Ничего не меняется
16 Maxus43
 
08.08.12
17:33
а что за КонтактнаяИнформация.Субъект? всегда Объект было
17 gosn1ck
 
08.08.12
17:35
(14) ну правильно там же много измерений
18 asrv
 
08.08.12
17:37
В этой конфе, они назвали Субъетом, внутри чего есть ссылки к: Организации, Контрагенты и ФизЛица
19 artems
 
08.08.12
17:38
мне одному показалось или в (9) два раза по контрагенту группирует?
20 asrv
 
08.08.12
17:38
Как тогда поступить???
21 asrv
 
08.08.12
17:38
Может мне базу скинуть?
22 artems
 
08.08.12
17:39
МАКСИМУМ(ЕСТЬNULL(ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)), """")) КАК ПредставлениеПлательщика круто
23 artems
 
08.08.12
17:41
Нафига вообще запрос когда ты работаешь по одному документу? Выбери запросом только контактную информацию.
24 asrv
 
08.08.12
17:49
Спасибо Вам всем огромное! Я счастлив!!!
Вот так получается:


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


Друзья Вы супер!!!
25 asrv
 
08.08.12
18:01
Объясните пожалуйста, "СТРОКА(100))" что это такое? Просто я хочу разобраться, в проделанном!
26 artems
 
08.08.12
18:47
(25) Приводит значение "КонтактнаяИнформация.Представление" к типу Строка длиной 100
27 Адимр
 
08.08.12
18:58
Если ссылка не список

то наверное можно просто на равенство проверять

|ГДЕ
|    ТранспортнаяНакладная.Ссылка =&Ссылка"
28 asrv
 
09.08.12
12:04
Я понял:) Спасибо всем за помощь!