Имя: Пароль:
1C
1С v8
Вывожу несколько шк в самописном макете, странно отображаются шк
0 jeka_molodec
 
03.08.19
19:26
Макет в обработке. Макет этикеток. В ряду 5 шк к товарам. Первый не заполняются шк "1234567890123"
Вывожу строку.
Со второго ряда отображается со смещением. Не понял систему.
строку заполняют так:
Макет = Обработки.ПечатьЦенников.ПолучитьМакет("Этикетка");
.
.
//-Проходим по таблице, записываем в макет
    Для Каждого ы Из табТ Цикл
        стр = Макет.ПолучитьОбласть("Строка");
        шк = выдатьШкТов(ы.н1.Ссылка);             Сообщить("шк-"+шк);
        наим = ы.н1.Наименование;
        Макет.Рисунки.шк1.Объект.ТипКода = 1;
        Макет.Рисунки.шк1.Объект.CodeText  = шк;
        Макет.Рисунки.шк1.Объект.Сообщение = шк;         
        стр.Параметры.Н1 = наим;    
        
        Если ы.н2 <> Неопределено Тогда
        наим2 = СокрЛП(""+ы.н2.Наименование);    
        шк2 = выдатьШкТов(ы.н2.Ссылка);               Сообщить("шк2-"+шк2);
        Макет.Рисунки.шк2.Объект.ТипКода = 1;
        Макет.Рисунки.шк2.Объект.CodeText  = шк2;
        Макет.Рисунки.шк2.Объект.Сообщение = шк2;
        стр.Параметры.Н2 = наим2;
        КонецЕсли;
        
        Если ы.н3 <> Неопределено Тогда
        наим3 = СокрЛП(""+ы.н3.Наименование);
        шк3 = выдатьШкТов(ы.н3.Ссылка);              Сообщить("шк3-"+шк3);
        Макет.Рисунки.шк3.Объект.ТипКода = 1;
        Макет.Рисунки.шк3.Объект.CodeText  = шк3;
        Макет.Рисунки.шк3.Объект.Сообщение = шк3;
        стр.Параметры.Н3 = наим3;
        КонецЕсли;
        
        Если ы.н4 <> Неопределено Тогда
        наим4 = СокрЛП(""+ы.н4.Наименование);    
        шк4 = выдатьШкТов(ы.н4.Ссылка);           Сообщить("шк4-"+шк4);
        Макет.Рисунки.шк4.Объект.ТипКода = 1;
        Макет.Рисунки.шк4.Объект.CodeText  = шк4;
        Макет.Рисунки.шк4.Объект.Сообщение = шк4;
        стр.Параметры.Н4 = наим4;
        КонецЕсли;
        
        Если ы.н5 <> Неопределено Тогда
        наим5 = СокрЛП(""+ы.н5.Наименование);        
        шк5 = выдатьШкТов(ы.н5.Ссылка);           Сообщить("шк5-"+шк5);
        Макет.Рисунки.шк5.Объект.ТипКода = 1;
        Макет.Рисунки.шк5.Объект.CodeText  = шк5;
        Макет.Рисунки.шк5.Объект.Сообщение = шк5;
        стр.Параметры.Н5 = наим5;
        КонецЕсли;
        
        табДок.Вывести(стр);
    КонецЦикла;
шк1...шк5 это рисунки шк на форме. Дело не в размерах, со второго ряда начинают шк заполнятся, но даже если товары разные, одним и тем же, затем следующий шк.
Сами шк заполняются корректно(в CodeText и Сообщение отправляется реальный шк.
Не понимаю что вообще творится. Раньше выводил только 1шк на форму, а тут этикетки понадобились. Чешу репу с утра. Глухо. Есть идеи?
1 jeka_molodec
 
03.08.19
19:56
Как понимаю это платформа подтягивает бардкод. Все рисунки шк делались просто копированием с изменением имени. Может в этом дело? Обращается на один объект или как то так.
2 jeka_molodec
 
03.08.19
20:04
Возможно что вставляется только одна картинка шк? А все другие идут лесом? Вставляю в макет таблица-рисункци-вставить объект 1с.V8 печать штрих-кодов
3 jeka_molodec
 
03.08.19
21:14
Решилось. Может кому поможет. Просто вначале надо выводить значение шк а уж потом получать строку. И все работает. Чудеса. Еще бы понять логику.
Строки получаем только в конце, и выводим прочие параметры:
стр = Макет.ПолучитьОбласть("Строка");
        стр.Параметры.Н1 = наим;
        стр.Параметры.Н2 = наим2;
        стр.Параметры.Н3 = наим3;
        стр.Параметры.Н4 = наим4;
        стр.Параметры.Н5 = наим5;
        табДок.Вывести(стр);

Полность.....
Для Каждого ы Из табТ Цикл
        //стр = Макет.ПолучитьОбласть("Строка");
        шк = выдатьШкТов(ы.н1.Ссылка);             //Сообщить("шк-"+шк);
        наим = ы.н1.Наименование;
        Макет.Рисунки.шк1.Объект.ТипКода = 1;
        Макет.Рисунки.шк1.Объект.CodeText  = шк;
        Макет.Рисунки.шк1.Объект.Сообщение = шк;         
        //стр = Макет.ПолучитьОбласть("Строка");
        //стр.Параметры.Н1 = наим;    
        
        Если ы.н2 <> Неопределено Тогда
        наим2 = СокрЛП(""+ы.н2.Наименование);    
        шк2 = выдатьШкТов(ы.н2.Ссылка);               //Сообщить("шк2-"+шк2);
        Макет.Рисунки.sk2.Объект.ТипКода = 1;
        Макет.Рисунки.sk2.Объект.CodeText  = шк2;
        Макет.Рисунки.sk2.Объект.Сообщение = шк2;
        //стр.Параметры.Н2 = наим2;
        КонецЕсли;
        
        Если ы.н3 <> Неопределено Тогда
        наим3 = СокрЛП(""+ы.н3.Наименование);
        шк3 = выдатьШкТов(ы.н3.Ссылка);              //Сообщить("шк3-"+шк3);
        Макет.Рисунки.шк3.Объект.ТипКода = 1;
        Макет.Рисунки.шк3.Объект.CodeText  = шк3;
        Макет.Рисунки.шк3.Объект.Сообщение = шк3;
        //стр.Параметры.Н3 = наим3;
        КонецЕсли;
        
        Если ы.н4 <> Неопределено Тогда
        наим4 = СокрЛП(""+ы.н4.Наименование);    
        шк4 = выдатьШкТов(ы.н4.Ссылка);           //Сообщить("шк4-"+шк4);
        Макет.Рисунки.шк4.Объект.ТипКода = 1;
        Макет.Рисунки.шк4.Объект.CodeText  = шк4;
        Макет.Рисунки.шк4.Объект.Сообщение = шк4;
        //стр.Параметры.Н4 = наим4;
        КонецЕсли;
        
        Если ы.н5 <> Неопределено Тогда
        наим5 = СокрЛП(""+ы.н5.Наименование);        
        шк5 = выдатьШкТов(ы.н5.Ссылка);           //Сообщить("шк5-"+шк5);
        Макет.Рисунки.шк5.Объект.ТипКода = 1;
        Макет.Рисунки.шк5.Объект.CodeText  = шк5;
        Макет.Рисунки.шк5.Объект.Сообщение = шк5;
        //стр.Параметры.Н5 = наим5;
        КонецЕсли;
        
        стр = Макет.ПолучитьОбласть("Строка");
        стр.Параметры.Н1 = наим;
        стр.Параметры.Н2 = наим2;
        стр.Параметры.Н3 = наим3;
        стр.Параметры.Н4 = наим4;
        стр.Параметры.Н5 = наим5;
        табДок.Вывести(стр);
    КонецЦикла;
Ну вообще, целый день бубна.