1с поле html документа сохранить

Обновлено: 04.07.2024

Программное формирование HTML-документа, содержащего ссылки на объекты базы данных 1С
В данной статье рассматривается способ программного формирования HTML документа, содержащего ссылки на объекты базы данных 1С, такие как справочники, документы и т.д. Показан пример построения обработчика события OnClick ПоляHTMLДокумента, для обработки клика на html-ссылке.

Заключение
Обратите внимание что ссылку я формировал следующим образом:
<ИмяОбъектаМетаданных>-<УникальныйИдентификатор> это сделано для того, чтобы в обработчике onclick можно было определить к какому объекту метаданных относится данный УникальныйИдентификатор, потому что имея ТОЛЬКО УникальныйИдентификатор невозможно определить к какому объекту метаданных он относиться. Точнее возможно, но уж слишком долго и неудобно – путем перебора всех метаданных в цикле, для каждого объекта метаданных выполнять попытку <ОбъектМетаданных>.ПолучитьСсылку(Новый УникальныйИдентификатор(НашУникальныйИдентификатор))
Хотя в нашем примере только один справочник, и указывать его вид было необязательно, и так понятно что это УникальныйИдентификатор элемента справочника Номенклатура, но вдруг Вам потребуется работать с несколькими справочниками, вот тут то мой способ задания ссылки Вам и пригодится.
P.S. Платформа 8.2 имеет встроенный механизм работы со ссылками на объекты БД и данная задача наверняка упростится, но это уже другая тема.
Источник

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 01.11.2011   Прочитано: 28820

Распечатать

Похожие FAQ

Еще в этой же категории

Программное создание таблицы значений с условным оформлением  12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме  10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Поле выбора

Как ограничить список выбора?  8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Реквизит

Как активизировать, перевести фокус на необходимый элемент на форме?  6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Посмотреть все в категории Работа с Формой (Диалог) и её элементами

В настоящее время, большая часть функций в мобильном приложении ограничена, в том числе и поле html. Однако можно найти обходные пути для решения некоторых задач !) В данной статье я приведу небольшой обзор, работы со списком значений, даты и времени и небольшой пример создания документа из html интерфейса.

К статье прикреплен файл выгрузки .dt

В мобильном приложении (На текущий момент) невозможно сохранить текстовый макет где можно сохранять текст Html поля, поэтому пришлось выкручиваться. Весь текст html я сохранил в табличном макете, разбив код по областям ячеек.


В примерах использованы базовые стили оформления .css (При желании можно добавить картинки и более изящные эффекты, в зависимости от поставленных задач и воображения ).

Так же в мобильном приложении, событие Html поля (ПриНажатии) срабатывает только при переходе по ссылкам. В связи с этим, пришлось немного выкручиваться, а именно - к каждому действию привязал ссылки и специальные символы для определения выполняемой функции\процедуры .

Список задач html.

После открытия формы, полю html документа необходимо некоторое время для формирования, в связи с этим- некоторые функции JavaScript недоступны. Пришлось подключить обработчик ожидания для выполнение одной процедуры заполнения.


  • В поле "Ссылка" отобразится выбранное значение (Из списка 1С и Html списка)
  • Поле "Список" - Список значений 1С, заполен тестовыми значениями из справочника.
  • Html список заполняется из "Списка 1С"

Кнопки "Добавить тесты" - пример добавления элемента в список (Добавляет пустое текстовое значение "Тест +Индекс")

Кнопка "Перезаполнить" - очищает список и перезаполняет из списка 1С.

Следующая страница содержит пример работы с датой и временем.

Данный пример показывает как можно взаимодействовать с реквизитом "Дата и время" из Html поля в 1С и наоборот. Ограничился простыми реквизитами выбора даты и времени. Поле даты можно преобразить в виде календарика , или переделать под свои определенные задачи. (В зависимости от знания html и css)


  • "Установить время в html поле" - по заголовку всё понятно )). Изменяет дату и время из поля 1с.
  • Html дата и время
  • Полученная дата строкой - заполняется в зависимости от выбранной даты из html поля и поля 1С.
  • Поле Даты и времени 1С

Следующая страница - создание документа.

Пример создания документа из html. Для примера был создан тестовый документ с несколькими реквизитами и ссылкой на справочник.
Добавлена кнопка для выбора справочника из html и кнопка очистки (Можно сделать намного проще и эффектнее, всё зависит от знаний html и воображения автора).


Ну тут всего одна кнопка "Создать документ" - открывает форму нового документа 1С.

И html поле - с готовой формой для заполнения.

Ну и последний пример - форма авторизации (статья будет дополняться . )

