Имя: Пароль:
1C
1С v8
Почему Табличный документ пустой
,
0 reznik911
 
24.01.14
12:03
УТП для Казахстана 2.0.2.5 , 8.3.4.295

Функция ПечатьЛистУчетаСервисногоВыезда()

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Запрос.Текст ="ВЫБРАТЬ
                  |    Событие.Контрагент,
                  |    Событие.КонтактноеЛицо,
                  |    Событие.НачалоСобытия,
                  |    Событие.ОкончаниеСобытия,
                  |    Событие.Ответственный,
                  |    Событие.СодержаниеСобытия,
                  |    Событие.Дата,
                  |    РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС) КАК Часы,
                  |    РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, МИНУТА) КАК Минуты,
                  |    РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС) * 60 КАК РассчитанныеМинуты,
                  |    ВЫБОР
                  |        КОГДА РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС) * 60 > РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, МИНУТА)
                  |            ТОГДА РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС) - 1
                  |        ИНАЧЕ РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС)
                  |    КОНЕЦ КАК ИтоговыеЧасы,
                  |    РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, МИНУТА) - ВЫБОР
                  |        КОГДА РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС) * 60 > РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, МИНУТА)
                  |            ТОГДА РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС) - 1
                  |        ИНАЧЕ РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, ЧАС) * 60
                  |    КОНЕЦ КАК ИтоговыеМинуты
                  |ПОМЕСТИТЬ ВТСобытие
                  |ИЗ
                  |    Документ.Событие КАК Событие
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    КонтактнаяИнформация.Объект,
                  |    КонтактнаяИнформация.Тип,
                  |    КонтактнаяИнформация.Вид,
                  |    КонтактнаяИнформация.Представление КАК Телефон
                  |ПОМЕСТИТЬ ВТКонтактнаяИнформацияТелефон
                  |ИЗ
                  |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                  |ГДЕ
                  |    КонтактнаяИнформация.Объект В
                  |            (ВЫБРАТЬ
                  |                ВТСобытие.Контрагент
                  |            ИЗ
                  |                ВТСобытие
                  |            СГРУППИРОВАТЬ ПО
                  |                ВТСобытие.Контрагент)
                  |    И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
                  |    И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента)
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    КонтактнаяИнформация.Объект,
                  |    КонтактнаяИнформация.Тип,
                  |    КонтактнаяИнформация.Вид,
                  |    КонтактнаяИнформация.Представление КАК Адрес
                  |ПОМЕСТИТЬ ВТКонтактнаяИнформацияАдрес
                  |ИЗ
                  |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                  |ГДЕ
                  |    КонтактнаяИнформация.Объект В
                  |            (ВЫБРАТЬ
                  |                ВТСобытие.Контрагент
                  |            ИЗ
                  |                ВТСобытие
                  |            СГРУППИРОВАТЬ ПО
                  |                ВТСобытие.Контрагент)
                  |    И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
                  |    И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    ВТСобытие.Контрагент,
                  |    ВТСобытие.Дата,
                  |    ВТСобытие.НачалоСобытия КАК Начало,
                  |    ВТСобытие.ОкончаниеСобытия КАК Окончание,
                  |    ВТСобытие.Ответственный,
                  |    ВТСобытие.КонтактноеЛицо,
                  |    ВТКонтактнаяИнформацияТелефон.Телефон,
                  |    ВТКонтактнаяИнформацияАдрес.Адрес,
                  |    ВТСобытие.СодержаниеСобытия КАК Содержание,
                  |    ВТСобытие.ИтоговыеЧасы,
                  |    ВТСобытие.ИтоговыеМинуты
                  |ИЗ
                  |    ВТСобытие КАК ВТСобытие
                  |        ЛЕВОЕ СОЕДИНЕНИЕ ВТКонтактнаяИнформацияТелефон КАК ВТКонтактнаяИнформацияТелефон
                  |        ПО ВТСобытие.Контрагент = ВТКонтактнаяИнформацияТелефон.Объект
                  |        ЛЕВОЕ СОЕДИНЕНИЕ ВТКонтактнаяИнформацияАдрес КАК ВТКонтактнаяИнформацияАдрес
                  |        ПО ВТСобытие.Контрагент = ВТКонтактнаяИнформацияАдрес.Объект";

                  ЗапросСобытие=Запрос.Выполнить().Выбрать();
                  
                  Макет=ПолучитьМакет("ЛистУчетаСервисногоВыезда");
                      // Получаем области макета для вывода в табличный документ
                    

    Заголовок        = Макет.ПолучитьОбласть("Заголовок");
    Заказчик         = Макет.ПолучитьОбласть("Заказчик");
    ПереченьРабот    = Макет.ПолучитьОбласть("ПереченьРабот");
    Условия          = Макет.ПолучитьОбласть("Условия");
    Подвал           = Макет.ПолучитьОбласть("Подвал");    
            
    ТабДокумент = Новый ТабличныйДокумент;
    
    // Зададим параметры макета по умолчанию
    ТабДокумент.ПолеСверху              = 10;
    ТабДокумент.ПолеСлева               = 0;
    ТабДокумент.ПолеСнизу               = 0;
    ТабДокумент.ПолеСправа              = 0;
    ТабДокумент.РазмерКолонтитулаСверху = 10;
    ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
    
    
    
    Заголовок.Параметры.Ответственный = ЗапросСобытие.Ответственный;
    Заголовок.Параметры.Дата = Формат(ЗапросСобытие.Дата,"ДЛФ=DD");
    Заголовок.Параметры.Начало = ЗапросСобытие.Начало;
    Заголовок.Параметры.Окончание= ЗапросСобытие.Окончание;
    
    ТабДокумент.Вывести(Заголовок);
    
    Заказчик.Параметры.Контрагент = ЗапросСобытие.Контрагент;
    Заказчик.Параметры.Телефон = ЗапросСобытие.Телефон;
    Заказчик.Параметры.Адрес = ЗапросСобытие.Адрес;
    Заказчик.Параметры.КонтактноеЛицо = ЗапросСобытие.КонтактноеЛицо;
    
    ТабДокумент.Вывести(Заказчик);
    
    ПереченьРабот.Параметры.Содержание = ЗапросСобытие.Содержание;
    
    ТабДокумент.Вывести(ПереченьРабот);
    ТабДокумент.Вывести(Условия);
    
    Подвал.Параметры.Ответственный = ЗапросСобытие.Ответственный;
    Подвал.Параметры.Дата = Формат(ЗапросСобытие.Дата,"ДЛФ=DD");
    Подвал.Параметры.Контрагент = ЗапросСобытие.Контрагент;
    
    ТабДокумент.Вывести(Подвал);
    
    
    Возврат ТабДокумент;
    
    
