Алхимический способ работы с двоичными данными — универсальная библиотека под версии 1С 8.х

30.01.26

Разработка - Инструментарий разработчика

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

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Обработка с библиотекой (код в модуле объекта ) для платформы 8.2 и новее
.epf 8,61Kb
58 Скачать бесплатно
Обработка с библиотекой (код в модуле объекта ) для платформы 8.0 и новее
.epf 8,04Kb
19 Скачать бесплатно

При подготовке доклада на конференцию infostart teach event 2025 возникла идея сделать аналог оператора Выполнить под WEB клиент и мобильный клиент через создание внешней подключаемой обработки. На этом сайте представлен яркий пример упаковки обработок, расширения, конфигурация на функционале платформы 8.3.9 и новее: Yellow Packer и Распаковщик. Однако, работа с двоичными данными возможна и на более ранних версиях 1С, но для этого нужна функция Преобразовать64 , которая преобразует строку base64 в массив байтов и обратно из массива байт в base64. Пользуясь случаем, выражаю благодарность автору за её реализацию.

Данная библиотека представляет собой универсальный слой совместимости (Compatibility Layer), который реализует на уровне встроенного языка функции для работы с двоичными данными. Её ключевая цель — предоставить единый API (программный интерфейс) для абсолютно всех платформ 1С 8.x, включая версии 8.0.5 – 8.3.8, мобильные клиенты (КПК), а также конфигурации, работающие в режиме совместимости, где нативные объекты недоступны.

Ядро библиотеки основано на работе через массив байт. Вся логика построена на базовом типе Массив, где каждый элемент — число от 0 до 255 (байт). Это позволяет:

  • Обойти отсутствие в старых версиях объектов ПотокБуферДвоичныхДанныхХешированиеДанных.

  • Не зависеть от режима совместимости и типа клиента (толстый/тонкий/веб/мобильный).

  • Иметь одну кодовую базу для гетерогенных сред (например, сервер 8.3.12 и клиенты на КПК с 8.2).

Отличие библиотеки от платформы приведено в виде следующей таблицы:

Особенности Библиотека Платформа 8.3.9+
Работа с файлами Читает файл всегда целиком в память. Позволяет читать файл порциями (блоками), снижая потребление памяти. За счёт потоковой работы с диском технически ничем не ограничена (файлы в сотни ГБ).
Ограничения на размер Ограничена оперативной памятью и предельным размером массива (2^31). Технически не ограничена (работа с диском).
Использование компонент Не используются внешние компоненты. Встроенные оптимизированные механизмы.
Требования / Совместимость Достаточно платформы 1С 8.0.5 (использует XMLСтрока/XMLЗначение). Не зависит от режима совместимости. Требует платформы 8.3.9+ и соответствующего режима совместимости.
Типы клиентов Работает на всех клиентах, кроме клиентской части WEB. Аналогичные ограничения со стороны WEB-клиента.
Основное преимущество Универсальность: один код для всех версий 1С 8.x и мобильных платформ. Оптимальный выбор для внешних обработок, старых конфигураций, и файлов не более 10-100 МБ. Производительность и работа с большими данными. Оптимальный выбор для современных конфигураций без ограничений.


Прямое применение библиотеки:

  • Старые версии (1С 8.0–8.3.8) и мобильные клиенты/приложения и КПК, где нет современных методов работы с данными.

  • Конфигурации со старым режимом совместимости (например, УПП).

  • Разработчики внешних обработок, которым нужен один код для всех клиентов для версии 1С 8.х

  • Унифицированный подход работы с небольшими файлами на 1С 8.х

Справочник функций библиотеки применительно к функциям платформы:

1. Базовые преобразования (используют XMLСтрока/XMLЗначение

Функция Назначение и применение Ключевая особенность / Аналог в 1С 8.3.9+
ДвоичныеДанныеИзМассива
(МассивБайт)
Создаёт объект ДвоичныеДанные из массива байт. Мост для записи результата в файл или сохранения в базе. Особенность: Использует XMLЗначение, совместима с 1С 8.0.5.
Аналог: Новый ДвоичныеДанные(БуферДвоичныхДанных)
МассивИзДвоичныхДанных
(Данные)
Извлекает массив байт из объекта ДвоичныеДанные. Первый шаг для разбора любого файла, загруженного в систему. Особенность: Использует XMLСтрока.
Аналог: Буфер = ДвДанные.ПолучитьБуферДвоичныхДанных()
МассивИзФайла
(ИмяФайла)
Вспомогательная функция. Читает файл целиком в массив байт. Особенность: Упрощает начало работы.
Аналог: ДвДанные = Новый ДвоичныеДанные(ИмяФайла)

2. Низкоуровневый парсинг и сборка (аналог Потока)

Функция Назначение и применение Пример / Аналог в 1С 8.3.9+
ПрочитатьЦелое8/16/32/64ИзМассива
и
ПрочитатьЦелоеИзМассива
(Массив, Позиция, ...)
Чтение чисел из бинарной структуры. Основа для разбора заголовков файлов (BMP, PNG), сетевых пакетов, пользовательских форматов. Пример: Ширина = ПрочитатьЦелое32ИзМассива(ДанныеФайла, 18);
Аналог: Число = Поток.Прочитать(Целое32);
ЗаписатьЦелое8/16/32/64ВМассив
и
ЗаписатьЦелоеВМассив
(Массив, Позиция, ...)
Запись чисел в бинарную структуру. Основа для сборки данных для отправки внешнему оборудованию или генерации файлов. Пример: ЗаписатьЦелое16ВМассив(Буфер, 0, 1024, "BigEndian");
Аналог: Поток.Записать(Значение, Целое16);
ЗаписатьМассивВМассив
(Целевой, Исходный, Позиция)
Копирование блоков данных. Аналог записи в буфер. Используется для сборки итогового файла из фрагментов. Аналог: Работа с областями БуфераДвоичныхДанных.

3. Преобразования данных и кодировок


Функция
Назначение и применение Пример / Особенности
ПолучитьМассивБайтовИзСтроки
(Строка, Кодировка="UTF8")
Преобразует строку в байты. Критична для формирования текстовых полей в бинарных протоколах. Пример: ИмяВUTF16 = ПолучитьМассивБайтовИзСтроки("Привет", "UTF16");
Аналог: Использование ЗаписьТекста в поток с указанием кодировки.
ПолучитьСтрокуИзМассиваБайтов
(Массив, Кодировка="UTF8")
Декодирует байты в строку. Необходима для чтения текста из бинарных файлов. Пример: Текст = ПолучитьСтрокуИзМассивБайтов(ПрочитанныеБайты, "UTF8");
ПолучитьМассивИзHexСтроки
(HexСтрока)
Конвертирует строку шестнадцатеричных символов (HEX) в массив байт. Особенность: Не имеет прямого аналога в платформе.
Пример: Массив = ПолучитьМассивИзHexСтроки("A1FF2B");
ПолучитьHexСтрокуИзМассивБайтов
(МассивБайтов)
Конвертирует массив байт в строку HEX-символов. Незаменима для отладки (дамп данных). Пример: Дамп = ПолучитьHexСтрокуИзМассивБайтов(Данные); // "A1FF2B..."

 

Практический пример: чтение ширины и высоты из BMP на всех версиях 1С 8.х с помощью библиотеки:

// Универсальная функция, работающая на всех версиях 1С 8.x
Процедура ПрочитатьРазмерыBMP(ПутьКФайлу)

    // 1. Универсальное чтение файла в массив байт
    ДанныеФайла = МассивИзФайла(ПутьКФайлу);
    
    // 2. Проверка сигнатуры "BM"
    Если Не (ДанныеФайла[0] = 66 И ДанныеФайла[1] = 77) Тогда // "B" и "M"
        ВызватьИсключение "Это не BMP-файл";
    КонецЕсли;
    
    // 3. Чтение ширины и высоты из заголовка (смещения 18 и 22)
    Ширина = ПрочитатьЦелое32ИзМассива(ДанныеФайла, 18);
    Высота = ПрочитатьЦелое32ИзМассива(ДанныеФайла, 22);
    
    Сообщить("Размер изображения: " + Ширина + " x " + Высота + " пикселей");
    
КонецПроцедуры

Аналог на 1С 8.3.9+  - используя возможности платформы:

// Работает ТОЛЬКО на платформе 8.3.9+ в подходящем режиме совместимости
Процедура ПрочитатьРазмерыBMP_Платформа(ПутьКФайлу)
    
    Поток = Новый ПотокВФайле(ПутьКФайлу, РежимОткрытияФайла.Чтение);
    
    // Чтение заголовка
    Поток.Пропустить(2); // Пропускаем сигнатуру "BM"
    Поток.Пропустить(12); // Пропускаем размер файла и зарезервированные поля
    СмещениеДанных = Поток.Прочитать(Целое32);
    РазмерЗаголовка = Поток.Прочитать(Целое32);
    Ширина = Поток.Прочитать(Целое32);
    Высота = Поток.Прочитать(Целое32);
    
    Сообщить("Размер изображения: " + Ширина + " x " + Высота + " пикселей");
    Поток.Закрыть();
    
КонецПроцедуры

 

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.309
  • Управление торговлей, редакция 10.3, релизы 10.3.88.3

Вступайте в нашу телеграмм-группу Инфостарт

Библиотека 1С Двоичные данные Кросс-платформенность 1С 8.2 1С 8.0 1С 8.1 1С 8.3 1С 8.5 Режим совместимости Массив байт Внешние обработки.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    59168    314    158    

286

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    242874    1325    419    

1118

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    39017    77    19    

91

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22570 руб.

06.10.2023    34745    88    35    

112

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    48685    167    63    

205

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    23382    84    42    

99

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    5778    2    2    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ТочкаScarab 08.10.25 13:06 Сейчас в теме
Дима?! а чё для 8.0 зажал? по обоим ссылкам скачивается одинаковый файл только для 8.2 :(
2. Dima1205 151 08.10.25 13:36 Сейчас в теме
(1) странно что они оба одинаковых, сейчас выложу.
3. Dima1205 151 08.10.25 13:50 Сейчас в теме
(1) Все залил правильный файл.
4. ТочкаScarab 08.10.25 13:58 Сейчас в теме
(3) спасибо! подтверждаю - скачалось нормально. бывает ;)
5. SerVer1C 1007 08.10.25 19:05 Сейчас в теме
Бегите от тех, кто использует старьё !
6. Dima1205 151 08.10.25 19:18 Сейчас в теме
(5) Как показывает практика новые версии 1С есть всегда, а вот режим совместимости... Плюс полно отраслевых конфигураций на разных предприятий, реализованный на основе БСП, которые не обновишь как типовые... Как-то так, а инструменты - на то и инструменты - должны работать везде.
Для отправки сообщения требуется регистрация/авторизация