gifts2017

Печать внешних форм документов для 7.7

Опубликовал Епрст (Ёпрст) в раздел Печать - Пакетная печать

Печать внешних форм документов за выбранный период.
Для ТиС/Комплексной/Бухии

Позволяет печатать документы за выбранный период (или выборочно ) с настройкой порядка печ. форм

+Сортировка

+МФ

+Печать на выбранный принтер (для каждой формы СВОЙ или по-умолчанию)

+Запись в файл

+Ориентация страницы

Три последние опции реализуются, если в печатных формах сделать следующее:

 

 

ИмяПринтера = Форма.Параметр.Получить("ИмяПринтера");

Ориентация= Форма.Параметр.Получить("Ориентация");

ИсхТабл.ПараметрыСтраницы(Ориентация,,,,,,,,,1,,ИмяПринтера);

......

    ИначеЕсли Устройство = 2 Тогда
        ИмяФайла = Форма.Параметр.Получить("ИмяФайла");
        Если ПустоеЗначение(ИмяФайла)=0 Тогда
            ИсхТабл.Записать(ИмяФайла,1);
        КонецЕсли;

ЗЫ: Переделать под другие конфы (пуб/усн и т.д) - самостоятельно..

ЗЫЫ: принимаю пожертвования в качесте благодарности на

яндекс деньги 41001277400750

 

 

 

Скачать файлы

Наименование Файл Версия Размер
Печать поправленная...+ усн 795
.ert 422,00Kb
17.12.13
795
.ert 422,00Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Дониэла Иванова (Доня) 15.10.09 18:55
Посмотрела в комплексной - понравилось!
Но в ней не работаю
Работаю в Бухе.
Попыталать переделать под Буха, не вышло.
Может под Буха выложите, или подскажите как сделать
2. AK UI (ui69) 16.10.09 04:59
Как раз такую искал недавно - спасибо!
В ТиС все работает нормально.
3. Александр Рытов (Арчибальд) 16.10.09 07:39
У тебя клава с турецким акцентом ;) (с) О.Бендер
ЭкзЭмпляров :)

(1) Там всего-то переделки - подменить глФильтрПоПеременнойЗапроса и выбросить общие реквизиты Проект и Автор. Текст внятно структурирован, попробуйте еще :)
4. Епрст (Ёпрст) 16.10.09 09:08
(1) поправил. пробуй.
kfhbcf13; Доня; Арчибальд; +3 Ответить 1
5. Александр Рытов (Арчибальд) 16.10.09 10:34
(4) ЁПРСТ БЫСТРОДЕЙСТВУЮЩИЙ. Обитает на ИС и в окрестностях... :D
6. Дониэла Иванова (Доня) 16.10.09 11:45
В Бухе работает нормально
Спасибо
7. Алексей Орлов (_also) 16.10.09 13:58
Ёпрст, спасибо классная штука.
8. Алексей Орлов (_also) 16.10.09 14:00
+(7) Ты мне в свое время тока для ТиСа дал. Я ее еще под свой Общепит переделанный допилил :)
9. Сергей (Che) Коцюра (CheBurator) 16.10.09 15:58
автор - схалявил! ;-) нет чтобы списочек принтеров еще подцепить... и чтоб можно было указывать - для каждой печформы - это туда, это сюда - готовый автомат!
10. Сергей (Che) Коцюра (CheBurator) 16.10.09 16:00
выбор принтера имеется в виду на закладке настройки - чтоб можно было задать по иерархии - не задан для конкретной печформы - берем ядля вида дока, не задан для вида дока - тогда уже берем с основной закладки...
11. Сергей (Che) Коцюра (CheBurator) 16.10.09 16:01
ну и если Устройство = 3 - отправить на мыло....
12. Епрст (Ёпрст) 16.10.09 16:13
(9) ну ё.. код открыт, там делов то - добавить колонку в тз и сделать выбор принтёра..
Хотя, баловство...
Подобная поделка нужна в основном бухам, для печати комплекта доков..и печатают они, как правило, на один принтёр...
13. Епрст (Ёпрст) 16.10.09 16:14
(11) ну и мыло прикрутить... пару сек..
14. Елена Елена (Khelen-z) 18.10.09 19:43
Не работает...
{D:\ЮЛЯ\EXTFORMS\PRINTEXTFORMS.ERT(991)}: Переменная не определена (глКаталогПечФорм)
Если ФС.СуществуетФайл(глКаталогПечФорм <<?>>+ Файл) = 1 Тогда
{D:\ЮЛЯ\EXTFORMS\PRINTEXTFORMS.ERT(993)}: Переменная не определена (глКаталогПечФорм)
Если глНайтиВнешнююПечФорму<<?>>(Текст, """" + ВидОбъекта + """", Название, Кнопка) = 1 Тогда
{D:\ЮЛЯ\EXTFORMS\PRINTEXTFORMS.ERT(994)}: Функция не обнаружена (глНайтиВнешнююПечФорму)
Файл=глКаталогПечФорм<<?>>+ТзПечФ.Файл;
{D:\ЮЛЯ\EXTFORMS\PRINTEXTFORMS.ERT(1209)}: Переменная не определена (глКаталогПечФорм)
Стр = глКаталогПечФорм<<?>>+СокрЛП(ТЗ.Файл);
{D:\ЮЛЯ\EXTFORMS\PRINTEXTFORMS.ERT(1248)}: Переменная не определена (глКаталогПечФорм)
15. Епрст (Ёпрст) 19.10.09 08:30
16. Андрей (Свой) 19.10.09 13:49
Ёпрст - синоним качества. Спасибо.
17. Евгений Мартыненков (JohnyDeath) 19.10.09 14:14
(15) не видишь что ль - "ЮЛЯ" :D
18. Елена Елена (Khelen-z) 19.10.09 14:21
Бухгалтерский учет для украины
19. Епрст (Ёпрст) 19.10.09 14:41
(18) На сколько я помню, в этой конфе нет механизма регистрации внешних печатных форм вообще.
Так что... работать не будет ничего.
20. Епрст (Ёпрст) 19.10.09 14:46
+19 Но, его легко можно встроить, взяв за основу механизм из российской бухии или ТиС.
21. ineoosaki (ineoosaki) 20.10.09 22:27
Все хвалят, а я немного покритикую. Спущу немного автора на грешную землю ;)

Итак.
1. Если выбраны документы в которых нет реквизита Контрагент, то запрос вываливается с ошибкой.
Как поправить, можно посмотреть вот здесь:
http://infostart.ru/public/14160/

2. МФ сохраняется-востанавливается криво. Как поправить - читаем здесь:
http://infostart.ru/public/16940/
(Это типа пиар :))

3. Кнопка "НоменклатураИзДокумента" в диалоге МФ зачем, если она ничего не делает?
Почему не видно, что МФ задан?

4.Ввод периода отображается только на закладке "Документы", что имхо не очень информативно.
Я бы поместил его в слой "Кнопки".
При открытии отчета - не задаютя даты начала и окончания - это издевательство над пользователями.
Еще - в типовых конфигурациях с "ДатаКонца" принято снимать флаг сохранения настройки, ее обычно заполняют рабочей датой или датой ТА.
Хотя здесь я может чего не догнал, и ее необходимо восстанавливать из настройки. Но опять же настройка восстанавливается криво (читаем пункт 2).

5. Имхо если ТЗ с отобранными документами масштабировать, то у пользователя присутствовало бы ощущение, что он работает с полноценным журналом документов.
Чтобы не использовать формекс, я бы поставил слой "Документы" первым в списке, а ТЗ "ТабДок" назначил бы первой в обходе.
Границы ТЗ (правую и нижнюю) нада вынести за границы остальных реквизитов формы, чтобы последние не "поплыли".
Здесь прийдется весь "подвал" слоя "Документы" перенести в "шапку". Ну и другие слои чуток поправить.
Напоследок установить флаг формы "Изменять размер".

6. В диалоге "Скока печатать" желательно по умолчанию ставить единичку.

7. Для идентификации типовой конфы есть спец. функция глИдентификаторКонфигурации(),
обычно ее не изменяют, а вот над идентификатором конфигурации издеваются часто.


На последок простенькая задачка: как написать текст запроса, что бы в выборку попали помеченные на удаление и проведенные документы, и не попали текущие (т.е. непомеченные/непроведенные).
22. Епрст (Ёпрст) 21.10.09 07:06
(21) Этой поделке лет 6... И.. дорабатывать её мне лень..
По -поводу МФ, всё гораздо проще чем в твоём блоге делается.

23. Епрст (Ёпрст) 21.10.09 07:08
+22 Кнопка номенклатура из документа - осталась из рабочей конфы..
По-поводу клиентосов не во всех документах - данная поделка давно переделана на прямые запросы + ТП и т.д..
Там свой фильтр.
А это - старый вариант, из которого почти всё пришлось выкинуть..проверил только, что б в ТиСе работал типовом и всё.
24. ineoosaki (ineoosaki) 21.10.09 17:09
(22)
>> По -поводу МФ, всё гораздо проще чем в твоём блоге делается.

хотелось бы узнать, как сделать проще?
а то это голословное заявление.
25. Епрст (Ёпрст) 21.10.09 18:03
(24) Ничего не пишем в ВВодНового, оставляем всё штатно + галка автоматическое сохранение в настройке отчета. Всё.
26. Епрст (Ёпрст) 21.10.09 18:05
Да, по воводу
На последок простенькая задачка: как написать текст запроса, что бы в выборку попали помеченные на удаление и проведенные документы, и не попали текущие (т.е. непомеченные/непроведенные).