КонецФункции // ПечатьЛистУчетаСервисногоВыезда()
1 reznik911
 
24.01.14
12:04
вроде все правильно написал макет формируется с формы документа но ячейки все пустые
2 Wobland
 
24.01.14
12:06
ещё добавь, что в коносли запросов виден нужный результат
3 Wobland
 
24.01.14
12:07
>Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
а это зачем?
4 reznik911
 
24.01.14
12:09
(3) чтоб взять данные с формы документа
5 Wobland
 
24.01.14
12:11
(4) ну, допустим, не с формы, но взял. и даже параметр установил. зачем?
6 Рэйв
 
24.01.14
12:11
(4)Так ты не к форме а к объекту обращаешься. И если док новый и не записан, то ты получишь как раз фигу с маслом
7 Wobland
 
24.01.14
12:11
(6) в прежней теме всё разжёвано
8 reznik911
 
24.01.14
12:11
(6) док записан и проведен . пусто
9 reznik911
 
24.01.14
12:12
(5) да емае сотый раз обясняю как Я ПО ДРУГОМУ ПОЛУЧУ ДАННЫЕ или свяжу с документом
10 reznik911
 
24.01.14
12:13
(7) в какой
11 reznik911
 
24.01.14
12:13
нормальный совет не можете дать
12 Wobland
 
24.01.14
12:15
(9) установка параметра запроса - отличный план. запрос-то знает, что с ним потом делать?
13 reznik911
 
24.01.14
12:18
(12) запрос правильный. получаю данные именно по этому запросу. закидываю их на макет и вывожу неужели это не понятно
14 Кир Пластелинин
 
24.01.14
12:19
эм. я один не вижу .следующий() из выборки?
15 Wobland
 
24.01.14
12:20
(13) запрос неправильный. ты только думаешь, что закидываешь их куда-то там -> (14)
16 reznik911
 
24.01.14
12:22
(15) но в косноли то показывает верно
17 reznik911
 
24.01.14
12:22
(15) и отладчик показывает данные
18 reznik911
 
24.01.14
12:25
(14) хэх помог решить)))
19 Wobland
 
24.01.14
12:27
можешь не благодарить
20 reznik911
 
24.01.14
12:33
(19) ну да конечно, дело в запросе хаха)))
21 Wobland
 
24.01.14
12:34
(20) не спорь с бородатыми. на (3) и (12) ещё не ответил
22 Кир Пластелинин
 
24.01.14
12:38
поправьте, если не прав, но я категорически избегал бы конструкций "где в (выбрать из)".
23 reznik911
 
24.01.14
12:39
(22) а что вместо использовать?
24 Wobland
 
24.01.14
12:40
(22) поправлять не буду. ему надо просто выбрать из трёх таблиц без всяких изощрений
25 Кир Пластелинин
 
24.01.14
12:44
(24) хотелось бы конкретики хотя бы в общих чертах - я прав или нет?)
26 reznik911
 
24.01.14
12:45
(24) ну вот макет формирует только по одному документу((( хоть какой из списка не открывал
27 Wobland
 
24.01.14
12:46
(25) в общем случае нет. мало ли какая задача встретится. здесь - явный г-код. особенно конструкция вида
в (выбрать [ни фига не различные] контрагенты событий)
28 Wobland
 
24.01.14
12:46
(26) как ты этого добился, и зачем твоему запросу параметр?
29 Кир Пластелинин
 
24.01.14
12:47
(27) надо было добавить в моем месседже, что абстрагируясь от конкретного запроса ТС.
30 reznik911
 
24.01.14
12:48
(28) я незнаю. утсановил потому что другие макеты которые выводят данные в Ворд установлен этот параметр. вот и решил что этот параметр и связывает
31 Кир Пластелинин
 
24.01.14
12:49
(26) сложно ванговать Ваши цели и задачи, но выборка из результатов запроса - это  коллекция. и, о чудо, эту коллекцию иногда можно да и нужно перебирать.
32 Кир Пластелинин
 
24.01.14
12:50
(30) ох ты ж)))
33 reznik911
 
24.01.14
12:50
(31) как
34 reznik911
 
24.01.14
12:51
в запросе ставил Событие.Ссылка=&Ссылка он ничего не выводил
35 Кир Пластелинин
 
24.01.14
12:53
(33) предлагаю Вам взять методички в руки и изучать мат.часть.
(27) ну иногда бывают ситуации, когда приходиться так делать. но не лучше ли соединением? хоть проиндексировать большие выборки можно
36 Wobland
 
24.01.14
12:54
(29) найти производителей яблок, которые также производят и пылесосы
37 Wobland
 
24.01.14
12:55
(36) а может и соединением. тут надо погружаться в пучины планов запросов. меня как-то миновало ;)
38 reznik911
 
24.01.14
12:55
(35) методичку то прочел ничего толкового было бы, я б сюда не писал
39 reznik911
 
24.01.14
12:55
(37) я знаю тебе как всегда лень))
40 reznik911
 
24.01.14
12:56
(35) ну ж и так соединяю ВТ в конце
41 Кир Пластелинин
 
24.01.14
12:56
(38) да ладно) видимо быстрый старт в профессию не удался)
42 Кир Пластелинин
 
24.01.14
12:57
(40) ну уж если в конце соединяете, тогда ок)))
43 Кир Пластелинин
 
24.01.14
12:58
(36) шутку оценил, но не понял привязки к сообщению)
44 reznik911
 
24.01.14
13:00
(41) так вот поможете исправить запрос?
45 Wobland
 
24.01.14
13:02
(43) это была не шутка, частный пример удобства использования <в (выбрать)
46 Wobland
 
24.01.14
13:03
(44) выбрать из твой документ левое регистр левое регистр. и всё
47 Кир Пластелинин
 
24.01.14
13:04
(45) хм. об этом не подумал
(44) в скайп стукнись. будет свободно - помогу
48 reznik911
 
24.01.14
13:05
(41) ну да я ж тока полгода как начал))) учебники прочел . легкие отчеты делал
49 reznik911
 
24.01.14
13:09
(46) я так понимаю советуете выбрать реквизиты с документа потом с регистра сведений и указать условие ну или соединение. ну дмаю это поможет ускорить запрос. но поможет ли это выбрать нужные данные а не выводить все нескольько тыс документов
50 Wobland
 
24.01.14
13:16
(49) я советую взять три таблицы, соединить их вместе, наложить условие про текущий документ, выбрать из этой пачки нужные поля
кидайте в меня какашками
51 reznik911
 
24.01.14
13:22
(50) у я и так делаю же. в первом выбираю поля доступные с этого документа. во втором получаю телефон, в третьем адрес. а в последнем их соединяю чтоб получить адрес и телефон того контрагента
52 reznik911
 
24.01.14
13:23
помещаю первые 3 в ВТ чтоб ускорить запрос
53 Wobland
 
24.01.14
13:27
(52) воот
54 Wobland
 
24.01.14
13:28
+(53) а в эти ВТ ты складываешь кучу лишнего
55 1Сергей
 
24.01.14
13:28
консоль запросов не предлагали ещё?
56 Wobland
 
24.01.14
13:30
(55) посостязаемся в оригинальности предложения? у тебя хорошая фора ;)
57 1Сергей
 
24.01.14
13:32
(56) какая фора? ты уже предложил
58 reznik911
 
24.01.14
13:34
(50) (57) так получилось. Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); + в запросе прописал Где Событие.Ссылка=&ТекущийДокумент
59 reznik911
 
24.01.14
13:38
(56)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.