Внешняя компонента (Native) для печати двумерного штрих-кода PDF417

Внешняя компонента (Native) для печати двумерного штрих-кода PDF417

По долгу службы занимаюсь поддержкой и развитием корпоративной ИС - самописная конфигурация на 8.2.

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

Поэтому было принято решение - попробовать написать свою ВК. Дело было в начале 2012 г.

Свойства компоненты (чтение/запись):

  • Ширина (Число) - ширина в пикселях
  • Высота (Число) - высота в пикселях
  • КодоваяСтраница (Число) Опубликовал это свойство из Delphi-компоненты, но не экспериментировал с ним. По умолчанию =0.
  • КоличествоСтрок (Число) Вроде как должно регулировать высоту компоненты. Но, похоже, не работает.
  • КоличествоКолонок (Число) Изменяет количество столбцов.
  • АвтоРазмер (Булево) Компонента сама определит размеры ШК.
  • УровеньКоррекцииОшибок (Число) 0 - авто (по умолчанию), 1-9 заданный
  • РежимУпаковки (Число) 0 - авто (по умолчанию), 1 - текстовые данные, 2 - цифровые, 3 - бинарные
  • КоэффициентМасштабирования (вещественное число) - масштабирование при отрисовке ШК. Похоже, что не работает при формировании картинки.

Как правило, вывод картинки со штрих-кодом требуется в рисунок табличного документа. Экспериментально подобран оптимальный множитель для перевода размеров рисунка в пиксели для компоненты (=3.725).

Сама картинка возвращается выполнением функции ПолучитьКартинку(Ширина, Высота, Текст).

  • Ширина - ширина картинки в пикселях
  • Высота - высота картинки в пикселях
  • Текст - штрихкодируемый текст
  • Результат функции - объект ДвоичныеДанные

Итого, примерно так:

Причины появления этой публикации

Недавно решили попробовать перенести конфигурацию на платформу 8.3 (64-бит). До этой попытки, на 64-бит я и не испытывал работоспособность компоненты. А тут она сбойнула с ошибкой "некорректная работа компоненты с памятью". Что ж делать. Попробовал использовать ВК из типовой торговли (общий макет КомпонентаПечатиШтрихкодов). Результат - неудовлетворителен. Похоже, "внутри" эта ВК отрисовывает шрифтом - потенциально плохо будет читаться. И кириллицу отрисовывает в юникоде - это приводит к прочитыванию управляющих символов.

Тогда решил таки обновить свою ВК. Нашел, что в n8api уже достаточно давно ошибка "некорректная работа компоненты с памятью" исправлена. После скачивания новой версии модуля и перекомпилляции все нормально заработало.

На текущий момент компонента успешно работает в продуктиве на платформе 8.2.17.157 (32-бит) и в тестовом режиме 8.3.7.2008 (64-бит).

Учитывая свой отрицательный опыт использования компоненты от 1С и положительный опыт продолжения эксплуатации своей компоненты, думаю, что компонента может быть полезна и кому-то еще. И, кстати, 1С никак не заинтересовались моей разработкой. Для FR компонента тоже неинтересна.

Что далее.

Особых планов по развитию компоненты - нет. Что мы от нее требуем - она успешно выполняет.

Но замечания/пожелания - вполне себе рассматриваются.

UPD (13.10.2018) По пожеланиям товарища shatalov_ms опубликованы дополнительные свойства компоненты (ранее были только Высота и Ширина).

Скачать файлы Специальные предложения
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Во всей этой истории забавно другое - ГНИВЦ x64-версию своего модуля печати двумерных штрихкодов PDF417 выпускать даже не планируют. В конце 2016 года я им задавал вопрос о том, планируется хоть как-то решать данный вопрос, и они мне написали (цитата): "Здравствуйте! Выпуск "Модуля печати PDF417" в 64-разрядном варианте не планируется. В ближайшее время (через 2-3 недели) планируется выпуск вспомогательной программы, позволяющей выполнять печать из 64-х разрядных программ с использованием 32-разрядного пакета "Модуля печати PDF417". Если Вам требуются дополнительные разъяснения, просим Вас ответить на данное письмо, полностью сохранив тему письма. Ответ просим направлять именно с того адреса (e-mail), который Вы указали в заявке.

Служба технической поддержки сервисов ФНС России (АО "ГНИВЦ")" Ответ был дан 05 декабря 2016 года, "вот только воз и ныне там" - ничего они с тех пор так и не выпустили, да я так думаю, что и не выпустят до тех пор, пока в самой ИФНС не появятся x64-версии их продуктов (Декларация 3НДФЛ, Налогоплательщик ЮЛ и т.д.), а с этим они явно не спешат, т.к. даже и планов таких нет. Так что если вашу компоненту есть возможность использовать как альтернативу компоненте от ГНИВЦ для печати двумерных штрихкодов на регламентированных отчетах без доработки конфигурации, и при этом будет получен аналогичный ГНИВЦ двумерный штрихкод, то, по сути, ваша компонента будет тем самым краеугольным камнем. который позволит большинству бухгалтеров перейти на использование x64-версии 1С:Предприятия, т.к. зачастую, кроме данного модуля при работе с бухгалтерией иные ВК не используются. ЗЫ: Странно, что в 1С этим не заинтересовались - видимо при обращении к ним не было акцентировано внимание на факте работы компоненты из под x64-версии платформы, хотя, возможно, у них в приоритете всё же использование компоненты именно от ГНИВЦ, тогда всё становится на свои места.

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Кто-то чего-то не понимает:)

1. Моей ВК никакие доп.шрифты не требуются. А исходя из скрина, ошибка именно в отсутствии шрифта 2. Что за суммы "1500-1700. Что за абсурд?" - мне тоже неясно. Ибо суммы именно здесь - 1-2 sm.

Возможно, вам нужно внимательнее почитать документацию к "3-НДФЛ в программе от ФНС" - там, скорее всего, написано, какой шрифт нужно установить.

📎📎📎📎📎📎📎📎📎📎