Дык там же ЭТО всё есть.. как в прочем и в любой штатной обработки документов с ИТС ... 2 переключателя Включать проведенные и Включать помеченные на удаления...
Ставим Все и не помеченные на удаление и привет..
27. Епрст (Ёпрст) 21.10.09 18:44
+26 А ёпт.. невнимательно прочитал:
Ну так тогда:
|ОбрабатыватьДокументы Все;
|Условие(Док.Проведен()+Док.ПометкаУдаления()=1);
28. ineoosaki (ineoosaki) 21.10.09 18:53
(26)
В твоей обработке этого как раз нет.
В типовой ТиС используется не запрос, а перебор документов ВыбратьДокументы() поэтому выбрать одномоментно проведенные и помеченные на удаление можно уже в выборке отсекая "текущие" ("текущие" - это в терминах типовой ТиС непроведеннные и одновременно не помеченные на удаление, см. ПечатьРеестра, ГрупповаяОбработкаДокументов).
К сожалению нет под рукой обработок с ИТС, но там вроде тоже используется перебор документов, а не запрос.
29. ineoosaki (ineoosaki) 21.10.09 19:00
30. ineoosaki (ineoosaki) 21.10.09 19:10
(25)
потестирую на досуге...
31. Епрст (Ёпрст) 22.10.09 08:53
(28) Конечно нет.. Нафига мне вообще печатать помеченные на удаление ? :)
А код кстати, с типовых обработок.. почти весь, окромя самой печати.
32. ГАВ (ГАВ) 18.11.09 17:26
Мне ужасно нравится для ТИСы... Только очень не хватает МФ по фирме... Или может я не вижу как его применить?
33. Епрст (Ёпрст) 11.12.09 16:27
(32) вообще она там есть.. для тиСа
34. ineoosaki (ineoosaki) 28.02.10 19:39
(25) потестировал
Корректно сохраняется/восстанавливается только ОДНА настройка.
Так что утверждение твое голословно.
35. Епрст (Ёпрст) 04.03.10 09:39
(34) Гы.. аналогично могу утверждать, что правкой ВВодНового это тоже не решается.
36. lemaxs (lemaxs) 02.11.10 13:54
А не подскажите где можно взять внешние печатные формы АО и др.?
37. Епрст (Ёпрст) 02.11.10 14:40
(36) АО - Это что ?
И для какой конфы ?
38. Александр Рытов (Арчибальд) 02.11.10 16:22
(37) Это АО-1 на самом деле. Авансовый отчет.
(36) http://www.infostart.ru/public/72343/
39. Епрст (Ёпрст) 02.11.10 16:23
(38) я уже кинул ему вн. печ форму в личку..
40. Александр Рытов (Арчибальд) 02.11.10 16:29
41. Епрст (Ёпрст) 02.11.10 16:42
(40) почему бы и нет..
распечатает и всё тут..
45. mezonik (mezonik) 19.10.11 09:18
Очень полезная штука, спасибо
46. max969 (max969) 20.10.11 16:10
Очень полезная прога, работает как часы.Спасибо)))
47. Alexander Nick (nickkey) 07.11.11 08:38
Спасибо автору хорошая разработка и идея и реализация работает хорошо но все же можно было функционалу добавить до полного счастья типа выбор печати документов всех за период по контрагенту там например расходники если был возврат автоматом приходник к этому документу ну это так мысли в слух :)) все равно спасибо успехов в нашем нелегком деле !!!
48. Оля К (ssst) 14.11.11 13:29
Спасибки, поработаем-посмотрим)))
49. Анна Иванова (anna01) 22.11.11 00:27
Спасибо! Будем пробовать, надеюсь, понравится )))
50. amorhis (iotkin) 12.01.12 12:36
Спасибо автору. Очень пригодилась - как раз искал что-то подобное. Немного доделал - и теперь доволен :)
68. Евген Сок (6630) 20.03.12 12:19
Работает, протестировал
69. jenya ins (jenkins) 10.04.12 07:33
Спасибо, попробую печатную форму дока еще туда запихать, тогда идеально будет.
70. Женя Кумиров (notepad) 21.08.12 13:32
Как сделать, чтобы печатала формы ландшафт?
71. Денис Светков (mixerden) 28.09.12 09:36
72. Екатерина Еремичева (superket_12) 20.11.12 13:11
Обработка отличная,счета-фактуры печатаются как надо,С ГТД.Но для ТОРГ-12 стоит только не унифицированная форма.Я зарегила внешнюю печатную форму ТОРГ-12,но она в этой обработке не появляется....Что я делаю не так...?
73. Епрст (Ёпрст) 23.11.12 15:57
(72) нажми на обновить (кнопка такая там есть)
Или (не помню я ужо, делал в этой поделки или нет ? )
удали сохраненный настройки очета и заново открой - должно всё появится.
74. Сергей (Che) Коцюра (CheBurator) 01.12.12 03:40
При первом запуске на бухбазе выдало
Если ТаблицаДокументов.НайтиЗначение(ВыбранныеДокументы.ПолучитьЗначение(Стр),ид,"ВидДокумента")=1 Тогда
{...\EXTFORMS\PRINTEXTFORMS.ERT(1026)}: Индекс не входит в границы списка значений.
75. Епрст (Ёпрст) 12.02.13 17:21
76. Эд Хз (Tatar_Ed) 17.12.13 11:55
Спасибо автору.
У меня вопрос.можно ли реализовать возможность выбора направления сратницы (портрет или ланшафт) для разных документов. Например напечатать сч.фак. все горизонтально, а нак. вертикально?
77. Епрст (Ёпрст) 17.12.13 12:21
(76) как 2 байта, надо ?
Достаточно вынести флаг или радиобутон на форму поделки, что это ландшафт или портрет +
передать в параметры + в печатных формах получить этот параметр и ежели он есть, воткнуть его в ПараметрыСтраницы.
78. Епрст (Ёпрст) 17.12.13 12:22
Если надо для каждой формы - то тупо в ТЗ на форме задавать этот флаг, + можно переделать поделку, чтоб на разные принтёры можно было печатать формы.
79. Епрст (Ёпрст) 17.12.13 12:24
Т.е каждая форма будет печататься на свой принтёр..
80. Эд Хз (Tatar_Ed) 17.12.13 12:57
(77) т.е. для каждой формы в модуле нужно прописать принтер и ориентацию страницы?
81. Эд Хз (Tatar_Ed) 17.12.13 12:58
и если прописать принтер, то уже не выбрать другой, будут конфликты при печати?
82. Эд Хз (Tatar_Ed) 17.12.13 13:01
(77)
(Достаточно вынести флаг или радиобутон на форму поделки, что это ландшафт или портрет +
передать в параметры + в печатных формах получить этот параметр и ежели он есть, воткнуть его в ПараметрыСтраницы.) можно по этой идеи подробнее. Пытался реализовать данную вещь в печатной форме ТОРГ12, результат отрицательный, а идея отличная.
83. Епрст (Ёпрст) 17.12.13 13:10
(82) в ТзПечФорм нужно всего лишь воткнуть новую колонку для "портрета/ландшафта" + если есть желание - для принтера.
Слегка поправить модуль поделки, чтоб при печати в параметры летел флаг портрета/ландшафта и , либо принтёр с табличной части для каждой формы, или принтёр "по-умолчанию" с формы.. всё собственно.
Могу переделать, если надо.
84. Эд Хз (Tatar_Ed) 17.12.13 13:20
(83) а можно пример?
то что вы можете переделать я не сомневаюсь. но мне бы хотелось самому разобраться,чтобиметь возможность в дальнейшем реализовывать и вдругих формах.
85. Евгений Лебедев (setre) 17.12.13 13:20
Это интересно... Попробуем...
86. Епрст (Ёпрст) 17.12.13 13:36
(84) ща обновлю публикацию.
87. Епрст (Ёпрст) 17.12.13 13:51
Обновил, можешь ставить свою ориентацию и выбирать принтёр для каждой формы.
89. Эд Хз (Tatar_Ed) 17.12.13 15:23
(88)
ошибка теперь
Если ТаблицаДокументов.НайтиЗначение(ВыбранныеДокументы.ПолучитьЗначение(Стр),ид,"ВидДокумента")=1 Тогда
{E:\ВСЕ ДЛЯ 1С\PRINTEXTFORMS.ERT(1032)}: Индекс не входит в границы списка значений.
90. Эд Хз (Tatar_Ed) 17.12.13 15:35
(88)
при втором открытии обработки, данная ошибка больше не появилясь
может что не так делаю? меняю ориентация листа, и ничего не меняется.
91. Епрст (Ёпрст) 17.12.13 15:53
(90) А этот пункт выполнил ?

Ориентация= Форма.Параметр.Получить("Ориентация");

ИсхТабл.ПараметрыСтраницы(Ориентация,,,,,,,,,1,,ИмяПринтера);


Это надо в самой печатной форме прописать
92. Епрст (Ёпрст) 17.12.13 15:54
как-то криво разукрашивает..
93. Эд Хз (Tatar_Ed) 17.12.13 16:10
(90)
Виноват этот пункт я упустил. Все проверю, перепроверю,отчитаюсь о проделанной работе :).
и еще я так понимаю обработка видит только внешние печатные формы (ну у меня только так).
94. Епрст (Ёпрст) 17.12.13 16:32
(93) да, только внешние, собственно, другие, я как правило,в своих конфах вообще вырезал, чтоб не мешались
:)
95. Эд Хз (Tatar_Ed) 18.12.13 11:17
Совсем плохо стало ((

Ориентация= Форма.Параметр.Получить(<<?>>\"Ориентация\");
{D:\1С\2010\EXTFORMS\PRNFORMS\SF1137.ERT(825)}: Ожидается выражение
ИсхТабл.ПараметрыСтраницы(Ориентация,,,,,,,,,1,,ИмяПринтера<<?>>);
{D:\1С\2010\EXTFORMS\PRNFORMS\SF1137.ERT(827)}: Переменная не определена (ИмяПринтера)
96. Эд Хз (Tatar_Ed) 18.12.13 11:20
(91)
где то я ошибку делаю. Не туда прописываю. Сделал так:

Если Устройство = 0 Тогда
ИсхТабл.Опции(0, 0, 0, 0, "ДляСчетаФактурыВыданногоСГТДИзНоменклатуры");

ИсхТабл.ОбластьПечати(, 2, , );
ИсхТабл.ПовторятьПриПечатиСтроки( 17, 19 );

Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда
ИсхТабл.Защита(1);
Иначе
ИсхТабл.Защита(0);
КонецЕсли;
ИсхТабл.ТолькоПросмотр(1);

ИсхТабл.Показать(глНазваниеДокументаВжурнале(Докум),"");
Иначе

ИсхТабл.ОбластьПечати(, 2, , );
ИсхТабл.ПовторятьПриПечатиСтроки( 17, 19 );

Ориентация= Форма.Параметр.Получить(\"Ориентация\");

ИсхТабл.ПараметрыСтраницы(Ориентация,,,,,,,,,1,,ИмяПринтера);
ИсхТабл.КоличествоЭкземпляров(КолвоКопий);
ИсхТабл.Напечатать(0);
КонецЕсли;

КонецПроцедуры // Печать()
97. Епрст (Ёпрст) 18.12.13 11:21
(95)
Ориентация= Форма.Параметр.Получить("Ориентация");
ИмяПринтера= Форма.Параметр.Получить("ИмяПринтера");

Разукрашка съедает символы на форуме..
98. Эд Хз (Tatar_Ed) 18.12.13 11:34
(97)
Аллилуйя. Все заработало, печатает куда нужно и как нужно. Автору большое спасибо за работу и за разъеснения.
99. Епрст (Ёпрст) 18.12.13 11:40
(98) воткни еще в печ форму, чтоб в xls сохраняло, бухам очень полезно бывает, отправить кому-нить все счетфактуры за год в экселе..
100. Эд Хз (Tatar_Ed) 18.12.13 12:02
(99)
вот это тоже нужная вещь.:)
а подробнее можно как реализовать, чтоб на принтер не шло, а только сохраняло в определенный каталог.
101. Епрст (Ёпрст) 18.12.13 12:03
(100) всё это есть в поделке + смотри описалово публикации - там код, который нужно вставить в печформу.
102. Эд Хз (Tatar_Ed) 18.12.13 12:13
(101)
Все увидел, добавил, все работает на ура. Еще раз спасибо.
103. Александр (МимохожийОднако) 18.12.13 19:47
Иногда бывает ситуация, что выбранный принтер "заснул". А при печати на такой принтер возникает ошибка. Такие случаи были и как можно обойти эту проблему?
104. Епрст (Ёпрст) 19.12.13 09:09
(103) до печати на принтёр "опрашивать" его на предмет готовности.
Если из 1-ины послать задание на такой принтёр, то она "зависнет", лечится сыманием очереди печати с принтёра.
105. Александр (МимохожийОднако) 19.12.13 10:11
(104) Ёпрст, возможно я неправильно сформулировал. Меня интересует не как снять зависшую печать, а как проверить состояние принтера до печати, чтобы не было зависания. При массовой печати пользователь сильно нервничает.
107. Епрст (Ёпрст) 19.12.13 11:16
Хотя можно и через vbs посмотреть
108. Александр (МимохожийОднако) 19.12.13 11:22
(106) Ёпрст, спасибо. Для меня актуально и не только в 77.
109. Алина Иванова (ФеяС) 25.12.13 12:19
Файл нужно в ехформ положить? Почему-то не заполняется таблица печатная форма, принтер и не печатает.Что сделать?
110. Епрст (Ёпрст) 09.01.14 14:18
(109) да всё равно куда...
А что именно не работает ?
Список принтёров пустой, или что ?
111. Alexey Volkov (cg_union) 20.10.14 10:29
Добрый день! Подскажите, пожалуйста, что нужно изменить, чтобы заработало.
Выдаёт следющее:
глИдентификаторКонфигурации<<?>>()
Функция не обнаружена (глИдентификаторКонфигурации)
Прикрепленные файлы:
112. Тсрпё ~ (Тсрпё) 20.10.14 10:38
(111)

Поправьте на вот так:


	ТипКонфы=0;
	//Если Найти(",OUTK,OUTKF,OUMNPV,OUBV,BUOUSL",","+Шаблон("[глИдентификаторКонфигурации()]"))>0 Тогда
	//	ТипКонфы = 1; 		
	//КонецЕсли;
...Показать Скрыть


И попробуйте еще сразу выставить ТипКонфы = 1; если в вашей конфигурации есть справочники
"Контрагенты","Фирмы","Пользователи", "Проекты", если их нет , ставьте в коде ТипКонфы=0;
113. Сергей (Che) Коцюра (CheBurator) 21.10.14 00:10
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа