Имя: Пароль:
1C
1С v8
Отчёт "Этикетки" с нуля
0 laby1
 
17.12.18
10:18
Здравствуйте, дорогие жители волшебной страны Миста!

Хочу написать с нуля отчёт "Этикетки". По некому справочнику, типа номенклатуры нужно распечатать квадратиками (Типа ценников) на обычном принтере этикетки.

Подскажите путь!

(только не слишком далеко))
1 Натуральный Йог
 
17.12.18
10:20
(0) Посмотри как сделано в УТ и сделай так же
2 РБ
 
17.12.18
10:22
(0) на ИС просто куча отчетов по ценникам и этикеткам
3 Krabb
 
17.12.18
10:25
(1) Он же просил не слишком далеко :)
(0) Обычный принтер этикеток это как правило обычный windows-принтер, соответственно делаешь обычную печатную форму, выводишь на нее что нужно, а при печати в настройках параметров страницы выбираешь формат бумаги по размеру твоей этикетки (его нужно предварительно создать в свойствах принтера)
4 Garykom
 
гуру
17.12.18
10:25
>волшебной страны Миста!

Сказочные д...бы ?
5 Масянька
 
17.12.18
10:27
(0) А какой путь тебя интересует?
6 Базис
 
naïve
17.12.18
10:30
Лучше расскажи, что сделал и во что упёрся. Там всё просто. Вывести секцию и присоединить секцию.
7 laby1
 
17.12.18
10:32
(1) У меня УПП. Да, там есть обработка "ПечатьЦенников". В макете нарисован макет одного ценника. В модуле формы есть функция "ПечатьЦеннка". Надеюсь она мне поможет. Вот она:

// Функция формирует табличный документ - печатная форма ценника.
//
// Возвращаемое значение:
//  ТабличныйДокумент - сформированный табличный документ или Неопределено, если есть ошибки.
//
Функция ПечатьЦенника() Экспорт

    Если НЕ ЗначениеЗаполнено(Организация) Тогда
        Предупреждение("Не выбрана организация!");
        Возврат Неопределено;
    КонецЕсли;

    ТабДокумент                     = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ценник";
    Макет                           = ПолучитьМакет("Ценник");
    ОбластьЦенника                  = Макет.ПолучитьОбласть("Строка|Столбец");

    ДатаПечати = РабочаяДата;

    ТекСтолбец = 0;
    ТекСтрока  = 0;
    
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
        ТоварКод = "Артикул";
    ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
        ТоварКод = "Код";
    Иначе
        ТоварКод = "";
    КонецЕсли;
    
    Для Каждого СтрокаТаблицы Из Товары Цикл
        Если СтрокаТаблицы.Печать Тогда
            Для Тмп = 1 По СтрокаТаблицы.Количество Цикл
                ОбластьЦенника.Параметры.Заполнить(СтрокаТаблицы);
                ОбластьЦенника.Параметры.НоменклатураНаименование        = СтрокаТаблицы.Номенклатура.НаименованиеПолное + ?(ТоварКод <> "", " " + СокрЛП(СтрокаТаблицы.Номенклатура[ТоварКод]), "");
                ОбластьЦенника.Параметры.ХарактеристикаНаименование      = СтрокаТаблицы.ХарактеристикаНоменклатуры;
                ОбластьЦенника.Параметры.ЕдиницаНаименование             = СтрокаТаблицы.ЕдиницаИзмерения;
                ОбластьЦенника.Параметры.Цена                            = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Цена, Валюта, "00");
                ОбластьЦенника.Параметры.ДатаПечати                      = ДатаПечати;
                ОбластьЦенника.Параметры.Организация                     = Организация;
                ОбластьЦенника.Параметры.ОрганизацияНаименование         = Организация;
                ОбластьЦенника.Параметры.НоменклатураСтранаПроисхождения = СтрокаТаблицы.Номенклатура.СтранаПроисхождения;

                Если ТекСтолбец = 0 Тогда
                    ТабДокумент.Вывести(ОбластьЦенника);
                Иначе
                    ТабДокумент.Присоединить(ОбластьЦенника);
                КонецЕсли;

                ТекСтолбец = ТекСтолбец + 1;

                Если ТекСтолбец = 5 Тогда
                    ТекСтрока  = ТекСтрока + 1;
                    ТекСтолбец = 0;
                КонецЕсли;

                Если ТекСтрока = 3 Тогда
                    ТекСтрока = 0;
                    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;

    ТабДокумент.ТолькоПросмотр = Истина;

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

КонецФункции // ПечатьЦенника()
8 laby1
 
17.12.18
10:34
(6) Да, спасибо, ещё ничего не делал. Решил сразу на мисту написать, давно не писал. Спасибо за помощь, да, действительно всё просто.
9 Масянька
 
17.12.18
10:36
(8) Браво! :)
10 Krabb
 
17.12.18
10:38
(8) Вот-вот, а потом когда люди приходят с нормальными вопросами им никто помогать не хочет...
11 laby1
 
17.12.18
10:39
(7) точнее не в модуле формы, а в модуле объекта, а из модуля формы она уже вызывается.
12 laby1
 
17.12.18
10:40
(10) Вопрос нормальный. Я прошерстил интернет на эту тему, везде всякая не поймешь что. А тут чётко. Задал вопрос, получил ответ.
13 laby1
 
17.12.18
10:45
(12) К тому же полно непонятных по платным подпискам обработок, а мне нужно понять, как это сделать своими руками быстро под себя без лишней универсальности.
14 laby1
 
17.12.18
10:46
(4) Сказочные дорогие коллеги по цеху.
15 Сияющий в темноте
 
17.12.18
13:14
Сколько платят за решение вопроса-тарелку супа?
16 Злопчинский
 
17.12.18
13:24
этих этикеток и ценников на инфостарте - как шпингалетов.
Программист всегда исправляет последнюю ошибку.