Имя: Пароль:
1C
1C 7.7
v7: Подскажите как правильно сделать?!(Печатная форма,порядок печати)
,
0 ev048
 
18.07.11
12:49
Доброго времени суток Уважаемые знатоки!суть моего вопроса заключается в том что,есть некая печатная форма которая выдает список значений мне поставили задачу сделать так:подвал печатался на новой странице энто я (сделал) и пред подвалом печаталась 1 строка из списка значений (вот с этим у мя проблема) подскажите пожалуйста как  поступить?
буду благодарен всем откликнувшимся на проблему.
1 chief accountant
 
18.07.11
12:58
Выводить перед подвалом
2 ev048
 
18.07.11
13:00
пробовал  выводить перед подвалом но  он автоматически переносит  подвал на новую страницу,а мне нужно чтоб  подвал  был на новой странице с последней строкой.
3 chief accountant
 
18.07.11
13:03
Подвал переносится переводом страницы или НоваяСтраница?
4 Ochkarito
 
18.07.11
13:03
(2) В секцию подвала данную строку внеси.
5 fedoss
 
18.07.11
13:04
Для Х = 1 По Список.РазмерСписка() Цикл
 Если Х = Список.РазмерСписка() Тогда
   Таб.НоваяСтраница();
 КонецЕсли
 //Выводим строку
КонецЦикла
//ВыводимПодвал
6 ev048
 
18.07.11
13:04
(3)установил новой стр.
7 chief accountant
 
18.07.11
13:05
(6) Новую страницу делай перед выводом твоей строки
8 chief accountant
 
18.07.11
13:07
(5) Что это?
9 ev048
 
18.07.11
13:11
(7 )не прокатило((
10 chief accountant
 
18.07.11
13:13
(9) Что значит не прокатило?
11 ev048
 
18.07.11
13:19
(10)не получилось((
12 1Сергей
 
18.07.11
13:19
(11) мало кода
13 ev048
 
18.07.11
13:23
(4)я не стал вносить в секцию подвал стр,а сделал копию стр и назвал её стр1,так вообщем получилось благодарю вас но только по середине в промежутке пошли белые листы пустые!(((
14 ev048
 
18.07.11
13:24
(12)как бы  данный док не я писал и переделывать его нет желания,да и опыта маловато  вот решил обойтись малой кровью обратится к Знатокам форума))
15 miki
 
18.07.11
13:25
(14)разницу между знатоком и телепатом чувствуешь?
16 ev048
 
18.07.11
13:26
и стабильно  через лист заполненный бьет 2  пустых.
17 chief accountant
 
18.07.11
13:27
(16) Лишку НоваяСтраница где-то. Читай (12)
18 ev048
 
18.07.11
13:27
(15)естественно))после того как разрешится  моя проблема,погадаете?
19 miki
 
18.07.11
13:27
(17)есть ещё вариант...
20 miki
 
18.07.11
13:28
(18)тогжа кури ещё разницу между телепатом и гадалкой
21 chief accountant
 
18.07.11
13:28
(19) Угумс
22 ev048
 
18.07.11
13:31
(19)Какой?
(20)Не курю вообще!
23 1Сергей
 
18.07.11
13:32
(22) лучше бы пил... и курил...
24 ev048
 
18.07.11
13:36
(23)спасибо насмотрелся,весь круг  общения так сказать товарищи спились и это в 21 год!а дальше что?какие жизненные перспективы?сейчас нужно прокачивать мозги нарабатывать опыт!
25 chief accountant
 
18.07.11
13:39
(24) Философ?
26 ev048
 
18.07.11
13:48
(25)нет беспокойство за будущее и раздражение от перспективы молодежи,такое ощущение что нормальных адекватных молодых людей не осталось.Плюс желание вырваться из этого замкнутого круга!
27 1Сергей
 
18.07.11
13:50
(26) послушай, тебя уже как минимум трое попросили выложить код а ты начал философствовать. Так кто тут неадекват?
28 Xapac
 
18.07.11
13:56
(0)То что ты не пьешь не куришь, это молоток. А коду все равно покажи(не боись не украдут).
29 ev048
 
18.07.11
14:14
согласен отошел от темы.в данный момент при выводе печатной формы бьет 2 пустых листа при условии что убрал НоваяСтр.
30 ev048
 
18.07.11
14:15
КонецЕсли;
       Цена = Окр(?(Количество = 0, 0, СуммаПервоначальнойСтоимости / Количество), 2);
       
       СрокСлужбы = "";
       Если (НазначениеИспользования.СпособПогашенияСтоимости = Перечисление.СпособПогашенияСтоимости.Линейный)
        или (НазначениеИспользования.СпособПогашенияСтоимости = Перечисление.СпособПогашенияСтоимости.ПогашатьСтоимостьВМоментПередачиВПроизводство) Тогда
           Если ПустоеЗначение(НазначениеИспользования.ДатаВводаВЭксплуатацию) = 0 Тогда
               СрокСлужбы = (ДатаГод(КонМесяца(ДатаДок)) - ДатаГод(НазначениеИспользования.ДатаВводаВЭксплуатацию)) * 12
                       + ДатаМесяц(КонМесяца(ДатаДок)) - ДатаМесяц(НазначениеИспользования.ДатаВводаВЭксплуатацию);    
           КонецЕсли;
       КонецЕсли;
       
       ИтогКоличество = ИтогКоличество + Количество;
       
       Таб.ВывестиСекцию("Строка");
       Ном = Ном + 1;
   КонецЦикла;
   
   Для i=Ном по (КоличествоСтрок1 + КоличествоСтрок2) Цикл
       Если i = КоличествоСтрок1 + 1 Тогда
           Таб.ВывестиСекцию("ПоследняяСтрока");
           //Таб.НоваяСтраница();
           Таб.ВывестиСекцию("ШапкаТаблицы");
           Таб.ВывестиСекцию("ПустаяСтрока");
           
       ИначеЕсли i = КоличествоСтрок1 + КоличествоСтрок2 Тогда
           Таб.ВывестиСекцию("Итого");
           
       Иначе
           Таб.ВывестиСекцию("ПустаяСтрока");
       КонецЕсли;
   КонецЦикла;
   Таб.ВывестиСекцию("Строка1");
   Таб.ВывестиСекцию("Подвал");
   Таб.Опции(0, 0, ?(Проведен() = 0, 1, 0), 0, "ОпцииПечатиМБ8", "ОкноМБ8");
   Таб.ПараметрыСтраницы(2);
   Таб.ОбластьПечати(?(Проведен() = 0, 2, 1), 2,,);
   Таб.ТолькоПросмотр(1);
   Таб.Показать();
   
КонецПроцедуры // Печать
31 miki
 
18.07.11
14:15
(29)значит (19). Это к вопросу о телепатии...
32 ev048
 
18.07.11
14:16
или выложить полностью весь код процедуры?
33 ev048
 
18.07.11
14:18
29 к 27
34 ev048
 
18.07.11
14:20
Вот полный код процедуры печать.

Процедура Печать()
       
   СтруктурноеПодразделение = "";
   Если ВидМатериалов = 2 Тогда // спецоснастка
       СтруктурноеПодразделение = Подразделение;
   КонецЕсли;
   
   Если ВидСписания = 1 Тогда // списание по назначению использования
       Счет = "";
   ИначеЕсли ВидСписания = 2 Тогда // списание в дебет счета 91.2
       Счет = "91.2";
   ИначеЕсли ВидСписания = 3 Тогда // черезвычайные расходы
       Счет = "99";
   КонецЕсли;
   
   КоличествоСтрок1 = 9; //на лицевой стороне
   КоличествоСтрок2 = 5; //на оборотной стороне
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("МБ-8");
   ПредставлениеГода = Лев(ДатаГод(ДатаДок),2);

   Если Проведен() = 0 Тогда
       ТекстПредупреждения = "Для непроведенного некорреткно заполняется графы ""Цена"" и ""Сумма"".";
       Таб.ВывестиСекцию("Предупреждение");
       
   ИначеЕсли Модифицированность() = 1 Тогда
       Предупреждение("Для печати документ необходимо перепровести.");
       Возврат;
   КонецЕсли;
   
   Таб.ВывестиСекцию("ШапкаФормы");
   Таб.ВывестиСекцию("ШапкаТаблицы");
   
   ИтогоСуммаПервоначальнойСтоимости = Итог("СуммаПервоначальнойСтоимости");
   ИтогоСуммаПогашеннойСтоимости     = Итог("СуммаПогашеннойСтоимости");
   
   ИтогКоличество = 0;
   
   ВыбратьСтроки();
   Ном = 1;
   Пока ПолучитьСтроку() = 1 Цикл
       Если Ном > (КоличествоСтрок1 + КоличествоСтрок2) Тогда
           Таб.ВывестиСекцию("Итого");
           Прервать;
       ИначеЕсли Ном = КоличествоСтрок1 + 1 Тогда
           Таб.ВывестиСекцию("ПоследняяСтрока");
           //Таб.НоваяСтраница();
           Таб.ВывестиСекцию("ШапкаТаблицы");
       КонецЕсли;
       Цена = Окр(?(Количество = 0, 0, СуммаПервоначальнойСтоимости / Количество), 2);
       
       СрокСлужбы = "";
       Если (НазначениеИспользования.СпособПогашенияСтоимости = Перечисление.СпособПогашенияСтоимости.Линейный)
        или (НазначениеИспользования.СпособПогашенияСтоимости = Перечисление.СпособПогашенияСтоимости.ПогашатьСтоимостьВМоментПередачиВПроизводство) Тогда
           Если ПустоеЗначение(НазначениеИспользования.ДатаВводаВЭксплуатацию) = 0 Тогда
               СрокСлужбы = (ДатаГод(КонМесяца(ДатаДок)) - ДатаГод(НазначениеИспользования.ДатаВводаВЭксплуатацию)) * 12
                       + ДатаМесяц(КонМесяца(ДатаДок)) - ДатаМесяц(НазначениеИспользования.ДатаВводаВЭксплуатацию);    
           КонецЕсли;
       КонецЕсли;
       
       ИтогКоличество = ИтогКоличество + Количество;
       
       Таб.ВывестиСекцию("Строка");
       Ном = Ном + 1;
   КонецЦикла;
   
   Для i=Ном по (КоличествоСтрок1 + КоличествоСтрок2) Цикл
       Если i = КоличествоСтрок1 + 1 Тогда
           Таб.ВывестиСекцию("ПоследняяСтрока");
           //Таб.НоваяСтраница();
           Таб.ВывестиСекцию("ШапкаТаблицы");
           Таб.ВывестиСекцию("ПустаяСтрока");
           
       ИначеЕсли i = КоличествоСтрок1 + КоличествоСтрок2 Тогда
           Таб.ВывестиСекцию("Итого");
           
       Иначе
           Таб.ВывестиСекцию("ПустаяСтрока");
       КонецЕсли;
   КонецЦикла;
   Таб.ВывестиСекцию("Строка1");
   Таб.ВывестиСекцию("Подвал");
   Таб.Опции(0, 0, ?(Проведен() = 0, 1, 0), 0, "ОпцииПечатиМБ8", "ОкноМБ8");
   Таб.ПараметрыСтраницы(2);
   Таб.ОбластьПечати(?(Проведен() = 0, 2, 1), 2,,);
   Таб.ТолькоПросмотр(1);
   Таб.Показать();
   
КонецПроцедуры // Печать
35 miki
 
18.07.11
14:27
(34)у тебя в макете наверняка есть лишние колонки/сроки, также могут быть и переводы страницы.
36 ev048
 
18.07.11
14:47
в принципе получилось воот этим регулировать  положение печати,но проявился минус один из 64 позиций дока он печатает лиш 14 строк((я в  тупике((    

КоличествоСтрок1 = 10; //на лицевой стороне
КоличествоСтрок2 = 3; //на оборотной стороне
КоличествоСтрок3 = 1;
37 chief accountant
 
18.07.11
15:00
(36) телепаты скоро мозг себе сломают. Можешь по-человечески объяснить что должно выводится на печать по секциям
38 ev048
 
18.07.11
15:04
(37) жаль что не могу саму печатку засунуть нужно чтоб выводились на печать все строки каждый лист начинался  с шапки,а последний заканчивался только 1 строкой и подвалом.
39 Злопчинский
 
18.07.11
15:12
все очень просто, как и везде общие требования к делопроизводству:
- итоги документа (числовые итоги, подписи) - НЕ ДОЛЖНЫ ИДТИ НА ОТДЕЛЬНОЙ СТРАИНЦЕ, должна быть на последней странице с итогами КАК МИНИМУМ одна строка "данных", по которым выводятся итоги.
.
40 ev048
 
18.07.11
15:14
(39) гениально,правильно))