Краткое описание формата файлов *.1CM

23.09.24

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

Выкладываю свои знания и знания других экспертов об этом формате.

Какова цель?

Закрыть модули, не устанавливая пароль на модуль и не поставляя модули без исходников.

Есть решение?

Создать новую базу в списке информационных баз. Открыть конфигуратор. Создать любой объект метаданных, например, обработку. В обработке создать форму обработки, в модуле формы написать любой код. Открыть модули объекта и менеджера обработки и написать любой код.

Пример кода:

Сохранить конфигурацию.

В меню конфигуратора нажать "Конфигурация" - "Создать мобильное приложение", нажать "Записать в файл", выбрать файл для сохранения, нажать "Сохранить", появляется окно с надписью "Мобильное приложение записано", нажать "Ок". Всё, модули закрыты.

Как понять что модули закрыты?

Разархивировать сохранённый файл 1cema.zip. В архиве лежат 2 файла 1cema.xml и 1Cv8.1CM. Открыть файл 1Cv8.1CM блокнотом Notepad++. Формат файла 1Cv8.1CM напоминает формат информационной файловой базы 1Cv8.1CD.

Создать еще одну новую базу в списке информационных баз. В каталоге новой базы заменить 1 файл 1Cv8.1CD на 1Cv8.1CM. В списке информационных баз нажать "Конфигуратор". Появляется окно "Информационная база не обнаружена. Создать новую базу?", нажать "Нет". Пробуем переименовать расширение файла 1CM на 1CD. Снова открыть конфигуратор, конфигуратор открылся. Что!?! Открыть окно конфигурации, далее открыть по очереди все модули обработки (объект, менеджер, форма).

Что видим? У модуля формы код остался в целости и сохранности открыт, у других модулей исходники пропали. Как так!?!

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

Упс, ошибка.

А что с файлом CF?

Ок, пробуем сохранить конфигурацию в файл, нажав "Конфигурация" - "Сохранить конфигурацию в файл". Выбрать файл *.cf для сохранения и нажать "Сохранить". Файл сохранился. Открыть файл 1Cv8.cf блокнотом Notepad++. Формат cf мобильного приложения напоминает формат обычного cf. 

Распаковываем файл *.cf всем давно известным инструментом V8Unpack.

В каталоге распаковки есть файлы с расширениями "0_1", "0_3" и т.д. Открыть любой из этих файлов блокнотом Notepad++.

Код, в котором присутствуют странные символы, но также можно встретить знакомые строки.

Вопросы есть?

Вопрос:

Какой формат описан в файлах?

Ответ:

Очень напоминает формат DT.

Вопрос:

Как получить текстовый формат?

Ответ: 

Одну и ту же конфу сохранить как обычный cf (и распаковать), и из неё же сделать apk (затем вытащить 1СМ, из него cf, и тоже распаковать). Сравнить, понять принцип отличий и сделать конвертер. То есть, идти методом индукции, от частного к общему. На основании нескольких примеров создать алгоритм преобразования.

Вопрос:

Что означают расширения файлов "0_1" и "0_3"?

Ответ:

По сути, с помощью директив компиляции, также как и с помощью инструкций препроцессора в одном исходном модуле описываются сразу несколько модулей. Один модуль исполняется на клиенте, другой на сервере, третий на сервере без контекста. Для каждой директивы компиляции (а их всего 5) 1С компилирует отдельный модуль. Увидеть это можно на примере cf-файла мобильного приложения, а также файла 1cema.xml. Формат cf мобильного приложения немного отличается от формата обычного cf. Одно из отличий состоит в том, что в cf мобильного приложения все модули хранятся без исходных текстов, в скомпилированном виде. Даже модули управляемых форм. И хранятся скомпилированные модули управляемых форм в 4-х отдельных файлах, по одному скомпилированному модулю для каждой из 4-х доступных для управляемых форм директив компиляции (&НаКлиенте, &НаСервере, &НаСервереБезКонтекста, &НаКлиентеНаСервереБезКонтекста).
Собственно, из всего вышесказанного я делаю вывод, что директивы компиляции - это другая форма инструкций препроцессора. Как конкретно 1С внутри себя реализовала обработку директив компиляции, на стадии препроцессинга или на стадии компиляции - не так уж и важно, имхо. Главное, что смысл директив компиляции, но мой взгляд, тот же, что и у инструкций препроцессора.

Вопрос:

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

Ответ:

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

 

См. также

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    152505    836    397    

846

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

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

8400 руб.

20.08.2024    4342    29    14    

39

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

OneRPA - платформа роботизации рутинных операций, в основе которой лежит платформа 1С:Предприятие. Данная платформа позволяет использовать современные технологии роботизации, не теряя при этом наработки, которые были созданы в ходе автоматизации. При этом платформа роботизации сохраняет все преимущества платформы 1С: гибкость, кроссплатформенность, мобильный и Web доступ, простоту расширения. Ну и конечно же роботы создаются и сопровождаются простыми специалистами 1С, при этом не обязательно программистами. Self hosted версия

300000 руб.

03.03.2021    14252    12    27    

36

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

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

9360 руб.

17.05.2024    20712    59    43    

106

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

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    14146    36    7    

69

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

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

10000 руб.

10.11.2023    9411    35    10    

56

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

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

15600 руб.

06.12.2023    7745    35    5    

66

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

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    31855    99    151    

72