Форма авторизации из html поля, для наглядности "Логин" и "Пароль" выведены на форме. При формировании html документа, данные берутся из из полей "Логин" и "Пароль" и идет проверка на совпадение (Функции JS). При успешной авторизации выводится окно 1С, иначе выводится предупреждение с текстом предупреждения ( Не правильный пароль, логин и тд)


На этом все. К статье прикреплен файл выгрузки .dt со всеми примерами на скриншотах. Статья и файлы будут дополняться в будущем. (Вместе с изменениями в платформах мобильного приложения).

В статье на примере будут описаны все этапы создания поля html документа. В 1с html поле позволяет представить данные, которые не требуется редактировать, в более эстетичном виде. Разработчик может применить возможности html для создания и настройки формы справочника или бизнес-процесса (как делается в конфигурации Документооборот).

Рассмотрим пример. Разработаем обработку, которая будет представлять элемент справочника Пользователи в виде поля html документа. Для разработки примера я использовал демо БСП 3.1 (управляемое приложение).

Выведем в документ следующие поля справочника:

  • Наименование и Комментарий в виде текста;
  • ФизическоеЛицо и Подразделение в виде ссылок;
  • Фотографию пользователя;
  • Контактную информацию в виде таблицы.

Размещение реквизитов на форме

Для начала создадим внешнюю обработку и добавим форму. На форме создадим два реквизита Пользователь (тип СправочникСсылка.Пользователи) и ПредставлениеHTML (тип Строка неограниченной длины). Перетащим реквизиты в дерево элементов. Для элемента ПредставлениеHTML выберем вид Поле HTML документа и отключим отображение заголовка. Должно получится так:

Теперь поработаем над программной частью формы:

  • Заполнять html поле данными будем при изменении пользователя. Поэтому создадим для него обработчик события ПриИзменении;
  • Работа же с самим полем потребует перехода на сервер, так как нам необходимо выполнять запрос и получать данные из хранилища значений. Поэтому для заполнения данных html создадим функцию ЗаполнитьHTMLПредставление с директивой НаСервереБезКонтекста. В качестве параметра передадим в нее ссылку на пользователя;

В итоге должно получиться следующее:

Получение данных

Во входные параметры функции ЗаполнитьHTMLПредставление мы передаем только ссылку на пользователя, поэтому для начала надо собрать все данные, необходимые для вывода в html документ. Для этого воспользуемся запросом, который вынесем в отдельную процедуру. Приводить текст процедуры здесь я не буду, чтобы не занимать много места. Ознакомиться с ним можно во внешней обработке, ссылка на которую находится внизу статьи.

Заполнение стилей 1с html поля

Теперь в функции ЗаполнитьHTMLПредставление будем описывать html документ. Начнем с обязательных тегов <html> и <head>. После чего перейдем к заполнению стилей (тег <style>), которые будут применяться во всем документе, а также в отдельных его блоках.

Рассмотрим заполнение стилей более подробно:

Создание тела html документа в 1с 8

После описания стилей займемся формированием тела документа. Для этого используем тег <body>.

Вывод изображения в html

Начнем с вывода фотографии пользователя. В элементе справочника она хранится в реквизите Фотография, в виде хранилища значения. Его мы получили вместе с остальными данными пользователя, при помощи запроса.

Разберем представленный код:

  • Хранилище содержит двоичные данные изображения, их необходимо получить. Используем для этого метод Получить(), который распаковывает данные хранилища;
  • В html мы можем вывести изображение либо указав ссылку на него, либо использовав его двоичные данные, в кодировке base64. Для этого используем метод Base64Строка;
  • После подготовки данных, можно выводить их в документ.
    • Используем тег <img>, применяемый для вывода изображений;
    • Атрибут src указывает адрес выводимого изображения или его данные. У нас это двоичные данные, поэтому в дополнение к ним необходимо использовать префикс data:image/ и указание типа данных base64.

    Для того чтобы отделить изображение от следующей информации, используем тег <p>. Он означает начало нового абзаца. При описании стилей мы указали, что перед началом нового абзаца устанавливается отступ в 10 пикселей.

    Вывод текстового реквизита в html

    После фотографии выведем основные данные пользователя в следующем формате:

    Начнем с имени пользователя:

    Разберем представленный код:

    • Для того, чтобы имя реквизита не сливалось с его содержанием, выделим его другим цветом. Для этого используем свойство <font>, позволяющее изменять характеристики текста. В нашем случае это цвет color.
    • После вывода данных используем тег <br>. Он предназначен для перехода на следующую строку.

    Вывод ссылки в html

    Теперь выведем в документ физлицо пользователя. Так как оно представлено ссылочным типом, оформим его в виде ссылки.

    Разберем представленный код:

    • Для создания ссылок используется тег <a>. Его атрибут href задает адрес ссылки. Для удобства работы создадим шаблон для вывода навигационной ссылки на физлицо. В параметр %1 будем выводить ссылку, а в параметр %2 текст ссылки;
    • Для получения навигационной ссылки используем метод ПолучитьНавигационнуюСсылку(<Ссылка>);
    • Заполним параметры шаблона, используя строковую функцию СтрШаблон;

    Далее нам необходимо будет вывести еще один текстовый реквизит и еще один ссылочный. Для того чтобы не дублировать код вынесем добавление реквизита в html в отдельную, универсальную процедуру.

    Вывод всех реквизитов будет выглядеть следующим образом:

    Вывод таблицы в html 1с

    Осталось вывести таблицу контактной информации пользователя. Это делается довольно просто.

    • Для вывода таблицы используется тег <table>;
    • Для вывода строки таблицы тег <tr>;
    • Тег <td> отвечает за вывод ячейки;
    • Для вывода ячейки заголовка используется тег <th>.

    На этом формирование поля html документа в 1с завершено. Осталось только закрыть теги и вернуть сформированный текст.

    В итоге у нас получается html поле, заполненное следующим образом:

    Html документ сформированный в 1с

    Обработка нажатия на ссылку

    В обработчике мы анализируем текст ссылки, на которую произошло нажатие. Если это навигационная ссылка, обрабатываем ее по отдельному алгоритму. Получаем текст и осуществляем переход. Таким образом при нажатии на ссылку, у нас произойдет переход на форму элемента справочника.

    Объекты ActiveX недоступны для размещения в управляемых формах, как было ранее в обычных, при этом необходимость размещения таких объектов востребована.
    Покопался на форумах, мне нужно было разместить файл PDF в управляемой форме, чтобы доступ был в веб-клиенте. В тонком клиенте получилось (не как в обычной форме, но довольно просто), а в веб-клиенте потребовалось покопаться. Привожу описание как сделал размещение файла PDF.

    Сразу замечу, что у Вас уже должен быть установлен веб-сервер и база 1С опубликована на нем.
    Моя ситуация: веб-сервер IIS, база 1С 8.3 в клиент-серверном варианте.
    В качестве примера создаю простую обработку с управляемой формой.

    1) В начале нам необходимо разместить на форме объект, который будет визуально отображать наш файл.
    Для этого:
    - Добавим реквизит формы "Реквизит1" с типом "Строка"
    - Разместим реквизит на управляемой форме
    - Изменим для реквизита на форме свойство "Вид", установив его в "Поле HTML документа"


    2) ВАРИАНТ для Тонкий клиент, Толстый клиент:

    Открытие файла осуществляется простым присваиванием реквизиту формы "Реквизит1" пути к файлу.


    Примечание: Здесь, например, можно организовать диалог выбора файла и отображать конкретный файл.
    Если же, например, файлы хранятся в базе, то предварительно сохранить файл в предопределенный каталог.


    3) ВАРИАНТ для Веб-клиент:

    Документ HTML в веб-клиенте приобретает тип "ВнешнийОбъект", в тонком клиенте он имеет тип "COM-объект". Исходя из этой ограничивающей особенности режима веб-клиента "Реквизит1" необходимо определять ещё на сервере тегами HTML.


    data = "путь к опубликованному на веб-сервере файлу"
    type = "тип приложения для открытия"
    width = "ширина окна"
    height = "высота окна"


    Обработка выгрузки и загрузки данных через XML между идентичными конфигурациями с возможностью установки произвольных отборов на выгружаемые объекты.

    Подключаемый отчет на системе компоновки данных по типам объектов 1С показывает: 1) Совокупности таблиц SQL для хранения объекта 1С и их предназначение; 2) Число объектов данного типа; 3) Размеры хранения данных и индексов в MB (мегабайтах); 4) Сравнение данных двух баз

    Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен).

    Если пользователю не хватает прав на объект, то на практике в 90 % случаев, недостающую роль можно найти через типовой регистр сведений Права ролей. Также с помощью дополнительного отчета или небольшого расширения можно ускорить описанный процесс.

    Онлайн диаграмма доступных лицензий 1С и показателей ресурсов сервера 1С в различных измерениях и отборах.

    Обработка ищет все объекты базы, в которых одновременно присутствуют перечисленные элементы. Построена на базе типовой обработки Все функции - Стандартные - Поиск ссылок на объект, но позволяет накладывать отбор не по одному объекту, а по нескольким, что позволяет настраивать поиск по комбинациям условий

    Часто не хватает визуализации хронологии документов в структуре подчиненности и кнопок проведения. Это расширение конфигурации, с функционалом структуры подчиненности документов, отображающее хронологическую последовательность документов во времени и дающее доступ к проведению, отмене проведения, пометке на удаление документов непосредственно в форме подчиненности.

    Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем.

    Групповая обработка ссылок вида Объект не найден (502:37855254002e11eb11e73b8f36150d9e) заполняется максимально просто копированием и вставкой из буфера: 1) Выделяет уникальные идентификаторы (далее УИ); 2) Ищет ссылки на объекты базы по УИ; 3) Создаёт пустые объекты с указанным УИ; 4) Регистрирует найденные ссылки для обмена данными. Работает на любых продуктах 8.3

    Обработка на управляемых формах для работы с календарями google, событиями календарей и контактами.

    Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет.

    Выполнил 3 разных теста для проверки серверного оборудования (тест 1С, тесты gilev) на возможное число 1С онлайн-пользователей одновременно работающих на нем и интерпретировал результаты тестов через легких, средних и тяжелых пользователей с помощью таблицы с профилями реальных пользователей.

    Перед началом проекта требуется определить параметры серверного и клиентского оборудования, необходимые для работы внедряемой программы 1С:Предприятие, и учесть будущую нагрузку, которая ляжет на систему в реальной рабочей обстановке. Мощность оборудования должна быть достаточной для нормальной работы пользователей. Но как подобрать сервер простым способом?

    На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением.

    Часто при моделировании примеров бизнес-процессов, на запуске в эксплуатацию или закрытии требуется несколько раз прогнать ситуацию с разными настройками, а для этого изменить, удалить ранее введенную цепочку документов. Дается все это с трудом. Ты уверен, что не навредишь своими действиями системе, но документы цепляют друг друга и ругаются контролями остатков, не разрешая тебе менять их в произвольном порядке.

    Есть несколько удобных опций для облегчения внесения изменений.

    Для уведомления пользователей программных продуктов 1С о разных событиях, в них включена подсистема «Новостной центр». Это довольно удобная штука, т.к. новостные ленты сообщают о выходе обновлений, о новостях и событиях в сфере учёта. Но можно увеличить пользу от новостной подсистемы используя её локально в рамках 1С базы. Например, внутренняя служба техподдержки или внедряющая компания может через новостную ленту оповещать пользователей информационной базы об изменениях в программе, совещаниях, проведении тестирований, заполнения нужных документов или сдача отчетов к определенной дате и т.п.

    Пример технического задания для практического понимания основных разделов.

    Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании


    Ссылка на компетенции по 1С:ERP - команда со знаниями, умениями и успешными проектами.

    Настраивал клиенту CRM, он захотел - чтобы панель управления сайтом была в 1С. Хочет - делаем:

    Обработка Веб браузер проста, состоит из поля HTML документа и 20 строчек кода:


    Поле HTML документа - Это Internet Explorer в режиме совместимости IE7, и к сожалению, большинство сайтов уже ориентированы на современные браузеры и при открытии возникает ошибка:



    Разместил: all4cf  Версии: | 8.3 |  Дата: 30.12.2015   Прочитано: 57485

    Распечатать

    Похожие FAQ

    Как заполнить табличную часть формы программно?  6
    Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 10060 (0x0000274C): Попытка установить соединение была безуспешной  18
    Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
    Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
    была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C: Enterprise Development Tools  50
    И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Посмотреть все результаты поиска похожих

    Еще в этой же категории

    Ключевые слова и Изображения

    Слова упорядочены по частоте использования в тексте

    Изображения

    Веб браузер в 1С используя поле HTML документа
    Веб браузер в 1С используя поле HTML документа
    Веб браузер в 1С используя поле HTML документа

    darkoder, по вашему рецепту перевёл Поле HTML документа в режим совместимости с ie11, а ссылка

    все равно не открывается в 1С. Может уже есть режим совместимости с ещё более свежей версией ie ?

    а так же создать 1cv8c.exe и 1cv8s.exe м такими же параметрами

    для того чтобы перевести 1с в режим совместимости с ie11 надо в реестре в ветке

    создать параметр dword с именем 1cv8.exe и десятичным значением 11001

    а так же создать 1cv8c.exe и 1cv8s.exe м такими же параметрами

    для того чтобы перевести 1с в режим совместимости с ie11 надо в реестре в ветке

    создать параметр dword с именем 1cv8.exe и десятичным значением 11001

    а так же создать 1cv8c.exe и 1cv8s.exe м такими же параметрами

    Читайте также: