Меню Закрыть

1С word двоичные данные

Содержание

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

Общая информация

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

Двоичные данные

Экземпляры объекта ДвоичныеДанные содержат двоичные данные, которые считываются из файла. При это объект ДвоичныеДанные является достаточно многофункциональным — мы можем:

  • читать двоичные данные из файла и записывать их в файл;
  • передавать их между клиентом и сервером при помощи временного хранилища;
  • передавать и получать их по сети;
  • хранить их базе данных в реквизитах вида ХранилищеЗначения;
  • превратить двоичные данные в объект вида Картинка (при определенных условиях конечно);
  • хранить двоичные данные в макетах;
  • шифровать и расшифровывать, подписывать и проверять подписи;

Наверняка я что-то пропустил, но главное должно быть понятно — несмотря на значительное развитие средств работы с двоичными данными, объект ДвоичныеДанные остается ключевым.

Потоки

Это группа объектов назначение которых заключается в работе с потоками данных.

Поток — этот объект представляет собой поток данных из которого можно читать и/или записывать в него данные. Данный объект не имеет конструктора, а получить экземпляр объекта можно при помощи различных методов других объектов.

ФайловыйПоток — специализированный вариант объекта Поток, предназначенный для работы с данными находящимися в файлах на диске.

ПотокВПамяти — специализированный вариант объекта Поток, предназначенный для работы с данными находящимися в оперативной памяти.

Читайте также:  Телевизор не показывает фото

МенеджерФайловыхПотоков — этот объект предоставляет типовые методы для работы с файлами (открытие и создание). Создать экземпляр этого объекта нельзя — имеется объект глобального контекста ФайловыеПотоки который и предоставляет доступ к методам менеджера.

Чтение и запись

ЧтениеДанных — этот объект предназначен для чтения различных типов данных из различных источников (потоки, файлы, двоичные данные).

РезультатЧтенияДанных — этот объект содержит описание результата чтения данных из потока. Объект не имеет конструктора, получить экземпляр объекта можно при помощи методов других объектов.

БуферДвоичныхДанных — этот объект представляет собой коллекцию байтов фиксированного размера, имеется возможность произвольного доступа и изменения по месту.

ЗаписьДанных — этот объект предназначен для записи различных типов данных в приемник.

Практическая часть

Итак, у нас достаточно много различных объектов, которые, в свою очередь, имеют много разных свойств и методов. Разобраться во всем этом более подробно помогут практические примеры, к ним и перейдем.

Многие объекты — ДвоичныеДанные, Поток, ФайловыйПоток, ПотокВПамяти, ЧтениеДанных, ЗаписьДанных, РезультатЧтенияДанных имеют пары синхронных и асинхронных методов, например: ЗаписатьНачатьЗапись, ЗакрытьНачатьЗакрытие. Асинхронные методы нужны для обеспечения возможности одинаковой работы и в тонком клиенте, и в веб-клиенте.

Подробнее про синхронные и асинхронные методы можно прочесть в этой статье.

Двоичные данные

Ниже приведены примеры основных операций с объектом ДвоичныеДанные.

Во внешнюю обработку печатной формы добавлен макет вида Двоичные данные, куда загружен тестовый документ-шаблон Word в формате *.docx. Макет заполнен стандартным образом, все параметры добавлены в закладки.

Получение и заполнение макета в обработке происходит в процедуре &НаКлиенте. Для примера взят документ "Кадровый перевод" конфигурации 1С Зарплата и управление персоналом 3.1.10.135, к нему написан небольшой запрос. Так как заполнение макета происходит &НаКлиенте, а получить результат запроса можно только &НаСервере, программно создается "невидимая" таблица значений — реквизит формы, заполняемая результатом запроса. Далее эта таблица передается на клиент, где перебирается и заполняет макет.

Читайте также:  Гарантия на геймпад xbox one

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

Печатная форма предназначена для любых конфигураций на управляемых формах, платформа 8.3. Проверялась на 1С ЗикГУ 3.1.10.135 (БСП 3.0.3.59), а так же на версиях младше 3.1.10.135 до 3.1.5.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Работа с Word в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

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

Нажмите одну из кнопок, чтобы поделиться:

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.