Да можно все, и выгрузку на весы с неё же можно сделать., тока вот зачем))).
А еще можешь кнопочку сделать, или засунуть в конфигуратор-оработки- обработку с индификатором "ПечатьЭтикетки"
Перем ОписаниеРезультата;
//******************************************************************************
// ТолькоЦифры(Стр)
//
// Параметры:
// Стр - текстовая строка
//
// Возвращаемое значение:
// 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 Тогда
Устройство = "экран";
КонецЕсли;
Сформировать(Форма.Параметр.Получить("ТаблицаТоваров"), Устройство);
КонецПроцедуры // ПриОткрытии()
А еще можешь кнопочку сделать, или засунуть в конфигуратор-оработки- обработку с индификатором "ПечатьЭтикетки"
Перем ОписаниеРезультата;
//******************************************************************************
// ТолькоЦифры(Стр)
//
// Параметры:
// Стр - текстовая строка
//
// Возвращаемое значение:
// 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
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот