Версия для печати темы (https://pro1c.org.ua/index.php?s=9044ce3c0527cfa39a891ca9c4dc2ee5&showtopic=25277)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Как позиционировать текущую строку ...?

Автор: cobra77777 22.09.15, 16:14

Есть код (см.внизу).
Собственно хочу вывести отчёт Только текущую строку (одну) (а не всё сразу как в моём примере (цикле)) ?


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

    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьТабличнаяЧастьШапка = Макет.ПолучитьОбласть("ТабличнаяЧастьШапка");
    ОбластьТабличнаяЧасть = Макет.ПолучитьОбласть("ТабличнаяЧасть");
    Подвал = Макет.ПолучитьОбласть("Подвал");

    ТабДок.Очистить();

    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;

        ТабДок.Вывести(ОбластьЗаголовок);
        
        Шапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Шапка, Выборка.Уровень());


        ТабДок.Вывести(ОбластьТабличнаяЧастьШапка);
        ВыборкаТабличнаяЧасть = Выборка.ТабличнаяЧасть.Выбрать();
        Пока ВыборкаТабличнаяЧасть.Следующий() Цикл
            ОбластьТабличнаяЧасть.Параметры.Заполнить(ВыборкаТабличнаяЧасть);
             ТабДок.Вывести(ОбластьТабличнаяЧасть, ВыборкаТабличнаяЧасть.Уровень());
        КонецЦикла;
        
        Подвал.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Подвал);
        ТабДок.АвтоМасштаб = Истина;
        ТабДок.ПолеСлева = 7;
        ТабДок.ПолеСправа=10;
        ТабДок.ПолеСверху=10;
        ТабДок.ПолеСнизу=10;
        ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
           ВставлятьРазделительСтраниц = Истина;
        
         КонецЦикла;
    //}}
КонецПроцедуры



 ! 

Выделяйте код!
 

Автор: VikingKosmo 22.09.15, 16:17

Если этот код находится в модуле менеджера, то никак. Текущая строка доступна только в модуле формы. Что вообще требуется, сформировать некий ТабличныйДокумент в который попадут данные только из текущей строки табличной части, что ли?

Автор: cobra77777 22.09.15, 16:28

Цитата(VikingKosmo @ 22.09.15, 17:17) *
Если этот код находится в модуле менеджера, то никак. Текущая строка доступна только в модуле формы. Что вообще требуется, сформировать некий ТабличныйДокумент в который попадут данные только из текущей строки табличной части, что ли?

Да собственно нужно из Табличной Части (далее ТЧ) по ОДНОЙ СТРОКЕ выводилась на Печать этикетка. Т.е. куда установил курсор в ТЧ то и распечатывалось.

Автор: Vofka 22.09.15, 16:43

Цитата(cobra77777 @ 22.09.15, 17:28) *
Да собственно нужно из Табличной Части (далее ТЧ) по ОДНОЙ СТРОКЕ выводилась на Печать этикетка. Т.е. куда установил курсор в ТЧ то и распечатывалось.

Тогда нужно в процедуру печати передавать данные текущей строки, которые, как написали выше, можно получить только в модуле формы.

Автор: cobra77777 22.09.15, 17:05

Цитата(Vofka @ 22.09.15, 17:43) *
Тогда нужно в процедуру печати передавать данные текущей строки, которые, как написали выше, можно получить только в модуле формы.

На форме создал Кнопку прописал две директивы &Клиент &На сервере, а далее... ?

Автор: Vofka 22.09.15, 19:34

Это вы документ напечатать хотите? Создайте параметризуемую команду с типом ссылка на ваш документ. В обработчике команды будет ссылка на него. Там же можно вставить серверную функцию, которая вернет Табличный документ (либо запросит его у какой-то другой процедуры). А саму команду в виде кнопки сможете вынести практически везде, куда надо.

Автор: cobra77777 23.09.15, 12:23

Цитата(Vofka @ 22.09.15, 20:34) *
Это вы документ напечатать хотите? Создайте параметризуемую команду с типом ссылка на ваш документ. В обработчике команды будет ссылка на него. Там же можно вставить серверную функцию, которая вернет Табличный документ (либо запросит его у какой-то другой процедуры). А саму команду в виде кнопки сможете вынести практически везде, куда надо.

Собственно хочу из табл.части распечатывать (по одной шт.) этикетки. Это я имею ввиду.

Автор: Vofka 23.09.15, 13:00

Так у вас в функции печати есть ссылка на документ. Поэтому я предполагаю, что ваша строка - это конкретный документ.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua