Имя: Пароль:
1C
 
Печать колонтитула и подсчет страниц в 1С (решение)
↓ (romix 16.12.2005 20:19)
0 romix
 
модератор
15.12.05
16:45
Это не вопрос, а уже готовое решение (может, кому-то пригодится).

При открытой таблице, пункт меню:
Таблица-Колонтитул-Верхний
Таблица-Колонтитул-Нижний

Там поддерживаются шаблоны (выражения в скобках [])

Вставляю туда вызов функции
[ПодсчетСтраниц()]

А в модуле формы:

перем г_ЧислоСтраниц;
...
Функция ПодсчетСтраниц()
 г_ЧислоСтраниц=г_ЧислоСтраниц+1;
 Возврат г_ЧислоСтраниц;
КонецФункции

...

Процедура Сформировать()
 г_ЧислоСтраниц=0;
...


Если в печатной форме есть фразы наподобие "Документ составлен на 5 (пяти) листах", то общее число листов сформируется только после окончательного формирования (и показа) всей таблицы.


Поэтому я делаю таб.Очистить();
и формирую печатную форму еще раз.

Чтобы не было "лишнего" пустого листочка, переменную таб следует сделать глобальной (т.е. поместить ее объявление вверху модуля).

Чтобы показать число листо прописью, я использую простой кейс наподобие следующего:

Функция ЧислоЛистовПрописью(прм_ЧислоСтраниц)
   Если прм_ЧислоСтраниц=1 Тогда    
       Возврат "1 (одном) листе";        
   ИначеЕсли прм_ЧислоСтраниц=2 Тогда    
       Возврат "2 (двух) листах";        
   ИначеЕсли прм_ЧислоСтраниц=3 Тогда    
       Возврат "3 (трех) листах";        
   ИначеЕсли прм_ЧислоСтраниц=4 Тогда    
       Возврат "4 (четырех) листах";        
   ИначеЕсли прм_ЧислоСтраниц=5 Тогда    
       Возврат "5 (пяти) листах";        
   ИначеЕсли прм_ЧислоСтраниц=6 Тогда    
       Возврат "6 (шести) листах";        
   ИначеЕсли прм_ЧислоСтраниц=7 Тогда    
       Возврат "7 (семи) листах";        
   Иначе    
       Возврат ""+прм_ЧислоСтраниц+" листах";        
       Сообщить("Проставьте кол-во листов вручную! "+прм_ЧислоСтраниц,"!");
   КонецЕсли;
   
   
КонецФункции
1 Рупор абсурда
 
15.12.05
16:52
Проснулся?
Открытие, по своемуобыкновению, себе присвоишь?
2 skunk
 
15.12.05
16:55
(1)кому надо присвоить
3 Пкфте
 
15.12.05
17:02
(0) О, спасибо! но ветка без вопросов - это не ветка...

Первый, первый... ответьте...
Запустил первым после запуска 1С внешний отчет... фсё красивооо, пашет не мешает... Но как его не обламывать по эскейпу?
4 Парижская фанера
 
15.12.05
17:03
(0) Мда... Как обычно в 1С самые простые вещи делаются через жопу...
5 AlBorodulin
 
15.12.05
17:03
Вещица превесьма полезненькая!
6 romix
 
модератор
15.12.05
17:04
(1) Не знаю, тока что сам это придумал (честно).
Яндекс и Гугл ничего не нашли. Может ты свой ресурс плохо там размещаешь?
Напиши здесь плиз свою ссылку, у нее поднимется рейтинг.
7 skunk
 
15.12.05
17:06
http://www.absur.da.ru/por

http://avb1c.narod.ru/


исправлю косяки... как прошлые так и будующие... типа индульгенции
8 romix
 
модератор
15.12.05
17:13
(7) В упор там не вижу про подсчет страниц и вывод колонтитула.
Страничка явно полезная, но она не ищется Яндексом!
Пример: "Прайс-лист книжкой" там не находит поисковик.
HTML-код какой-то странный. Машинка хорошо ездит, :-) но попробуйте все-таки сделать и простой текст, чтобы он искался. Иначе он типа окажется в забвении.
9 Lex1C
 
15.12.05
17:15
(0) - полезная штука, возьму на заметку
10 Парижская фанера
 
15.12.05
17:23
Тогда уж может в БЗню кто занесёт?
11 skunk
 
15.12.05
17:28
(8)я просто ссылку дал... а что там есть не смотрел
12 Diter
 
15.12.05
17:31
(10) А давайте я (я так мало в БЗ добавлял веток)
13 Парижская фанера
 
15.12.05
17:34
(12) Да ради бога.
14 Рупор абсурда
 
15.12.05
17:36
(6) Впервые это было предложено пару лет назад кем-то на т1с ...
К сожалению, не помню кем ...
Здесь это уже обсуждали ..., и даже не раз ...
15 Diter
 
15.12.05
17:38
(14) Да ладно тебе брюзжать ;)
Ну обсуждали, ну предлагали, ну и что? многие этого не знали...
16 Пкфте
 
15.12.05
17:43
(14) Предлож что-нибудь на 3, а? Или пошли на пару лет назад...
17 Рупор абсурда
 
15.12.05
17:46
18 skunk
 
15.12.05
17:52
(16)сейчас пошлет...
19 Пкфте
 
15.12.05
17:55
(18) Я только туда ломанусь, где он сам бывал...
20 skunk
 
15.12.05
17:56
(19)он седня злой...
21 skunk
 
15.12.05
17:56
обманет и пошлет туда где сам не был...
22 Пкфте
 
15.12.05
18:02
(20)Да что-то типа если у меня руки в боки, то пох мне на какую сторону его шляпа смотрит...
23 LOD
 
15.12.05
18:03
(22) Какой ты энергичный ...
24 skunk
 
15.12.05
18:03
(22)не знаю... от комментариев отказываюсь... вчера черт за язык дернул....
25 LOD
 
15.12.05
18:04
(24) покажи где
26 Пкфте
 
15.12.05
18:07
(23) Даже не знаю, что ответить, подсмысл не ясен, но первое желание было почему-то послать...
27 skunk
 
15.12.05
18:08
28 Пкфте
 
15.12.05
18:09
(24) Я всякую хню со вчера на сегодня за собой не таскаю...
29 skunk
 
15.12.05
18:11
(28)я еще не спал... у меня еще вчера... проснуся сразу послезавтра...
30 Пкфте
 
15.12.05
18:14
(29) Это орден... а я спать люблю, желательно не с открытой форточкой...
31 skunk
 
15.12.05
18:19
(30)пухал всю ночь... в каком-то клубе... шары покатал... в пилиярд
32 LOD
 
15.12.05
18:22
(27) Офигеть ...
прими мои соболезнования (если нужны)
33 skunk
 
15.12.05
18:23
(32)если помогут... принимаю... один фих на мне уже поставлен крест
34 Рупор абсурда
 
15.12.05
18:24
Скунки, кто такой Пкфте?
35 Лошадка в пальто
 
15.12.05
18:24
запускаю отладчик... и думаю: "А чо это меня на сайт к Рупору занесло"? (цы)ИАм
36 skunk
 
15.12.05
18:26
(34)хм... шутка не шутка... но на всякий пожарный... включи английский и набери ПкфнЕ
37 Рупор абсурда
 
15.12.05
18:28
(36) Спроси его, чё он идиотничает?
38 Пкфте
 
15.12.05
18:31
это юмор
39 skunk
 
15.12.05
18:35
(38)Рупор хочет знать... ты идиотничаешь или нет... и если да... то зачем?
40 LOD
 
15.12.05
18:36
(38) Разве это юмор ?
Вот это юмор:
ЗиК 7.7;
Возврат НДФЛ;
И как только автор умудряется такие вопросы задавать ...
Он их специально придумывает ? Аж страшно подумать, что у автора в голове твориться !
41 romix
 
модератор
15.12.05
18:39
(47) Рупор, я там ответил
Как принудительно программно открыть максимально форму?

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

Насчет идеи в (0), я делал это сам, хотя приоритет может быть запатентован за кем-то еще (если будут ссылки туда, то они повысят рейтинг того ресурса).
42 smaharbA
 
15.12.05
18:41
Тока я не понял как страницы подсчитываются...?
43 skunk
 
15.12.05
18:44
(0)а если будет 1112 листов... что тогда?
44 Пкфте
 
15.12.05
18:46
(42) г_ЧислоСтраниц=г_ЧислоСтраниц+1;
(39) Я уже оценил...
45 romix
 
модератор
15.12.05
18:49
(42) Когда выводится колонтитул, 1С вызывает функцию, которую я вписал в обработчик колонтитула [ПодсчетСтраниц()]

Добавь отладочную печать в эту функцию, и ты поймешь как она работает.

(43) Тогда можно вручную вписать итоговую цифру (функция выдает предупреждение если страниц больше 7). Такие толстые пачки нечасто, я думаю, кто-то печатает.
Можно пропись еще наверное поюзать, но я этим не заморачивался.
46 skunk
 
15.12.05
18:51
(44)не уклоняйся... когда боги спрашивают...
47 skunk
 
15.12.05
18:52
(45)тогда это не универсальное решение... конечно с 1112 листами я загнул... но реально видал накладные на 20 а то и по более листах...
48 smaharbA
 
15.12.05
18:53
Аааа, ято думал что количество напечатанных, простите (правдо) я опять слегка трезв...
49 Пкфте
 
15.12.05
18:53
(46) Они не налоговая...
50 romix
 
модератор
15.12.05
18:57
(47) Ну тогда кейс на 25-30 листов, либо пропись.

зн=Формат(1112, "ЧП");
Сообщить(зн);

выдает:

Одна тысяча сто двенадцать
51 skunk
 
15.12.05
18:58
(49)боги страшны в своем гневе... (шепотом ....страшнее налоговой)
52 skunk
 
15.12.05
18:58
(50)офигительный код получиться ))))
53 Пкфте
 
15.12.05
19:01
(52) Для написания кода для 1112 листов можно написать другой код, покороче, который сгенерит нужный в текстовичек...
54 romix
 
модератор
15.12.05
19:03
(52) А что делать - русский язык богат и могуч своими склонениями и спряжениями. :-)

Тут кстати есть самописная пропись (для Excel):
http://script-coding.info/
55 smaharbA
 
15.12.05
19:05
(54) Ексель кстати запросто 1С может запояс задвинуть... Программирование на ем не хуже, а даже лучче чем в 1С, да и возможности гораздо ширее..
56 skunk
 
15.12.05
19:08
(53)точно...
(на вопрос значит отвечать не будешь... да?)

(54)смотри (53)

(55)точно...
57 LOD
 
15.12.05
19:11
(55) Представляю себе бухгалтерию в Екселе ....
Ужос ...
Или я ошибаюсь ?
А с возможностями Екселя согласен
58 Пкфте
 
15.12.05
19:12
(56) Я сюда за знаниями вхож... не дорос ещё на вопросы отвечать, а вот он молчит...
59 Пкфте
 
15.12.05
19:12
(56) Я сюда за знаниями вхож... не дорос ещё на вопросы отвечать, а вот он молчит...
60 skunk
 
15.12.05
19:13
(57)ошибаешься...
61 skunk
 
15.12.05
19:14
Уважаемый Рупор Абсурда... он говорит что ходит сюда набираться уму разуму...
62 Пкфте
 
15.12.05
19:15
(57) Начал было сопровождать в одной конторе, да город сменил... Работали, нормально, только зарплату в какой-то другой считали...
63 LOD
 
15.12.05
19:17
(62) Вели финасовый учет в екселе ....
Лучше уж сразу в аксесе !

(57) Поясни
В екселе удобней ? (сомневаюсь)
64 Пкфте
 
15.12.05
19:19
В аксесе материалы, строили они много...
65 skunk
 
15.12.05
19:21
(63)ты просто не умеешь готовить ексель...
66 LOD
 
15.12.05
19:21
(64) У меня в армии до сих пор зарплату в аксесе считают (её 3,5 года написал)
И больше не обновлял
67 skunk
 
15.12.05
19:22
(66)а как же законы...
68 smaharbA
 
15.12.05
19:24
(63) Чем отличается программирование в екселе от программирования в 1С (пока отбросим возможности которэх нет в 1С и возможностей 1С которых нет в екселе(они мизерны, надо тока блоки БИ и регистров(можна и без них) создать))
69 smaharbA
 
15.12.05
19:24
(63) Чем отличается программирование в екселе от программирования в 1С (пока отбросим возможности которэх нет в 1С и возможностей 1С которых нет в екселе(они мизерны, надо тока блоки БИ и регистров(можна и без них) создать))
70 skunk
 
15.12.05
19:25
(68)ты тоже не знаешь ексель
71 smaharbA
 
15.12.05
19:32
(70) Тоже... вопрос это был, к (63)
;)
72 LOD
 
15.12.05
19:32
(67) Мне это тоже стало интересно
(69) Возможностей больше в екселе, вот тока реализовывать будет сложнее чем в 1С (ИМХО)
73 smaharbA
 
15.12.05
19:34
(72) на ИМХО я злюсь... непонимаю правдо что это есть, хоть уж в течение года вталивали неоднократно...
74 LOD
 
15.12.05
19:37
(73) Хорошо что на буквы хоть не злишься )))
75 skunk
 
15.12.05
19:41
(71)нет тебе... раз утвержадешь что в екселе нет регистров... и бух итогов... они есть ;)))
76 smaharbA
 
15.12.05
20:05
(75) оне конечно тама есть, но еще к ним надо прикручивать всяческие БИ запросы и хранилище для них... а в 1С уже впиндюрили, но это не минус екселя...
77 skunk
 
15.12.05
20:07
(76)хм... и БИ.Запросы есть...
78 smaharbA
 
15.12.05
20:10
(77) Тока запрашивать непочему пока ручками не создаш (спрограммиш) ;)
79 skunk
 
15.12.05
20:11
(78)ты уверне что 1С сама умеет спрашивать... без ручек программиста
80 smaharbA
 
15.12.05
20:12
(79) неподеывай... тыж все понимаешь, у меня счас не тот настрой...
81 skunk
 
15.12.05
20:15
(80)ладно не буду... зато согласись там можно так изгольнуться... ни как 1С даже не снилось... а?
82 smaharbA
 
15.12.05
20:16
Да...этт точно...
83 skunk
 
15.12.05
20:18
и почему все так не любят MS
84 Guk
 
15.12.05
20:25
Бойян...
85 427
 
15.12.05
21:22
нравится мне как ромикс тупит...

"Поэтому я делаю таб.Очистить();
и формирую печатную форму еще раз."

Клево... Одна из самых медленных операций повторяется 2 (ДВА!!!) раза...
86 romix
 
модератор
16.12.05
12:32
Я должен ИЗВИНИТЬСЯ перед всеми, метод (0) НЕ РАБОТАЕТ как ожидалось.
(вчера толком не проверил на большом числе строк).
А кто-то уже начал предъявлять копирайт. :-)

Колонтитул или даже ПовторятьПриПечатиСтроки() фактически вызывается только один раз.

Чтобы напечатать номер страницы, в колонтитул надо вписать  #P.

Реально подсчитать страницы не знаю как. FormEx наверное поможет, т.к. там есть метод, который возвращает реальную высоту строк.
87 romix
 
модератор
16.12.05
12:33
Скрыл сообщение (0) т.к. оно неверное. Блин вот облом. :-(
88 Пкфте
 
16.12.05
12:34
(87) А моё открой, оно верное... :)
ЗЫ фсё фигня!
89 skunk
 
16.12.05
18:09
нет в жизни счастия...
90 AeDen
 
16.12.05
19:31
(55) В ёкселе нечеткие множества строил... Функции принадлежности вычислял... Стохастику гонял... Тока файло 100 мб и более. При изменении одной лишь цифры все результаты минут по 10-15 пересчитывались.
91 smaharbA
 
16.12.05
19:36
(90) Это ты не правильно делал, ненада листы формулами забивать... да и пересчет может быть быстр, рефреш и отображение отключи...
Но вообщето про эхель мы не об этом, об программировании в нем, а листы книг так для малых баз, базыто можно и текстовые и скуль...
92 skunk
 
16.12.05
19:39
и даже акцесные и дбф...
93 427
 
16.12.05
21:32
кстати, решение ромикса вполне можно сделать работающим... Заменив одну строку на 2... Но это детали...


(90,91) Видел решение на Экселе+Визуал Басик для приложений у нехилой конторы...
Номенклатура 200 тыс. Реально на остатках 50-60 тыс...
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.