Быстрый (но тернистый) путь к метаданным картинок в 1С

Публикация № 1224576 15.04.20

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

EXIF GPS метаданные

Задача звучала так: прочитать GPS-геометки из картинок. Всё закончилось бы как у всех, кто брался за эту задачу, – сторонним сервисом или утилитой. Но в обсуждении кто-то сказал, «да 1С так не сможет» …

Зачем мне вообще эти метаданные?

Скажу сразу, это – скорее техническая статья про двоичные данные. Однако, чтобы люди с прикладным мышлением не обошли её стороной, опишу чем технология полезна, и какую ценность (надеюсь) добавляет моя работа. Если технические тонкости вам не интересны – после прочтения этого раздела смело переходите к последнему.

Итак, метаданные картинок нужны:

  • Продуктовому аналитику, как источник ценной продуктовой информации: модель и марка телефона, геолокация и даты снимка и многое другое – полезные данные для сегментации рынка и других маркетинговых изысканий.
  • Менеджеру, как источник фактической информации. Нередко работники, например курьеры, подтверждают выполнение задач фотографиями. Анализ геометок и даты снимка позволяют автоматизировать контроль.
  • Специалисту по антифроду – помимо упомянутых геометок и дат, метаданные оставляют много других следов: была ли фотография отредактирована и когда, в какой программе было произведено редактирование, есть ли логическое несоответствие во внутренних timestamp’ах и прочее.
  • Разработчику веб-сервисов на 1С – полезным будет оперирование файлом без сохранения на диск. Оперируя потоком можно отсекать логикой сервиса (например) картинки слишком маленького размера, черно-белые снимки, пустые архивы, аудиофайлы длины меньшей чем положено и т.д. Вас ограничивает только фантазия и соответствующий стандарт метаданных.
  • Разработчику интерфейсов – метаданные это, пожалуй, единственный быстрый способ определить ориентацию картинки -- где «верх», а где «низ» -- чтобы оператору не требовалось вертеть головой как сыч

Метаданные можно менять, их может не быть, они могут быть сфальсифицированы – и это может добавить проблем. Насколько это будет полезно именно Вам – судите сами.

Моя работа тут состоит из двух частей. Во-первых, это описание моего опыта разработки и прикладного использования, которые надеюсь, должны быть интересны сообществу. Во-вторых, это презентация обработки для чтения метаданных, которую можно использовать в своих целях. Исходный код открыт (Apache 2.0). Я надеюсь, что решение будет развиваться в рамках opensource-проекта. Пожалуйста, ставьте звезды на infostart и в github.

Как это ваще блин устроено?

Как известно, GPS-метки хранятся в файле картинки JPEG в особой секции двоичных данных – EXIF.

Решение всегда было на поверхности, с момента, когда в 8.3.9 появились объекты для работы с двоичными данными. Однако чтение EXIF - низкоуровневая задача, которая требует погружения в скучные технические нюансы и утомительного всматривания в HEX-коды. Существующие публикации на эту тему используют сторонние технологии, которые делают всю «грязную работу».

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

 
"чтение EXIF" <> "чтение метаданных"

Пожалуй единственным доступным релевантным источником является пример с сайта ИТС по получению размера картинки. Этот пример работает молниеносно, заставляет апологетов 1С радоваться за платформу (могёт!!), но оставляет больше вопросов чем ответов.

 
 Ознакомление с кодом

Чтобы разобраться в природе магических чисел я проследовал по ссылкам в комментариях к коду и в итоге нашел обстоятельный стандарт с примерами и другие полезных ресурсы .

Начнем разбираться.

Любой файл состоит из двоичных данных (привет, кэп!). Даже шапочного понимания достаточно, чтобы догадаться о существовании «служебных» последовательностей в файле, которые определяют формат, содержимое и другие аспекты. Двоичные данные, определяющие формат файла называются сигнатурой файла. За редким исключением, сигнатура -- это первые несколько байт файла. У наших картинок это два байта: ff d8 - в шестнадцатеричном и 255 216 – в десятичном представлении. Теперь должна быть понятна природа магических цифр – воспринимать их нужно не как значения, а как "ключевые слова". Кроме того, теперь понятно - чтобы не искать GPS картинок в файлах нерелевантного формата, достаточно проверить только сигнатуру файла.

 
 Код

Именно это полезное свойство можно использовать в своих сервисах, принимающих файлы. Можно отсекать неподходящие файлы (пустые архивы, неверный формат файла и т.п), не сохраняя их на диск.

Вообще говоря, файл JPEG логически можно разбить на множество секций. Я приведу пример, как может быть закодирован фрагмент простого JPEG-файл, из него должна быть понятна общая логика построения файловых секций:

Можно увидеть, что секции кодируются ключевыми маркерами и длиной. Длина указывается с учетом байтов, кодирующих длину, т.е. например первая секция в файле (ffe0) занимает 16 (00 10) байт, включая сами байты 00 10.

Размеры изображения* можно прочитать из секции SOF0 (ffc0). Собственно, это и происходит в волшебном коде с сайта ИТС (192 – это c0). Далее в секции мы читаем её размер (00 11), 1-байтовое количество бит на пиксель (08), 2-байтовые ширину и высоту рисунка (00 01 и 00 02, т.е. мы имеем дело с рисунком 1x2 пикселя), и другую информацию (см. описание формата)

 
Для въедливых

Отдельные секции, как например EXIF, который нам интересен – кодируются по-особому.

Чтобы найти EXIF, нужно найти шестнадцатеричные байты: 45 78 69 66 00 00 (в примере на рисунке этой секции нет)позиция этих байтов будет нужна как реперная точка (назову её landmark), от которой мы в дальнейшем будем отсчитывать смещения. Дело в том, что секция EXIF, это по сути таблица, каждая строка в которой не может быть больше 12 байт. В таблице 4 колонки – Тег (2 байта), Тип тега (2 байта), Количество значений (4 байта) и Значение/Смещение (4 байта). Если значение умещается в 4 байта – то оно записывается непосредственно по месту, в противном случае по месту записывается сколько байтов нужно отсчитать от позиции landmark, чтобы найти нужное значение (или значения, если их несколько).

 
 Для въедливых

Другая особенность секции EXIF в том, что значения в этой секции могут кодироваться разным образом: little-endian и big-endian форматом, которые отличаются порядком чтения байтов в наборе. Формат задается следующим байтом сразу после EXIF.

Третья забавная особенность в том, что сразу после порядка байтов должно быть записано число 42. Просто потому что «ну вот так вот».

Затем задается размер смещения в байтах, которое нужно будет добавить к позиции landmark, чтобы найти записи этой таблицы EXIF. Поэтому критично, чтобы порядок следования байтов был прочитан корректно.

В следующих двух байтах хранится количество записей в таблице.

Четвертая особенность «таблицы» EXIF в том, что она иерархическая. Отдельные записи этой таблицы указывают не на значения, а на другие таблицы (каталоги) такой же структуры. Например, все значения GPS-информации записаны в отдельном «каталоге». Это позволяет использовать значения тегов более одного раза. Для иллюстрации тег 00 00 в контексте GPS-каталога тегов должен быть прочитан как GPS Version ID, а в контексте обычных EXIF-тегов как Interop index. В интернетах можно найти ресурсы, подробно описывающие перечень, назначение и типы данных тегов.

В любом теге форматом EXIV2 поддерживаются строго определенные типы данных. Их всего 9: Byte, Short, Long, Ratio, и их беззнаковые близнецы для кодирования чисел и отдельно стоящий ASCII для кодирования строк.

Искусственный пример. В таблице EXIF мы нашли такую запись:

a4 33 00 02 00 00 00 f9 00 00 00 78

Это означает тег “Lens Make” (a4 33), типа “ASCII” (00 02) из 249 символов (00 00 00 f9) расположен по адресу 120 (00 00 00 78) байтов от позиции landmark. Если отступить указанное количество байтов – можно найти непосредственно 249 символов ASCII.

Ровно таким же способом кодируются и GPS-геометки. В основной таблице EXIF в очередной 12-байтной записи в первых двух байтах будет записан тег 88 25, который означает что в файле есть геоданные и, в последних четырех байтах, будет записано смещение до нужного каталога. Если перейти туда – можно будет прочитать сначала количество записей в этом каталоге, а затем такие же 12-байтовые записи.

Широта и долгота кодируются типом ratio. Т.е. Они задаются отношением двух четырехбайтовых чисел. Например, можно прочитать примерно следующее:

00 04 00 05 00 00 00 03 00 00 00 C0

00 04 – Долгота

00 05 – Тип Ratio

00 00 00 03 – Три значения (Градусы, минуты, секунды)

00 00 00 C0 – в 192 байтах от landmark

А в 192 байтах от landmark-байта можно будет прочитать например

00 00 00 2d 00 00 00 01 00 00 00 0d 00 00 00 01 00 00 70 30 00 00 27 10

Что можно записать условно как:

00 00 00 2d / 00 00 00 01; 00 00 00 0d / 00 00 00 01; 00 00 70 30 / 00 00 27 10

Что равно:

45 / 1; 13 / 1; 28720 / 10000

Что означает:

45 градусов 13 минут 2.872 секунды, вуаля. Мы прочитали GPS-метку!

Open source

Всё вышеописанное реализовано в виде внешней обработки

 
 Как использовать

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

Если вы пользовались обработкой, но что-то пошло не так – оставляйте отзывы, а лучше сразу issue на github. 

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

Я ожидаю, что сообщество внесет что-то новое в функционал этой обработки, или каждый адаптирует решение для своих нужд. Критика приветствуется, но звезды в гитхаб категорически приветствуются.

Быстрый путь к метаданным

С самого начала было очевидно, что чтение должно быть довольно шустрым. И хотя полноценный бенчмарк только назревает, первое боевое использование оказалось весьма конкурентным. Случайный файл с hdd 7200 диска анализируется за 20-40 мс в «холодном» режиме, и около 10 мс в «горячем». Характерное время для хардкорных утилит – несколько миллисекунд.

Тут надо оговориться – что, время чтения сильно зависит от содержимого, и некоторые файлы могут читаться несколько секунд, даже на exiftool. И справедливо ожидать, что пакетное чтение на большом объёме в 1С может значительно уступать скомпилированным библиотекам, но порядок цифр пока радует.

Скачать файлы

Наименование Файл Версия Размер
Демонстрация чтения EXIF из JPEG

.epf 25,19Kb
3
.epf 25,19Kb 3 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mixsture 16.04.20 16:34 Сейчас в теме
Круто, хардкорно! Но все равно остается вопрос: почему не взяли стороннюю утилиту? Например, тот же WIA (если клиент или сервер на win) даст сразу возможности и метки читать, и разрешения менять и много чего еще. Причем строчек в 10 кода.
3. утюгчеловек 31 16.04.20 17:31 Сейчас в теме
Мы с коллегами сначала почти так и сделали. Прельстила перспектива внести решение в ландшафт 1С плюс разобраться самому - убил двух зайцев)
В идеале хотелось бы докрутить эту обработку на чтение/редактирование. Чтобы в конфигураторе в 10 строчек кода всё красиво получалось.
2. VKislitsin 16.04.20 17:18 Сейчас в теме
На мой взгляд, отличная демонстрация возможностей работы с двоичными данными. И не абстрактно, а на примере практической задачи.
Удивительно, что плюсов совсем мало...
А за доказательство что "да 1С так сможет!" я бы и еще пару-тройку плюсов поставил - жаль не получается.
утюгчеловек; +1 Ответить
4. утюгчеловек 31 16.04.20 17:40 Сейчас в теме
(2) Двоичные данные в целом - пугают. Из-за этого мало плюсов, я думаю
Есть интуитивное ощущение, что инструменты работы с двоичными данными сильно недооценены сообществом. Еще с 8.3.9 думал, что "ну, сейчас начнется...", но пока мало хороших публикаций.
Мне вот эта нравится: https://infostart.ru/public/1061803/
5. RomanCrow13 108 04.12.20 07:29 Сейчас в теме
Статья очень интересная!
Формат jpeg не изучал, да и в принципе препарация двоичных данных в 1С не требовалась.
Предположу, что, если в файле содержится таблица с адресами пикселей и соответствующим цветом (хотя jpeg это же сжатый формат, как-то это нужно тоже учесть), то можно на чистом 1С на вход получить ДД, и вывести в соответствии с этой таблицей само изображение.
6. утюгчеловек 31 04.12.20 13:16 Сейчас в теме
(5) Грубо говоря так и есть, но не для jpeg, как ты правильно заметил, а для png
7. SAShikutkin 3 06.08.21 11:57 Сейчас в теме
Если есть ссылка на GitHub, то может имеет смысл сделать обработку бесплатной?
Оставьте свое сообщение

См. также

Внешний регламент для 1С Промо

Прочие инструменты разработчика v8 Россия Абонемент ($m)

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

1 стартмани

05.03.2020    8304    9    moolex    11    

Конструктор запросов для пользователей

Универсальные обработки Прочие инструменты разработчика v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Россия Абонемент ($m)

Конструктор запросов на языке 1С 8.3 (УФ) совместно с СКД, ориентированный для пользователей и бизнес аналитиков BI систем, доступный и понятный, результатом является текст запроса.  

10 стартмани

19.10.2021    561    2    serovmsk    0    

Анализ конфигурации для 1С 8.3 (УФ)

Структура метаданных v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

13.10.2021    619    4    Logarifm_Andre    0    

JКоннектор (jc1c), Java

Прочие инструменты разработчика v8 Абонемент ($m)

Приветствую коллеги! Данная библиотека призвана упростить и настроить быстрое и простое взаимодействия 1С и вашего скрипта на Java, далее по тексту просто - jar.

1 стартмани

04.10.2021    774    1    kaliuzhnyi    4    

Подсистема "Показатели объектов" Промо

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Если вашим пользователям нужно вывести в динамический список разные показатели, которые нельзя напрямую получить из таблиц ссылочных объектов, и вы не хотите изменять структуру справочников или документов - тогда эта подсистема для вас. С помощью нее вы сможете в пользовательском режиме создать свой показатель, который будет рассчитываться по формуле или с помощью запроса. Этот показатель вы сможете вывести в динамический список, как любую другую характеристику объекта. Также можно будет настроить отбор или условное оформление с использованием созданного показателя.

2 стартмани

06.03.2021    6653    6    pila86    16    

Табличная часть как поле ввода

Практика программирования Прочие инструменты разработчика v8 Абонемент ($m)

Табличная часть как поле ввода с программным добавлением строк.

1 стартмани

20.09.2021    2785    4    harchenko_pavel    87    

Запуск в фоне процедуры модуля внешней обработки на управляемых формах без БСП

Прочие инструменты разработчика v8::УФ 1cv8.cf Россия Абонемент ($m)

Пример самописной конфигурации без БСП с запуском в фоне процедуры из модуля внешней обработки и индикатором выполнения на управляемых формах.

1 стартмани

20.09.2021    831    2    user1472448    0    

Внешние команды для 1С

Администрирование данных 1С Структура метаданных v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

19.09.2021    1398    7    moolex    2    

Markdown-editor в 1С (с сохранением в HTML) Промо

Универсальные обработки Прочие инструменты разработчика v8::УФ 1cv8.cf Абонемент ($m)

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.

1 стартмани

04.07.2019    12328    18    riposte    6    

Установка произвольных параметров для дополнительных отчетов и обработок (БСП)

БСП (Библиотека стандартных подсистем) Прочие инструменты разработчика v8 v8::УФ ERP2 БП3.0 УТ11 КА2 ЗУП3.x Россия Абонемент ($m)

Внешняя обработка (УФ) для установки произвольных параметров дополнительных отчетов, печатных форм, обработок в конфигурациях на базе БСП 3.0 и старше.

1 стартмани

17.09.2021    780    3    fddf    2    

Система управления IT проектами (встроенный редактор кода, контроль версий, заметки и др.) (поддерживается: Python)

Управление проектом Автоматизация ИТ-компании Прочие инструменты разработчика v8 ИТ-компания Абонемент ($m)

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

1 стартмани

17.09.2021    805    0    Nabi    0    

Чтение CSV файла с многострочным текстом

Прочие инструменты разработчика Практика программирования v8 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для чтения CSV файла, содержащего в значении параметра многострочный текст. Также можно заполнить любые текстовые реквизиты номенклатуры из исходного файла. Адаптирована для любой конфигурации на обычных формах, в которых есть Справочник "Номенклатура". Выбираем / читаем файл, устанавливаем реквизиты поиска, чтения и заполнения реквизитов элемента справочника. Жмем "Загрузить данные".

1 стартмани

14.09.2021    646    0    milolan    2    

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5 Промо

Практика программирования Адаптация типовых решений Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    9657    27    huxuxuya    11    

Просмотр открытых окон и информации экрана клиента

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Простая как топор, но полезная, обработка, которая показывает принадлежность формы открытого окна клиента и разрешение экрана по данным ОС и 1С.

1 стартмани

12.08.2021    1394    2    Ululu    9    

Выгрузка измененных внешних обработок (за день)

Универсальные обработки Git (GitHub, GitLab, BitBucket) Прочие инструменты разработчика v8 8.3.14 1cv8.cf УТ10 УПП1 Абонемент ($m)

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

1 стартмани

11.08.2021    1154    4    Serg O.    3    

Универсальная отладка внешней обработки заполнения (типовые механизмы, без внешних файлов, расширений или вызова внешних файлов)

Обработка документов Практика программирования Прочие инструменты разработчика v8 ERP2 УУ Абонемент ($m)

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

1 стартмани

10.08.2021    1510    4    pvlunegov    0    

Навигатор по конфигурации базы 1С 8.3 Промо

Структура метаданных Универсальные обработки v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.85 от 10.10.2021

3 стартмани

28.10.2018    44826    399    ROL32    72    

Базоскоп

Сервисные утилиты Структура метаданных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

06.08.2021    4829    25    mkalimulin    74    

Разбор сайтов с применением Chrome devtools. Примеры от kuzkov.info

Практика программирования WEB Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Пример обработки-шаблона для веб-разбора сайтов с применением chrome devtools через веб-гнезда. Рассмотрение практического случая веб-разбора данных сайта с цитатами Пушкина. Плюсы применения обозревателя для веб-разбора перед получением и разбором голой строки html, полученной get запросом.

1 стартмани

06.08.2021    1754    1    Steelvan    6    

HTTP-клиент

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Подсистема 1С для работы с HTTP.

1 стартмани

28.07.2021    4978    10    SpaceOfMyHead    29    

Консоль Программиста 8.3. Управляемые формы, тонкий/толстый клиент Промо

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка в помощь программисту - тестировщику. Консоль позволяет выполнять код 1С на встроенном языка, по сути является универсальной внешней обработкой

2 стартмани

22.08.2013    50199    646    hmanubis    69    

Сортировка метаданных

Структура метаданных v8 Платформа 1C v8.2 1cv8.cf Абонемент ($m)

Обработка позволяет отсортировать объекты конфигурации в заданном порядке. Для сортировки в обработку необходимо скопировать текст файла Configuration.xml.

2 стартмани

09.07.2021    1380    1    kravchuk    0    

Проверка кода расширения (Все аннотации) на наличие изменений в основной конфигурации V 2.0

Прочие инструменты разработчика Расширения v8 Россия Абонемент ($m)

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

1 стартмани

28.06.2021    3664    22    con-men    6    

