Есть обработка которая формирует ярлыки:
////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ

// Переменные для заполнения при вызове обработки из документа.
Перем мВнешняяТаблицаТоваров Экспорт;
Перем мВнешнийЭлементНоменклатуры Экспорт;
Перем мИспользоватьСерии;

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ

// Возвращает значение типа штрихкода для использования в ЭУ
// "1С:Печать штрихкодов"
//
// Параметры
//     ТипКода -    ПланыВидовХарактеристик.ТипыШтрихкодов - тип, значение для которого
//                нужно получить
//
// Возвращаемое значение:
//   Число, которое может быть присвоено свойству ЭУ "ТипКода"
//
Функция ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипКода)
    Перем Значение;
    
    Если ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8 Тогда
        Значение = 0;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
        Значение = 1;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128 Тогда
        Значение = 2;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 Тогда
        Значение = 3;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code128 Тогда
        Значение = 4;
    Иначе
        Значение = -1;
    КонецЕсли;
    
    Возврат Значение;
КонецФункции // ПолучитьЗначениеТипаШтрихкодаДляЭУ()

// Процедура управления пометками кнопок командной панели.
//
Процедура УправлениеПометкамиКнопокКоманднойПанели()

    Если ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх Тогда
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка                = Ложь;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Отбор.Пометка = Ложь;
    Иначе
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка                = Истина;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Отбор.Пометка = Истина;
    КонецЕсли;

КонецПроцедуры // УправлениеПометкамиКнопокКоманднойПанели()

// Процедура заполнения таблицы товаров
// Заполняет табличную часть информацией из регистра "Штрихкоды" с указанными
// условиями отбора.
//
Процедура Заполнить()

    Если ПечататьЦену И Не ЗначениеЗаполнено(ТипЦены) Тогда
        Сообщить ("Не указан тип цен!");
        Возврат;
    КонецЕсли;

    ЗапросШтрихкоды = Новый Запрос;
    ЗапросШтрихкоды.УстановитьПараметр("ТипШтрихкода",            ТипШтрихкода);
    Если ЗначениеЗаполнено(ЭлементыФормы.Номенклатура.Значение) Тогда
        ЗапросШтрихкоды.УстановитьПараметр("Владелец",            ЭлементыФормы.Номенклатура.Значение);
    КонецЕсли;
    ЗапросШтрихкоды.УстановитьПараметр("ЕдиницаПоКлассификатору", Единица);
    ЗапросШтрихкоды.УстановитьПараметр("ПустаяСерия",             Справочники.СерииНоменклатуры.ПустаяСсылка());
    ЗапросШтрихкоды.УстановитьПараметр("Качество",                Качество);
    ЗапросШтрихкоды.УстановитьПараметр("ТипШтрихкода",            ТипШтрихкода);
    ЗапросШтрихкоды.УстановитьПараметр("ТипыШтрихкода",           ЭлементыФормы.ТипШтрихкода.СписокВыбора);
    ЗапросШтрихкоды.УстановитьПараметр("ЭтоГруппа",               Истина);
    ЗапросШтрихкоды.УстановитьПараметр("Дата",                    ТекущаяДата());
    ЗапросШтрихкоды.УстановитьПараметр("Валюта",                  Валюта);

    Если НЕ ВВалютахЦен Тогда
        Если НЕ ЗначениеЗаполнено(Валюта)Тогда
            Предупреждение("Не указана валюта для заполнения цен!");
            Возврат;
        КонецЕсли;
        КурсВалюты = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ТекущаяДата(), Новый Структура("Валюта", Валюта));
        Если КурсВалюты.Курс = 0 тогда
            Предупреждение("Курс валюты отчета """ + Валюта.Наименование+""" на дату " +
                           строка(ТекущаяДата())+" не определен или нулевой. Формирование этикеток невозможно.");
            Возврат;
        КонецЕсли;

        Если КурсВалюты.Кратность = 0 тогда
            Предупреждение("Кратность курса валюты отчета """ + Валюта.Наименование+""" на дату " +
                           строка(ТекущаяДата())+" не определена или нулевая. Формирование этикеток невозможно.");
            Возврат;
        КонецЕсли;
        ЗапросШтрихкоды.УстановитьПараметр("КурсВалюты",          КурсВалюты.Курс);
    КонецЕсли;
    
    
    Если ТипЦены.Рассчитывается Тогда
        ТипЦенБазовый            = ТипЦены.БазовыйТипЦен;
        ПорядокОкругления        = ТипЦены.ПорядокОкругления;
        ОкруглятьВБольшуюСторону = ТипЦены.ОкруглятьВБольшуюСторону;
        ПроцентСкидкиНаценки     = ТипЦены.ПроцентСкидкиНаценки;
        ЗапросШтрихкоды.УстановитьПараметр("ТипЦены", ТипЦенБазовый);
        ЗапросШтрихкоды.УстановитьПараметр("ТипЦенРасчетный", ТипЦены);
    Иначе
        ЗапросШтрихкоды.УстановитьПараметр("ТипЦены", ТипЦены);
    КонецЕсли;

    Текст = "ВЫБРАТЬ
    |    Штрихкоды.ТипШтрихкода,
    |    Штрихкоды.Штрихкод,";
    Текст = Текст + "
    |    Штрихкоды.Владелец КАК Номенклатура,
    |    Штрихкоды.ЕдиницаИзмерения,
    |    Штрихкоды.ХарактеристикаНоменклатуры КАК Характеристика,
    |    Штрихкоды.СерияНоменклатуры КАК Серия,
    |    Штрихкоды.Качество,
    |    ВЫБОР КОГДА Цены.Цена ЕСТЬ NULL
    |        ИЛИ Цены.Цена = 0 ТОГДА 0
    |    ИНАЧЕ
    |        Цены.Цена
    |    КОНЕЦ КАК Цена,
    |    Цены.ЕдиницаИзмерения КАК ЦеныЕдиница,
    |    Цены.Валюта           КАК Валюта,
    |    Цены.ТипЦен           КАК ТипЦен,";
    Если ТипЦены.Рассчитывается Тогда
        Текст = Текст + "
        |    Цены.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,";
    КонецЕсли;
    Текст = Текст + "
    |    1                     КАК Количество
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |    (ВЫБРАТЬ
    |        Рег.Номенклатура.Ссылка           КАК Номенклатура,
    |        Рег.ХарактеристикаНоменклатуры    КАК ХарактеристикаНоменклатуры,
    |        Рег.ТипЦен.Ссылка                 КАК ТипЦен,
    |        Рег.Цена                          КАК Цена,
    |        Рег.ЕдиницаИзмерения              КАК ЕдиницаИзмерения,
    |        Рег.Валюта                        КАК Валюта";
    Если ТипЦены.Рассчитывается Тогда
        Текст = Текст + ",
                       |        ВЫБОР КОГДА ВложенныйЗапрос.ПроцентСкидкиНаценки = 0
                       |            ИЛИ ВложенныйЗапрос.ПроцентСкидкиНаценки ЕСТЬ NULL
                       |        ТОГДА
                       |            0
                       |        ИНАЧЕ
                       |            ВложенныйЗапрос.ПроцентСкидкиНаценки
                       |        КОНЕЦ КАК ПроцентСкидкиНаценки
                       |";
    КонецЕсли;
    Текст = Текст + "
    |    ИЗ
    |        РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = (&ТипЦены)) КАК Рег";
    Если ТипЦены.Рассчитывается Тогда
        Текст = Текст + "
                       |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                       |            ЦеныНоменклатурыСрезПоследних.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
                       |            ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
                       |            ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
                       |        ИЗ
                       |            РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
                       |        
                       |        ГДЕ
                       |            ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦенРасчетный) КАК ВложенныйЗапрос
                       |        ПО Рег.Номенклатура = ВложенныйЗапрос.Номенклатура И Рег.ХарактеристикаНоменклатуры = ВложенныйЗапрос.ХарактеристикаНоменклатуры
                       |";
    КонецЕсли;

    Текст = Текст + "
    |    ) КАК Цены
    |     ПО(Штрихкоды.Владелец               = Цены.Номенклатура)
    |     И (Штрихкоды.ХарактеристикаНоменклатуры = Цены.ХарактеристикаНоменклатуры)
    |
    |ГДЕ
    |    Штрихкоды.Владелец.ЭтоГруппа <> &ЭтоГруппа";
    Если ЗначениеЗаполнено(ТипШтрихкода) Тогда
        Текст = Текст+" И
        |    Штрихкоды.ТипШтрихкода = &ТипШтрихкода";
    Иначе
        Текст = Текст+" И
        |    Штрихкоды.ТипШтрихкода В (&ТипыШтрихкода)";
    КонецЕсли;
    Если ТолькоВнутренние Тогда
        Текст = Текст + " И
                        |    ПОДСТРОКА(Штрихкоды.Штрихкод, 1, 1) = ""2""";
    КонецЕсли;
    Если ЗначениеЗаполнено(ЭлементыФормы.Номенклатура.Значение) Тогда
        Текст = Текст+" И
        |    Штрихкоды.Владелец ";
        Если ПолеВидаСравненияНоменклатура = ВидСравнения.Равно Тогда
            Текст = Текст+"=";
        ИначеЕсли ПолеВидаСравненияНоменклатура = ВидСравнения.НеРавно Тогда
            Текст = Текст+"<>";
        ИначеЕсли ПолеВидаСравненияНоменклатура = ВидСравнения.ВСписке Тогда
            Текст = Текст+"В";
        ИначеЕсли ПолеВидаСравненияНоменклатура = ВидСравнения.НеВСписке Тогда
            Текст = Текст+"НЕ В";
        ИначеЕсли ПолеВидаСравненияНоменклатура = ВидСравнения.ВИерархии Тогда
            Текст = Текст+"В ИЕРАРХИИ";
        ИначеЕсли ПолеВидаСравненияНоменклатура = ВидСравнения.НеВИерархии Тогда
            Текст = Текст+"НЕ В ИЕРАРХИИ";
        КонецЕсли;
        Текст = Текст+" (&Владелец)";
    КонецЕсли;
    Если ЗначениеЗаполнено(Единица) Тогда
        Текст = Текст+" И
        |    Штрихкоды.ЕдиницаИзмерения.ЕдиницаПоКлассификатору = &ЕдиницаПоКлассификатору";
    КонецЕсли;
    Если Характеристики Тогда
        Текст = Текст+" И
        |    Штрихкоды.ХарактеристикаНоменклатуры";
        Если Не ХарактеристикиЗаполненные Тогда
            Текст = Текст+" = ";
        Иначе
            Текст = Текст+" <> ";
        КонецЕсли;
        Текст = Текст+"ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)";
    КонецЕсли;
    Если Серии Тогда
        Текст = Текст+" И
        |    Штрихкоды.СерияНоменклатуры";
        Если Не СерииЗаполненные Тогда
            Текст = Текст+" = ";
        Иначе
            Текст = Текст+" <> ";
        КонецЕсли;
        Текст = Текст+"&ПустаяСерия";
    КонецЕсли;
    Если ЗначениеЗаполнено(Качество) Тогда
        Текст = Текст+" И
        |    Штрихкоды.Качество = &Качество";
    КонецЕсли;
    Текст = Текст+"
    |УПОРЯДОЧИТЬ ПО
    |    Владелец
    |АВТОУПОРЯДОЧИВАНИЕ";
    ЗапросШтрихкоды.Текст = Текст;
    Товары                = ЗапросШтрихкоды.Выполнить().Выгрузить();
    Если ЗначениеЗаполнено(ТипЦены) Тогда
        Если ТипЦены.Рассчитывается Тогда
            ВалютаРасчетная = ТипЦены.ВалютаЦены;
        КонецЕсли;
    КонецЕсли;
    Курс = Неопределено;
    Кратность = Неопределено;
    Для Каждого СтрокаТовара ИЗ Товары Цикл
        Если ЗначениеЗаполнено(ТипЦены) Тогда
            Если ЗначениеЗаполнено(СтрокаТовара.Цена) Тогда
                Если ТипЦены.Рассчитывается Тогда
                    ВалютаТекущая    = СтрокаТовара.Валюта;
                    ПолученнаяЦена       = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(СтрокаТовара.Цена, ВалютаТекущая, ВалютаРасчетная, Курс, Кратность, ТекущаяДата());
                    ПроцентСкидкиНаценки = ? (НЕ ЗначениеЗаполнено(СтрокаТовара.ПроцентСкидкиНаценки),
                                              ПроцентСкидкиНаценки, СтрокаТовара.ПроцентСкидкиНаценки);
                    ПолученнаяЦена = ПолученнаяЦена * (1 + ПроцентСкидкиНаценки / 100);
                    
                Иначе
                    ПолученнаяЦена       = СтрокаТовара.Цена;
                КонецЕсли;

                ПолученнаяЦена = Ценообразование.ОкруглитьЦену(ПолученнаяЦена, ТипЦены.ПорядокОкругления, ТипЦены.ОкруглятьВБольшуюСторону);

                СтрокаТовара.Цена = ПолученнаяЦена;
                Если ТипЦены.Рассчитывается Тогда
                    СтрокаТовара.Валюта = ВалютаРасчетная;
                КонецЕсли;

                Если НЕ ВВалютахЦен
                    И Валюта <> СтрокаТовара.Валюта Тогда
                    ПолученнаяЦена       = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(СтрокаТовара.Цена, СтрокаТовара.Валюта, Валюта, 0, 1, ТекущаяДата());
                    СтрокаТовара.Цена    = ПолученнаяЦена;
                    СтрокаТовара.Валюта  = Валюта;
                КонецЕсли;

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

    Товары.ЗаполнитьЗначения(КоличествоКопий, "Количество");

    Если Товары.Количество() = 0 тогда
        Предупреждение("По выбранным условиям отбора не найдено ни одного товара со штрихкодом.");
    КонецЕсли;

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

// Процедура печати этикеток
//
// Параметры:
//  ТаблицаТоваров     - Таблица значений, содержащая информацию о печатаемых этикетках.
//
Процедура Печать(ТаблицаТоваров) Экспорт

    КолвоПереданныхТоваров = ТаблицаТоваров.Количество();

    Если КолвоПереданныхТоваров = 0 Тогда
        Предупреждение("В списке нет ни одного товара со штрихкодом, заполните список товаров,"
                       + Символы.ПС + "для которых надо распечатать этикетки. ");
        Возврат;
    КонецЕсли;

    ПечататьБезЦены        = Ложь;
    Если ПечататьЦену Тогда
        Для Каждого СтрокаИзСписка Из ТаблицаТоваров Цикл
            Если СтрокаИзСписка.Цена = 0 И СтрокаИзСписка.Количество > 0 Тогда
                Ответ = Вопрос("У некоторых товаров не указаны цены! Печатать этикетки для этих товаров?",
                               РежимДиалогаВопрос.ДаНетОтмена);
                Если Ответ = КодВозвратаДиалога.Отмена Тогда
                    Возврат;
                ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда
                    ПечататьБезЦены = Истина;
                ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда
                    ПечататьБезЦены = Ложь;
                КонецЕсли;
                Прервать;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    ТекКолонка = 1;
    ТекСтрока  = 1;

    Таб                     = Новый ТабличныйДокумент;
    Таб.ИмяПараметровПечати =     "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка"+СокрЛП(ИмяКомпьютера());
    Макет                   = ПолучитьОбщийМакет("Этикетка");
    ЭтикеткаОбласть         = Макет.ПолучитьОбласть(1,1,4,2);
    ОбластьНоменклатура     = ЭтикеткаОбласть.Области.Номенклатура;
    ОбластьШтрихкод         = ЭтикеткаОбласть.Области.ОбластьШтрихкод;
    РисунокШтрихкод         = ЭтикеткаОбласть.Рисунки.Штрихкод;
    ОбластьЦена             = ЭтикеткаОбласть.Области.Цена;

    ОбластьНоменклатура.ВысотаСтроки = ВысотаЭтикетки * 2.65 * 0.3;
    ОбластьШтрихкод.ВысотаСтроки     = ВысотаЭтикетки * 2.65 * 0.5;
    РисунокШтрихкод.Расположить(ОбластьШтрихкод);
    ОбластьЦена.ВысотаСтроки         = ВысотаЭтикетки * 2.65 * 0.2;

    ЭтикеткаОбласть.Область(2,2,2,2).ШиринаКолонки = ШиринаЭтикетки*0.53;

    Если ФорматЭтикетки  = 1 Тогда //принтер этикеток.
        ВсегоСтрок       = 1;
        КоличествоКолонок=1;
    ИначеЕсли ФорматЭтикетки = 2 Тогда //А4 по колонкам.

        ОбластьГраницаСправа      = Макет.ПолучитьОбласть(2,4,4,4);
        ОбластьНизГраницыСправа   = Макет.ПолучитьОбласть(5,4,5,4);
        ОбластьГраницаСнизу       = Макет.ПолучитьОбласть(6,2,6,2);
        ОбластьНачалоГраницыСнизу = Макет.ПолучитьОбласть(6,1,6,1);

        ОбластьГраницаСправа.Рисунки.ГраницаСправа.Высота = ВысотаЭтикетки*1.09;
        ОбластьГраницаСнизу.Рисунки.ГраницаСнизу.Ширина   = ШиринаЭтикетки;

        ОбластьГраницаСправа.Область(1,1,1,1).ВысотаСтроки = ВысотаЭтикетки*2.65;
        ОбластьГраницаСнизу.Область(1,1,1,1).ШиринаКолонки = ШиринаЭтикетки*0.53;

        ВсегоСтрок        = 19;
        КоличествоКолонок = 5;
    КонецЕсли;

    ВсегоКолонок = КоличествоКолонок;
    Если ВсегоКолонок > 1 Тогда
        ВсегоКолонок = ВсегоКолонок+ВсегоКолонок - 1; //добавляем разделители колонок.
    КонецЕсли;

    ВывелиХотяБыОдинШтрихКод = Ложь;
    Для Каждого СтрокаИзСписка Из ТаблицаТоваров Цикл
        Если ПечататьЦену И СтрокаИзСписка.Цена = 0
           И Не ПечататьБезЦены Тогда
            Продолжить;
        КонецЕсли;
        
        ТипКода = ПолучитьЗначениеТипаШтрихкодаДляЭУ(СтрокаИзСписка.ТипШтрихкода);
        Если ТипКода = -1 Тогда
            ОбщегоНазначения.СообщитьОбОшибке("Для штрихкода формата """ + СтрокаИзСписка.ТипШтрихкода
                             + """ не существует соответствующего типа в ЭУ ""1С:Печать штрихкодов"".
                             | Позиция будет пропущена");
            Продолжить;
        КонецЕсли;
        
        Если УправлениеРозничнойТорговлей.ПроверитьШтрихКод(СтрокаИзСписка.ШтрихКод, СтрокаИзСписка.ТипШтрихкода) Тогда
            ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.ТипКода = ТипКода;
            ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.Сообщение = СтрокаИзСписка.ШтрихКод;
            ОбластьНоменклатура.Текст = СокрЛП(СтрокаИзСписка.Номенклатура) + ФормированиеПечатныхФорм.ПредставлениеСерий(СтрокаИзСписка);
            Если ПечататьЦену И СтрокаИзСписка.Цена <> 0 Тогда
                ОбластьЦена.Текст = "Цена: " + ОбщегоНазначения.ФорматСумм(СтрокаИзСписка.Цена,СтрокаИзСписка.Валюта)
                   + " за " + СтрокаИзСписка.ЕдиницаИзмерения;
            КонецЕсли;
            Для Копий = 1 По СтрокаИзСписка.Количество Цикл
                Если ТекКолонка > ВсегоКолонок Тогда //новая строка.
                    Если ВсегоСтрок <> 1 Тогда //выведем разделитель.
                        Для Сч = 1 по ВсегоКолонок Цикл
                            Если Сч = 1 Тогда
                                Таб.Вывести(ОбластьНачалоГраницыСнизу);
                            Иначе
                                Таб.Присоединить(ОбластьНачалоГраницыСнизу);
                            КонецЕсли;
                            Таб.Присоединить(ОбластьГраницаСнизу);
                            Таб.Присоединить(ОбластьНизГраницыСправа);
                            Сч = Сч + 1;
                        КонецЦикла;
                        ТекСтрока = ТекСтрока + 1;
                    КонецЕсли;
                    Если ТекСтрока/ВсегоСтрок = Цел(ТекСтрока/ВсегоСтрок) Тогда
                        Таб.ВывестиГоризонтальныйРазделительСтраниц();
                    КонецЕсли;
                    ТекСтрока = ТекСтрока + 1;
                    ТекКолонка=1;
                КонецЕсли;
                Если ТекКолонка<>1 Тогда //выведем разделитель.
                    Таб.Присоединить(ОбластьГраницаСправа);
                    ТекКолонка = ТекКолонка + 1;
                    Таб.Присоединить(ЭтикеткаОбласть);
                    ТекКолонка = ТекКолонка + 1;
                Иначе
                    Таб.Вывести(ЭтикеткаОбласть);
                    ТекКолонка = ТекКолонка + 1;
                КонецЕсли;

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

    Если ВывелиХотяБыОдинШтрихКод Тогда
        УниверсальныеМеханизмы.НапечататьДокумент(Таб, 1, СразуНаПринтер, "Этикетки");
    Иначе
        Сообщить("На печать не выведено ни одной этикетки!");
    КонецЕсли;

КонецПроцедуры // Печать()

// Процедура управления доступностью элементов
//
Процедура ДоступностьЭлементов();
    Если Характеристики Тогда
        ЭлементыФормы.ХарактеристикиЗаполненные.Доступность = Истина;
        ЭлементыФормы.ХарактеристикиНеЗаполненные.Доступность = Истина;
    Иначе
        ЭлементыФормы.ХарактеристикиЗаполненные.Доступность = Ложь;
        ЭлементыФормы.ХарактеристикиНеЗаполненные.Доступность = Ложь;
    КонецЕсли;
    Если Серии Тогда
        ЭлементыФормы.СерииЗаполненные.Доступность = Истина;
        ЭлементыФормы.СерииНеЗаполненные.Доступность = Истина;
    Иначе
        ЭлементыФормы.СерииЗаполненные.Доступность = Ложь;
        ЭлементыФормы.СерииНеЗаполненные.Доступность = Ложь;
    КонецЕсли;
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

// Обработчик события "ПередОткрытием"формы.
//
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    СписокВыбора  = Новый СписокЗначений;
    СписокВыбора.Добавить(ВидСравнения.Равно);
    СписокВыбора.Добавить(ВидСравнения.НеРавно);
    СписокВыбора.Добавить(ВидСравнения.ВСписке);
    СписокВыбора.Добавить(ВидСравнения.НеВСписке);
    СписокВыбора.Добавить(ВидСравнения.ВИерархии);
    СписокВыбора.Добавить(ВидСравнения.НеВИерархии);
    
    ЭлементыФормы.ПолеВидаСравненияНоменклатура.СписокВыбора = СписокВыбора;
    ЭлементыФормы.Номенклатура.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
    ЭлементыФормы.ПолеВидаСравненияНоменклатура.Значение     = ВидСравнения.ВИерархии;
    ПолеВидаСравненияНоменклатураПриИзменении(ЭлементыФормы.ПолеВидаСравненияНоменклатура);

    Попытка
        КомпонентШК = Новый COMОбъект("V8.Barcod.1");
        Макет                   = ПолучитьОбщийМакет("Этикетка");
        ЭтикеткаОбласть         = Макет.ПолучитьОбласть(1,1,4,2);
        ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.Сообщение = "1111111111116";
    Исключение
        Сообщить("Компонента 1С:Печать штрихкодов не установлена на данном компьютере!", СтатусСообщения.Важное);
        Отказ = Истина;
    КонецПопытки;

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

// Процедура - обработчик события "ПриОткрытии" формы
//
Процедура ПриОткрытии()

    Если мВнешняяТаблицаТоваров = Неопределено Тогда
        мВнешняяТаблицаТоваров = Новый ТаблицаЗначений;
    КонецЕсли;

    ЭлементыФормы.ТипШтрихКода.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокТиповШтрихКодов());

    ЭлементыФормы.ФорматЭтикетки.СписокВыбора.Добавить(1,"Принтер этикеток");
    ЭлементыФормы.ФорматЭтикетки.СписокВыбора.Добавить(2,"А4");
    Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ПринтерЭтикеток") = Истина Тогда
        ФорматЭтикетки = 1;
        ВысотаЭтикетки = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ПринтерЭтикетокВысота");
        ШиринаЭтикетки = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ПринтерЭтикетокШирина");
    ИначеЕсли НЕ ЗначениеЗаполнено(ФорматЭтикетки) Тогда
        ФорматЭтикетки = 2;
        ШиринаЭтикетки = 38;
        ВысотаЭтикетки = 20;
        ЭлементыФормы.ШиринаЭтикетки.Доступность = Ложь;
        ЭлементыФормы.ВысотаЭтикетки.Доступность = Ложь;
    ИначеЕсли ФорматЭтикетки = 2 Тогда
        ЭлементыФормы.ШиринаЭтикетки.Доступность = Ложь;
        ЭлементыФормы.ВысотаЭтикетки.Доступность = Ложь;
    КонецЕсли;
    Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ПечататьЦену")   = Истина Тогда
        ПечататьЦену = Истина;
    КонецЕсли;
    Если УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "СразуНаПринтер") = Истина Тогда
        СразуНаПринтер = Истина;
    КонецЕсли;
    КоличествоКопий = 1;
    Если НЕ ВВалютахЦен И НЕ ЗначениеЗаполнено(Валюта) Тогда
        ВВалютахЦен = Истина;
    КонецЕсли;
    Если мВнешняяТаблицаТоваров.Количество()>0 Тогда
        Товары = мВнешняяТаблицаТоваров;
    ИначеЕсли ЗначениеЗаполнено(мВнешнийЭлементНоменклатуры) Тогда
        ЭлементыФормы.Номенклатура.Значение = мВнешнийЭлементНоменклатуры;
        Заполнить();
    КонецЕсли;
    Если мИспользоватьСерии Тогда
        ЭлементыФормы.Серии.Доступность = Истина;
        ЭлементыФормы.ТабличноеПолеТовары.Колонки.Серия.Видимость = Истина;
    Иначе
        ЭлементыФормы.Серии.Доступность = Ложь;
        ЭлементыФормы.ТабличноеПолеТовары.Колонки.Серия.Видимость = Ложь;
    Конецесли;
    ДоступностьЭлементов();
    
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ДЕЙСТВИЯ КОМАНДНЫХ ПАНЕЛЕЙ ФОРМЫ

// Процедура вызывается при нажатии кнопки "Печать" командной панели формы
//
Процедура КоманднаяПанельФормыПечатать(Кнопка)

    Печать(Товары);

КонецПроцедуры // КоманднаяПанельФормыПечатать()

// Процедура вызывается при нажатии кнопки "Заполнить" командной панели формы
// Заполняет табличную часть информацией из регистра "Штрихкоды" с указанными
// условиями отбора.
//
Процедура КоманднаяПанельФормыЗаполнить(Элемент)

    Если Товары.Количество() = 0 Тогда
        Ответ = КодВозвратаДиалога.Да;
    Иначе
        Ответ = Вопрос("Перед заполнением табличная часть будет очищена." + Символы.ПС + "Продолжить?", РежимДиалогаВопрос.ДаНет);
    КонецЕсли;

    Если Ответ = КодВозвратаДиалога.Да Тогда
        Заполнить();
    КонецЕсли;

КонецПроцедуры // КоманднаяПанельФормыЗаполнить()

// Процедура вызывается при нажатии кнопки "Отбор" командной панели формы
//
Процедура КоманднаяПанельФормыОтбор(Кнопка)

    Если НЕ ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх Тогда
        ЭлементыФормы.ПанельОтбор.Свертка     = РежимСверткиЭлементаУправления.Верх;
    Иначе
        ЭлементыФормы.ПанельОтбор.Свертка     = РежимСверткиЭлементаУправления.Нет;
    КонецЕсли;
    
    УправлениеПометкамиКнопокКоманднойПанели();

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

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ РЕКВИЗИТОВ ШАПКИ

// Процедура - обработчик события "ПриИзменении" поля выбора формата этикетки.
//
Процедура ФорматЭтикеткиПриИзменении(Элемент)
    Если Элемент.Значение = 2 Тогда
        ШиринаЭтикетки = 38;
        ВысотаЭтикетки = 20;
        ЭлементыФормы.ШиринаЭтикетки.Доступность = Ложь;
        ЭлементыФормы.ВысотаЭтикетки.Доступность = Ложь;
    Иначе
        ЭлементыФормы.ШиринаЭтикетки.Доступность = Истина;
        ЭлементыФормы.ВысотаЭтикетки.Доступность = Истина;
    КонецЕсли;
КонецПроцедуры

// Процедура - обработчик события "ПриИзменении" поля "ПолеВидаСравненияНоменклатура".
//
Процедура ПолеВидаСравненияНоменклатураПриИзменении(Элемент)

    Если Элемент.Значение = ВидСравнения.ВСписке
     ИЛИ Элемент.Значение = ВидСравнения.НеВСписке Тогда
        Значение = Неопределено;
        Если ЭлементыФормы.Номенклатура.ТипЗначения <> Новый ОписаниеТипов("СписокЗначений")Тогда
            Значение = ЭлементыФормы.Номенклатура.Значение;
            ЭлементыФормы.Номенклатура.ТипЗначения = Новый ОписаниеТипов("СписокЗначений");
            ЭлементыФормы.Номенклатура.ТипЗначенияСписка = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
        КонецЕсли;

        Если ЗначениеЗаполнено(Значение) Тогда
            ЭлементыФормы.Номенклатура.Значение.Добавить(Значение);
        КонецЕсли;

    ИначеЕсли Элемент.Значение = ВидСравнения.Равно
          ИЛИ Элемент.Значение = ВидСравнения.ВИерархии
          ИЛИ Элемент.Значение = ВидСравнения.НеРавно
          ИЛИ Элемент.Значение = ВидСравнения.НеВИерархии
          Тогда
        Значение = Неопределено;
        Если ЭлементыФормы.Номенклатура.ТипЗначения = Новый ОписаниеТипов("СписокЗначений")Тогда
            Если ЭлементыФормы.Номенклатура.Значение.Количество()>0 Тогда
                Значение = ЭлементыФормы.Номенклатура.Значение[0].Значение;
                ЭлементыФормы.Номенклатура.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
            КонецЕсли;
        КонецЕсли;
        
        Если ЗначениеЗаполнено(Значение) Тогда
            ЭлементыФормы.Номенклатура.Значение = Значение;
        КонецЕсли;
    
    КонецЕсли;
    
КонецПроцедуры

// Процедура - обработчик события "ПриИзменении" поля "ТипЦены".
//
Процедура ТипЦеныПриИзменении(Элемент)

    Если ЗначениеЗаполнено(ТипЦены) Тогда
        Ответ = Вопрос("Перезаполнить цены?", РежимДиалогаВопрос.ДаНет);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            ПерезаполнитьЦены();
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры // ТипЦеныПриИзменении()

// Процедура - обработчик события "ПриИзменении" поля "Характеристики".
//
Процедура ХарактеристикиПриИзменении(Элемент)
    ДоступностьЭлементов();
КонецПроцедуры

// Процедура - обработчик события "ПриИзменении" поля "Серии".
//
Процедура СерииПриИзменении(Элемент)
    ДоступностьЭлементов();
КонецПроцедуры

// Процедура вызывается при обновлении формы или при изменении данных формы
//
// Параметры
//  Нет
//
Процедура ОбновлениеОтображения()

    Если ФорматЭтикетки = 2 Тогда
        ЭлементыФормы.ШиринаЭтикетки.Доступность = Ложь;
        ЭлементыФормы.ВысотаЭтикетки.Доступность = Ложь;
    Иначе
        ЭлементыФормы.ШиринаЭтикетки.Доступность = Истина;
        ЭлементыФормы.ВысотаЭтикетки.Доступность = Истина;
    КонецЕсли;

    Если ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
        Если Не ЭлементыФормы.ТолькоВнутренние.Доступность Тогда
            ЭлементыФормы.ТолькоВнутренние.Доступность = Истина;
            ТолькоВнутренние                           = Истина;
        КонецЕсли;
    Иначе
        Если ЭлементыФормы.ТолькоВнутренние.Доступность Тогда
            ЭлементыФормы.ТолькоВнутренние.Доступность = Ложь;
            ТолькоВнутренние                           = Ложь;
        КонецЕсли;
    КонецЕсли;

    ЭлементыФормы.Валюта.Доступность = Не ВВалютахЦен;

КонецПроцедуры // ОбновлениеОтображения()

///////////////////////////////////////////////////////////////////////////////
//// ПРОЦЕДУРЫ И ФУНКЦИИ

// Возвращает массив, содержащий все предопределенные элементы ПВХ "ТипыШтрихКодов".
//
// Возвращаемое значение:
//  Массив.
//
Функция ПолучитьСписокТиповШтрихКодов()

    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |    ТипыШтрихкодов.Ссылка КАК ТипШтрихкода
    |ИЗ
    |    ПланВидовХарактеристик.ТипыШтрихкодов КАК ТипыШтрихкодов
    |ГДЕ
    |    ТипыШтрихкодов.Предопределенный
    |УПОРЯДОЧИТЬ ПО
    |    ТипыШтрихкодов.Код
    |");

    Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ТипШтрихкода");

КонецФункции // ПолучитьСписокТиповШтрихКодов()

// Обработчик события "Нажатие" кнопки "Перезаполнить цены".
//
Процедура КоманднаяПанельФормыПерезаполнитьЦены(Кнопка)

    ПерезаполнитьЦены();

КонецПроцедуры // КоманднаяПанельФормыПерезаполнитьЦены()

// Процедура перезаполняет цены в табличной части.
//
Процедура ПерезаполнитьЦены()

    Если Не ЗначениеЗаполнено(ТипЦены) Тогда
        Предупреждение("Не указан тип цен!");
        Возврат;
    КонецЕсли;

    Если Не (ВВалютахЦен Или ЗначениеЗаполнено(Валюта)) Тогда
        Предупреждение("Не указана валюта!");
        Возврат;
    КонецЕсли;

    СтруктураЗначений = Новый Структура;
    СтруктураЗначений.Вставить("НовыйТипЦен", ТипЦены);

    ЗапросПоЦенам = Ценообразование.СформироватьЗапросПоЦенам(СтруктураЗначений,
       Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры,
       Товары.ВыгрузитьКолонку("Номенклатура"),
       РабочаяДата,
       Неопределено).Выгрузить();
    ЗапросПоЦенам.Индексы.Добавить("Номенклатура");

    ПустаяХарактеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
    ТипЦенРассчитывается = ТипЦены.Рассчитывается;

    СтруктураКурса = МодульВалютногоУчета.ПолучитьКурсВалюты(Валюта, РабочаяДата);
    Курс = СтруктураКурса.Курс;
    Кратность = СтруктураКурса.Кратность;

    Для Каждого СтрокаТовара Из Товары Цикл
        ХарактеристикаНоменклатуры = СтрокаТовара.Характеристика;

        СтруктураПоиска = Новый Структура("Номенклатура", СтрокаТовара.Номенклатура);

        СтрокиЦен = ЗапросПоЦенам.НайтиСтроки(СтруктураПоиска);

        СтрокаБезХарактеристики = Неопределено;
        СтрокаСХарактеристикой = Неопределено;

        Для Каждого СтрокаЦен Из СтрокиЦен Цикл
            Если СтрокаЦен.ХарактеристикаНоменклатуры = ПустаяХарактеристика Тогда
                СтрокаБезХарактеристики = СтрокаЦен;
            ИначеЕсли СтрокаЦен.ХарактеристикаНоменклатуры = ХарактеристикаНоменклатуры Тогда
                СтрокаСХарактеристикой = СтрокаЦен;
            КонецЕсли;
        КонецЦикла;

        Если СтрокаСХарактеристикой <> Неопределено Тогда
            НайденнаяСтрока = СтрокаСХарактеристикой;
        ИначеЕсли СтрокаБезХарактеристики <> Неопределено Тогда
            НайденнаяСтрока = СтрокаБезХарактеристики;
        Иначе
            НайденнаяСтрока = Неопределено;
        КонецЕсли;

        Если (НайденнаяСтрока <> Неопределено) И (НайденнаяСтрока.Цена <> 0) Тогда
            Цена = НайденнаяСтрока.Цена * (1 + ?(ТипЦенРассчитывается, НайденнаяСтрока.ПроцентСкидкиНаценки / 100, 0));
            Цена = Ценообразование.ОкруглитьЦену(Цена, ТипЦены.ПорядокОкругления, ТипЦены.ОкруглятьВБольшуюСторону);
            Цена = Ценообразование.ПересчитатьЦенуПриИзмененииЕдиницы(Цена, НайденнаяСтрока.ЕдиницаИзмеренияЦены, СтрокаТовара.ЕдиницаИзмерения);

            Если ВВалютахЦен Тогда
                СтрокаТовара.Валюта = НайденнаяСтрока.ВалютаЦены;
            Иначе
                Цена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(Цена, НайденнаяСтрока.ВалютаЦены, Валюта, Курс, Кратность);

                СтрокаТовара.Валюта = Валюта;
            КонецЕсли;

            //СтрокаТовара.ЕдиницаИзмерения = НайденнаяСтрока.ЕдиницаИзмеренияЦены;
        Иначе
            Цена = 0;
        КонецЕсли;

        СтрокаТовара.Цена = Цена;
    КонецЦикла;

КонецПроцедуры // ПерезаполнитьЦены()

// Обработчик события "Нажатие" кнопки "Перезаполнить цены".
//
Процедура УстановитьКоличествоКопийНажатие(Элемент)

    Ответ = Вопрос("Установить количество для всех позиций?", РежимДиалогаВопрос.ДаНет);
    Если Ответ = КодВозвратаДиалога.Да Тогда
        Для Каждого СтрокаТЧ Из Товары Цикл
            СтрокаТЧ.Количество = КоличествоКопий;
        КонецЦикла;
    КонецЕсли;

КонецПроцедуры // УстановитьКоличествоКопийНажатие()

мИспользоватьСерии = Константы.ИспользоватьСерииНоменклатуры.Получить();


Результат формирования в 1с
[del]

после сохранения в Ексель
[del]

как сделать чтоб штрих код оставался таким как в 1с

1с8.1 управление торговлей