Распаковка CF на Lua

Публикация № 178201 17.03.13

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

Модуль на Lua для чтения CF формата.

Элементарная реализация "читалки" файлов конфигураций 1С (cf, epf, erf)

Сделано по этому описанию:
Компонент для чтения CF-формата. Описание CF-формата.

При разработке подглядывал в исходный код Elisy.CfInspector и V8Unpack

Исходник модуля в открытом доступе: cf_reader.lua

Модуль экспортирует три функции: NewFileReader(file, buflen), NewStringReader(s) и ReadImage(rd)
Первые две создают ридеры над файлами и строками с единым интерфейсом: read(len), setpos(newpos), pos(), size()
ReadImage принимает ридер и возвращает объект Image: Header, Pages, Pointers, Rows()
Метод Image.Rows() возвращает итератор по элементам Row файла CF (см. описание формата)

Пример:
for ID, Body, Header, Packed in Image.Rows() do
    -- do something
end

ID - идентификатор данных в UTF-8 (строка)
Body - тело данных (строка)
Header - заголовок данных (объект)
Packed - признак упаковки алгоритмом DEFLATE (булево)

cf_reader не умеет распаковывать данные. Для этого нужно использовать сторонние библиотеки.

Вот пример с использованием zlibcf_unpack.lua 
Этот скрипт распаковывает конфигурацию в папку:
luajit.exe cf_unpack.lua c:\temp\1Cv8.cf c:\temp\1Cv8_cf\

Вот пример с использованием minizcf_repack.lua 
Этот скрипт переупаковывает конфигурацию в zip-архив:
luajit.exe cf_repack.lua c:\temp\1Cv8.cf c:\temp\1Cv8.zip

Примеры написаны для компилятора LuaJIT (используется ffi)

Для cf_reader доcтаточно интерпретатора Lua, но рекомендую все же использовать jit-компилятор.

Инструкция по установке:
1. Распакуйте LuaJIT_201.zip и 1c-toolkit.zip в одну папку (например c:\LuaJIT_201\)
2. Добавьте путь к этой папке в переменную среды PATH

Обновление 08.04.2013 Теперь утилиты можно установить с помощью удобного инсталлятора.


Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. orefkov 1151 18.03.13 09:23 Сейчас в теме
На чем еще осталось чтение цфников реализовать?
Питон, javascript и 1С ?
2. ilov_boris 163 18.03.13 09:53 Сейчас в теме
(1) orefkov, на питоне было бы неплохо. Ибо в линуксах он обычно есть по дефолту. У Lua тоже есть движение в этом направлении http://www.linux.org.ru/news/bsd/8878745
3. andrewks 1356 18.03.13 10:41 Сейчас в теме
(1) orefkov, на Lazarus ещё хочу :)
7. pumbaE 18.03.13 12:56 Сейчас в теме
(3) andrewks, у магистра попроси исходники http://infostart.ru/public/124213/ , думаю, он хорошему человеку не откажет.
4. akomar 450 18.03.13 12:10 Сейчас в теме
5. Новиков 292 18.03.13 12:37 Сейчас в теме
Круто. Полагаю тем, кто знает про луа - это пригодится.

Плюсую! Следующий должен как миниму на Ada 94 написать аналог. Или еще лучше - на GPSS.
ilov_boris; +1 Ответить
6. ilov_boris 163 18.03.13 12:48 Сейчас в теме
8. ilov_boris 163 18.03.13 20:33 Сейчас в теме
Поправил критическую ошибку в примере cf_unpack
Архив обновлен https://bitbucket.org/boris_coder/1c-toolkit/downloads
9. Famza 84 19.03.13 09:14 Сейчас в теме
(0) А меня сильно рассмешило сопоставление картинки из фильма и заголовка - наверное, именно так и делается чтение cf.
"+" за отличное настроение!!!
10. d@ncer 37 04.04.13 09:11 Сейчас в теме
Автор хорошо разбирается в LUA. Может и на QLUA поможете, что - нибудь написать?
11. ilov_boris 163 04.04.13 09:41 Сейчас в теме
(10) d@ncer, я пока еще только изучаю Lua :) И во многом не разбираюсь. Эти публикации просто побочный продукт этого моего нового хобби.
Про QLUA первый раз слышу. Нужно смотреть.
Оставьте свое сообщение

См. также

Метаданные (Infostart Toolkit)

Инструменты администратора БД Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Бесплатно (free)

Статья о инструменте Метаданные в продукте Infostart Toolkit. Просмотр метаданных, структуры хранения в режиме 1С: Предприятия.

16.03.2023    1970    Evg-Lylyk    12    

22

Отладка внешней печатной формы в управляемом приложении без создания формы, расширения или редактирования общего модуля

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

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

20.02.2023    1811    alex67dee    4    

28

Соревнование по программированию на 1С

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Устроим соревнование по программированию? Узнаем, кто "берёт и делает", а кто только на словах специалист? Программирование - искусство или ремесло нажимания кнопок?

15.12.2022    4860    elcoan    99    

48

Структура хранения ИБ - обработка за 5 минут и 2 строки кода - DIY

Инструменты администратора БД Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Бесплатно (free)

Платформа "1С:Предприятие 8" не держит в секрете информацию об именах таблиц SQL (или внутренней БД для файловой). Для получения подробнейшей информации - есть штатная функция "ПолучитьСтруктуруХраненияБазыДанных". Данная обработка - лишь обертка над функцией. Думаю, нет смысла качать и тратить $m на то, что можно сделать самому за 5 минут.

10.11.2022    3762    DrAku1a    12    

39

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Опыт использования 1С: Исполнитель (версия 2.0)

Инструментарий разработчика Языки и среды Платформа 1С v8.3 Бесплатно (free)

Дело было так. В субботу рано утром мне не спалось, надо было срочно подкинуть мозгу что-нибудь очень занятное. И тут я вспомнил одну задачу, решение которой мне определенно не нравилось. Если кратко, задача звучит так: надо выкинуть из конфигурации код, который выполняется на клиенте. Ну и сделать так, чтобы он выполнялся в фоне и на клиенте. А пока думал, спать уже и перехотелось...

26.09.2022    3789    vandalsvq    21    

28

Методика применения однострочного кода

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

25.09.2022    6213    tormozit    76    

91

Ошибка при открытии StandardFindByRef.epf (описание и решение)

Инструментарий разработчика Платформа 1С v8.3 Россия Бесплатно (free)

Как решить ошибку вызова недокументированной обработки StandardFindByRef.epf.

28.07.2022    937    CyberMax    1    

12

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Infostart Toolkit – чем инструмент будет полезен для аналитиков и консультантов

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

На митапе для аналитиков "Истории внедрения" выступил Евгений Люлюк – ведущий разработчик Infostart Toolkit. Он рассказал, какие инструменты помогут аналитику исследовать незнакомую базу, находить решения проблем, работать с данными и вносить в них точечные изменения.

04.05.2022    1975    Evg-Lylyk    0    

18

Все функции (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Улучшенный аналог "Все функции" или "Функции технического специалиста" из набора инструментов Infostart Toolkit.

15.04.2022    2884    Evg-Lylyk    5    

25

Конвертация HTML в PDF программно

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Инструкция по конвертации HTML файлов в файлы PDF программно в 2 строчки и без заморочек.

09.03.2022    3350    maximus_2712    2    

7

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Глобальное меню (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Набор инструментов Infostart Toolkit. Глобальное меню для удобства запуска.

22.02.2022    2627    Evg-Lylyk    4    

25

Подписки на события (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Бесплатно (free)

Все подписки на события с отбором по метаданным, поиском подписки по подстроке, отображением объектов подписки и обработчиков (с возможностью посмотреть код).

26.01.2022    2084    Evg-Lylyk    8    

35

Отладка внешней печатной формы в управляемом приложении (с редактированием и записью)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Украина Бесплатно (free)

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

20.01.2022    10692    dreamwaver_dz    41    

64

Загрузка метаданных из расширений в СППР

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Описание принципа, на котором можно сделать загрузку метаданных из расширений в СППР 2.

17.01.2022    1296    jf2000    0    

9

Решение некоторых задач с помощью "Отладчика запросов"

Инструментарий разработчика Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Управляемые формы Россия Бесплатно (free)

Своей разработкой "Отладчик запросов" я пользуюсь сам в повседневной работе. В основном, для составления запросов отчетов, редактирования запросов КД и подобных задач. Однако, иногда нужно по-быстрому решить задачу обработки данных, которую я предпочитаю решать с помощью отладчика запросов. Пару таких задач и их решение - приведу в этой статье.

29.11.2021    1894    DrAku1a    6    

15

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Тонкий конструктор СКД (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Реализация конструктора СКД с нуля для управляемых форм. Контекстная подсказка для языка выражений СКД и другое.

01.09.2021    5423    Evg-Lylyk    22    

64

Разработка скриптов для Снегопата

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Это небольшая статья для тех, кто хочет сам разрабатывать скрипты для нового Снегопата, или править сам движок Снегопата, или просто собирать модуль самостоятельно для внесения оперативных исправлений. В ней я расскажу, как установить и настроить всё необходимое для этого. Скрипты будем создавать на языке TypeScript, инфраструктура заточена именно под этот язык. Предполагается, что вы умеете пользоваться git’ом и настраивать переменные окружения.

26.07.2021    2943    orefkov    1    

30

Infostart Toolkit – инструмент, в котором сделано то, что давно просят от 1С

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Лауреат Infostart Awards-2019, ведущий разработчик инструментов Infostart Toolkit Евгений Люлюк рассказывает о том, как развивается, какие задачи закрывает и какие проблемы решает представляемый им набор инструментов разработчика.

09.06.2021    8923    Evg-Lylyk    6    

38

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

HTML таблица для начинающих

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Несколько примеров HTML таблиц со стилями и без. Хорошая замена отчетов на СКД.

02.06.2021    9860    dsdred    27    

66

Редактор кода, запроса, ... Infostart Toolkit (интеграция с MS Monaco)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Контекстная подсказка, подцветка синтаксиса в тонком клиенте. В платформе 1С редактор кода на управляемых формах обладает нулевой функциональностью, интеграция с MS Monaco позволяет запустится просто в космос.

28.05.2021    7867    Evg-Lylyk    14    

52

re: Flowcon

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Flowcon возвращается.

28.04.2021    2867    1c-intelligence    26    

25

10 полезных, но малоизвестных возможностей IS Toolkit

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Будет полезно пользователям Toolkit, а также тем, кому интересны возможности данного инструмента.

23.04.2021    4069    Evg-Lylyk    0    

26

Редактор схемы компоновки для тонкого клиента

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Аналог платформенного конструктора схемы компоновки данных для работы в тонком клиенте. Входит в состав набора "Универсальные инструменты 1С"

08.03.2021    6585    cprit    32    

63

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Структура запроса (Infostart Toolkit)

Инструментарий разработчика Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Описание механизма разбора запроса на части (дерево), используемого в IS Toolkit и Управляемой консоли отчетов

02.03.2021    3528    Evg-Lylyk    14    

22

Чтение метаданных 1С из SQL Server и PostgreSQL

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Описание файла DBNames таблицы Params и файлов объектов метаданных таблицы Config.

16.02.2021    10785    zhichkin    72    

76

Отладка логики запроса в консоли запросов ИР

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Облегчаем поиск причины неожиданного результата запроса в консоли запросов из подсистемы "Инструменты разработчика" (ИР)

05.01.2021    9588    tormozit    9    

134

Работа с СКД в продукте "Infostart Toolkit"

Инструментарий разработчика Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Infostart Toolkit обладает большим количеством уникальных возможностей для работы с СКД – это анализ исполняемых текстов запросов, работа с внешними источниками в схеме СКД, получение данных в отладке и многое другое. Обо всех этих возможностях рассказал разработчик продукта Евгений Люлюк.

24.12.2020    4291    Evg-Lylyk    2    

16

Использование утилиты RING для проверки информации о программных лицензиях

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

В 1С есть утилита для проверки файлов с лицензиями 1С. Утилита существует довольно давно, но информация по ней разбросана, малопонятна и много где устарела, поэтому опишу свой опыт установки утилиты и работы с ней. Работаем под Windows.

16.12.2020    42282    budidich    23    

60

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Метаданные и их идентификаторы

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Идентификаторы (GUID'ы) метаданных конфигурации. Немного о том, как их получить.

05.12.2020    24796    Infostart    34    

91

Отладка в Infostart Toolkit

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Отладка запросов, схем компоновки данных, просмотр содержимого менеджера временных таблиц.

05.11.2020    6126    Evg-Lylyk    18    

42

Настройка KDiff3 для исключения номеров строк в отчетах о сравнении конфигураций

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Те, кто часто обновляют доработанные типовые конфигурации, а потом проверяют корректность обновления, сравнивая отчеты о сравнении конфигураций, знают, как мешают при этом строки вида "Объект присутствует только в первой|второй конфигурации: 99 - 99", "Изменено: 99 - 99".<br /> Но если вы, как и я, пользуетесь для этого утилитой KDiff3, то есть простой способ избавиться от таких строк.

21.09.2020    6108    fillin    9    

31

Пробуем Снегопат (устанавливаем и настраиваем полнофункциональную триальную версию)

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Снегопат — это инструмент, который расширяет штатные функции конфигуратора 1C и превращает его в современную IDE. В данной статье я подробно расскажу, как установить триал-версию Снегопата и сразу начать использовать его наиболее полезные функции. Статья рассчитана прежде всего на тех, кто со Снегопатом сталкивается впервые и хочет разобраться в его возможностях.

31.08.2020    14349    kuntashov    75    

47

paste1c.ru - сервис для обмена кодом для 1С:Предприятия

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Paste1C.ru - сервис для обмена кодом для 1С:Предприятия c подсветкой синтаксиса и подсказками.

21.08.2020    7806    salexdv    58    

67