В 1С:Предприятии 8, "файлы BIN" могут означать несколько разных вещей, и способ их "открытия" (или работы с ними) зависит от контекста. Чаще всего под файлами. bin в 1С подразумеваются:
Бинарные данные во временном хранилище: Это внутренний формат 1С для временного хранения любых бинарных данных (картинки, файлы, архивы и т. д.) при передаче между клиентом и сервером или при работе с файлами во временном хранилище. Они не предназначены для прямого открытия пользователем. Файлы внешних компонент (.dll или .so): Это скомпилированные бинарные библиотеки, написанные на C++, Delphi и т. д., которые расширяют функционал 1С. Их нельзя "открыть" в 1С как документ или таблицу. Их нужно Подключить и использовать их методы. Некоторые служебные файлы платформы 1С: В папках установки платформы 1С могут быть служебные. bin файлы, которые являются частью самой платформы и не предназначены для взаимодействия пользователя.
Давайте рассмотрим наиболее вероятный сценарий — Работа с бинарными данными во временном хранилище 1С.
Работа с бинарными данными во временном хранилище (.bin как внутренний формат 1С)
Когда вы загружаете файл в 1С (например, через диалог выбора файла), или передаете его между клиентом и сервером, платформа 1С может сохранять его во временном хранилище. Адрес этого временного хранилища имеет вид e1cib/tempstorage/… и указывает на бинарные данные, которые 1С может прочитать.
Вы не открываете файл .bin напрямую в 1С как документ. Вместо этого вы:
Получаете адрес бинарных данных во временном хранилище. Сохраняете эти данные на диск (если хотите открыть их внешней программой). Или используете эти данные напрямую в 1С (например, для отображения картинки, для прикрепления к документу, для обработки).
Пример сценария: Пользователь выбирает файл, а мы его сохраняем на диск.
Допустим, пользователь выбрал файл через диалог, и нам нужно сохранить его куда-то.
Фрагмент кода
// Эта процедура запускается, например, по нажатию кнопки на форме
&НаКлиенте
Процедура ПрикрепитьФайл(Команда)
// 1. Создаем диалог выбора файла
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла. Открытие);
ДиалогВыбораФайла. МножественныйВыбор = Ложь; // Только один файл
ДиалогВыбораФайла. Заголовок = "Выберите файл для прикрепления";
// Открываем диалог и ждем выбора пользователя
Если ДиалогВыбораФайла. Выбрать() Тогда
// 2. Получаем полный путь к выбранному файлу на клиентском компьютере
ИмяФайлаНаКлиенте = ДиалогВыбораФайла. ПолноеИмя;
// 3. Помещаем файл во временное хранилище 1С
// Это необходимо, чтобы сервер мог получить доступ к файлу,
// если дальнейшая логика выполняется на сервере
АдресФайлаВоВременномХранилище = ПоместитьФайл(ИмяФайлаНаКлиенте);
Сообщить("Файл ‘" + ИмяФайлаНаКлиенте + "’ помещен во временное хранилище по адресу: " + АдресФайлаВоВременномХранилище);
// 4. Теперь, если нужно, можно сохранить этот файл обратно на диск (на сервере или клиенте)
// Пример сохранения на клиенте
СохранитьФайлНаКлиент(АдресФайлаВоВременномХранилище, "C:\Temp\СохраненныйФайл. ext");
// Пример использования на сервере (если бы мы передали АдресФайлаВоВременномХранилище на сервер)
// ПолучитьФайл(АдресФайлаВоВременномХранилище, ИмяФайлаНаСервере);
// А затем работать с ИмяФайлаНаСервере
КонецЕсли;
КонецПроцедуры
// Вспомогательная процедура для сохранения файла из временного хранилища на клиент
&НаКлиенте
Процедура СохранитьФайлНаКлиент(АдресФайла, ПутьСохранения)
// Процедура-обработчик, которая будет вызвана после завершения операции сохранения
// Параметры: Успех, ИмяФайла, ДополнительныеПараметры, Ошибка
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеСохраненияФайлаНаКлиенте", ЭтотОбъект);
// Сохраняем файл
НачатьСохранениеФайла(АдресФайла, ОписаниеОповещения, ПутьСохранения);
КонецПроцедуры
// Процедура-обработчик после сохранения файла на клиенте
&НаКлиенте
Процедура ПослеСохраненияФайлаНаКлиенте(Успех, ИмяФайла, ДополнительныеПараметры, Ошибка) Экспорт
Если Успех Тогда
Сообщить("Файл успешно сохранен на клиенте: " + ИмяФайла);
// Теперь можно открыть файл внешней программой
// ЗапуститьПриложение(ИмяФайла); // Будет открыто программой по умолчанию
Иначе
Сообщить("Ошибка сохранения файла на клиенте: " + Ошибка. Описание);
КонецЕсли;
КонецПроцедуры
Ключевые функции для работы с бинарными данными и временным хранилищем:
- ПоместитьФайл(ИмяФайлаНаКлиенте, [ИмяХранилища], [ИмяПомещенногоФайла]): Помещает файл с клиентского компьютера во временное хранилище сервера. Возвращает адрес во временном хранилище. Работает только на клиенте. ПолучитьФайл(АдресФайлаВХранилище, ИмяФайлаНаСервере): Получает файл из временного хранилища сервера и сохраняет его по указанному пути на сервере. Работает только на сервере. НачатьСохранениеФайла(АдресФайлаВХранилище, ОписаниеОповещения, ПутьСохраненияНаКлиенте): Начинает асинхронное сохранение файла из временного хранилища на клиентский компьютер. Результат обрабатывается через ОписаниеОповещения. Работает на клиенте. УдалитьФайл(АдресФайлаВХранилище): Удаляет файл из временного хранилища. ДвоичныеДанные: Тип данных 1С для работы с бинарными данными (например, для чтения/записи файлов, работы с изображениями).
- Новый ДвоичныеДанные(ПутьКФайлу): Загружает файл в бинарные данные. ДвоичныеДанные. Записать(ПутьКФайлу): Сохраняет бинарные данные в файл.
Если вы имеете в виду внешние компоненты (add-ins):
Если речь идет о бинарных файлах. dll (для Windows) или .so (для Linux), которые являются внешними компонентами, то их не "открывают", а "подключают" в 1С.
Регистрация компоненты: В некоторых случаях DLL-файл нужно зарегистрировать в системе (например, с помощью regsvr32 для COM-компонент, хотя это реже используется в современных управляемых приложениях 1С). Подключение в 1С:
Фрагмент кода
// Например, для внешней компоненты native API
Попытка
ПодключитьВнешнююКомпоненту("ОбщийМакет. ИмяМакетаСКомпонентой", "МояКомпонента");
// Или если компонент лежит в папке
// ПодключитьВнешнююКомпоненту("МояКомпонента", "МояКомпонента");
// Использование:
МойОбъектКомпоненты = Новый("AddIn. МояКомпонента. ИмяОбъектаКомпоненты");
// Далее вызываем методы компоненты
МойОбъектКомпоненты. МойМетод();
Исключение
Сообщить("Не удалось подключить внешнюю компоненту: " + ОписаниеОшибки());
КонецПопытки;
Здесь "МояКомпонента" — это идентификатор, под которым компонент будет доступен в 1С. Сам BIN-файл (DLL/SO) может быть встроен в конфигурацию как "Общий макет" типа "Двоичные данные".
Резюме:
В большинстве случаев, если вы видите файл .bin в контексте 1С, это скорее всего означает бинарные данные во временном хранилище. Для "открытия" такого файла его необходимо сначала сохранить на диск, а затем открыть с помощью соответствующей внешней программы.