|
Помогите с расшифровкой | ☑ | ||
---|---|---|---|---|
0
Max-VLAD
13.07.12
✎
06:56
|
Здравствуйте! Такая проблема: нужно подставить Строки.Параметры.ДокРасш = Выборка.Ссылка в этот код, конкретно в последние строчки снизу:
Результат = Запрос.Выполнить().Выгрузить(); выборка = Запрос.Выполнить().Выбрать(); Таб = Новый ТабличныйДокумент; ТекМакет = ПолучитьМакет("Макет"); Шапка = ТекМакет.ПолучитьОбласть("Шапка"); Строки = ТекМакет.ПолучитьОбласть("Строки"); Итого = ТекМакет.ПолучитьОбласть ("Итого"); СуммаДокументаИтого = 0; выборка.следующий(); Шапка.Параметры.ТекДата=ТекущаяДата(); ТабДок.Вывести(Шапка); Для Каждого Строка Из Результат Цикл Строки.Параметры.Заполнить(Строка); Если ЗначениеЗаполнено(Строка.СуммаДокумента) Тогда СуммаДокументаИтого = Строка.СуммаДокумента + СуммаДокументаИтого; КонецЕсли; Строки.Параметры.Контрагент = Строка.Контрагент; Строки.Параметры.ПодразделениеИз = Строка.ПодразделениеИз; Строки.Параметры.СуммаДокумента = Строка.СуммаДокумента; ТабДок.Вывести(Строки); КонецЦикла; Итого.Параметры.СуммаДокументаИтого = СуммаДокументаИтого; ТабДок.Вывести(Итого); Только куда и в каком виде я не знаю, пытаюсь делать - вылезает ошибка: {Отчет.ПКО.Форма.ФормаОтчета.Форма(73)}: Поле объекта не обнаружено (Ссылка) Строки.Параметры.ДокРасш = Выборка.Ссылка; Значит надо его где-то прописать в коде, где - не могу понять. Код правильный, он работает, мне просто нужно сделать расшифровку, чтобы по клике на ячейку открывался документ, на который она ссылается. В всех строковых ячейках, кроме Итого, в Свойствах ячейки в ПараметреРасшифровки я указал ДокРасш. Помогите, пожалуйста! |
|||
1
Alex1979rak
13.07.12
✎
06:58
|
запрос покажи
|
|||
2
Cube
13.07.12
✎
06:59
|
||||
3
Max-VLAD
13.07.12
✎
07:01
|
(2)
Процедура Сформировать(ТабДок) Экспорт ЭлементыФормы.Таб.Очистить(); Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | НД_ПКО.Контрагент КАК Контрагент, | НД_ПКО.ПодразделениеИз КАК ПодразделениеИз, | НД_ПКО.СуммаДокумента КАК СуммаДокумента | ИЗ | Документ.НД_ПКО КАК НД_ПКО | ГДЕ НД_ПКО.Ссылка.Проведен | И НД_ПКО.Дата <= &ДатаКон | И НД_ПКО.Дата >= &ДатаНач | УПОРЯДОЧИТЬ ПО ПодразделениеИз | ИТОГИ СУММА(СуммаДокумента) ПО ПодразделениеИз"; |
|||
4
Alex1979rak
13.07.12
✎
07:02
|
(3) в запросе поле Ссылка не наблюдаю
|
|||
5
Cube
13.07.12
✎
07:02
|
(3) Ты что запрос вручную набирал?) Открой конструктор запросов...
|
|||
6
Max-VLAD
13.07.12
✎
07:04
|
(4) Вот и я про то же. Где ее надо указать?
(5) Да. В конструкторе все отлично работает. Но в макете выводит данные как попало и не отображает итоги |
|||
7
Cube
13.07.12
✎
07:11
|
(6) Запрос.Текст ="ВЫБРАТЬ
| НД_ПКО.Ссылка КАК Ссылка, | НД_ПКО.Контрагент КАК Контрагент, ... |
|||
8
Max-VLAD
13.07.12
✎
07:19
|
(7) Спасибо, ошибка исчезла. Теперь новая проблема: при щелчке на ячейку вылезает окошко Null...
|
|||
9
Cube
13.07.12
✎
07:29
|
(8) Так ты, видимо не весь запрос нам показал, ага? Соединение в запросе сделал, получил NULLы, а у нас теперь спрашиваешь что такое))
|
|||
10
Max-VLAD
13.07.12
✎
07:31
|
(9) Разочарую, но запрос я показал весь) Изменил только там где вы сказали:
"ВЫБРАТЬ | НД_ПКО.Ссылка КАК Ссылка, | НД_ПКО.Контрагент КАК Контрагент, | НД_ПКО.ПодразделениеИз КАК ПодразделениеИз, | НД_ПКО.СуммаДокумента КАК СуммаДокумента | ИЗ | Документ.НД_ПКО КАК НД_ПКО | ГДЕ НД_ПКО.Ссылка.Проведен | И НД_ПКО.Дата <= &ДатаКон | И НД_ПКО.Дата >= &ДатаНач | УПОРЯДОЧИТЬ ПО ПодразделениеИз | ИТОГИ СУММА(СуммаДокумента) ПО ПодразделениеИз"; |
|||
11
Cube
13.07.12
✎
07:34
|
(10) А че ты мне ВЫ-каешь?))
Ну тогда ты показал в (0) не весь код, ведь кода "Строки.Параметры.ДокРасш = Выборка.Ссылка;" в (0) нету... |
|||
12
Rie
13.07.12
✎
07:36
|
(10) Как в одной из прошлых веток - а не по итогов записи ли ты щёлкаешь? В ней как раз те самые NULL и будут.
|
|||
13
Max-VLAD
13.07.12
✎
07:36
|
(11) Давай на ТЫ))
Строка уже есть, но хня всё та же( |
|||
14
Max-VLAD
13.07.12
✎
07:37
|
(12) Не по итогам, а по строке, где выводятся данные
|
|||
15
Cube
13.07.12
✎
07:39
|
(14) Дай скрин свойств ячейки табличного документа, где выскакивает Null...
|
|||
16
Max-VLAD
13.07.12
✎
07:42
|
||||
17
Cube
13.07.12
✎
07:44
|
А, так может это всё-таки на строке итогов вылазит Null...
|
|||
18
Rie
13.07.12
✎
07:47
|
(14) А строка выводится для каждой записи, в том числе и для итоговых. И если по такой строке (с итогами) щёлк - она в ответ - Null.
|
|||
19
Max-VLAD
13.07.12
✎
07:49
|
(17) Да нет, по Контрагенту, по Подразделению и СуммеДокумента. Ну и по Итогам сейчас кликнул - та же хрень.((
(18) Rie, и как это исправить? |
|||
20
Cube
13.07.12
✎
07:51
|
(19) Давай скрин результата запроса и скрин сформированного на этих данных отчета.
|
|||
21
Max-VLAD
13.07.12
✎
08:00
|
Результаты запроса через Консоль запросов: http://i077.radikal.ru/1207/c5/0f731eb31de8.jpg
Результаты отчета: http://s018.radikal.ru/i517/1207/a8/fba9a9f06c0e.jpg |
|||
22
Cube
13.07.12
✎
08:03
|
(21) Ну хз... А ты точно на ячейке "Подразделение" щелкаешь?
|
|||
23
Max-VLAD
13.07.12
✎
08:04
|
(22) И по ней, и по Контрагенту, и по СуммеДокумента.
|
|||
24
Rie
13.07.12
✎
08:11
|
(19) Судя по тексту запроса, источником Null могут быть только итоговые записи.
Как формируются строки отчёта? (Покажи код) |
|||
25
Max-VLAD
13.07.12
✎
08:13
|
Весь код:
Процедура ЗаполнитьТабДок() Экспорт КонецПроцедуры Процедура Кнопка1Нажатие(Элемент) НастройкаПериода = Новый НастройкаПериода; НастройкаПериода.РедактироватьКакИнтервал = Истина; НастройкаПериода.РедактироватьКакПериод = Истина; НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период; НастройкаПериода.УстановитьПериод(ДатаНач, ?(ДатаКон='0001-01-01', ДатаКон, КонецДня(ДатаКон))); Если НастройкаПериода.Редактировать() Тогда ДатаНач = НастройкаПериода.ПолучитьДатуНачала(); ДатаКон = НастройкаПериода.ПолучитьДатуОкончания(); КонецЕсли; КонецПроцедуры Процедура Сформировать(ТабДок) Экспорт ЭлементыФормы.Таб.Очистить(); Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | НД_ПКО.Ссылка КАК Ссылка, | НД_ПКО.Контрагент КАК Контрагент, | НД_ПКО.ПодразделениеИз КАК ПодразделениеИз, | НД_ПКО.СуммаДокумента КАК СуммаДокумента | ИЗ | Документ.НД_ПКО КАК НД_ПКО | ГДЕ НД_ПКО.Ссылка.Проведен | И НД_ПКО.Дата <= &ДатаКон | И НД_ПКО.Дата >= &ДатаНач | УПОРЯДОЧИТЬ ПО ПодразделениеИз | ИТОГИ СУММА(СуммаДокумента) ПО ПодразделениеИз"; Запрос.УстановитьПараметр("ДатаКон",ДатаКон); Запрос.УстановитьПараметр("ДатаНач",ДатаНач); Результат = Запрос.Выполнить().Выгрузить(); выборка = Запрос.Выполнить().Выбрать(); Таб = Новый ТабличныйДокумент; ТекМакет = ПолучитьМакет("Макет"); Шапка = ТекМакет.ПолучитьОбласть("Шапка"); Строки = ТекМакет.ПолучитьОбласть("Строки"); Итого = ТекМакет.ПолучитьОбласть ("Итого"); СуммаДокументаИтого = 0; выборка.следующий(); Шапка.Параметры.ТекДата=ТекущаяДата(); ТабДок.Вывести(Шапка); Для Каждого Строка Из Результат Цикл Строки.Параметры.Заполнить(Строка); Если ЗначениеЗаполнено(Строка.СуммаДокумента) Тогда СуммаДокументаИтого = Строка.СуммаДокумента + СуммаДокументаИтого; КонецЕсли; Строки.Параметры.Контрагент = Строка.Контрагент; Строки.Параметры.ПодразделениеИз = Строка.ПодразделениеИз; Строки.Параметры.СуммаДокумента = Строка.СуммаДокумента; Строки.Параметры.ДокРасш = Выборка.Ссылка; ТабДок.Вывести(Строки); КонецЦикла; Итого.Параметры.СуммаДокументаИтого = СуммаДокументаИтого; ТабДок.Вывести(Итого); ТабДок.ТолькоПросмотр = Истина; ТабДок.Показать(); КонецПроцедуры Процедура КнопкаСформироватьНажатие(Кнопка) Экспорт Сформировать(ЭлементыФормы.Таб); КонецПроцедуры |
|||
26
Мимохожий Однако
13.07.12
✎
08:16
|
неплохо бы:
в строке НД_ПКО.СуммаДокумента КАК СуммаДокумента применить метод ЕстьNull, чтобы преврать NULL в 0. Использовать имя переменной Строка не рекомендуется (об этом я тебе и в прошлых ветках писал) В макете в секции итогов убери расшифровку строки. |
|||
27
Rie
13.07.12
✎
08:21
|
(25) Опять один цикл по результату, содержащему как итоговые, так и детальные записи.
Когда Строка - итоговая запись, Строки.Параметры.Заполнить(Строка); честно выводит Null вместо документа и контрагента. В прошлой ветке говорилось, что с этим делать (и вроде бы ты писал, что заработало?). |
|||
28
Max-VLAD
13.07.12
✎
08:22
|
(26) Как применить этот метод в моем запросе? Т.е. как написать?
Значит вместо Строка написать Строки? В макете в секции Итогов у меня не стоит Расшифровка. |
|||
29
Rie
13.07.12
✎
08:30
|
(28) Секция итогов тут ни при чём. Вообще непонятно, зачем ты в запросе итоги получаешь - если потом их не используешь, а насчитываешь итог вручную.
Варианты: А) Выкинь на фиг из запроса ИТОГИ Б) Для Каждого Строка Из Результат Цикл Если Строка.ТипЗаписи()<>ТипЗаписиЗапроса.ДетальнаяЗапись Тогда Продолжить; КонецЕсли; // далее - как у тебя В) Результат = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Результат.Следующий() Цикл Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл // выводишь детальные записи, сумму только не считай - она уже есть КонецЦикла; // выводишь итог КонецЦикла; (Почти то же самое, что и в прошлый раз говорилось. Сделай милость, разберись, как это работает - чтобы очередных веток на эту тему не создавать). |
|||
30
Max-VLAD
13.07.12
✎
08:31
|
ОК, спасибо за участие, пошел разбираться!)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |