Имя: Пароль:
1C
1С v8
Строка Штрих код в макете Расходная накладная
0 aka_ufo
 
10.01.20
09:30
Добрый день люди добрые!
Такая проблема - Бухгалтерия для Казахстана редакция 2.0
Создал реквизит Штрихкод (тип данных строка по умолчанию) в справочнике Номенклатура и вывел в типовом макете Накладная его как параметр,но на печать он не выходит. Подскажите пожалуйста как вывести его на печать в макет?
Конфигурация типовая не измененная.
1 evgeniy_n
 
10.01.20
10:03
Наверное, надо делать внешнюю печатную форму с изменённым запросом.
2 aka_ufo
 
10.01.20
10:43
(1) В типовом запросе никак не прописать чтобы захватывал штрихкод из текстовой строки?
3 shadow_sw
 
10.01.20
11:20
(2) пропиши, что мешает?
4 JeHer
 
10.01.20
11:21
(0) (3) 1С:Barcode
5 Масянька
 
10.01.20
11:27
В макете - картинка, в модуле при выводе строки:
            // штрихкод
            СтруктураШтрихкод = ПодключаемоеОборудованиеРТВызовСервера.ПолучитьШтрихкод(СтрокаТовары.Номенклатура);
            
            Если (ТипЗнч(СтруктураШтрихкод) = Тип("Структура")) Тогда
                ШтрихКод      = СтруктураШтрихкод.Штрихкод;
                ТипШтрихКода = СтруктураШтрихкод.ТипШтрихкода;
                
                ПараметрыШтрихкода = Новый Структура;
                ПараметрыШтрихкода.Вставить("Ширина",          23);
                ПараметрыШтрихкода.Вставить("Высота",          22);
                ПараметрыШтрихкода.Вставить("Штрихкод",        ШтрихКод);
                ПараметрыШтрихкода.Вставить("ТипКода",         99);
                ПараметрыШтрихкода.Вставить("ОтображатьТекст", Ложь);

                Штрихкод = ОбластьСтрока.Рисунки.Получить(0);
                Штрихкод.Картинка         = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
                Штрихкод.РазмерКартинки = РазмерКартинки.Пропорционально;
                Штрихкод.ГраницаСверху     = Ложь;
                Штрихкод.ГраницаСлева     = Ложь;
                Штрихкод.ГраницаСнизу     = Ложь;
                Штрихкод.ГраницаСправа     = Ложь;
            КонецЕсли;
            // конец штрихкода
Это для розницы. Что у вас вместо ПодключаемоеОборудованиеРТВызовСервера.ПолучитьШтрихкод и МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода - ищи.
6 Масянька
 
10.01.20
11:29
+ (5) Для бухии: отдельный запрос к РС.
7 aka_ufo
 
10.01.20
11:50
В Справочник Номенклатура я добавил реквизит Штрихкод (Тип данных Строка) и вывел его на форму карточки товара.
Добавил ячейку на макет Накладная и его параметр Штрихкод
При выводе на печать заголовок отображается а ячейка строки нет.
Вот исходный код печати макета,не знаю куда вписать запрос уже кучу вариантов перепробовал.

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

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

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";

    Макет = ПолучитьМакет("Накладная");

    // Выводим шапку накладной

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, "Расходная накладная", глСписокПрефиксовУзлов);
    ТабДокумент.Вывести(ОбластьМакета);

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

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

    Если ЗначениеЗаполнено(Шапка.Основание) Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("Основание");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;

    Если Товары.Количество() <> 0 Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("Склад");
        ОбластьМакета.Параметры.Склад = Шапка.Склад;
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;    
    
    ЕстьСкидки = Ложь;
    
    ОбластьШапка = Макет.ПолучитьОбласть(ОбластьШапки);
    Если ВыводитьКоды Тогда
        ОбластьШапка.Параметры.Колонка = Колонка;
    КонецЕсли;        
    ТабДокумент.Вывести(ОбластьШапка);

    ОбластьСтрока = Макет.ПолучитьОбласть(ОбластьСтроки);
    
    Сумма    = 0;
    СуммаНДС = 0;
    
    Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл

        Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        ОбластьСтрока.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьСтрока.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        ОбластьСтрока.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
        
        Если ВыводитьКоды Тогда
            ОбластьСтрока.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;                
        КонецЕсли;       
        
        ТабДокумент.Вывести(ОбластьСтрока);
        Сумма    = Сумма    + ВыборкаСтрокТовары.Сумма + ?((Шапка.УчитыватьАкциз И НЕ Шапка.СуммаВключаетАкциз), ВыборкаСтрокТовары.СуммаАкциза, 0);
        СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
        
    КонецЦикла;

    // Вывести Итого
    ОбластьИтого = Макет.ПолучитьОбласть("Итого");
    
    ОбластьИтого.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Вывести(ОбластьИтого);

    // Вывести ИтогоНДС
    Если Шапка.УчитыватьНДС Тогда
        ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");        
        ОбластьИтогоНДС.Параметры.НДС        = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
        ОбластьИтогоНДС.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"));
        ТабДокумент.Вывести(ОбластьИтогоНДС);
        
        Если НЕ Шапка.СуммаВключаетНДС ТОгда
            ОбластьИтогоСНДС = Макет.ПолучитьОбласть("ИтогоСНДС");
            ОбластьИтогоСНДС.Параметры.ВсегоСНДС = Сумма+СуммаНДС;
            ТабДокумент.Вывести(ОбластьИтогоСНДС);
        КонецЕсли;
        
    КонецЕсли;

    // Вывести Сумму прописью
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    ОбластьМакета.Параметры.ИтоговаяСтрока = "Всего наименований " + ЗапросТовары.Количество()
                                           + ", на сумму "            + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
    ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
    ТабДокумент.Вывести(ОбластьМакета);

    // Вывести подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.ОтпустилМОЛПредставление = ОбщегоНазначения.ФамилияИнициалыФизЛица(Шапка.ОтпустилМОЛ);
    ТабДокумент.Вывести(ОбластьМакета);

    Возврат ТабДокумент;

КонецФункции
8 Дмитрий
 
10.01.20
11:55
(7) В ЗапросТовары вытаскивай свой реквизит
9 Дмитрий
 
10.01.20
11:56
(8) по аналогии, как код номенклатуры вытаскивается
10 aka_ufo
 
10.01.20
12:40
(8) Подскажите как правильно вписать запрос для кода
11 Дмитрий
 
10.01.20
13:56
(10) в тексте запроса  после каждой из строк
    |    Номенклатура.Код КАК Код,
добавить строку
    |    Номенклатура.ВашРеквизит КАК ВашеИмяПараметраВМакете,


только копию сделайте перед тем, как менять
12 aka_ufo
 
10.01.20
15:53
(11) Прописал после каждой строки как Вы сказали теперь ошибка
"Определения процедур и функций должны размещаться перед операторами тела модуля"
Указывает на функцию Вывести итого