Штрихкод в печатной форме

1. user1809279 09.09.24 12:03 Сейчас в теме
Здравствуйте, такой вопрос
Делаю внешнюю печатную форму накладной32, нужно добавить вместо колонки нумерации строк, колонку штрихкода товара в табличную часть, кусочек кода


Запрос.Текст = 
    "ВЫБРАТЬ
    |    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    |    МИНИМУМ(РеализацияТоваровУслугТовары.НомерСтроки) КАК НомерСтроки,
    |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |    ВЫБОР
    |        КОГДА НЕ РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное ПОДОБНО """"
    |            ТОГДА ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        ИНАЧЕ РеализацияТоваровУслугТовары.Номенклатура.Наименование
    |    КОНЕЦ КАК ТоварПредставление,
    |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
    |    РеализацияТоваровУслугТовары.Номенклатура.Код КАК ТоварКод,
    |    СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
    |    РеализацияТоваровУслугТовары.Цена КАК Цена,
    |    СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма,
    |    СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС,
    |    СУММА(РеализацияТоваровУслугТовары.СуммаАкциза) КАК СуммаАкциза,
    |    ВложенныйЗапрос.Штрихкод КАК Штрихкод
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
    |            ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура
    |        ИЗ
    |            РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры) КАК ВложенныйЗапрос
    |        ПО (ВложенныйЗапрос.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура)
    |ГДЕ
    |    РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
    |
    |СГРУППИРОВАТЬ ПО
    |    РеализацияТоваровУслугТовары.Номенклатура,
    |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Наименование,
    |    РеализацияТоваровУслугТовары.Номенклатура.Код,
    |    РеализацияТоваровУслугТовары.Цена,
    |    РеализацияТоваровУслугТовары.Ссылка,
    |    ВЫБОР
    |        КОГДА НЕ РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное ПОДОБНО """"
    |            ТОГДА ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        ИНАЧЕ РеализацияТоваровУслугТовары.Номенклатура.Наименование
    |    КОНЕЦ,
    |    ВложенныйЗапрос.Штрихкод
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерСтроки
    |ИТОГИ
    |    СУММА(Сумма),
    |    СУММА(СуммаНДС),
    |    СУММА(СуммаАкциза)
    |ПО
    |    Ссылка";  
    
    ВыборкаСтрокТоварыИтоги = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); 
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.КлючПараметровПечати = "РеализацияТоваровУслуг_З2";
        
    Пока ДанныеДокументов.Следующий() Цикл 
        
        Макет = ПолучитьМакет("ПФ_MXL_З2");
        
        Если ТабДокумент.ВысотаТаблицы > 0 Тогда
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
        
        ОбластьМакетаШапка             = Макет.ПолучитьОбласть("Шапка");
        ОбластьМакетаИтогоПрописью  = Макет.ПолучитьОбласть("ИтогоПрописью");
        ОбластьМакетаПодвал         = Макет.ПолучитьОбласть("Подвал");
        
        СтруктурнаяЕдиницаОрганизация = ОбщегоНазначенияБК.ПолучитьСтруктурнуюЕдиницу(ДанныеДокументов.Организация, ДанныеДокументов.СтруктурноеПодразделение);

        СведенияОбОрганизации = ОбщегоНазначенияБКВызовСервера.СведенияОЮрФизЛице(СтруктурнаяЕдиницаОрганизация, ДанныеДокументов.Дата);
        
        ОбластьМакетаШапка.Параметры.Заполнить(ДанныеДокументов);
        ОбластьМакетаШапка.Параметры.ПредставлениеОрганизации = ОбщегоНазначенияБКВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,");
        ОбластьМакетаШапка.Параметры.ПредставлениеОтправителя = ОбщегоНазначенияБКВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,");
        ОбластьМакетаШапка.Параметры.ОрганизацияРНН_БИН       = ОбщегоНазначенияБКВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "БИН_ИИН,", Ложь, ДанныеДокументов.Дата, "ru");
        ОбластьМакетаШапка.Параметры.НомерДокумента           = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ДанныеДокументов.Номер, ДанныеДокументов.Ссылка);
        
        ОтветственныйДляПечати  = "";
        ДолжностьОтветственного = "";
        
        Если ТипЗнч(ДанныеДокументов.Ответственный) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
            ДанныеОтветственного    = ПроцедурыУправленияПерсоналомВызовСервера.ДанныеФизЛица(ДанныеДокументов.Организация, ДанныеДокументов.Ответственный, ДанныеДокументов.Дата); 
            ОтветственныйДляПечати  = ДанныеОтветственного.Представление;
            ДолжностьОтветственного = ДанныеОтветственного.Должность;
        Иначе
            ОтветственныйДляПечати = ДанныеДокументов.Ответственный;
        КонецЕсли;    
            
        ОбластьМакетаШапка.Параметры.ОтветственныйЗаПоставку = ОтветственныйДляПечати;
            
        ПредставлениеПолучателя                            = ОбщегоНазначенияБКВызовСервера.ОписаниеОрганизации(ОбщегоНазначенияБКВызовСервера.СведенияОЮрФизЛице(ДанныеДокументов.Контрагент, ДанныеДокументов.Дата), "ПолноеНаименование,");
        ОбластьМакетаШапка.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
        
        ТабДокумент.Вывести(ОбластьМакетаШапка);
        
        УчитыватьНДС_       = ДанныеДокументов.УчитыватьНДС;
        УчитыватьАкциз_     = ДанныеДокументов.УчитыватьАкциз;
        СуммаВключаетНДС_   = ДанныеДокументов.СуммаВключаетНДС;
        СуммаВключаетАкциз_ = ДанныеДокументов.СуммаВключаетАкциз;
        
        ПрибавлятьНДС   = УчитыватьНДС_ И (НЕ СуммаВключаетНДС_);
        ПрибавлятьАкциз = УчитыватьАкциз_ И (НЕ СуммаВключаетАкциз_);

        // Выводим заголовок таблицы
        Если УчитыватьАкциз_ Тогда
            ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицыАкциз");
        Иначе
            ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
        КонецЕсли;
        ЗаголовокТаблицы.Параметры.Валюта = ДанныеДокументов.ВалютаДокумента;
        ТабДокумент.Вывести(ЗаголовокТаблицы);

        ИтогоКоличество = 0;
        // Выводим многострочную часть документа
        Если УчитыватьАкциз_ Тогда
            ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицыАкциз");
        Иначе
            ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы");
        КонецЕсли;
        
        
            //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

                Количество = ВыборкаСтрокТовары.Количество;
                
                Если Не ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабДокумент, ОбластьСтрокаТаблицы) Тогда
                    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                    ТабДокумент.Вывести(ЗаголовокТаблицы);
                КонецЕсли;    
                
                
                
                ОбластьСтрокаТаблицы.Параметры.Заполнить(ВыборкаСтрокТовары);
                ОбластьСтрокаТаблицы.Параметры.Штрихкод = ВыборкаСтрокТовары.Штрихкод;
                ОбластьСтрокаТаблицы.Параметры.ТоварНаименование  = СокрЛП(ВыборкаСтрокТовары.ТоварПредставление);
Показать



1 - типовая
2 - макет уже измененный

В запросе через вложенный сделаала, вставила там где на параметры выборки табличной части ссылается, но без указания параметра номенклатуры, потому что если указать, то будет ругаться что не установлен параметр, а если без него, то ругается что невозможно преобразовать в число, что можно исправить?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ico 09.09.24 12:15 Сейчас в теме
В запросе через вложенный сделаала, вставила там где на параметры выборки табличной части ссылается, но без указания параметра номенклатуры, потому что если указать, то будет ругаться что не установлен параметр, а если без него, то ругается что невозможно преобразовать в число, что можно исправить?

Попробуйте не спеша, разделяя предложения, объяснить, что сделали и что не так.
3. user1809279 09.09.24 13:43 Сейчас в теме
(2) в основной зааапрос добавила вложенный, чтобы отсылаться к штрихкоду, ввела переменную, на макете параметр, сначала указала в условии номенклатуру во вложенном запросе, но начал ругаться что не установлен параметр номенклатуры, убрала без условия оставила, теперь пишет что не может преобразовать выражение штрихкод в запросе в число, уже при формировании печатной формы
4. ico 09.09.24 14:09 Сейчас в теме
Уже лучше.
Теперь узнать бы кто этот кто, который пишет, что не может преобразовать что-то во что-то.
Запрос отрабатывает верно. В какой хоть строке ошибка?
5. user1809279 09.09.24 14:31 Сейчас в теме
(4) не могу к сожалению остановку вызвать, не делаала такое на печатных формах
9. ico 09.09.24 15:35 Сейчас в теме
(5) Ну хоть скрин-копи этой ошибки. Что там написано? От чьего лица записочка...
Там ответ простой - либо штрихкод у кого-то не заполнен, либо пытается вывести штрихкод для группы.
6. user1809279 09.09.24 14:32 Сейчас в теме
(4) но по запросу посмотрела, штрихкод не берется
7. user1809279 09.09.24 14:49 Сейчас в теме
(6) Подправила запрос, теперь значение штрихкода падает, но все равно пытается преобразовать его в число, нее могу понять почему
8. user1936660 09.09.24 14:54 Сейчас в теме
(7)
нее могу понять
Там в ошибке номер строки указывается. Или кода или текста запроса. На этот номер строки можно даже посмотреть.
Оставьте свое сообщение

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