Имя: Пароль:
1C
1C 7.7
v7: Печатные формы. Накладная + Ценники. Экономия бумаги
,
0 Последняя_
Надежда
 
12.08.11
08:16
К реализации распечатывается форма накладной и ценники на все позиции в данной накладной. Получается, что сама накладная на одном листе, а ценники начинают печататься с нового листа. Хотелось бы сделать так: Если накладная занимает не весь лист, то начать вывод ценников на тот же лист. Но не знаю каким образом отследить этот момент программно.
Может кто сталкивался с подобным?!
1 Гефест
 
12.08.11
08:17
Последняя надежда на экономию бумаги
2 andrewks
 
12.08.11
08:30
плохая затея. если всё так плохо, может, лучше закрыть эту шаражкину контору нафиг?
3 andrewks
 
12.08.11
08:31
+(2) а то следующим желанием будет печатать ценники с обоих сторон листа )))
4 Последняя_
Надежда
 
12.08.11
08:37
(1)(2)(3)Вечно Вы шуточки шутите
5 Последняя_
Надежда
 
12.08.11
08:39
ну просто реально вещь нужная! Допустим в накладной одна позиция, а печатается 2 листа бумаги - на одном 2-3 см строки занимают и на втором одинокий ценник.
6 andrewks
 
12.08.11
08:41
а ещё можно печатать по 4 страницы на листе...
7 andrewks
 
12.08.11
08:42
вы накладную в одном экземпляре печатаете, что-ли?
обычно мелкие накладные печатают по два экз. на странице, а ценники пусть отдельно будут, это ересятина
8 Erhov_egor
 
12.08.11
08:45
смотри сколько выводится товаров,т.е. сколько строк,и смотри при каком количестве могут влазить ценники на 1 страницу,и пропиши,если столько строк тогда новая страница
9 KUBIK
 
12.08.11
08:45
(0) Накладная то какая? ТОРГ-12?
Так она по-любому хоть с одной строкой почти на весь лист (в альбомном формате)
RZM: глупость все это
10 andrewks
 
12.08.11
08:46
(8) прежде, чем советовать такое, сначала укажи, что тогда придётся перерисовывать полностью макеты ценников, и, скорее всего, накладной тоже
11 Erhov_egor
 
12.08.11
08:53
ниче ему не надо перерисовывать
12 Erhov_egor
 
12.08.11
08:56
Я с этим сталкивался уже много раз
13 Erhov_egor
 
12.08.11
08:57
скинь процедуру печать
14 Последняя_
Надежда
 
12.08.11
08:57
(8) Вариант хороший, но как бы не запутаться в его реализации.  
(9) нет, не ТОРГ-12. Простая накладная в виде шапки из номера и контрагента и таблички с товаром и подписи и М.П. внизу.
15 Последняя_
Надежда
 
12.08.11
09:00
(13)
Процедура Печать(Докум)
   Перем НачПовт, КонПовт;    
   ФиктНом = "" ;
   ТабТоваров = СоздатьОбъект("ТаблицаЗначений");
   ТабТоваров.НоваяКолонка("Товар");
   ТабТоваров.НоваяКолонка("Цена","Число");
   ТабТоваров.НоваяКолонка("Единица");
   ТабТоваров.НоваяКолонка("Валюта");
   ТабТоваров.НоваяКолонка("Код") ;
   НаименованиеГруппы = "" ;    
   ТаблПеч.ИсходнаяТаблица("Таблица");
   НачПовт = 0; КонПовт = 0;
   // секция Заголовок
   Склад=Докум.Склад.Наименование;
   ТаблПеч.ВывестиСекцию("Заголовок");
   // Секция Поставщик
   Поставщик = СокрЛП(Докум.Фирма.ЮрЛицо.ПолнНаименование) + " " + глПредставлениеАдреса(Докум.Фирма.ЮрЛицо.ЮрАдрес);
   ТаблПеч.ВывестиСекцию("Поставщик");
   НачПовт = НачПовт + ТаблПеч.ВысотаСекции("Поставщик");
   // Секция Покупатель
   Если ПустоеЗначение(Докум.Контрагент) = 0 Тогда
       Покупатель = СокрЛП(Докум.Контрагент.ЮрФизЛицо.ПолнНаименование);
   Иначе
       Покупатель = "";
   КонецЕсли;
   ТаблПеч.ВывестиСекцию("Покупатель");
   НачПовт = НачПовт + ТаблПеч.ВысотаСекции("Покупатель");
   СекцСкидка = ?(ПустоеЗначение(Докум.Скидка) = 0, "Скидка", "");
   // Секция Шапка таблицы
   ТаблПеч.ВывестиСекцию("ШапкаТаблицы" + СекцСкидка);
   КонПовт = НачПовт + ТаблПеч.ВысотаСекции("ШапкаТаблицы" + СекцСкидка);
   // выводим табличную часть
   НомСтроки = 0;
   Докум.ВыбратьСтроки();
   Пока Докум.ПолучитьСтроку() = 1 Цикл
       НомСтроки = НомСтроки + 1;
       ТаблПеч.ВывестиСекцию("Строка" + СекцСкидка);
       // добавим инфу в таблицу для ценников
       ТабТоваров.НоваяСтрока();
       ТабТоваров.Товар = Докум.Номенклатура.Наименование ;
       ТабТоваров.Код        = Докум.Номенклатура.Код ;
       ТабТоваров.Цена = Докум.Цена ;
       ТабТоваров.Единица = "шт." ;
       ТабТоваров.Валюта = глРубли ;
   КонецЦикла;
   СуммаИтог = Докум.Итог("Сумма");
   // секция Итого
   ТаблПеч.ВывестиСекцию("Итого");
   // секция СуммаПрописью        
   КолСтрок = Докум.КоличествоСтрок() ;
   ТаблПеч.ВывестиСекцию("СуммаПрописью");
   // секция Подписи
   ТаблПеч.ВывестиСекцию("Подписи");
   ТаблПеч.НоваяСтраница() ;
   СформироватьЦенники(ТабТоваров,СокрЛП(Докум.Фирма.Наименование));
   ТаблПеч.Показать()  ;
КонецПроцедуры // Печать()
16 Erhov_egor
 
12.08.11
09:01
(14)че там путаться то, у меня например было так, при печати несколько строк переносились на другую страницу где нужны были ставиться подписи,потом переносил просто на другую страницу несколько строк
17 Erhov_egor
 
12.08.11
09:03
Если ТабТоваров.КоличествоСтрок()=15 Тогда

ТабЛПеч.НоваяСтраница();\\можешь указать даже номер строки после которого нужно разделить страницу
КонецЕСли;
18 Последняя_
Надежда
 
12.08.11
09:04
А можно ли как-то отслеживать не количество строк, а количество пустого места? или это "бред"?
19 Erhov_egor
 
12.08.11
09:06
нужно смотреть при каком количестве у тебя остается свободное место для того чтобы влазила печать, можно смотреть по номеру строки
20 Erhov_egor
 
12.08.11
09:07
точнее  чтобы ценник влазил
21 Последняя_
Надежда
 
12.08.11
09:09
(19) т.е. обыграть все возможные варианты?! т.к., как я понимаю,  принудительного разрыва листов в табличной части не предусмотрено, да и вставлять его туда нет надобности (потому как номенклатура может встать в две строки). Попробую, что-нибудь придумать. Спасибо, (19).
22 Erhov_egor
 
12.08.11
09:12
(22)да попробуй все варианты, принудительный разрыв есть в табличной части,думай сам
23 KUBIK
 
12.08.11
09:16
(19) "...можно смотреть по номеру строки
" = бывает еще такой конфуз: 1 строка, а наименование длинное с переноносом на 3 строки в ПФ
24 Erhov_egor
 
12.08.11
09:32
(23)тогда запас брать 2-3 строки,иначе никак
25 Erhov_egor
 
12.08.11
09:41
Либо еще смотреть сколько символов в наименовании,сколько максимально может быть без переноса,если превышает тогда при проверки строк добавлять 1 строку
26 Aleksey
 
12.08.11
09:49
(21) Есть же высота таблицы
27 FN
 
12.08.11
09:50
Печатную форму готовишь как один документ (расходная + ценники), в секции, где ценник на строках ставишь "Таблица-Положение на странице-Вместе со следующим" и делаешь строчку разрыва.
Профит!
28 KUBIK
 
12.08.11
09:53
(25) Анализировать надо все значения переменных на ПФ в т.ч. и в шапке и в подвале (наименование контрагента, итоговая сумма и т.п.), которые допускают перенос строк
29 stix2010
 
12.08.11
10:50
я вот только логически понять не могу  - зачем к реализации товара печатать ценники?
30 Последняя_
Надежда
 
12.08.11
11:19
(29) потому что для собственных торговых точек.
31 stix2010
 
12.08.11
11:27
еслидля собственных точек тогда это перемещение, печатать на рулоне уже предлагали?
32 FN
 
12.08.11
11:33
(30) как в (27) еще не сделала?
Основная теорема систематики: Новые системы плодят новые проблемы.