8.х Фиксирование ячеек в табличном редакторе для печати

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем netuser, 14 июл 2009.

  1. TopicStarter Overlay
    netuser
    Offline

    netuser

    Регистрация:
    3 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Доброе время суток.
    Я в 1С работаю недавно и многих вещей еще незнаю, если кто знает подскажите пожалуйста
    Суть вопроса такова: Мной был сделан документ который выводится на печать, но нужно чтобы при печати нижняя часть подвала оставалась фиксированной и никуда не сползала при большом объеме данных.
    Очень прошу помогите, а то завтра сдавать начальнику, а он просто зверь :unsure: :smile:
    Заранее благодарю!
  2. Kruck
    Offline

    Kruck Опытный в 1С

    Регистрация:
    25 июн 2008
    Сообщения:
    47
    Симпатии:
    0
    Баллы:
    26
    Судя по всему низ и право нелься фиксировать.
    А так свойства табличного документа ФиксацияСлева и ФиксацияСверху
  3. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Посмотри в печати любой типовой как сделан вывод итогов по странице в накладных. Есть такой метод "ПроверитьВывод", его и посмотри.
  4. TopicStarter Overlay
    netuser
    Offline

    netuser

    Регистрация:
    3 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Спасибо! обязательно посмотрю. а насчет фиксации слева и шапки знаю, в книжке "конфигурирование и администрирование" поставляемой в стандартном комплекте это описано, а вот про фиксацию ячеек ничего нет :(
  5. TopicStarter Overlay
    netuser
    Offline

    netuser

    Регистрация:
    3 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Ничего не получилось, 2 день пытаюсь зафиксировать нижнюю часть подвала и никак :aua: :unsure: начальник уже рвет и мечет, требует срочно документ :smile:
    вот собственно сам текст процедуры печать, если кто скажет как его подкорректировать, чтобы заработало, буду очень благодарен!


    СписокМаршрутов = Новый СписокЗначений;
    СписокМаршрутов.Добавить(Справочники.Маршруты.НайтиПоКоду("1"));
    СписокМаршрутов.Добавить(Справочники.Маршруты.НайтиПоКоду("2"));
    СписокМаршрутов.Добавить(Справочники.Маршруты.НайтиПоКоду("3"));
    Если СписокМаршрутов.НайтиПоЗначению(ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Маршрут) = Неопределено Тогда
    //Сообщить("Значение не найдено!");
    Иначе
    ТабДок1 = Новый ТабличныйДокумент;
    Макет = Документы.ТТН.ПолучитьМакет("ВедомостьВодит");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Строка= Макет.ПолучитьОбласть("Строка");
    Итого = Макет.ПолучитьОбласть("Итого");
    Подвал = Макет.ПолучитьОбласть("Подвал");

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

    Шапка.Параметры.Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Шапка.Параметры.Маршрут=ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Маршрут;
    Шапка.Параметры.Водитель=ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Водитель;
    ТабДок1.Вывести(Шапка);

    Подвал.Параметры.Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Подвал.Параметры.Маршрут=ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Маршрут;

    Номер=1;
    Для каждого Стр Из ТЗ Цикл
    Строка.Параметры.Ном=Номер;
    Номер=Номер+1;
    Строка.Параметры.Контр="("+Стр.КодГр+")"+Стр.НаимГр;
    СведенияОГрузополучателе = СведенияОЮрФизЛице(Справочники.Контрагенты.НайтиПоКоду(Стр.КодГр), Дата);
    СтрГрузополучатель = ОписаниеОрганизации(СведенияОГрузополучателе, "ФактическийАдрес,");
    Адрес= СтрГрузополучатель;
    Строка.Параметры.Адрес=Адрес;
    ТабДок1.Вывести(Строка);
    КонецЦикла;
    ТабДок1.Вывести(Итого);
    ТабДок1.Вывести(Подвал);

    Если ПравоДоступа("Администрирование",Метаданные) Тогда
    ТабДок1.Показать();
    КонецЕсли;
    Если Константы.ПечатьНа1Принтер.Получить() Тогда
    ТабДок1.АвтоМасштаб=Истина;
    ТабДок1.ИмяПринтера=СокрП(Константы.ИмяПринтера.Получить());
    //ТабДок1.КоличествоЭкземпляров=2;
    ТабДок1.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    Текст1=Новый ТекстовыйДокумент;
    Текст1.Прочитать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    Текст1.ЗаменитьСтроку(2,"DUPX 2;");
    Текст1.ЗаменитьСтроку(3,"PSRC 1;");
    Текст1.ЗаменитьСтроку(4,"STPL 1;");
    Текст1.Записать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    ТабДок1.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    ТабДок1.Напечатать();
    Иначе
    ТабДок1.АвтоМасштаб=Истина;
    ТабДок1.ИмяПринтера=СокрП(Константы.ИмяПринтера1.Получить());
    // ТабДок1.КоличествоЭкземпляров=2;
    ТабДок1.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    Текст1=Новый ТекстовыйДокумент;
    Текст1.Прочитать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    Текст1.ЗаменитьСтроку(2,"DUPX 2;");
    Текст1.ЗаменитьСтроку(3,"PSRC 1;");
    Текст1.ЗаменитьСтроку(4,"STPL 1;");
    Текст1.Записать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    ТабДок1.Напечатать();
    КонецЕсли;

    КонецЕсли;
  6. TopicStarter Overlay
    netuser
    Offline

    netuser

    Регистрация:
    3 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Внес небольшие изменения, но при печати подвал все равно смещается.Буду ОЧЕНЬ благодарен если кто нибудь скажет, что я делаю не так!
    Заранее благодарю!

    Код:
    СписокМаршрутов = Новый СписокЗначений;
    СписокМаршрутов.Добавить(Справочники.Маршруты.НайтиПоКоду("1"));  
    СписокМаршрутов.Добавить(Справочники.Маршруты.НайтиПоКоду("2"));  
    СписокМаршрутов.Добавить(Справочники.Маршруты.НайтиПоКоду("3"));  
    
    Если СписокМаршрутов.НайтиПоЗначению(ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Маршрут) = Неопределено Тогда
    //Сообщить("Значение не найдено!");
    Иначе
    СодСтр=Новый массив; //1
    ТабДок1 = Новый ТабличныйДокумент;
    Макет = Документы.ТТН.ПолучитьМакет("ВедомостьВодит");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Строка=  Макет.ПолучитьОбласть("Строка");
    Итого = Макет.ПолучитьОбласть("Итого");
    Подвал = Макет.ПолучитьОбласть("Подвал");
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |	ТТН.Ссылка,
    |	ТТН.Грузополучатель.Код КАК КодГр,
    |	ТТН.Грузополучатель.Наименование КАК НаимГр
    |ИЗ
    |	Документ.ТТН КАК ТТН
    |ГДЕ
    |	ТТН.Маршрут = &Маршрут
    |	И ТТН.Смена = &Смена
    |	И ТТН.Напечатан = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    |	ТТН.Номер";
    Запрос.УстановитьПараметр("Маршрут",ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Маршрут);
    Запрос.УстановитьПараметр("Смена",ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Смена);
    ТЗ=Запрос.Выполнить().Выгрузить();
    //ТЗ.ВыбратьСтроку();
    
    Шапка.Параметры.Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Шапка.Параметры.Маршрут=ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Маршрут;
    Шапка.Параметры.Водитель=ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Водитель;
    ТабДок1.Вывести(Шапка);
    
    СодСтр.Очистить();//1
    СодСтр.Добавить(Подвал);//1
    СодСтр.Добавить(Строка);//1
    
    Подвал.Параметры.Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Дата=Дата("00010101"+Формат(ТекущаяДата(), "ДФ = ""ЧЧммсс"""));
    Подвал.Параметры.Маршрут=ЭлементыФормы.ЖурналДокументовСписок.ТекущаяСтрока.Маршрут;
    Номер=1;
    Для каждого Стр Из ТЗ Цикл
    Строка.Параметры.Ном=Номер;
    Номер=Номер+1;
    Строка.Параметры.Контр="("+Стр.КодГр+")"+Стр.НаимГр;
    СведенияОГрузополучателе = СведенияОЮрФизЛице(Справочники.Контрагенты.НайтиПоКоду(Стр.КодГр), Дата);
    СтрГрузополучатель = ОписаниеОрганизации(СведенияОГрузополучателе, "ФактическийАдрес,");
    Адрес= СтрГрузополучатель;
    //Адреса = РегистрыСведений.КонтактнаяИнформация;
    //Отбор=Новый Структура;
    //Отбор.Вставить("Объект",Справочники.Контрагенты.НайтиПоКоду(Стр.КодГр));
    //Отбор.Вставить("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);
    //Отбор.Вставить("Вид",Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00002"));
    //ПоАдресу=Адреса.Получить(Отбор);
    //Строка.Параметры.Адрес=ПоАдресу.Представление;
    
    Строка.Параметры.Адрес=Адрес;
    ТабДок1.Вывести(Строка);
    Если Не ТабДок1.ПроверитьВывод(СодСтр) Тогда   //1
    СодСтр.Очистить();                                //1                  
    СодСтр.Добавить(Подвал);                          //1
    Пока ТабДок1.ПроверитьВывод(СодСтр) Цикл          //1
    СодСтр.Очистить();                                //1                 
    СодСтр.Добавить(Подвал);                          //1
    КонецЦикла;                          //1
    
    КонецЕсли;//1
    КонецЦикла;
    ТабДок1.Вывести(Итого);
    ТабДок1.Вывести(Подвал);
    КонецЕсли; //1
    Если ПравоДоступа("Администрирование",Метаданные) Тогда
    ТабДок1.Показать();		
    КонецЕсли;		
    
    
    СодСтр.Очистить();                            //1
    СодСтр.Добавить(Подвал);              //1
    СодСтр.Добавить(Строка);               //1
    СодСтр.Добавить(Макет);               //1
    СодСтр.Добавить(Итого);                //1
    Пока ТабДок1.ПроверитьВывод(СодСтр) Цикл  //1
    СодСтр.Очистить();                            //1
    СодСтр.Добавить(Итого);                //1       
    СодСтр.Добавить(Подвал);              //1     
    КонецЦикла;//1
    Если Константы.ПечатьНа1Принтер.Получить() Тогда
    ТабДок1.АвтоМасштаб=Истина;
    ТабДок1.ИмяПринтера=СокрП(Константы.ИмяПринтера.Получить());
    //ТабДок1.КоличествоЭкземпляров=2;
    ТабДок1.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    Текст1=Новый ТекстовыйДокумент;
    Текст1.Прочитать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    Текст1.ЗаменитьСтроку(2,"DUPX 2;");
    Текст1.ЗаменитьСтроку(3,"PSRC 1;");
    Текст1.ЗаменитьСтроку(4,"STPL 1;");
    Текст1.Записать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    ТабДок1.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    ТабДок1.Напечатать();
    Иначе
    ТабДок1.АвтоМасштаб=Истина;
    ТабДок1.ИмяПринтера=СокрП(Константы.ИмяПринтера1.Получить());
    //	ТабДок1.КоличествоЭкземпляров=2;
    ТабДок1.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    Текст1=Новый ТекстовыйДокумент;
    Текст1.Прочитать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    Текст1.ЗаменитьСтроку(2,"DUPX 2;");
    Текст1.ЗаменитьСтроку(3,"PSRC 1;");
    Текст1.ЗаменитьСтроку(4,"STPL 1;");
    Текст1.Записать("c:\Kyocera\mac1.txt",КодировкаТекста.ANSI);
    ТабДок1.Напечатать();
    КонецЕсли;
    КонецЕсли;
    
    

Поделиться этой страницей