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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Не получается зафиксировать на внешней ПФ сверху 3 строки

Автор: Stemesseder 09.06.18, 20:27

Здравствуйте
1С:Предприятие 8.3 (8.3.10.2580) "Управление торговым предприятием для Украины", редакция 1.2.

На внешней печатной форме не получается зафиксировать сверху шапку таблицы, в модуле внешней объекта обработки функция

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

        РезультатЗапроса = Запрос.Выполнить();
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        Номер = 0;
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Номер = Номер + 1;
            СтрокаТаблицы.Параметры.Номер=Номер;
            ТабДок.Вывести(СтрокаТаблицы);
        КонецЦикла;

ТабДок.ФиксацияСверху = 3; // Это не фиксирует
Возврат ТабДок;
КонецФункции;


Подскажите как закрепить сверху печатной формы 3 строки (первая пустая, 2 и 3 - это как раз область "Шапка таблицы"

Автор: Prospero 11.06.18, 15:56

Stemesseder @ 09.06.18, 21:27 * ,
Имхо, итоговый табдок выводится общей формой.
А фиксация действительно туда почему-то не передаётся, печалька...
Как вариант, в форме регистрации внешней формы добавьте
дополнительный параметр.
И придетса добавить строку принудительной установки фиксации
В самой общей форме ( ПриОткрытии)
Пока только так получилось.
Может можно как-то еще без правки конфы.
Делал, как описал, работает.
Если надо, напишу подробно, что и куда...

Автор: Stemesseder 11.06.18, 16:25

Prospero @ Сегодня, 16:56 * ,

Поправить конфу не проблема, пожалуйста немного подробнее опишите что и куда

Автор: Prospero 11.06.18, 22:41

Stemesseder @ Сегодня, 17:25 * ,
Итак...
Создал простенькую ВПФ, стандартно,
1. В реквизитах добавил еще реквизит "ДополнительныеПараметры" (Тип = Произвольный)
2. Перед возвратом ТабДок дописал

Если ЗначениеЗаполнено(ДополнительныеПараметры) Тогда
        ТабДок.ФиксацияСверху = ДополнительныеПараметры.Фиксация;
    КонецЕсли;

Далее, "Сервис-ВПФ и обработки - ВПФ"
Дополнительные ВПФ - Добавить.
Выбираем ВПФ, Принадлежность - добавить.
3. Ваш документ (я брал документ "Реализация товаров и услуг").
4. В Параметрах Обработки - Задать параметры
Имя = Фиксация", Тип Число, Значение = 5
5. В модуле общей формы "ПечатьДокументов" Процедура "ПриОткрытии" добавил
ЭлементыФормы.ПолеТабличногоДокумента.ФиксацияСверху = ПечатныйДокумент.ФиксацияСверху;

т.к. именно переданный в строке
ЭлементыФормы.ПолеТабличногоДокумента.ВставитьОбласть(ПечатныйДокумент.Область());

ПечДок и есть Ваш ТабДок.
На картинке специально стопанул отладчик на этой строке. Размер фиксации передается.
Как-то так...
6. Печатная форма в списке.
7. Как загрузилось...
8. Прокрутил...
Скрины добавил
1.
2.
3.
4.
5.
6.
7.
8.

В Вашем случае: Фиксация=3 smile.gif
Может, поможет smile.gif

Автор: sava1 12.06.18, 7:02

Охренеть - сколько можно наворотить "умеючи" ...

в модуле впф

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


Автор: Stemesseder 12.06.18, 20:15

sava1 @ Сегодня, 8:02 * ,

Спасибо огромное, работает. Ваш вариант проще гораздо и не требует менять конфигурацию. Думаю будет полезно и для Prospero. Вопрос закрыт. Еще раз спасибо.

Prospero @ Вчера, 23:41 * ,

Вам спасибо за подробное пояснение, правда проверить работу не успел, появился следующий ответ. Но в любом случае спасибо что не прошли мимо.

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