Внешняя компонента (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-НДФЛ в программе от ФНС" - там, скорее всего, написано, какой шрифт нужно установить.