Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 06:23
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Создание текстового файла с двоичным кодом картинки средствами 1С!  (Прочитано 1983 раз)

0 Пользователей и 1 Гость просматривают эту тему.



Доброго времени суток!

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

В нашу организацию прибыло новое оборудование на котором стоял принтер Zebra с поддержкой  EPL2. На этом принтере печатались этикетки. Вся выгрузка на это оборудование шла из 1С. Выгрузка содержала данные для работы станка и этикетку в формате EPL. Руководитель поставил задачу, поместить на этикетку картинку. Программное обеспечение  (ПО)  оборудования просто находило файл необходимой этикетки и отправляло на принтер, не обрабатывая данные. Тут и начались проблемы. Для пояснения, выгрузить двоичный код картинки в текстовый файл не трудно, но когда мы хотим выгрузить текст + двоичный код картинки в один файл, любой Программист 1С скажет, необходимо сериализовывать двоичные данные картинки. Но, как я писал выше, ПО не обрабатывает данные а просто находит и кидает dat - файл на принтер. Проштудировав интернет, я не смог найти как решить проблему, как объединить в один файл строки и двоичные данные.

Для полноты понимания приведу структуру dat - файла:

q799
N
ZB
I8,C,001
A12,0,0,3,2,2,N,"текст"
************ еще строки текста с координатами, текстом и командами EPL*****************
A396,208,0,3,2,2,R,"текст"
B320,40,0,E30,2,1,80,B,"текст"
GW591,0,24,192, (Двоичные данные картинки без сериализации)
P1

Пробовал разные варианты. Выгружал картинку в файл (ДвоичныеДанные.Записать("Путь")), потом открывал этот файл и добавлял текст перед данными и в конец данных. Но при добавлении данных половина картинки исчезала. И на этом предисловие заканчивается. Может я выполнил это задание не совсем правильно,  у кого есть более правильное решение - готов выслушать.

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

1. Я создал первый файл (текстовый) в него забил все данные, команды необходимые для распознавания принтера и текст для вывода на этикетку.

ИмяФайла = ПапкаВыгрузкиЭтикеток + "\" + ИмяФайла+ ".dat";
ФаилЭтикетки = Новый ТекстовыйДокумент;
ФаилЭтикетки.УстановитьТекст(ТекстЭтикетки);
ФаилЭтикетки.Записать(ПапкаВыгрузкиЭтикеток + "\" + НомерЗаготовки + ".dat.1",КодировкаТекста.ANSI);

2. Далее выгружаем картинку и вставляем в нее команду "P1" - команда печати и в конце удаляем все временные файлы которые нам не нужны.

ДД = Новый ДвоичныеДанные("ПутьККартинке");
ДД.Записать(ПапкаВыгрузкиЭтикеток + "\" + ИмяФайла+ ".dat.2");
ФаилЭтикетки.Прочитать(ПапкаВыгрузкиЭтикеток + "\" + ИмяФайла+ ".dat.2");
ФаилЭтикетки.ВставитьСтроку(ФаилЭтикетки.КоличествоСтрок()+1,"P1");
ФаилЭтикетки.Записать(ПапкаВыгрузкиЭтикеток + "\" + ИмяФайла+ ".dat.2",КодировкаТекста.ANSI);
ОбъединитьФайлы(ИмяФайла+".*", ПапкаВыгрузкиЭтикеток + "\" + ИмяФайла + ".dat");

//Удаление Файлов
УдалитьФайлы(ПапкаВыгрузкиЭтикеток,"*.1");
УдалитьФайлы(ПапкаВыгрузкиЭтикеток,"*.2");

Вот и все. Надеюсь кому-то моя статья поможет, а может кто-то поделится своим опытом.

Спасибо! Сайт автора: yuis.ru

Последний раз редактировалось: MuI_I_Ika; 06 Июн 2015, 16:04



Теги:
 

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

Автор GolickoffРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4510
Последний ответ 23 Апр 2015, 08:45
от Golickoff
Автоматическое создание " Заполнение" документа

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4457
Последний ответ 06 Мар 2014, 14:48
от mashencev_anton
Создание отчета "Отсутствие заказов"

Автор dronspartak9@gmail.comРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3888
Последний ответ 16 Апр 2014, 15:09
от dronspartak9@gmail.com
Создание заказаов на производство на основании заказа на производство.

Автор Елена1986Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 20
Просмотров: 7887
Последний ответ 09 Сен 2015, 13:01
от Елена1986
Создание плана закупок с использованием плана продаж

Автор NataVlРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1193
Последний ответ 26 Сен 2016, 16:25
от NataVl

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
62 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 220
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal