Имя: Пароль:
1C
 
Получение данных из регистра сведений
,
0 Andreik113
 
24.08.22
15:51
Нужно в печатную форму вывести штрихкоды номенклатуры. У одной номенклатуры могут быть разные штрихкоды. Нужно как-то из регистра сведений ШтрихкодыНоменклатуры достать данные штрихкодов для номенклатуры. Делаю запрос, данные не точные.
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
        |    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
        |    ШтрихкодыНоменклатуры.Характеристика КАК Характеристика,
        |    ШтрихкодыНоменклатуры.Партия КАК Партия,
        |    ШтрихкодыНоменклатуры.ЕдиницаИзмерения КАК ЕдиницаИзмерения
        |ИЗ
        |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        |ГДЕ
        |    ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод
        |    И ШтрихкодыНоменклатуры.Штрихкод = &Номенклатура
        |    И ШтрихкодыНоменклатуры.Штрихкод = &Характеристика
        |    И ШтрихкодыНоменклатуры.Штрихкод = &Партия
        |    И ШтрихкодыНоменклатуры.Штрихкод = &ЕдиницаИзмерения";
    
    Запрос.УстановитьПараметр("ЕдиницаИзмерения", ЕдиницаИзмерения);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Партия", Партия);
    Запрос.УстановитьПараметр("Характеристика", Характеристика);
    Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Штрихкод");
1 PR
 
24.08.22
15:52
Да
2 Галахад
 
гуру
24.08.22
15:53
Нет.
3 Гипервизор
 
24.08.22
15:57
Передать штрихкод для получения штрихкода. Штош, приемлимо.
4 vicof
 
24.08.22
16:06
Штрихкод не может быть одновременно штрихкодом, номенклатурой, характеристикой, партией и единицей измерения
5 Kassern
 
24.08.22
16:08
(4) этот штрихкод на все руки мастер)
6 Strogg
 
24.08.22
16:09
а клевый запрос
7 Eiffil123
 
24.08.22
16:53
(4) но если данные не точные, значит они таки есть.
8 alarm2020
 
24.08.22
17:00
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
        |ИЗ
        |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        |ГДЕ
        |    ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура";
    
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Штрихкод");
9 Andreik113
 
25.08.22
10:50
Переделал запрос. Результат запроса пустой
Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ
            |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
            |ИЗ
            |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
            |ГДЕ
            |    ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура
            |    И ШтрихкодыНоменклатуры.Характеристика = &Характеристика";
            
            Запрос.УстановитьПараметр("Номенклатура", СтрокаЗапасы.Номенклатура);
            Запрос.УстановитьПараметр("Характеристика", СтрокаЗапасы.Характеристика);
            
            РезультатЗапроса = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Штрихкод");
10 Kassern
 
25.08.22
10:58
(9) Уберите отбор по характеристике и гляньте, если ли вообще ШК у номенклатуры.
11 Andreik113
 
25.08.22
11:06
(10) ШК есть. У одной номенклатуры разная характеристика и есть несколько шк. нужно, чтобы шк соответствовал номенклатуре и ее характеристике
12 Kassern
 
25.08.22
11:08
(11) В вашем случае, нет штрихкода по уникальному набору СтрокаЗапасы.Номенклатура+СтрокаЗапасы.Характеристика
13 Kassern
 
25.08.22
11:08
Поэтому и массив у вас пустой
14 Andreik113
 
25.08.22
11:12
(13) Так, а как это можно исправить? Куда копать?
15 Andreik113
 
25.08.22
11:16
Весь текст печатной формы

Процедура СформироватьЗаказПокупателя(ПечатнаяФорма, МассивОбъектов, ОбъектыПечати, Ошибки)
    Перем ПервыйДокумент, НомерСтрокиНачало;

    ТабличныйДокумент = ПечатнаяФорма.ТабличныйДокумент;
