1с скд гиперссылка в отчете
Если текст - это адрес сайта или электронной почты, то вы можете перейти по этому адресу, щелкнув по полю с нажатой клавишей Ctrl или выбрав в контекстном меню пункт Перейти по ссылке.
Однако, в отчете перейти по гиперссылке уже не получается.
Подскажите пожалуйста, каким образом можно настроить переход по гиперссылкам из отчета?
Переход по гиперссылкам из отчета
Переход по гиперссылкам из отчета
@Develop-Soft, благодарю за ответ!
Возможно, кто-то уже делал нечто подобное, и есть образец?
Переход по гиперссылкам из отчета
Переход по гиперссылкам из отчета
1. Создал поле, в которую ввёл ссылку.
2. создал кнопку, которой открываю программу браузера (в моём случае яндекс) с выражением которое ссылается на поле из пункта 1.
Переход по гиперссылкам из отчета
@Kliborn, благодарю за ответ!
Уточните пожалуйста - речь идет именно об отчете? Не пойму - как в отчет добавить кнопку с действием.
Переход по гиперссылкам из отчета
Нет (это очевидно, если посмотреть на край формы на скриншоте) . "Чуда" не произошло
Переход по гиперссылкам из отчета
mitridat писал(а): Здравствуйте!
В Wiki для компонента "Текст" указано, что
Если текст - это адрес сайта или электронной почты, то вы можете перейти по этому адресу, щелкнув по полю с нажатой клавишей Ctrl или выбрав в контекстном меню пункт Перейти по ссылке.
Однако, в отчете перейти по гиперссылке уже не получается.
Подскажите пожалуйста, каким образом можно настроить переход по гиперссылкам из отчета?
по моему понимаю:
- отчёт это выгрузка из БД, которую вы забили согласно изготовленной форме.
- ссылки можно изготовить в форме, которую необходимо заполнять
- в вики написано всё правильно. если это электронный сайт , то при нажатом Ctrl и щелчком левой кнопки мышки произойдёт открытие ссылки в браузере
но опять же это не будет переходом из отчёта, это будет переходом из ФОРМЫ, которую вы заполняете.
Как известно, с помощью языка запросов 1С получить уникальный идентификатор объекта ссылочного типа на данный момент нельзя. Но используя возможность СКД обращаться к внешним функциям можно получить строковое представление уникального идентификатора ссылки. Для этого необходимо использовать глобальную функцию XMLСтрока в вычисляемых полях в макете схемы компоновки.
Далее проведем эксперимент по быстродействию получения результата через запрос с последующей обработкой выборки и вариантов с использованием СКД.
Рассмотрим два случая - вывод в табличный документ и формирование текстового документа.
Так же в случае с СКД мы можем создать схему компоновки программно или использовать готовую. Результат работы СКД так же можно обойти в цикле, либо вывести в таблицу значений с последующей обработкой. Для экспериментов будет использоваться платформа 8.3, конфигурация УТ11 (файловая), справочник "КлассификаторБанковРФ", более 4000 элементов.
Схему компоновки и макет можно посмотреть, скачав обработку (ссылка в конце).
По результатам замера производительности видно, что вывод результата в табличный документ происходит быстрее при использовании СКД, причем вариант с программным созданием схемы отрабатывает несколько быстрее.
В тоже время вывод результатов в текстовый документ отрабатывает быстрее для запроса.
Программное создание схемы компоновки отработало быстрее, чем получение макета схемы.
В этой статье разберем довольно популярный вопрос, с которым можно столкнуться не только в реальной работе, но и при устройстве на работу.
Чтобы было понятно, о чем далее пойдет речь, посмотрим на проблему глазами пользователя. Есть простейший отчет, построенный при помощи СКД, вид которого представлен на рис.1:
Рис. 1. Исходный демонстрационный отчет
Нам нужно, чтобы отчет имел заголовок «Отчет по продажам» с параметрами, которые бы заполнялись на основе произвольных данных. Для простоты, в нашем случае эти параметры заголовка будем заполнять из параметров самого отчета (Рис. 2):
Рис. 2. Требуемый вид отчета
На нашем курсе один из участников долго исследовал различные варианты, как можно добиться подобного результата, в результате чего и появился, на наш взгляд, интересный вопрос.
Вопрос
отрабатывает так, как надо.
В общем, комбинации строк дают разные результаты:
вообще ведет к ошибке , компоновка не происходит.
Я запутался в разных сущностях с одинаковыми именами и типами. Результата я добиваюсь, но нет чувства, что разобрался полностью. Не проясните?
Ответ
Здесь дело в двух моментах: значении параметра СтандартнаяОбработка (Истина или Ложь) и в значениях переменных, связанных с настройками компоновки.
СтандартнаяОбработка в коде не изменяется, значит, система будет формировать отчет автоматически. Нам нужно только обеспечить, чтобы в компоновщике содержались корректные настройки. Далее система самостоятельно получит эти настройки из компоновщика, выполнит все действия по компоновке отчета.
Поэтому работать надо именно с компоновщиком настроек:
Вы именно так и делаете, всё получается правильно.
СтандартнаяОбработка в коде установлена в значение Ложь. Значит, все действия по компоновке отчета нужно выполнить вручную (создать макет компоновки по схеме и настройкам компоновки, поработать с процессором компоновки и с процессором вывода результата компоновки данных в табличный документ).
У вас получается следующий код (не самые важные строки я отбросил):
Вы получили из компоновщика настройки. Они хранятся в переменной Настройки. Затем в компоновщике устанавливаете новый заголовок, но в переменной Настройки всё осталось без изменений. Это фактически две разные переменные – Настройки (без заголовка) и КомпоновщикНастроек.Настройки (с новым заголовком).
А макет компоновки вы получаете на основании переменной Настройки, где заголовок не установлен. Поэтому на выходе этот заголовок не выводится в отчете.
Попробуйте еще для закрепления поменять порядок строк:
В этом случае заголовок в отчете уже будет выводиться.
Таким образом, можно сделать следующие выводы:
- При использовании метода ПолучитьНастройки к “обычным” настройкам применяются пользовательские и фиксированные настройки из этого же компоновщика. В результате выполнения этого метода получаем переменную типа НастройкиКомпоновкиДанных. Это именно те настройки, с которыми и будет компоноваться отчет.
- Если нужно установить один параметр в настройках, то нет смысла отключать стандартную обработку. Если же необходимо отчет скомпоновать полностью вручную (например, предварительно подготовить таблицу с внешними данными, обработать ее, вывести ее в виде отчета), то тогда отключаем стандартную обработку и вручную прописываем все шаги формирования отчета.
Этим, пожалуй, и завершим разбор сегодняшнего вопроса. Как видите, казалось бы, такая простая задача, как вывод заголовка, которая по сути своей является вспомогательной при решении билетов, при должном рассмотрении является не такой и простой. Но мы надеемся, что после знакомства с нашим материалом у вас немного “просветлело” :)
Завтра разберем новый вопрос, в котором внимательная слушательница чуть не подловила нашего тренера, поэтому не переключайтесь!
Рассмотрим варианты размещения элементов на форме на примере вывода реквизитов документа на форму документа, состав документа представлен на рис. 1:
Рис. 1. Реквизиты документа
Добавляем форму документа, по умолчанию все элементы формы будут располагаться сверху вниз по порядку (рис. 2):
Рис. 2. Расположение элементов на форме по умолчанию
Сделаем форму более удобной для просмотра и ввода значений.
Поля Документ основание, Ответственный и Комментарий сдвинем вниз, для этого выделяем эти поля и нажимаем стрелку вниз (рис. 3):
Рис. 3. Перемещение полей
Поле Документ основание представим в виде ссылки, чтобы при нажатии открывалось значение реквизита Документ основание. Открываем свойства поля ДокументОснование правой кнопкой мыши Свойства или Alt Enter (рис. 4):
Рис. 4. Открытие свойств поля
В окне Свойства у свойства Вид устанавливаем значение Поле надписи, отмечаем галочкой свойство Гиперссылка (рис. 5). Можно убрать заголовок поля Документ основание:, если у свойства ПоложениеЗаголовка изменить значение на Нет.
Рис. 5. Настройка свойств поля-гиперссылки
Зададим обработку события нажатия гиперссылки: в окне Свойства в разделе События нажимаем на значок лупы у события Нажатие (рис. 6):
Рис. 6. Событие Нажатие
В открывшемся окне оставляем значение Создать на клиенте, нажимаем ОК. Откроется модуль формы документа с шаблоном процедуры ДокументОснованиеНажатие(), добавляем строку ПоказатьЗначение(,Объект.ДокументОснование); (рис. 7):
Рис. 7. Обработка нажатия на гиперссылку
Само значение реквизита ДокументОснование будет определяться при создании на основании, задаем это на вкладке Ввод на основании (рис. 9):
Рис. 9. Ввод на основании
и прописываем в процедуре ОбработкаЗаполнения() в модуле объекта документа (рис. 10, рис. 11):
Рис. 10. Открытие модуля объекта документа Рис. 11. Создание процедуры ОбработкаЗаполнения() в модуле объекта документа
В процедуру ОбработкаЗаполнения() в модуле объекта документа добавим строку ДокументОснование = ДанныеЗаполнения.Ссылка;.
Теперь в пользовательском режиме у созданного на основании документа поле Документ основание будет выглядеть так (рис. 12):
Рис. 12. Гиперссылка в пользовательском режиме
also Первые шаги Отзывов (24) В закладки
Пример был реализован на платформе 1С 8.2.11.232.
Где она вообще, эта СКД?
Сама СКД – это макет, с типом «Схема компоновки данных». Данный макет присущ отчетам. Новый отчет можно создать в ветке конфигурации отчеты, но мы, для простоты работы и отладки, будем работать с внешним отчетом.
Кстати! Разница между внешней обработкой и внешним отчетом как раз в наличии у отчета «Основной схемы компоновки данных» и «Основной формы настроек».
Отчет
Наша задача с помощью СКД, построить простой отчет по продажам с возможностью группировки по контрагентам. Отчет будем строить в демо-базе УПП.
Начнем…
Создадим новый внешний отчет (Файлà–>Новый–>Внешний отчет):
Рис.1 Форма нового отчета
По кнопке «Открыть основную схему компоновки данных» создадим новую схему. После создания, убедимся, что создан макет:
Рис.2 Основная схема компоновки данных располагается в ветке макеты
Итак, мы находимся в «Конструкторе схемы компоновки данных». Пока мы здесь видим много непонятных вкладок. Помним, что пример у нас самый простой, поэтому попробуем провести минимум действий, чтобы вывести простенький отчет. Для нашего примера, мы вкратце пробежим лишь по трем вкладкам: «Наборы данных», «Ресурсы» и «Настройки».
Наборы данных
Создадим новый набор данных – запрос. В данном примере, мы будем использовать всего один набор данных, и его название по сути ничего не значит, однако я призываю Вас делать, как и я, и давать набору данных осмысленное название. Хуже не будет :). Назовем его «Продажи»:
Рис. 3 Вкладка "Наборы данных"
Теперь необходимо создать запрос. Используем «Конструктор запроса»:
Рис.4 Кнопка "Конструктор запроса"
На закладке «Таблицы и поля» конструктора запроса выберем регистр накопления «Продажи». Из регистра последовательно выберем поля: «Контрагент», «Номенклатура», «Количество» и «Стоимость»:
Рис.5 Конструктор запроса
Нажмем «ОК». Так, как у нас была установлена галка «Автозаполнение», то доступные поля текущего набора данных заполнились автоматически:
Рис.6 Вкладка "Наборы данных" с заполненными полями
О дополнительных настройках полей мы будем говорить позже. Итак, данные для отчета у нас имеются. Попробуем что-нибудь с ними сделать
Ресурсы
«Я что-то слышал про СКД и мне сказали, что там почти всегда необходимо определять ресурсы» – многие из начинающих могут так сказать. А что же это такое? Попробуем разобраться. Для этого сначала выведем отчет без указания ресурсов. Для этого перейдем сразу на вкладку настройки. Для того чтобы вывести данные в отчет без каких либо группировок, нужно все же создать группировку, но ничего не указывать. Таким образом, у нас будут выведены «детальные записи».
Что делаем? На вкладке «Настройки» жмем добавить –>новая группировка (или Ins), и в появившемся окне просто жмем «ОК»:
Рис.7 Создание новой группировки в настройках
Настроим выбранные поля для детальных записей (поле «Контрагент» пока выбирать не будем):
Рис. 8 Настройка группировки (Выбранные поля)
Теперь сохраняем наш внешний отчет, открываем его в предприятии, и формируем:
Рис. 9 Формирование отчета с одной группировкой "Детальные записи"
Уже что-то! Но, согласитесь не то… При формировании отчета, таким образом, получаем данные, которые наверняка не имеют особого смысла. Вот если бы мы знали, сколько всего продали холодильников и на какую стоимость, было бы лучше.
Отчет с одной группировкой
Итак, мы уяснили, что хотим сгруппировать наши данные по номенклатуре. Давайте спросим у СКД, умеет ли она это делать? Умею, конечно, – отвечает СКД. Вы мне только скажите, по каким полям, и по какому выражению вам вывести итоги. Так вот как раз ресурсы и есть – итоговые записи по группировкам.
Отлично, идем на вкладку ресурсы. Добавим в ресурсы «Количество» и «Стоимость». В графе выражения оставим значения по умолчанию, т.е. «Сумма(Поле)»:
Рис.10 Вкладка "Ресурсы"
Так…ресурсы указали, а группировку нет. Добавляем. Идем обратно на вкладку «Настройки» и видим нашу сиротливую группировку «Детальные записи». Отредактируем ее, указав в графе «Поле» группировку «Номенклатура» и нажмем «ОК». Заметим приятные интерфейсные изменения. Значки рядом с полями «Количество» и «Стоимость» превратились из унылых синих палочек в непонятные зеленые цилиндры J.
Сохраняем изменения и формируем отчет:
Рис.11 Отчет с одной группировкой "Номенклатура"
Ну, теперь мы уже видим сгруппированную информацию по продажам. И, обратите внимание, появились общие итоги. Это следствие того, что у нас появилась группировка, и у нее по умолчанию включен вывод общих итогов.
Отчет с группировкой по контрагентам
Немного усложним задачу, и сгруппируем отчет еще и по контрагентам. На вкладке «Настройка» удалим группировку «Номенклатура». Теперь создадим структуру отчета, используя «Конструктор настроек»:
Рис.12 Вызов конструктора настроек компоновки данных
Сначала выберем тип отчета. Нас вполне устраивает «Список». Далее. На следующем этапе необходимо указать поля, которые будут выводиться в отчете. Выбираем все. Далее. Необходимо выбрать группировки. Выбираем и «Контрагент» и «Номенклатура». Далее. Пункт с сортировкой пропускаем и нажимаем «ОК». У нас должна получиться примерно такая структура:
Читайте также: