штрих-код и этикетка о одном флаконе

5. petrulnik 19 30.12.11 05:57 Сейчас в теме
Да можно все, и выгрузку на весы с неё же можно сделать., тока вот зачем))).
А еще можешь кнопочку сделать, или засунуть в конфигуратор-оработки- обработку с индификатором "ПечатьЭтикетки"

Перем ОписаниеРезультата;

//******************************************************************************
// ТолькоЦифры(Стр)
//
// Параметры:
// Стр - текстовая строка
//
// Возвращаемое значение:
// 1 - если в строке только цифры, иначе 0
//
// Описание:
//
Функция ТолькоЦифры(Стр)
Рез = 1;
Для Сч = 1 По СтрДлина(Стр) Цикл
Символ = Сред(Стр, Сч, 1);
Если Найти("0123456789", Символ) = 0 Тогда
Рез = 0;
Прервать;
КонецЕсли;
КонецЦикла;

Возврат Рез;

КонецФункции // ТолькоЦифры()

//******************************************************************************
// ПроверитьШтрихкод(Штрихкод)
//
// Параметры:
// Штрихкод - штриховой код, который нужно проверить
//
// Возвращаемое значение:
// 1 - штрихкод имеет верный формат, 0 - нет.
//
// Описание:
// Проеверяет штрихкод на соответствие кодировке EAN 13 и EAN 8.
//
Функция ПроверитьШтрихкод(Штрихкод)

Штрихкод = СокрЛП(Штрихкод);
ДлинаКода = СтрДлина(Штрихкод);
Рез = 0;

Если ТолькоЦифры(Штрихкод) = 1 Тогда
// штрихкод должен состоять из цифр

Если (ДлинаКода = 13) Тогда
Если глКонтрольныйСимволEAN(Лев(Штрихкод,12), 13) = Прав(Штрихкод, 1) Тогда
Рез = 1;
КонецЕсли;
ИначеЕсли (ДлинаКода = 8) Тогда
Если глКонтрольныйСимволEAN(Лев(Штрихкод,7), 8) = Прав(Штрихкод, 1) Тогда
Рез = 1;
КонецЕсли;
КонецЕсли;
КонецЕсли;

Возврат Рез;

КонецФункции // ПроверитьШтрихкод()

//******************************************************************************
// Сформировать(Штрихкод, Устройство)
//
// Параметры:
// ТаблицаТоваров - таблица значений, состоящая из колонок:
// Товар - эл.справочника номенклатура или строка,
// наименование товара
// Штрихкод - строка, штрихкод товара
// Устройство - устройство, куда выводить этикетку.
// "экран" - на экран, "принтер" - на принтер.
// Значение по умолчанию - 0;
//
// Возвращаемое значение:
// 1 - штрихкод имеет верный формат, 0 - нет.
//
// Описание:
// Выводит этикетку(и) на заданное устройство.
//
Процедура Сформировать(ТаблицаТоваров, Устройство)

// Создание Таблицы для выходного отчета
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Этикетка");

Если ТаблицаТоваров.КоличествоСтрок() = 1 Тогда
ТаблицаТоваров.ПолучитьСтрокуПоНомеру(1);

Если ПроверитьШтрихкод(ТаблицаТоваров.Штрихкод) = 0 Тогда
Предупреждение("У товара """ + ТаблицаТоваров.Товар + """ штрихкод не задан или имеет неверный формат!");
Возврат;
Иначе
Таб.ВывестиСекцию("ГорТелоВнутр|ВертТелоВнутр");
КонецЕсли;

Иначе
ВсегоКолонок = 4;
ВсегоСтрок = 10;

ТекКолонка = 1;
ТекСтрока = 1;

ТаблицаТоваров.ВыбратьСтроки();
Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
Если ПроверитьШтрихкод(ТаблицаТоваров.Штрихкод) = 0 Тогда
Сообщить("У товара """ + ТаблицаТоваров.Товар + """ штрихкод не задан или имеет неверный формат!");
Иначе
Если ТекКолонка > ВсегоКолонок Тогда
ТекКолонка = 1;
ТекСтрока = ТекСтрока + 1;
КонецЕсли;

Если ТекСтрока > ВсегоСтрок Тогда
ТекСтрока = 1;
Таб.НоваяСтраница();
КонецЕсли;

Если ТекКолонка = 1 Тогда
Таб.ВывестиСекцию("ГорТело|ВертТело");
Иначе
Таб.ПрисоединитьСекцию("ГорТело|ВертТело");
КонецЕсли;

ТекКолонка = ТекКолонка + 1;

КонецЕсли;
КонецЦикла;

КонецЕсли;

//Вызов выходного отчета в окно просмотра и редактирования.
Таб.Опции(0, 0, 0, 0, "ПечатьЭтикетки", "ПечатьЭтикетки");
Если Устройство="экран" Тогда
Таб.ТолькоПросмотр(1);
Таб.Показать("Этикетка", "");
Иначе
Таб.Напечатать(0);
КонецЕсли;

КонецПроцедуры

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()

СтатусВозврата(0);

// проверка наличия компоненты
Попытка
КомпонентABC = СоздатьОбъект("BARCODE.BarcodeCtrl.1");
Исключение
Предупреждение("Компонент ActiveBarcode не установлен на данном компьютере!" +
РазделительСтрок +
"Порядок установки компоненты ActiveBarcode описан в документации.");
Возврат;
КонецПопытки;

Если ТипЗначенияСтр(Форма.Параметр) <> "СписокЗначений" Тогда
Возврат;
КонецЕсли;

Устройство = Форма.Параметр.Получить("Устройство");
Если ПустоеЗначение(Устройство) = 1 Тогда
Устройство = "экран";
КонецЕсли;
Сформировать(Форма.Параметр.Получить("ТаблицаТоваров"), Устройство);
КонецПроцедуры // ПриОткрытии()
Прикрепленные файлы:
ПечатьЭтикетокЦенников.ert
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. alexk-is 6545 30.12.11 06:50 Сейчас в теме
7. arnage 19.11.07 09:26 Сейчас в теме
попробывал поиском но не нашел, подскажите есть ли внешняя обработка которая позволяет формировать штрих-код и этикетку одновременно, чтобы можно было распечатать ценник со штрих-кодом
9. arnage 20.11.07 16:59 Сейчас в теме
искал вроде ))) не нашел, может носом ткнете )) если не трудно
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот