Имя: Пароль:
1C
1С v8
Макет ценника программные вертикальные отступы
0 Mebius777
 
10.03.17
13:23
Здравствуйте, подскажите пожалуйста как заставить во время программный вывода областей макета не делать отступы между повторениями. Создается колонка между ценниками. 1,5-2мм Как быть? Код рабочий.
Вот код самой обработки(самописная):
"
Функция ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипКода)
    Перем Значение;
    
    Если ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8 Тогда
        Значение = 0;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
        Значение = 1;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128 Тогда
        Значение = 2;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 Тогда
        Значение = 3;
    ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code128 Тогда
        Значение = 4;
    Иначе
        Значение = -1;
    КонецЕсли;
    
    Возврат Значение;
КонецФункции // ПолучитьЗначениеТипаШтрихкодаДляЭУ()
    
Процедура ОбновитьСтрокуТабл(ВыбТовар)
    
    Если Не ЗначениеЗаполнено(ЦеныНаДату) Тогда
        Предупреждение("Укажите дату формирования ценников");
        Возврат;
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(ТипЦен) Тогда
        Предупреждение("Укажите тип цен");
        Возврат;
    КонецЕсли;
    //Если ЗначениеЗаполнено(Поступление) Тогда
    //Иначе
    //    Предупреждение("Укажите поступление товаров");
    //    Возврат;
    //КонецЕсли;
    
    //СписокТоваров.Очистить();
    
    ЗапросТовар = Новый Запрос;
    //ЗапросШтрихкоды.УстановитьПараметр("ЭтоГруппа",               Истина);
    ЗапросТовар.УстановитьПараметр("Дата",ЦеныНаДату);
    ЗапросТовар.УстановитьПараметр("ВыбТовар", ВыбТовар);
    ЗапросТовар.УстановитьПараметр("ТипЦены", ТипЦен);
    
    Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
    //|    Товар.Ссылка КАК Товар,
    |    Товар.Код КАК Код,
    |    Товар.Наименование КАК Наименование,
    |    Товар.СтранаПроисхождения КАК СтранаПроисхождения,
    |    ШК.Штрихкод КАК Штрихкод,
    |    ШК.ТипШтрихкода КАК ТипШтрихкода,
    |    Цены.ТипЦен  КАК ТипЦен,
    |    Цены.ЕдиницаИзмерения  КАК ЕдиницаИзмерения,
    |    Цены.Валюта  КАК Валюта,
    |    Цены.Цена  КАК Цена

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

    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |    (ВЫБРАТЬ
    |        Штрихкоды.Владелец               КАК Номенклатура,
    |        Штрихкоды.ТипШтрихкода           КАК ТипШтрихкода,
    |        Штрихкоды.Штрихкод               КАК Штрихкод
    |    ИЗ
    |        РегистрСведений.Штрихкоды КАК Штрихкоды

    |    ) КАК ШК ПО (Товар.Ссылка              = ШК.Номенклатура)
    |    
    |ГДЕ
    |    Товар.Ссылка = &ВыбТовар
    |    
    //|УПОРЯДОЧИТЬ ПО
    //|    Наименование    
    |";
    

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

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

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

    ЗапросШтрихкоды.Текст = Текст;
    ЗапросШК       = ЗапросШтрихкоды.Выполнить();
    РезультатЗапроса=ЗапросШК.Выбрать();
    
    Пока РезультатЗапроса.Следующий() Цикл
        
        Строка=СписокТоваров.Добавить();
        Строка.Товар=РезультатЗапроса.Товар;
        Строка.Код=РезультатЗапроса.Код;
        Строка.Наименование=РезультатЗапроса.Наименование;
        Строка.СтранаПроисхождения=РезультатЗапроса.СтранаПроисхождения;
        Строка.ТипШтрихкода=РезультатЗапроса.ТипШтрихкода;
        Строка.Штрихкод=РезультатЗапроса.Штрихкод;
        Строка.ЕдиницаИзмерения=РезультатЗапроса.ЕдиницаИзмерения;
        Строка.Валюта=РезультатЗапроса.Валюта;
        Строка.Цена=РезультатЗапроса.Цена;
        Строка.НаПечать=ИСТИНА;
        
    КонецЦикла;
    
КонецПроцедуры//ЗаполнитьТаблицу

Процедура ЗаполнитьТаблицуПоГруппе(ГруппаДляПодбора, ФормаВызова) Экспорт
    
    Если НЕ ЗначениеЗаполнено(ЦеныНаДату) Тогда
        Предупреждение("Укажите дату формирования ценников");
        Возврат;
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(ТипЦен) Тогда
        Предупреждение("Укажите тип цен");
        Возврат;
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(Поступление) Тогда
        Предупреждение("Укажите поступление товаров");
        Возврат;
    КонецЕсли;
    

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

    ЗапросШтрихкоды.Текст = Текст;
    ЗапросШК       = ЗапросШтрихкоды.Выполнить();
    РезультатЗапроса=ЗапросШК.Выбрать();

    ФормаВызова.ЭлементыФормы.Индикатор1.МаксимальноеЗначение = ЗапросШК.Выгрузить().Количество();
    ФормаВызова.ЭлементыФормы.Индикатор1.Видимость  = истина;
    
    ФормаВызова.ЭлементыФормы.Индикатор1.Значение  = 0;
    Пока РезультатЗапроса.Следующий() Цикл
        
        СтруктураОтбора = новый структура;
        СтруктураОтбора.Вставить("Товар", РезультатЗапроса.Товар);
        //СтруктураОтбора.Вставить("Код", РезультатЗапроса.Код);
        //СтруктураОтбора.Вставить("Наименование", РезультатЗапроса.Наименование);
        //СтруктураОтбора.Вставить("СтранаПроисхождения", РезультатЗапроса.СтранаПроисхождения);
        //СтруктураОтбора.Вставить("ТипШтрихкода", РезультатЗапроса.ТипШтрихкода);
        СтруктураОтбора.Вставить("Штрихкод", ?(РезультатЗапроса.Штрихкод = null, "", РезультатЗапроса.Штрихкод));
        //СтруктураОтбора.Вставить("ЕдиницаИзмерения", РезультатЗапроса.ЕдиницаИзмерения);
        //СтруктураОтбора.Вставить("Валюта", РезультатЗапроса.Валюта);
        //СтруктураОтбора.Вставить("Цена", РезультатЗапроса.Цена);
        
        НайденныеСтроки = СписокТоваров.НайтиСтроки(СтруктураОтбора);

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

    
КонецПроцедуры//ЗаполнитьТаблицу

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

    ЗапросШтрихкоды = Новый Запрос;
    //ЗапросШтрихкоды.УстановитьПараметр("ЭтоГруппа",               Истина);
    ЗапросШтрихкоды.УстановитьПараметр("Дата",                    ЦеныНаДату);
    ЗапросШтрихкоды.УстановитьПараметр("Группа", НомДляПодбора);
    ЗапросШтрихкоды.УстановитьПараметр("ТипЦен", ТипЦен);
    
    //Текст = "ВЫБРАТЬ
    //        |    ШК.Штрихкод КАК Штрихкод,
    //        |    ШК.ТипШтрихкода КАК ТипШтрихкода,
    //        |    Цены.ТипЦен КАК ТипЦен,
    //        |    Цены.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    //        |    Цены.Валюта КАК Валюта,
    //        |    Цены.Цена КАК Цена,
    //        |    Цены.Номенклатура КАК Товар,
    //        |    Цены.Номенклатура.Код КАК Код,
    //        |    Цены.Номенклатура.СтранаПроисхождения КАК СтранаПроисхождения,
    //        |    Цены.Номенклатура.НаименованиеПолное КАК Наименование,
    //        |    ТоварыНаСкладахОстатки.КоличествоОстаток
    //        |ИЗ
    //        |    (ВЫБРАТЬ
    //        |        Рег.Номенклатура.Ссылка КАК Номенклатура,
    //        |        Рег.ТипЦен.Ссылка КАК ТипЦен,
    //        |        Рег.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    //        |        Рег.Валюта КАК Валюта,
    //        |        Рег.Цена КАК Цена
    //        |    ИЗ
    //        |        РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦены) КАК Рег) КАК Цены
    //        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    //        |            Штрихкоды.Владелец КАК Номенклатура,
    //        |            Штрихкоды.ТипШтрихкода КАК ТипШтрихкода,
    //        |            Штрихкоды.Штрихкод КАК Штрихкод
    //        |        ИЗ
    //        |            РегистрСведений.Штрихкоды КАК Штрихкоды) КАК ШК
    //        |        ПО Цены.Номенклатура = ШК.Номенклатура
    //        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    //        |        ПО Цены.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    //        |ГДЕ
    //        |    Цены.Номенклатура В ИЕРАРХИИ(&Номенклатура)";
    
        Текст = "ВЫБРАТЬ
                |    Номенклатура.Ссылка
                |ПОМЕСТИТЬ НомИзГрп
                |ИЗ
                |    Справочник.Номенклатура КАК Номенклатура
                |ГДЕ
                |    Номенклатура.Ссылка = &Группа
                |;
                |
                |////////////////////////////////////////////////////////////////////////////////
                |ВЫБРАТЬ
                |    Штрихкоды.Штрихкод,
                |    ЦеныНоменклатурыСрезПоследних.Цена,
                |    НомИзГрп.Ссылка КАК Товар,
                |    Штрихкоды.ТипШтрихкода,
                |    ЦеныНоменклатурыСрезПоследних.ТипЦен,
                |    ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
                |    ЦеныНоменклатурыСрезПоследних.Валюта,
                |    НомИзГрп.Ссылка.Код КАК Код,
                |    НомИзГрп.Ссылка.СтранаПроисхождения КАК СтранаПроисхождения,
                |    НомИзГрп.Ссылка.
1 Mebius777
 
10.03.17
13:25
Оступов в коде нет, код не мой. Горизонтальные победил.
2 Mebius777
 
10.03.17
13:31
Продолжение кода:"

    Найденные = СписокТоваров.НайтиСтроки(Отбор).Количество();

    
    Для каждого Строка из СписокТоваров Цикл
        Если НЕ Строка.НаПечать Тогда
            Продолжить;
        ИначеЕсли НЕ ЗначениеЗаполнено(Строка.Товар) Тогда
        //ИначеЕсли НЕ Строка.Товар = Неопределено Тогда
            Продолжить;
        КонецЕсли;         
        
        ОбластьМакета = Макет.ПолучитьОбласть("Строка|Столбец");
        ОбластьМакета.Параметры.Код_5 = Прав(Строка.Код,5);
        ОбластьМакета.Параметры.ОрганизацияНаименование = "ООО ""РЕСУРС-МЕДИА""";
        ОбластьМакета.Параметры.ДатаПечати = ЦеныНаДату;
        Если КолВРяду = 8 Тогда
            ОбластьМакета.Область("Имя").Шрифт=Новый Шрифт(ОбластьМакета.Область("Имя").Шрифт, , 16);
        ИначеЕсли КолВРяду = 16 Тогда
            ОбластьМакета.Область("Имя").Шрифт=Новый Шрифт(ОбластьМакета.Область("Имя").Шрифт, , 10);    
        КонецЕсли;

        ОбластьМакета.Параметры.Заполнить(Строка);
        
        ТипКода = ПолучитьЗначениеТипаШтрихкодаДляЭУ(Строка.ТипШтрихкода);
        Если ТипКода = -1 Тогда
            ОбластьМакета.Рисунки.Штрихкод.ВыводитьНаПечать = Ложь;
            
        Иначе
            ОбластьМакета.Рисунки.Штрихкод.Объект.ТипКода   = ТипКода;
            ОбластьМакета.Рисунки.Штрихкод.Объект.Сообщение = СокрЛП(Строка.Штрихкод);
        КонецЕсли;
        
        
        СчетчикКолонок = СчетчикКолонок+1;
        Если СчетчикКолонок = 1 Тогда
            ТабДокумент.Вывести(ОбластьМакета);
        Иначе
            ТабДокумент.Присоединить(ОбластьМакета);
        КонецЕсли;
        Если СчетчикКолонок = КолВРяду или (КолВРяду = 16 и СчетчикКолонок = 4) или (КолВРяду = 32 и СчетчикКолонок = 8) или (КолВРяду = 64 и СчетчикКолонок = 8)Тогда
            СчетчикКолонок = 0;
            СчетчикРядов = СчетчикРядов+1;
            
            Если (КолВРяду = 2) и (СчетчикРядов >=1) Тогда
                ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                СчетчикРядов = 0;
            ИначеЕсли (КолВРяду = 1) Тогда
                ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                СчетчикРядов = 0;
            ИначеЕсли (КолВРяду = 4) и (СчетчикРядов >=2) Тогда
                //ТабДокумент.АвтоМасштаб             = Истина;    
                ТабДокумент.ВывестиВертикальныйРазделительСтраниц();
                //ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                СчетчикРядов = 0;
            ИначеЕсли (КолВРяду = 16) и (СчетчикРядов >=4) Тогда
                ТабДокумент.ВывестиВертикальныйРазделительСтраниц();
                ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                СчетчикРядов = 0;
            ИначеЕсли (КолВРяду = 32) и (СчетчикРядов >=8) Тогда
                ТабДокумент.ВывестиВертикальныйРазделительСтраниц();
                ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                СчетчикРядов = 0;
            ИначеЕсли (КолВРяду = 64) и (СчетчикРядов >=8) Тогда
        //        ТабДокумент.ВывестиВертикальныйРазделительСтраниц();
        //        ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                СчетчикРядов = 0;

            ИначеЕсли (КолВРяду = 8) и (СчетчикРядов >=4) Тогда
                ТабДокумент.ВывестиВертикальныйРазделительСтраниц();
                ТабДокумент.АвтоМасштаб             = Ложь;
                //ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                СчетчикРядов = 0;

            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    Если КолВРяду = 2 Тогда
        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
        ТабДокумент.АвтоМасштаб=Истина;
    ИначеЕсли КолВРяду = 1 Тогда
        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;
    ИначеЕсли КолВРяду = 4 Тогда    
        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;
    ИначеЕсли КолВРяду = 8 Тогда
        ТабДокумент.АвтоМасштаб=ложь;  
        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
    ИначеЕсли КолВРяду = 16 Тогда
        //ТабДокумент.АвтоМасштаб=Истина;
        Если Найденные < 4 тогда
             ТабДокумент.АвтоМасштаб=Ложь;
             ТабДокумент.МасштабПечати=100;
        Иначе            
            ТабДокумент.АвтоМасштаб=Истина;
        КонецЕсли;

        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;
    ИначеЕсли КолВРяду = 32 Тогда
        Если СчетчикКолонок < 8 тогда
             ТабДокумент.АвтоМасштаб=Ложь;
             ТабДокумент.МасштабПечати=75;
        Иначе            
            ТабДокумент.АвтоМасштаб=Истина;
        КонецЕсли;
        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
    ИначеЕсли КолВРяду = 64 Тогда
        Если СчетчикКолонок < 8 тогда
             ТабДокумент.АвтоМасштаб=Ложь;
             ТабДокумент.МасштабПечати=75;
        Иначе            
            ТабДокумент.АвтоМасштаб=Истина;
        КонецЕсли;

        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;

    КонецЕсли;    

    ТабДокумент.Показать();    
    
КонецПроцедуры


Процедура КоманднаяПанельСписокДокументовУстановитьПометки(Кнопка)
    
    Для каждого Строка из СписокТоваров Цикл
        Если НЕ Строка.НаПечать Тогда
            Строка.НаПечать = Истина;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Процедура КоманднаяПанельСписокДокументыСнятьПометки(Кнопка)
    
    Для каждого Строка из СписокТоваров Цикл
        Если Строка.НаПечать Тогда
            Строка.НаПечать = Ложь;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    ЦеныНаДату = ТекущаяДата();
    СписокВыбора  = Новый СписокЗначений;
    СписокВыбора.Добавить(1).Представление = "Ценники А4 - 1шт. на листе";
    СписокВыбора.Добавить(2).Представление = "Ценники А4 - 2шт. на листе";
    СписокВыбора.Добавить(4).Представление = "Ценники А4 - 4шт. на листе";
    СписокВыбора.Добавить(8).Представление = "Ценники А4 - 8 шт. на листе";
    СписокВыбора.Добавить(16).Представление = "Ценники А4 - 16 шт. на листе";
    СписокВыбора.Добавить(32).Представление = "Ценники А9 - 32 шт. на листе";
    СписокВыбора.Добавить(64).Представление = "Ценники А10. -64 шт. на листе";

    ЭлементыФормы.ПолеВариантаПечати.СписокВыбора = СписокВыбора;
    ЭлементыФормы.ПолеВариантаПечати.Значение     = 64;

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

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

Процедура СписокТоваровТоварОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
        //Если НЕ ВыбранноеЗначение = Неопределено Тогда
        ОбновитьСтрокуТабл(ВыбранноеЗначение);
    КонецЕсли;
    
КонецПроцедуры

Процедура КоманднаяПанельСписокДокументовПодбор(Кнопка)
    // Вставить содержимое обработчика.
    //ЗаполнитьТаблицуПоГруппе();
КонецПроцедуры

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

Процедура КоманднаяПанельСписокДокументовВыбратьПодбором(Кнопка)

    Результат = Справочники.Номенклатура.ПолучитьФормуВыбора().ОткрытьМодально();
    ЗаполнитьТаблицуПоЭлементу(Результат, ЭтаФорма);

КонецПроцедуры
"
3 HardBall
 
10.03.17
13:35
Может в макете колонка лишняя печатается. Включи режим просмотра страниц.
4 Mebius777
 
10.03.17
14:40
Да печатается, но непонятно откуда. Если не печатать колонки ТабДокумент.Присоединить(ОбластьМакета); то все просто идет сплошняком по одной колонке и все.
5 Mebius777
 
10.03.17
14:41
Комментировал
        //        ТабДокумент.ВывестиВертикальныйРазделительСтраниц();
                //ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Бесполезно
6 HardBall
 
10.03.17
14:53
(4) Дык, ты макет смотрел?
7 Mebius777
 
10.03.17
14:54
Конечно, в макете все хорошо. Выводит так.
8 Mebius777
 
10.03.17
14:54
Добавляет колонку.