Проверка кода расширения (#Вместо, #ИзменениеИКонтроль) на наличие изменений в основной конфигурации

Расширения Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Все чаще начинаешь использовать в расширении аннотации #ИзменениеИКонтроль, и что говорить, даже аннотацию #Вместо). И как же быть спокойным, что после обновления заимствованные процедуры не изменились? Некоторые скажут, что платформа контролирует изменение процедур в аннотации #ИзменениеИКонтроль, но платформа нас научила на слово не верить. Каждый раз сравнивать модули руками довольно трудозатратно, для оптимизации этого процесса получилось следующее решение.

1 стартмани

09.06.2021    2387    5    con-men    7    

Шаблоны кода (управляемые формы)

Практика программирования Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Шаблоны кода на управляемых формах.

2 стартмани

22.05.2021    3815    7    Rustig    19    

Универсальные обработки 1С8 на основе проверок метаданных конфигурации с использованием идентификаторов в макете табличный документ

Практика программирования Универсальные обработки Структура метаданных v8 Платформа 1C v8.2 1cv8.cf Абонемент ($m)

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

1 стартмани

04.05.2021    1716    0    etmarket    0    

Консоль кода и дескриптор объектов

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Консоль кода и дескриптор объектов информационной базы под управляемое приложение.

5 стартмани

23.04.2021    2434    3    pimenushka    2    

Конструктор процедур для создания дополнительных реквизитов и сведений для Бухгалтерии 3.0

Прочие инструменты разработчика v8 БП3.0 Россия Абонемент ($m)

Конструктор предназначен для оперативного создания процедур, программно создающих дополнительные реквизиты и сведения объектов. Предназначен для использования в 1С: Бухгалтерии Предприятия 3.0. Может быть подключен в качестве внешней обработки. В конструкторе имеется краткая справка по использованию.

2 стартмани

22.04.2021    4903    5    roma_semenov79    0    

Вспомогательный инструмент для быстрого просмотра объектов метаданных и ролей

Прочие инструменты разработчика Структура метаданных Роли и права v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Просмотр содержимого объектов, движений, регистров, констант и прочего. Анализ роли по объектам доступа и наоборот объекта по ролям доступа. Интуитивно понятный интерфейс, универсальный (под любую, даже самописную базу), под обычные и управляемые приложения.

1 стартмани

22.04.2021    3120    11    user802597    1    

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

Универсальные печатные формы Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

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

2 стартмани

20.04.2021    2150    5    Miracle180882    0    

Однопальцевое преобразование "одинэсного" запроса в запрос на SQL

Производительность и оптимизация (HighLoad) Прочие инструменты разработчика v8 v8::Запросы 1cv8.cf Абонемент ($m)

Обработка предназначена для преобразования "одинэсных" запросов в запросы на SQL средствами встроенного языка. Разработка не претендует на то, чтобы на 100% повторить то, что разработчики видят при трассировке запросов в инструментах вроде Profiler. Но во многих случаях результат преобразования можно будет без дополнительной ручной обработки выполнить, например, в Managment studio. Актуальные ограничения и проблемы преобразователя описаны в статье. Работает с версией платформы не ниже 8.3.10.

2 стартмани

17.04.2021    3320    8    kser87    12    

Свойства общих модулей

Практика программирования Прочие инструменты разработчика v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Надоело каждый раз искать, какие общие модули глобальные? какие повторно используемые? хочется взглянуть на все контексты выполнения?

1 стартмани

14.04.2021    2507    4    kuzyara    5    

Отладка обработок с плюшками

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Расширение для отладки внешних отчетов и обработок. Плюшки - отключение “отвлекающего” функционала, мешающего процессу разработки.

1 стартмани

14.04.2021    3601    10    pparshin    1    

Мгновенное отображение HTML-страницы исходя из введённого HTML-кода

Прочие инструменты разработчика v8 Платформа 1C v8.2 1cv8.cf Абонемент ($m)

Обработка поможет найти ошибки в коде HTML и правильно отобразить создаваемый документ. Просто правьте код в нижнем поле и сразу получайте результат в верхнем.

1 стартмани

09.03.2021    2239    1    ilyam23    6    

Работа с My SQL через ODBC

Прочие инструменты разработчика v8 1cv8.cf Россия Абонемент ($m)

Работа с My SQL через ODBC. Разбираем базовые принципы соединения с MySQL и получения данных. Тестировалось на платформе 8.3.18.1208

1 стартмани

05.03.2021    2213    3    vov4ik1212    0    

ЦУП 2.1.6 Исправленная обработка выгрузки метаданных для платформы 8.2

Структура метаданных ЦУП v8 1cv8.cf Абонемент ($m)

Обработка предназначена для ЦУП 2.1.6. Исправленная типовая обработка для выгрузки метаданных для конфигурацию, работающих на платформе 8.2 (в т.ч. в режиме совместимости).

1 стартмани

04.03.2021    1609    0    SpecRam    0    

Универсальный "сравниватель" объектов

Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Сравнение реквизитов и табличных частей двух объектов 1С (справочники, документы), чтобы увидеть разницу в значениях.

1 стартмани

03.03.2021    3490    15    pyrkin_vanya    13    

Вспомогательные таблицы - универсальный инструмент хранения таблиц любой структуры (константы, параметры обработок и т.д.)

Прочие инструменты разработчика v8 Россия Абонемент ($m)

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

1 стартмани

24.02.2021    4461    6    xl_yaz    12    

Создание и поддержка разных редакций (Demo, Lite, Pro и пр.) модулей, отчетов и обработок

Прочие инструменты разработчика v8 Абонемент ($m)

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

1 стартмани

16.02.2021    2216    1    bme    2    

Генератор кода схемы компоновки данных (СКД)

Прочие инструменты разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

Формирование кода для программного создания схемы компоновки данных (СКД)

1 стартмани

04.02.2021    8181    56    Sergspectr    39    

Автоматизированная очистка нетиповой конфигурации от //{{MRG

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Удаление //{{MRG из конфигурации автоматизированным способом.

1 стартмани

02.02.2021    2713    1    nemec    0    

Консоль текстов модулей для управляемых форм

Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

26.01.2021    3942    22    Reaper_1C    2    

Сравнение функций/процедур из расширения с функциями/процедурами из конфигурации

Прочие инструменты разработчика v8::УФ 1cv8.cf Абонемент ($m)

Обработка облегчает обновление функций/процедур в расширении, которые используют аннотацию &Вместо.

1 стартмани

18.01.2021    2677    5    Wilka    1    

DT2CF - Экстрактор конфигурации из дампа информационной базы

Сервисные утилиты Прочие инструменты разработчика v8 Абонемент ($m)

Инструмент для извлечения файла конфигурации из файла резервной копии информационной базы (без использования платформы).

10 стартмани

21.12.2020    4097    6    SerVer1C    5