//    Макет = УправлениеПечатью.МакетПечатнойФормы(ПечатнаяФорма.ПолныйПутьКМакету);
    Макет = ПолучитьМакет("ПФ_MXL_ЗаказПокупателя");
    
    ПредставлениеСкидки = Константы.ПредставлениеСкидкиВПечатнойФорме.Получить();
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказПокупателя.Ссылка КАК Ссылка,
    |    ЗаказПокупателя.Номер КАК Номер,
    |    ЗаказПокупателя.Дата КАК ДатаДокумента,
    |    ЗаказПокупателя.Организация КАК Организация,
    |    ЗаказПокупателя.Контрагент КАК Контрагент,
    |    ЗаказПокупателя.АдресДоставки КАК АдресДоставки,
    |    ЗаказПокупателя.Грузополучатель КАК Грузополучатель,
    |    ЗаказПокупателя.СуммаВключаетНДС КАК СуммаВключаетНДС,
    |    ЗаказПокупателя.ВалютаДокумента КАК ВалютаДокумента,
    |    ЗаказПокупателя.Ответственный КАК Ответственный,
    |    ЗаказПокупателя.Организация.Префикс КАК Префикс,
    |    ЗаказПокупателя.ОсновнойВариантКП КАК ОсновнойВариантКП,
    |    ЗаказПокупателя.ОжидаетсяВыборВариантаКП КАК ОжидаетсяВыборВариантаКП,
    |    ЗаказПокупателя.СпособДоставки КАК СпособДоставки,
    |    ЗаказПокупателя.Вес КАК Вес,
    |    ВЫБОР
    |        КОГДА ЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
    |                ИЛИ ЗаказПокупателя.СпособДоставки В (ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.Самовывоз))
    |            ТОГДА ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    |        ИНАЧЕ ЗаказПокупателя.НоменклатураДоставки
    |    КОНЕЦ КАК НоменклатураДоставки,
    |    ВЫБОР
    |        КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.НоменклатураДоставки.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |            ТОГДА ЗаказПокупателя.НоменклатураДоставки.Наименование
    |        ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.НоменклатураДоставки.НаименованиеПолное КАК СТРОКА(1000))
    |    КОНЕЦ КАК ПредставлениеНоменклатурыДоставки,
    |    ЗаказПокупателя.НоменклатураДоставки.Код КАК КодДоставки,
    |    ЗаказПокупателя.НоменклатураДоставки.Артикул КАК АртикулДоставки,
    |    ЗаказПокупателя.НоменклатураДоставки.ЕдиницаИзмерения КАК ЕдиницаИзмеренияДоставки,
    |    ЗаказПокупателя.СтоимостьДоставки КАК СтоимостьДоставки,
    |    ЗаказПокупателя.СуммаНДСДоставки КАК СуммаНДСДоставки,
    |    ЗаказПокупателя.СтавкаНДСДоставки КАК СтавкаНДСДоставки,
    |    ЗаказПокупателя.Работы.(
    |        НомерСтроки КАК НомерСтроки,
    |        0 КАК НомерВариантаКП,
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |                ТОГДА ЗаказПокупателя.Работы.Номенклатура.Наименование
    |            ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        КОНЕЦ КАК ПредставлениеНоменклатуры,
    |        Номенклатура.Код КАК Код,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.Штрихкод КАК Штрихкод,
    |        Номенклатура.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
    |        ЗаказПокупателя.Работы.Количество * ЗаказПокупателя.Работы.Коэффициент * ЗаказПокупателя.Работы.Кратность КАК Количество,
    |        Цена КАК Цена,
    |        Сумма КАК Сумма,
    |        СтавкаНДС КАК СтавкаНДС,
    |        СуммаНДС КАК СуммаНДС,
    |        Всего КАК Всего,
    |        0 КАК Вес,
    |        Характеристика КАК Характеристика,
    |        ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Работы.ПроцентСкидкиНаценки <> 0
    |                    ИЛИ ЗаказПокупателя.Работы.СуммаАвтоматическойСкидки <> 0
    |                ТОГДА 1
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЕстьСкидка,
    |        Содержание КАК Содержание,
    |        Ссылка.Старт КАК ДатаОтгрузки,
    |        СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
    |        ЛОЖЬ КАК ЭтоРазделитель,
    |        ЛОЖЬ КАК ЭтоНабор,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Работы.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    |                    И ЗаказПокупателя.Работы.НоменклатураНабора.ВариантПечатиНабора = ЗНАЧЕНИЕ(Перечисление.ВариантыПечатиНаборов.НаборИКомплектующие)
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ ЛОЖЬ
    |        КОНЕЦ КАК НеобходимоВыделитьКакСоставНабора,
    |        НоменклатураНабора КАК НоменклатураНабора,
    |        ХарактеристикаНабора КАК ХарактеристикаНабора
    |    ) КАК ТаблицаРаботыУслуги,
    |    ЗаказПокупателя.Запасы.(
    |        НомерСтроки КАК НомерСтроки,
    |        НомерВариантаКП КАК НомерВариантаКП,
    |        ВЫБОР
    |            КОГДА ТИПЗНАЧЕНИЯ(ЗаказПокупателя.Запасы.Номенклатура) = ТИП(СТРОКА)
    |                ТОГДА ЗаказПокупателя.Запасы.Номенклатура
    |            КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |                ТОГДА ЗаказПокупателя.Запасы.Номенклатура.Наименование
    |            ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        КОНЕЦ КАК ПредставлениеНоменклатуры,
    |        Номенклатура.Код КАК Код,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.Штрихкод КАК Штрихкод,
    |        ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
    |        Количество КАК Количество,
    |        Цена КАК Цена,
    |        Сумма КАК Сумма,
    |        СтавкаНДС КАК СтавкаНДС,
    |        СуммаНДС КАК СуммаНДС,
    |        Всего КАК Всего,
    |        Вес КАК Вес,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Запасы.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
    |                ТОГДА ЗаказПокупателя.Запасы.Ссылка.Старт
    |            ИНАЧЕ ЗаказПокупателя.Запасы.ДатаОтгрузки
    |        КОНЕЦ КАК ДатаОтгрузки,
    |        Характеристика КАК Характеристика,
    |        Содержание КАК Содержание,
    |        ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Запасы.ПроцентСкидкиНаценки <> 0
    |                    ИЛИ ЗаказПокупателя.Запасы.СуммаАвтоматическойСкидки <> 0
    |                ТОГДА 1
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЕстьСкидка,
    |        СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
    |        ЭтоРазделитель КАК ЭтоРазделитель,
    |        ЛОЖЬ КАК ЭтоНабор,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Запасы.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    |                    И ЗаказПокупателя.Запасы.НоменклатураНабора.ВариантПечатиНабора = ЗНАЧЕНИЕ(Перечисление.ВариантыПечатиНаборов.НаборИКомплектующие)
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ ЛОЖЬ
    |        КОНЕЦ КАК НеобходимоВыделитьКакСоставНабора,
    |        НоменклатураНабора КАК НоменклатураНабора,
    |        ХарактеристикаНабора КАК ХарактеристикаНабора,
    |        Номенклатура КАК Номенклатура
    |    ) КАК ТаблицаЗапасы,
    |    ЗаказПокупателя.ДобавленныеНаборы.(
    |        НоменклатураНабора КАК НоменклатураНабора,
    |        ХарактеристикаНабора КАК ХарактеристикаНабора,
    |        НомерВариантаКП КАК НомерВариантаКП,
    |        Количество КАК Количество,
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.ДобавленныеНаборы.НоменклатураНабора.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |                ТОГДА ЗаказПокупателя.ДобавленныеНаборы.НоменклатураНабора.Наименование
    |            ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.ДобавленныеНаборы.НоменклатураНабора.НаименованиеПолное КАК СТРОКА(1000))
    |        КОНЕЦ КАК ЗапасНабора,
    |        НоменклатураНабора.ВариантПечатиНабора КАК ВариантПечатиНабора,
    |        НоменклатураНабора.ТипНоменклатуры КАК ТипНоменклатурыНабора,
    |        НоменклатураНабора.Артикул КАК АртикулНабора,
    |        НоменклатураНабора.Код КАК КодНабора,
    |        НоменклатураНабора.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНабора,
    |        НоменклатураНабора.ЕдиницаИзмерения.Код КАК КодЕдиницыИзмеренияНабора,
    |        ИСТИНА КАК ВыводитьИтоги
    |    ) КАК ТаблицаДобавленныеНаборы,
    |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя,
    |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
    |ГДЕ
    |    ЗаказПокупателя.Ссылка В(&МассивОбъектов)
    |    И (ЗаказПокупателя.ОсновнойВариантКП = 0
    |            ИЛИ ЗаказПокупателя.Запасы.НомерВариантаКП = ЗаказПокупателя.ОсновнойВариантКП)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка,
    |    ЗаказПокупателя.Работы.НомерСтроки,
    |    ЗаказПокупателя.Запасы.НомерСтроки";
    
    ДанныеДокументов = Запрос.Выполнить().Выгрузить();
    ДоставкаСервер.ДобавитьСтрокуДоставкиУниверсальныеДанные(ДанныеДокументов);
    
    // Наборы
    НаборыСервер.КомпоноватьТабличнуюЧастьПоНаборам(ДанныеДокументов, "ТаблицаЗапасы", Ошибки, Истина);
    НаборыСервер.КомпоноватьТабличнуюЧастьПоНаборам(ДанныеДокументов, "ТаблицаРаботыУслуги", Ошибки);
    
    Для каждого Шапка Из ДанныеДокументов Цикл
    
        Если Шапка.ОжидаетсяВыборВариантаКП Тогда
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = СтрШаблон(
                НСтр("ru='Печатная форма ""%1"" (%2) не может быть сформирована: не выбран основной вариант.'"),
                ПечатнаяФорма.СинонимМакета,
                Шапка.Ссылка);
            Сообщение.КлючДанных = Шапка.Ссылка;
            Сообщение.Сообщить();
            Продолжить;
        КонецЕсли;
        
        ПечатьДокументовУНФ.ПередНачаломФормированияДокумента(ТабличныйДокумент, ПервыйДокумент, НомерСтрокиНачало);
        
        СведенияОбОрганизации = ПечатьДокументовУНФ.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента, ,);
        СведенияОбКонтрагенте = ПечатьДокументовУНФ.СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.ДатаДокумента, ,);
        // Доставка
        ГрузополучательЗаполнен = (ЗначениеЗаполнено(Шапка.Грузополучатель) И Шапка.Грузополучатель <> Шапка.Контрагент);
        Если ГрузополучательЗаполнен Тогда
            СведенияОбКонтрагенте.Вставить("Грузополучатель", Шапка.Грузополучатель);
        КонецЕсли;
        АдресДоставкиЗаполнен = (НЕ ПустаяСтрока(Шапка.АдресДоставки) И Шапка.АдресДоставки <> СведенияОбКонтрагенте.ЮридическийАдрес);
        Если АдресДоставкиЗаполнен Тогда
            СведенияОбКонтрагенте.Вставить("АдресДоставки", Шапка.АдресДоставки);
        КонецЕсли;
        // Конец Доставка
        
        ТекстЗаголовка = СтрШаблон(
            НСтр("ru='Заказ покупателя № %1 от %2'"),
            ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(Шапка.ДатаДокумента, Шапка.Номер, Шапка.Префикс),
            ПечатьДокументовУНФ.ПредставлениеДатыВДокументах(Шапка.ДатаДокумента));
        
        ДанныеПечати = Новый Структура;
        ДанныеПечати.Вставить("ТекстЗаголовка", ТекстЗаголовка);
        ДанныеПечати.Вставить("ПредставлениеПоставщика", ПечатьДокументовУНФ.ОписаниеОрганизации(
            СведенияОбОрганизации, "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,"));
        ДанныеПечати.Вставить("ПредставлениеПолучателя", ПечатьДокументовУНФ.ОписаниеОрганизации(
            СведенияОбКонтрагенте, "ПолноеНаименование,ИНН,КПП,РегистрационныйНомер,ЮридическийАдрес,Телефоны,Грузополучатель,АдресДоставки,"));
        
        ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        ОбластьЗаголовок.Параметры.Заполнить(ДанныеПечати);
        ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьЗаголовок,
            Шапка.Ссылка);
        ТабличныйДокумент.Вывести(ОбластьЗаголовок);
        
        ОбластьПоставщик = Макет.ПолучитьОбласть("Поставщик");
        ОбластьПоставщик.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьПоставщик);
        
        ОбластьПокупатель = Макет.ПолучитьОбласть("Покупатель");
        ОбластьПокупатель.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьПокупатель);
        
        ЕстьСкидки = (Шапка.ТаблицаЗапасы.Итог("ЕстьСкидка") + Шапка.ТаблицаРаботыУслуги.Итог("ЕстьСкидка")) <> 0;
        Если ЕстьСкидки Тогда
            ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицыСоСкидкой");
            ТабличныйДокумент.Вывести(ОбластьМакета);
            ОбластьМакета = Макет.ПолучитьОбласть("СтрокаСоСкидкой");
            ОбластьГруппаРазделитель = Макет.ПолучитьОбласть("СтрокаСоСкидкойГруппировка");
        Иначе
            ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
            ТабличныйДокумент.Вывести(ОбластьМакета);
            ОбластьМакета = Макет.ПолучитьОбласть("Строка");
            ОбластьГруппаРазделитель = Макет.ПолучитьОбласть("СтрокаГруппировка");
        КонецЕсли;
        
        СтруктураИтогов = Новый Структура;
        СтруктураИтогов.Вставить("Сумма", 0);
        СтруктураИтогов.Вставить("СуммаНДС", 0);
        СтруктураИтогов.Вставить("Всего", 0);
        СтруктураИтогов.Вставить("Количество", 0);
        СтруктураИтогов.Вставить("НомерСтроки", 0);
        СтруктураИтогов.Вставить("Вес", 0);
        СтруктураИтогов.Вставить("ЕстьСкидки", ЕстьСкидки);
        СтруктураИтогов.Вставить("СкидкаПоСтроке", 0);
        СтруктураИтогов.Вставить("СкидкаПоДокументу", 0);
        СтруктураИтогов.Вставить("ПредставлениеСкидки", ПредставлениеСкидки);
        СтруктураИтогов.Вставить("ЕстьСтавкаНольПроцентов", Ложь);
        
        ПараметрыНоменклатуры = Новый Структура;
        
        Для каждого СтрокаРаботыУслуги Из Шапка.ТаблицаРаботыУслуги Цикл
            
            ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧастиЗаказПокупателя(СтрокаРаботыУслуги, ДанныеПечати,
                ПараметрыНоменклатуры, СтруктураИтогов);
            
            ОбластьМакета.Параметры.Заполнить(СтрокаРаботыУслуги);
            ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Вывести(ОбластьМакета);
            
            // Наборы
            НаборыСервер.УчестьОформлениеСтрокиНабора(ТабличныйДокумент, ОбластьМакета, СтрокаРаботыУслуги);
            
        КонецЦикла;
        
        Для каждого СтрокаЗапасы Из Шапка.ТаблицаЗапасы Цикл
            
            Если СтрокаЗапасы.ЭтоРазделитель Тогда
                СтруктураИтогов.НомерСтроки = 0;
                ОбластьГруппаРазделитель.Параметры.Заполнить(СтрокаЗапасы);
                ДанныеПечати.Очистить();
                ДанныеПечати.Вставить("Запас", СтрокаЗапасы.ПредставлениеНоменклатуры);
                ОбластьГруппаРазделитель.Параметры.Заполнить(ДанныеПечати);
                ТабличныйДокумент.Вывести(ОбластьГруппаРазделитель);
                Продолжить;
            КонецЕсли;
            
            ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧастиЗаказПокупателя(СтрокаЗапасы, ДанныеПечати,
                ПараметрыНоменклатуры, СтруктураИтогов);
            
            ОбластьМакета.Параметры.Заполнить(СтрокаЗапасы);
            ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Вывести(ОбластьМакета);
            
            // Наборы
            НаборыСервер.УчестьОформлениеСтрокиНабора(ТабличныйДокумент, ОбластьМакета, СтрокаЗапасы);
            
        КонецЦикла;
        
        Для каждого СтрокаЗапасы Из Шапка.ТаблицаЗапасы Цикл
            Если СтрокаЗапасы.ЭтоРазделитель Тогда
                СтруктураИтогов.НомерСтроки = 0;
                ДанныеПечати.Очистить();
                ДанныеПечати.Вставить("ШтрихКод", СтрокаЗапасы.ПредставлениеНоменклатуры);
                ОбластьГруппаРазделитель.Параметры.Заполнить(СтрокаЗапасы);
                ОбластьГруппаРазделитель.Параметры.Заполнить(ДанныеПечати);
                ТабличныйДокумент.Вывести(ОбластьГруппаРазделитель);
                Продолжить;
            КонецЕсли;     
            
            Запрос = Новый Запрос;
            Запрос.Текст =
            "ВЫБРАТЬ
            |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
            |ИЗ
            |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
            |ГДЕ
            |    ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура
            |    И ШтрихкодыНоменклатуры.Характеристика = &Характеристика";
            
            Запрос.УстановитьПараметр("Номенклатура", СтрокаЗапасы.Номенклатура);
            Запрос.УстановитьПараметр("Характеристика", СтрокаЗапасы.Характеристика);
            
            РезультатЗапроса = Запрос.Выполнить();//.Выгрузить().ВыгрузитьКолонку("Штрихкод");
            
            ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
            
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                СтрокаЗапасы.Номенклатура = ВыборкаДетальныеЗаписи.Штрихкод;
                СтрокаЗапасыХарактеристика = ВыборкаДетальныеЗаписи.Штрихкод;
            КонецЦикла;
            
            ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧастиЗаказПокупателя(СтрокаЗапасы, ДанныеПечати,
            ПараметрыНоменклатуры, СтруктураИтогов);
            
            ОбластьМакета.Параметры.Заполнить(СтрокаЗапасы);
            ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
            ТабличныйДокумент.Вывести(ОбластьМакета);
            
            // Наборы
            НаборыСервер.УчестьОформлениеСтрокиНабора(ТабличныйДокумент, ОбластьМакета, СтрокаЗапасы);
        КонецЦикла;
        
        ДанныеПечати.Очистить();
        ДанныеПечати.Вставить("Всего", ПечатьДокументовУНФ.ФорматСумм(СтруктураИтогов.Сумма));
        ДанныеПечати.Вставить("НДС", ПечатьДокументовУНФ.ПредставлениеЗаголовкаНДС(СтруктураИтогов.СуммаНДС,
            Шапка.СуммаВключаетНДС, Ложь, СтруктураИтогов.ЕстьСтавкаНольПроцентов));
        ДанныеПечати.Вставить("ВсегоНДС", ?(СтруктураИтогов.СуммаНДС = 0 И Не СтруктураИтогов.ЕстьСтавкаНольПроцентов,
            "-", ПечатьДокументовУНФ.ФорматСумм(СтруктураИтогов.СуммаНДС, , "0,00")));
        ДанныеПечати.Вставить("ИтоговаяСтрока", ПечатьДокументовУНФ.ИтоговаяСтрока(СтруктураИтогов.Количество,
            СтруктураИтогов.Всего, Шапка.ВалютаДокумента));
        ДанныеПечати.Вставить("СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(СтруктураИтогов.Всего,
            Шапка.ВалютаДокумента));
        ДанныеПечати.Вставить("Отпустил", Шапка.Ответственный);
        
        ОбластьМакета = Макет.ПолучитьОбласть("Итого");
        ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
        ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        Если СтруктураИтогов.ЕстьСкидки Тогда
            
            ОбластьМакета = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ИтогоСкидка", "", Ошибки);
            Если ОбластьМакета <> Неопределено Тогда
                
                ОбластьМакета.Параметры.Заполнить(СтруктураИтогов);
                ТабличныйДокумент.Вывести(ОбластьМакета);
                
            КонецЕсли;
            
        КонецЕсли;
        
        ОбластьМакета = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ИтогоВес", "", Ошибки);
        Если ОбластьМакета <> Неопределено Тогда
            
            ОбластьМакета.Параметры.Вес = 0;
            Если СтруктураИтогов.Вес <> 0 Тогда
                
                ОбластьМакета.Параметры.Вес = СтруктураИтогов.Вес;
                
            ИначеЕсли Шапка.Вес <> 0 Тогда
                
                ОбластьМакета.Параметры.Вес = Шапка.Вес;
                
            КонецЕсли;
            
            Если ОбластьМакета.Параметры.Вес <> 0 Тогда
                
                ТабличныйДокумент.Вывести(ОбластьМакета);
                
            КонецЕсли;
            
        КонецЕсли;
        
        ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
        ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
        ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
        
    КонецЦикла;
    
КонецПроцедуры // СформироватьЗаказПокупателя()
16 Гипервизор
 
25.08.22
11:17
(14) Исправить что? Отсутствие штрихкода в базе? Ввести штрихкод в базу. А вы знаете какой он должен быть?
17 Kassern
 
25.08.22
11:18
(14) Все функции->регистры сведений->Штрихкоды номенклатуры->Отбор по номенклатуре. Смотрите что и как там заполнено
18 Гипервизор
 
25.08.22
11:24
(17) Сейчас выяснится, что платформа свежая и "всех функций" нет. )
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший