Содержание:
2. Особенности объекта системы 1С «ДвоичныеДанные»
3. Использование двоичных данных 1С 8.3
4. Процедура сохранения файла 1С внутри базы при помощи «ДвоичныхДанных»
5. Объект «ДвоичныеДанные» с использованием протоколом HTTP
6. Действия между объектом «ДвоичныеДанные» и потоками в конфигурации 1С Предприятие
7. Двоичные данные и Base64 1С
1. Что такое двоичные данные в системе на базе 1С
Двоичные данные в системе 1С – это довольно многофункциональный объект, который относится ко встроенному языку 1С программирования и отвечает за проведение действий с файлами. Пользуясь объектом «ДвоичныеДанные» появляется возможность представления какого-либо файла в виде упорядоченной последовательности из байта.
Объект «ДвоичныеДанные» есть и в толстом клиенте, и в тонком клиенте, и в мобильном приложении 1С, и для серверов, и для внешнего соединения.
2. Особенности объекта системы 1С «ДвоичныеДанные»
Важно отметить особенность объекта «ДвоичныеДанные» - это возможность проводить сериализацию и из, и в XML и XDTO. Также объект можно задействовать для реквизитов управляемой формы.
Замечание: тип объекта XDTO, который будет ставиться в соответствие объекту «ДвоичныеДанные» определён внутри пространства имён, его имя должно быть или base64Binary, или hexBinary.
Так как, уже говорилось выше, что использование двоичных данных возможно и на сервере, и на клиенте, то это способствует вольной передаче файлов в двоичном виде между сервером и клиентом. Но, несмотря на такую возможность, лучше, всё-таки, использовать хранилище значений 1С 8.3 для переправки файлов.
3. Использование двоичных данных 1С 8.3
Далее представлен перечень задач, в которых может быть использован объект «ДвоичныеДанные», что подтверждает их значимость:
· Переправка различных файлов между сервером и клиентом;
· Переправка вложений из сообщений в электронных письмах;
· Переправка файловых данных во время работы протокола HTTP;
· При помощи «ХранилищаЗначения» - хранение файлов в информационной базе 1С 8;
· Представление файлов в текстовом формате;
· Методы криптографии.
На скриншоте с программным кодом 1С ниже представлено то, как обеспечить чтение двоичных данных и провести отправку с клиента на сервер:
4. Процедура сохранения файла 1С внутри базы при помощи «ДвоичныхДанных»
Довольно частый способ использования объекта «ДвоичныеДанные» - это сохранение файлового документа внутри информационной базы 1С 8. Чтобы файл хранился в двоичных данных 1С 8.3 – нужно внутри объекта внести реквизит, тип которого будет «ХранилищеЗначений».
Далее демонстрируется программный код 1С для работы с реквизитами по заполнению значений 1С:
А это программный код 1С для получения значений:
5. Объект «ДвоичныеДанные» с использованием протоколом HTTP
Возьмём такой пример – пусть нужно скачать изображение из сети Интернет и отобразить его в управляемой форме 1С 8. В таком случае, добавим реквизит, тип которого будет «ХранилищеЗначения», куда и будет перемещено изображение двоичного формата.
Программный код функции, который отвечает за скачивание изображения выглядит следующим образом:
А используется программно так:
Далее можно увидеть, что внутри реквизита «Аватар» находятся данные изображения в двоичном виде.
Переведём изображение на форму, которая является управляемой, для этого добавляем реквизит формы «Тип строка 1С» и переносим его на форму.
Можно воспользоваться и другим способом, а именно: вручную создать новый элемент формы, внутри поля «Путь к данным» прописать реквизит «Картинка», а вид поменять на «Поле картинки 1С», как показано на скриншоте ниже:
Для события «ПриСозданииНаСервере» нужно написать следующее, после чего, изображение появится на форме:
6. Действия между объектом «ДвоичныеДанные» и потоками в конфигурации 1С Предприятие
При работе с объектом «ДвоичныеДанные» нужно рассказать о том, как они могут взаимодействовать с потоками. Это взаимодействие происходит при помощи метода «ОткрытьПотокДляЧтения». Предположим, для примера, что в нашей информационной базе 1С 8 находится тип xml-файл, который заархивирован. И требуется отобразить для пользователя данные из этого файла.
Если не использовать потоки, а просто задействовать объект «ДвоичныеДанные», то порядок действий будет следующим:
1. Получение данных в двоичном виде из информационной базы 1С 8;
2. Внесение этих данных во временный файл 1С 8.3;
3. Проведение процедуры разархивации данных;
4. Действие по удалению временного файла;
5. И чтение готового файла, со снятой архивацией.
В случае работы с потоками, ряд действий будет таким:
1. Получение данных в двоичном виде из информационной базы 1С 8;
2. Проведение открытия потока, который обеспечит чтение;
3. Проведение процедуры разархивации данных;
4. Чтение готового файла, со снятой архивацией.
Программный код 1С для процедуры, в которой потоки не задействуются:
Программный код 1С для процедуры с использованием потока:
7. Двоичные данные и Base64 1С
Для начала, стоит оговорить, что Base64 1С – это некий стандарт, который отвечает за кодировку двоичных данных в строчный вид. Чтобы сериализовать тип «ДвоичныеДанные» нужно воспользоваться внутренним объектом «СериализаторXDTO». После проведения сериализации, данные будут отображены в виде одного узла base64Binary, который состоит из упорядоченной последовательности байт, которые имеют кодировку формата Base64 1С.
Также, стоит отметить, что в системе на базе 1С существуют функции кодировки двоичных данных без сериализации – это:
Специалист компании "Кодерлайн"
Айдар Фархутдинов