اینترنت پنجره ها اندروید

1C ActiveX برای کاربرد نرمال کلمه. ایجاد یک فرم چاپ شده خارجی "پیمان"

روز خوب!

برای اکثر سازمان ها، فرم چاپ استاندارد هر پیمان در برنامه های 1C مناسب نیست. بنابراین، شرکت 1C توانایی اضافه کردن فرم های چاپ اضافی برای اسناد و سایر اشیاء را فراهم کرد. در این مقاله، من می خواهم به نحوه ایجاد و اتصال فرم چاپ خارجی قرارداد که باید باز شود، بگویم مایکروسافت ورد.

اتصال فرم های اضافی اضافی خارجی

شروع 1C: Enterprise. دایرکتوری "اضافی اضافی خارجی" را از طریق منوی "سرویس" باز کنید - " گزارش های اضافی و پردازش. "

روی دکمه "افزودن" کلیک کنید، سپس یک فرم چاپ جدید را با کلیک روی «جایگزینی فایل پردازش خارجی» ثبت کنید. به طور خودکار امکانات را پر کنید فرم چاپ شده سند "اجرای کالاها و خدمات". "پیمان" را در ستون "چاپ چاپ شده" انتخاب کنید تا فرم استاندارد چاپ شده دیگر مورد استفاده قرار گیرد.

ما اجرای 1C: Enterprise، کتابچه راهنمای "counterparties" را باز می کنیم، طرف مقابل را انتخاب می کنیم که قرارداد ما چاپ می شود و دکمه "فایل ها" به "ذخیره سازی" بروید برای اطلاعات بیشتر"ما یک الگو را برای یک قرارداد به آن بارگذاری می کنیم و لزوما آن را" قرارداد "می نامیم، همانطور که در شکل زیر نشان داده شده است، در غیر این صورت برنامه قادر به پیدا کردن یک طرح برای فرم چاپ نشده است.

در حال حاضر هر سند "پیاده سازی کالاها و خدمات" را باز کنید و روی دکمه "چاپ" کلیک کنید - "پیمان". سند مایکروسافت ورد باز می شود.

فرم چاپ شده خارجی "پیمان" و طرح بندی به آن را می توان در لینک های زیر دانلود کرد.

طرح قرارداد استخدامی در قالب مایکروسافت ورد

حداقل سه راه برای ایجاد یک الگو وجود دارد:

1. سند Word عبارات پشتیبانی را ایجاد می کند، به عنوان مثال، "[نقطه های مختلف]"، سپس، در ماژول پردازش، جستجو و جایگزینی مقادیر.

2. سند Word بوک مارک ها را ایجاد می کند که پس از آن می توانید نام آن را اعمال کنید. منهای این روش این است که برچسب باید منحصر به فرد باشد، به عنوان مثال، اگر شما نیاز به وارد کردن نام خانوادگی کارمند در هر پاراگراف متن، شما باید چندین بوک مارک را با نام های مختلف انجام دهید.

3. سند Word اضافه می کند زمینه های خدمات، مانند "docvariable" یا "نویسنده". با استفاده از docvariable می توان به یک متغیر به نام، به عنوان مثال، "Dochemsions .Variables.add (مجاز، متوسط \u200b\u200bمنعکس کننده) اشاره کرد؛"، اما در قالب قابل مشاهده نیست. فیلد "نویسنده" در قالب نمایش داده می شود، اما لازم است برای دسترسی به آن در چرخه شاخص: "documers.fields.item (index) .result.text \u003d value؛".

به نظر من، اولین روش مطلوب ترین است. قالب سند به راحتی ویرایش شده است، عبارات پشتیبانی در متن قابل مشاهده است. بنابراین، الگو به این ترتیب ایجاد می شود.

برنامه را باز کنید مایکروسافت آفیس.. به عنوان مثال، چند خط را اضافه کنید، همانطور که در شکل زیر نشان داده شده است و الگو را ذخیره کنید.

ایجاد یک فرم چاپ شده خارجی "پیمان"

ما 1C را اجرا می کنیم: شرکت در حالت "Configurator" و از طریق منوی "فایل" - "جدید" ایجاد پردازش خارجی. ما "لینک به شی" props و طرح "تنظیمات خودکار ثبت نام" را با نوع سند جدولی اضافه می کنیم. نوع مورد نیاز "لینک به شی" بستگی به آنچه که اشیاء فرم چاپ شده مورد استفاده قرار می گیرد، در مورد ما، فرم چاپ شده برای سند "پیاده سازی کالاها و خدمات" برای سند استفاده می شود، بنابراین ما نوع " Document Roll.Realizations of Service ".

توسعه روش چاپ

در حال حاضر ما با پروردگار ترس بیش از یک پروژه جالب کار می کنیم - ما یک راه حل را بر اساس پلت فرم 1C توسعه می دهیم: سازمانی 8.2 برای یک شرکت بزرگ. برای وظایف، فرصت های 1C بیشتر از سوء استفاده است و ما از انتخاب ما پشیمان نیستیم. در واقع، در مورد پلت فرم بزرگ و قدرتمند 1C نیست: شرکت.

یکی از توابع کلیدی برنامه ما تولید فرم های چاپی از اسناد مختلف قانونی (پروتکل ها، اطلاعیه ها، و غیره) است. از جانب طرف فنی به نظر می رسد که همه چیز ساده است - یک طرح استاندارد از نوع سند جدول ایجاد کنید و به طرح آن کمک کنید. ما وقت صرف کردیم و به سرعت تمام فرم های چاپی را پرتاب کردیم. خوب معلوم شد، اما پس از آن مشتری خواستار طراحی مجدد طراحی شد، و ما در یک گودال نشستیم. مشکل غیر ممکن بود برای اعمال سبک های قالب بندی به کلمات خاص در داخل یک سلول غیر ممکن بود. بله، شما می توانید سبک را به یک سلول کامل اعمال کنید، اما این روش مطرح نشد، زیرا در یک سلول ممکن است چند کلمه وجود داشته باشد و به نحوی تنها یکی از آنها به ویژه اختصاص داده شد.

در اصل، این مشکل را می توان با کاهش اندازه سلول های سند سلولی حل کرد. در موارد خاص، با چنین سلولهای کوچک (کوچک)، کار آسان تر است، اما اغلب چنین نشانه ای از Buzz را تغییر می دهد. به هر حال برای من

ما فکر کردیم که فکر کردیم و تصمیم گرفتیم طرح های معمول نوع "سند جدولی" را رها کنیم و سوء استفاده از کلمه MS را کنار بگذاریم. ایده این بود:

1. قالب های اسناد لازم را ایجاد کنید. تمام فایل های الگو دقیقا به عنوان قالب برای MS Word ایجاد شد. چه کسی آگاه نیست، قالب ها فایل ها با فرمت نقطه ای هستند. بر اساس آنها می توانید اسناد جدید ایجاد کنید.

2. با استفاده از تکنولوژی OLE، ایجاد اسناد و جایگزینی شبه متغیرها به متن دلخواه. متغیرهای شبهه به شکل کشیده شدند: [مجوز نام].

3. بسته به وضعیت، سند تشکیل شده را چاپ یا ذخیره کنید.

در اصل هیچ مشکلی وجود ندارد، اما قبل از آن روز ما مجبور شدیم از "1c: Enterprise" با کلمه MS کار کنیم. اساسا، تمام طرح بندی های ایجاد شده توسط من بر اساس اسناد جدولبنابراین، تجربه در انتقال داده از پلت فرم، بگذارید بگوییم در MS Word / Excel من ندارم. خواندن داده ها از اکسل باید انجام شود، اما برای انتقال - هرگز.

پس از انجام چند آهنگ تحت گیتار، ما تصمیم گرفتیم تا ابزار رنج طولانی را به تعویق اندازم و به کار ادامه دهیم. یک نیمکت کوچک و خواندن کمک، ما در اینجا چنین وفادار بود:

// ایجاد یک کلمه جدید نوع شیء. Application WordApplication \u003d جدید COM Object ("word.application")؛ // ايجاد كردن سند جدید بر اساس قالب // در مکث متغیر، مسیر کامل را به Created // مشخص کنید / ما یک قالب (فایل با فرمت نقطه) یک سند 27 سند \u003d WordApplication .Documents.add (Pathcackslum)؛ // آماده شدن برای جستجو برای جایگزینی مجزا \u003d new document.conent.find؛ // جایگزین متن // در اولین پارامتر روش اجرای، ما یک رشته را که می خواهید جایگزین // در خط نهم جایگزین کنید، انتقال دهید // آن را جایگزین کنید //. در حقیقت، ما نام متغیر را (به عنوان مثال، [username]) // و در دومی انتقال خواهیم داد - ارزش آن جایگزینی دفتر .Execute (این، دروغ، دروغ، حقیقت، دروغ، حقیقت، دروغ، خط (فرد))؛ // همه چیز بیشتر به Wishlifts ما بستگی دارد // صرفه جویی در سند جدید سند جدید .Saveas (شور)؛ // چاپ یک سند جدید سند .Printout ()؛ // پس از اتمام، شما باید سند را ببندید و خودتان را ببندید. این کار را انجام می دهد // برای روش ترک من ارزش دروغ را انتقال می دهم. این نشان می دهد که ما نیازی به ذخیره سند کامل نداریم. wordApplication.Application.Quit (دروغ)؛ wordapplication \u003d 0؛

نتایج کار

استفاده از کلمه MS برای تولید فرم های چاپ شده ظریف به طور کامل مرتب شده است. ما چند ساعت برای نوشتن روش ها صرف کردیم، و همچنین فرم های قبلا قبلا ایجاد شده تحت قالب های MS Word تبدیل شده ایم. ما نتیجه را از دست دادیم. همه چیز به خوبی کار می کند و مشتری ما بدون مشکل می تواند به طور مستقل قالب های اسناد خروجی را تغییر دهد. در مورد جوهر (خوب، اگر مشتری به طور تصادفی قالب های موجود را کاهش دهد)، ما توانایی بازگرداندن فایل های قالب اصلی را فراهم کردیم.

اگر تصمیم به اعمال این رویکرد در پروژه های خود دارید، مراقب باشید. استفاده از تمام این نیسا ها نیاز به کلمه MS را بر روی یک کامپیوتر. با توجه به این که امروزه بسیاری از شرکت ها به OpenOffice وحشتناکی (IMHO) می روند - برنامه این روش ممکن است باعث مشکلات شود خوشبختانه ما در این زمینه خوش شانس بودیم.

توجه! هنگام استفاده از کدهای شرح داده شده در زیر، کاراکتر را حذف کنید. _
بیایید به نمونه هایی نگاه کنیم که انجام می شود! \u003d) من 2 راه می دانم:
1. با جایگزینی متن قالب در طرح کلمه.
2. با قرار دادن متن با استفاده از بوک مارک ها در کلمه،

در اولین مورد، من بلافاصله می گویم که طول رشته به تابع جایگزینی منتقل می شود، نه کوچک 255 کاراکتر، و ترتیب عبارات الگو در طرح کلمه، مدت زمان زیادی طول می کشد. از طریق Content.Find.Execute روش.

در مورد دوم، طول، تا آنجا که من نامحدود را می دانم، همچنین برای خوردن با نشانک ها بسیار سریع تر و راحت تر از افشای متن قالب است. با استفاده از بوک مارک ها () s_elect (). بنابراین، بیایید به مثال دوم در کد نگاه کنیم.

بنابراین، ابتدا باید طرح بندی کلمه را به سند اضافه کنید. یک طرح را با استفاده از سازنده طرح بندی، مشخص کردن سند فعال و انتخاب طرح مناسب اضافه کنید.

با عمل خود تماس بگیرید طرح بندی را در لیست 1 باز کنید، مکان نما را در جای مناسب قرار می دهیم، به برگه Insert بروید. کلیک بر روی افزودن نشانه به عنوان مثال، من یک اختلال دارم

حالا ما دکمه را در قالب سند پرتاب می کنیم و یک کد را بنویسید که طرح بندی کلمه ما را به دنبال یک نشانه به نام و متن قرار می دهد:
کد 1C v 8.x // مقداردهی اولیه بخش 1
لینک Macket \u003d دریافت (عمل)؛
Msword \u003d بسته اسکریپت پور ()؛
تلاش کردن
link-scale \u003d msword.application.documents (1)؛
اسکریپت pack.activateVate ()؛
// تخلیه بخش جدول با نقض در بخش رشته 2
str \u003d جدید مبارزه (adodb.stream)؛
str.Open ()؛
stritch \u003d ElementForms مستقل. ticked؛
برای هر ردیف چرخه
str.writetext (+ strachtakes توضیحات + نقض مورد نیاز snowdropsgost: + strachtakes. Snipflage + مقاله: + strachtakes. پاتوری + نماد (13)، 0)؛
Endcycle؛
str.position \u003d 0؛
Impairment \u003d str.readtext ()؛

// متن را به تب با اختلالات قسمت 3 وارد کنید
msword.Bookmarks (distruptive) .s_elect ()؛
msword.application.s_election.typetext (discuptivete)؛

اسکریپت pack.activateVate ()؛
یک استثنا
// اگر خطا
شرح گزارش ())؛
msword.application.Quit ()؛
جشن ها؛
این نمونه ای از برداشتن تعدادی از خطوط از یک قسمت از یک جدول با یک خط است، اگر فقط نیاز به تخلیه برخی از پروکسی ها دارید، می توانید قسمت 2 را پر کنید و به قسمت 3 بروید.

برای تخلیه بخش جدولی در قالب یک جدول، می توانید از تابع فرمت خودکار استفاده کنید، مثال کد تخلیه جدول بخشی از نسخه سند:
کد 1c v 8.x word \u003d msword.application؛
document \u003d word.activedocument ()؛
// حرکت 22 خط
word.s_election.medownown (، 22)؛
document.paragraphs.add ()؛
// جدول آماده سازی:
rng \u003d word.s_election.Range؛
// ما یک عنوان را تشکیل می دهیم:
rng.i_nsertafter (شماره P / P * اختلالات نصب شده و اقدامات برای از بین بردن * پایه)؛
rng.i_nsertparagraphet ()؛
// جدول خود را
Strith \u003d ElementForms. فردیت. نوع. ticked؛
برای هر خط نقض چرخه
rng.i_nsertafter (رشته (خط) + * + * + خط.
rng.i_nsertparagraphet ()؛
Endcycle؛
rng.converttotable (*)؛
document.tables (1) .autoformat (17)؛ // شماره جدول در قالب
word.visible \u003d حقیقت؛
خوب، این همه \u003d)

راه بیشتر به سند فعال
در طرح های پیکربندی - راست کلیک کنید - افزودن
نوع طرح: سند فعال
ایجاد یک جدید - سند مایکروسافت ورد

منو را وارد کنید - فیلد - اتوماسیون - Docvariable
نام زمینه را در ستون بنویسید "نام جدید:" داده RAZ

ما یک دکمه را در فرم فرم ایجاد می کنیم و آن را در دستگیره خود بنویسیم:



komobject.variables.item ("dataprice"). value \u003d "01/24/2007"؛
komobject.fields.update ()؛

komobekt.printout ()؛ // سند چاپ

// منتظر پایان ارسال برای چاپ ...
در حالی که objword.Application.Application.BackgroundPrintingStatus.<>0 چرخه
هشدار ("انتظار"، 1)؛
Endcycle؛

komobject.application.Quit ()؛ // کلمه نزدیک
ترکیب \u003d 0؛
اکسترودر

2) اضافه کردن زمینه، اما یک نشانه
منوی را وارد کنید - نشانه گذاری و سپس نام آن را مشخص کنید ("شماره")
کد 1C V 8.S روش Basic FormsFord (دکمه)
سند واقعی \u003d دریافت ("طرح بندی")؛
komobject \u003d سند واقعی پور ()؛
komobject.application.Visible \u003d 1؛
komobject.bookmarks (sokrlp ("مشکل")). s_elect ()؛
komobject.application.s_election.typetext (SOKRLP ("بررسی تست"))؛
اکسترودر

کد 1C V 8.2 UP // پارامترهای قرارداد در متن متغیرهای فرم "[٪ از شماره اپراتور٪] نشان داده شده است"
تمرکز چاپ () عملکرد صادرات

پیمان \u003d دریافت ("Publishing ActiveDocument_Dog")؛ // دریافت طرح Activedocument
Msword \u003d قرارداد پور ()؛
تلاش کردن
doc \u003d msword.Application.Documents (1)؛
doc.Activate ()؛
جایگزین \u003d doc.Content.Find؛

findText \u003d "(دکتر)"؛ // چه چیزی را جستجو کنید - نام لیست
matchcase \u003d false؛ // از عبارات منظم استفاده کنید
wholeword \u003d حقیقت؛ // کلمه را به طور کامل جستجو کنید
matchwildcards \u003d false؛ // عبارات منظم جاسازی شده
matchsoundslike \u003d undefined؛ // جستجو برای همخوان
MatchallWordforms \u003d undefined؛ // به دنبال تمام اشکال کلمه
جلو \u003d حقیقت؛ // جستجو برای پیشبرد
بسته بندی \u003d undefined؛ // چه چیزی باید شی پیدا شود
format_ \u003d false؛ // از قالب بندی استفاده کنید
requirewith \u003d "n777"؛ // متن شما می خواهید جایگزین لیست نام

// به طور خلاصه:
//replace.Execute (FindText معمولی رکورد است)؛

replace.execute (
FindText،
مسابقه،
Matchwholeword،
Matchwildcards،
matchsoundslike،
MatchallWordforms،
رو به جلو،
بسته بندی کردن،
format_،
شماره قرارداد)؛

msword.application.Visible \u003d حقیقت؛
msword.Activate ()؛
یک استثنا
شرح گزارش ())؛
msword.application.Quit ()؛
جشن ها؛

بازگشت 0؛

انتشار - شما rخوردن یادداشت حاوی نمونه های کد برای:

1. پر کردن الگو کلمه دانیس خارج از 1c؛
2. پر کردن کلمه پاورقی داده ها از 1c؛
3. پر کردن یک جدول در داده های کلمه از 1C؛

شروع کار

در اغلب موارد، ما با کار زیر مواجه هستیم:
نیاز به باز کردن کلمه سندپر از داده های 1C.

برای انجام این کار، ما باید قالب سند ورد را آماده کنیم. آن را با قالب کلمه اشتباه نکنید، فایل های ویژه کلمه ای که شامل تنظیمات اسناد برای استفاده مکرر است. ما به یک سند معمولی Vordvian با فرمت * .docx یا * .doc نیاز داریم و سپس این سند را در طرح با داده های باینری قرار دهید.

تلاش / / دریافت یک طرح از الگوی داده های باینری \u003d پذیرش (پارامترهای اختیاری Viddogan)؛ NameFile \u003d فایل Equareno اختیاری ("Docx")؛ الگو ضبط (نام)؛ // ایجاد یک شی COM برای کار با Word Object \u003d جدید COM Object ("word.application")؛ اشیاء. documents.add (فایل نام)؛ // در Word، شما می توانید چندین اسناد را در یک برنامه باز کنید، بنابراین اشیاء.application.Documents مجموعه ای از اسناد باز است. // در مورد ما، سند همیشه یک اسناد را باز می کند \u003d رده ها.Application.Documents (1)؛ dockns.activateVate ()؛ استثنا به گزارش ("خطا شروع یک برنامه" + توضیحات ())؛ جشن ها؛ // البته، گرفتن یک شی COM باید در تلاش قرار گیرد. کمی، چیزی اشتباه خواهد رفت.

خواننده می تواند به درستی متوجه شود که یک تماس مودال مورد استفاده قرار می گیرد و نویسنده را با انگشت دنبال می کند. و درست خواهد بود

// ایجاد ساختار پارامترهای پارامترهای جریان سند \u003d آماده سازی برش برش ()؛ // ساختار پارامترهای سند پر کردن رشته ها را پر کنید (پارامترها)؛

تقسیم کمی در اصول کلمه ...

هر سند کلمه به پارتیشن هایی که شامل صفحات می شوند تقسیم می شود.

برای هر بخش، می توانید شماره های خود را از عناصر، پارامترهای منحصر به فرد و تنظیمات پارامتر صفحه ایجاد کنید. بنابراین، برای مثال، برای چرخاندن یکی از صفحات (برای چاپ به عنوان چشم انداز)، شما باید یک بخش جداگانه زیر آن ایجاد کنید.

هر یک صفحه کلمه تقسیم به چندین منطقه:

  • هدر صفحه
  • متن اصلی
  • پاورقی

لازم به ذکر است که در هر بخش ممکن است یک پاورقی منحصر به فرد برای صفحه اول وجود داشته باشد.

// شیء شامل تمام متن اصلی از تمام پارتیشن ها اسناد .Content // شیء شامل مجموعه ای از گروه های documenic اسناد .sections // در هر بخش، مجموعه ای برای پایین صفحه های dockeners.ssions (1) .headers وجود دارد // و مجموعه خود را برای پایین تر از documemaker.sections (1) .footers // در همان زمان، اگر آن را یک تیک "پاورقی منحصر به فرد برای صفحه اول"، پس از آن مجموعه ای از هدر ها و پاورقی ها شامل دو عناصر

پارامترهای کاربر را پر کنید

هنگام تماس با این مجموعه ها، می توانیم آنها را جستجو کنیم و اشیاء داخلی مانند جداول را دریافت کنیم.

در حال حاضر ما بیشتر یا کمتر درک می کنیم که چگونه برای دسترسی به مناطق کلمه، ما می توانیم در آنها شوخی کنیم و پارامترهای ما را جایگزین کنیم:

// پس از شما با حرکت تمام پارامترها و جایگزین آنها را در سند برای هر پارامتر از پارامتر چرخه عملیات (dochemtent.Content، پارامتر، پارامتر، پارامتر. // به دنبال وقوع پارامتر در بالای صفحه پس از اعدام (documemakers.sections.sections (1) .headers.item (1) .Range ()، پارامتر. خوش آمدید، پارامتر. // به دنبال ورود پارامتر در پاورقی صفحه اول و بعدی برای اجرای (Dochemsations.sections.sections (1) .footers.Item (1) .Range ()، پارامتر. خوش آمدید، پارامتر رابطه)؛ اعدام (dochemers.sections.sections (1) .footers.item (2) محدوده ()، پارامتر. به نوبه خود، پارامتر. Endcycle؛ // انجام و جایگزینی تابع اجرای (شی شی، پارامتر، ارزش) Object.Find.Execute (پارامتر، ارزش، 2) EndFunction

روش Execute را در نظر بگیرید. پارامترهای آن در هنگام جایگزینی / جستجوی راه اندازی مجدد MS Word مشابه با پنجره گفتگو مشابه است:

و در اینجا پارامترهای اصلی (انتقال رایگان MSDN مرجع):

  1. متن دلخواه یک رشته است - متن برای جایگزینی. متن ممکن است دارای پارامترهای خاص باشد. به عنوان مثال، ^ p - پاراگراف، ^ t - tabulation
  2. حساسیت به ثبت نام - Booleo - اگر حقیقت، پس از آن، جستجو با توجه به ثبت نام انجام خواهد شد
  3. کلمات به طور کامل - boolean - اگر حقیقت، پس ما به دنبال کلمات به طور کامل. ورود کلمات به حساب نمی آید. به عنوان مثال، هنگام جستجو برای کلمه، کلمه خانه از دست رفته است
  4. از نشانه های Wildcard استفاده کنید - Booleo - اگر حقیقت، سپس ساخته شده در عبارات منظم استفاده شود.
  5. جستجو برای مشابه - Buleovo - اگر حقیقت، نتیجه جستجو شامل کلمات مشابه
  6. جستجو همه فرم ها - Boolean - اگر حقیقت، نتیجه جستجو شامل اشکال مختلف کلمات است.
  7. جستجو در ابتدا - Boolevo - اگر حقیقت، پس از آن از ابتدا تا انتهای سند انجام می شود
  8. پوشش - WDFINDWRAP - جهت جستجو را تعریف می کند
  9. فرمت - فرمت - فرمت متن مورد نظر
  10. ردیف جایگزینی - رشته - رشته ای که متن منبع جایگزین خواهد شد
  11. تعداد جایگزینی - Wdreplace - تعیین چند بار برای جایگزینی
  12. و غیره.

Wdreplace - مقدار ثابت:
wdreplaceall 2.
wdreplacenone 0.
WdrePlaceOne 1.

این روش به شما اجازه نمی دهد که یک "رشته جایگزینی" را به عنوان یک منطقه اختصاصی دریافت کنید، اما در جایی 10 بار کار می کند. برای به دست آوردن یک منطقه انتخاب شده، می توانید از یک تابع معمولی تنظیم شده استفاده کنید:

// کنترل ناکامی را با تغییرات جزئی برای پیکربندی پیکربندی UPP 1.3 تابع عملکرد (مقدار شی، پارامتر، ارزش) strfice \u003d "[" + پارامتر + "]"؛ stringasames \u003d رشته (ارزش)؛ // لازم است زمینه هایی را که در آن جایگزین Object.Select () ضروری است، برجسته شود. // انتخاب انتخاب شده \u003d Object.Application.Application منطقه انتخابی؛ // پیدا کردن تمام ورودی پارامتر و جایگزینی آن را با مقدار findObject \u003d selection.find؛ findObject.ClearFormatting ()؛ در حالی که FindObject.Execute (STRICIGRAMENT) CYCLE اگر شما SATERAST (STRING PARSE)، سپس selection.delete ()؛ در غیر این صورت selection.typetext (str rocksames)؛ به پایان رسید؛ Endcycle؛ // لغو selection.collapse ()؛ عملکرد

در حال حاضر یک منطقه انتخاب شده به دست آمده است، شما می توانید سبک متن، فونت، و غیره را ویرایش کنید.

// ویرایش selection.font font // ویرایش رنگ selection.highlightcolorindex

همچنین یک رویکرد دوم استفاده از چنین است شیء کلمهمانند زمینه ها. من واقعا آن را دوست ندارم، زیرا در اسناد بزرگ، حدود 100 صفحه، این زمینه ها شروع به نیش می کنند (ناپدید می شوند، نه جایگزین کردن ارزش های لازم) و سایر مزخرفات. خوب، حداقل در Word 2007. اما من به هر حال آن را بدهم:

هنگام تهیه یک الگو به یک سند سند، باید فیلدهای را با نوع docvariable سفارش دهید (شما می توانید با کلیدهای داغ Ctrl + F9 وارد کنید).

دسترسی به این فیلد ها می تواند بعدا به دست آید:

dockns.variables.Item (بازی پارامترت) ارزش ها

پر کردن جداول در قالب

بنابراین، پارامترها را در متن اصلی سند پر کردیم، پارامترهای جایگزین را در پایین صفحه گذاشتیم، اما ما هنوز یک مشکل داریم - شما باید جدول را پر کنید.

رویکردی که در زیر شرح داده شده است، تنها برای جداول با فرمت پیش شناخته شده مناسب است. کسانی که. ما می توانیم به نحوی جدول و خطوط آن را فرمت کنیم. اما پس از آن بسیار مشکل ساز است.

شما می توانید از طریق منطقه سند به جداول دسترسی پیدا کنید.

// ما به جدول اول در جدول متن اصلی \u003d اسناد دسترسی داریم. content.tables (1)

برای تنظیم قالب بندی آسان تر در قالب، یک جدول را با یک خط خالی خالی ایجاد کنید، که بعدا حذف می شود.

// داده ها برای پر کردن پارامترها \u003d اسناد پارامتر. چاپ؛ // نیاز به ترک هدر و اولین خط ITERATOR \u003d 2؛ جدول \u003d doccuser.conent.tables (3)؛ برای هر ردیف از پارامترها، چرخه // به طور پیش فرض یک رشته را در بالای صفحه اول اضافه می کند. تحویل می دهد. پر کردن سکته مغزی (جدول، تکرار، رشته، "PP، nomenclature، edifractions، قیمت"، پارامترها)؛ iterator \u003d iterator + 1؛ Endcycle؛ // ساختار قالب شامل نام ستون ها و روش سفارش آنها است. جریان جریان (جدول، قانون اساسی، درمورد، طراحی، ساختارها، دلبکال) Massigatives \u003d خروجی. توسعه. iterator \u003d 1؛ برای هر رشته از چرخه عظیم، اگر جداول ملاقات شود. Skumps. init (رشته) \u003d undefined و string<> "PP" سپس iterator \u003d iterator + 1؛ ادامه دهید // فراموش نکنید که کلاه نیز یک رشته است، و در شماره شماره گیری ما باید آن را حذف کنیم، خط \u003d "PP" سپس جدول .cell (تنظیمات، تکرار کننده) را رد می کنیم. * text \u003d string (numbering-1 ) iterator \u003d iterator + 1؛ ادامه دهید به پایان رسید؛ table.cell (تنظیمات، iterator) .Range (). متن \u003d ردیف (گزینه کیفیت [خط])؛ iterator \u003d iterator + 1؛ Endcycle؛ اکسترودر

این اساسا آن است. سوالات اصلی ناشی از کلمه، من سعی کردم تا برجسته کنم. امیدوارم این بررسی به شما در کار کمک کند \u003d)

ممنون از مشاوره و نظرات:
,

انتقاد فقط خوش آمدید نظرات بیشتر، بهتر راهنمای \u003d)

بسیار مفید درمان خارجی برای تمام پیکربندی های نمونه 1C: Enterprise 8.3، به شما اجازه می دهد تا شکل دهید پرونده کلمه توسط قالب انتخاب شده از کتاب های مرجع و اسناد اسناد. با استفاده از آن، شما می توانید از مشخصات مختلف 1C، قراردادهای استخدام و قراردادهای با همتایان، کوپن های گارانتی و سایر موارد چاپ کنید. داشتن یک کلمه تحت دست ساختار مورد نظر و کمی بهبود آن، شما می توانید این فرصت را به طور مستقیم از 1C از 1C با پر کردن تمام پارامترهای لازم دریافت کنید.

اصل پردازش بعدی:

  • ساختار مورد نظر را انتخاب کنید،
  • در آن مکان های فایل که در آن شما نیاز به وارد کردن اطلاعات از 1C، بوک مارک ها،
  • پس از آماده سازی قالب، آن را به 1C اضافه کنید (دایرکتوری فایل)،
  • سفارشی کردن قالب چاپ در 1C،
  • ما اسناد / دایرکتوری های لازم را با انتخاب قالب ایجاد شده چاپ می کنیم.

آماده سازی قالب کلمه

برای نشان دادن عملیات پردازش، چاپ مشخصات را به قرارداد از سند اجرای کالا و خدمات پیکربندی می کنیم. فرض کنید ما چنین کلمه ای داریم:

از آن ما یک مشخصات کامل را تشکیل می دهیم. ما با این واقعیت شروع می کنیم که بوک مارک ها را در آن مکان هایی که اطلاعات باید جایگزین شود، وارد کنید:



به نام نشانک ها شما نمی توانید از فضاها استفاده کنید.

هنگام چاپ، ما همچنین جدول محصول را پر می کنیم. به طوری که آن را به زیبایی شکل گرفت، کلاه و یک رشته خالی را ترک کنید:


ما کلمه را ذخیره میکنیم، نزدیک

راه اندازی قالب پرکن

در حال حاضر در برنامه، یک گزارش از اسناد فروش را باز کنید، به منوی چاپ بروید و روی دکمه کلیک کنید تا پیکربندی چاپ در قالب کلمه:


راه اندازی قالب ها فقط برای کاربران با حقوق کامل در دسترس است.

در پنجره تنظیمات باز می شود، اولین چیزی که ایجاد می شود فایل جدید در برنامه (به معنی یک عنصر کتاب مرجع فایل ها) و ما کلمه ما را به آن یاد خواهیم گرفت:


در پنجره ای که باز می شود، انتخاب کنید برای اضافه کردن یک فایل:


سپس آن را در تنظیمات قالب انتخاب کنید. پس از آن، میز نشانه گذاری شده است، ما باید منابع پر کردن داده ها را در این بوک مارک ها انتخاب کنیم:


منبع از جزئیات اسناد فروش خود و همچنین مشتقات از این جزئیات استفاده می کند:

هنگام چاپ، شما همچنین می توانید جزئیات بیشتری از کتاب های مرجع و اسناد استفاده کنید.

لیست جزئیات موجود بسیار بزرگ است، مناسب برای استفاده از ورودی سریع است:


به عنوان یک نتیجه از انتخاب منبع، جدول فرم زیر را انجام می دهد:


برای ارزش به ردیف جدول، سپرده در موارد، و همچنین کاهش نام:


برای چاپ یک جدول به صورت کلمه، جدول منبع سند را انتخاب کنید:


پس از انتخاب جدول، یک گواهی نامه با نام آن جزئیات ظاهر می شود که می تواند برای نمایش جدول در کلمه استفاده شود. این برای ما باقی می ماند تا از طریق کاما (به ترتیب ستون های فایل) را لیست کنید. مجاز به ترک یک مقدار خالی در ستون یا نوشتن متن دلخواه است:


همه چیز خوب است، حالا ما می توانیم کلمه مورد نظر را چاپ کنیم.

چاپ بر روی یک قالب پیکربندی شده در حال حاضر برای همه در دسترس است، I.E. کاربران نیازی به پیکربندی به طور مستقل چاپ نمی کنند.



ما می توانیم هر دو سند و لیست را چاپ کنیم:


در قالب تنظیمات چاپ، علاوه بر ایجاد قالب های جدید، شما می توانید در دسترس ویرایش کنید:


در صورتی که چند قالب کلمه برای شیء پیکربندی شده، پس از انتخاب فرمان چاپ، یک پنجره با انتخاب مورد نظر باز می شود:


برای جلوگیری از درگیری با حقوق دسترسی کاربر به دایرکتوری فایل ها شما باید علاوه بر پردازش چاپ به صورت چاپ را نصب کنید، پسوند برای 1C (در یک آرشیو پردازش) است که کاربران را با دسترسی به خواندن یک کتاب مرجع ارائه می دهد.

اگر سوالی دارید / نظرات / پیشنهادات برای این پردازش دارید، خوشحال خواهم شد.

انتشار 1.1.2.2 تاریخ 12/15/2018

برای نمایش تاریخ زمانی که قالب انتخاب شده است، توانایی انتخاب یک فرمت اضافه شده است، در بخش جدول، علاوه بر nomenclature، در حال حاضر ممکن است مقاله و واحد اندازه گیری را مشخص کنید:


حالا شما می توانید الگوهای غیر ضروری را حذف کنید:


انتشار 1.1.2.3 تاریخ 29 ژانویه 2019

فرصتی برای نمایش بخشی از تاریخ به طور جداگانه - روز، ماه (تعداد یا نام) و سال وجود داشت:


برای افراد (و همتایان با نوع فیزیکی)، شما هم اکنون می توانید جزئیات پاسپورت را نمایش دهید:


انتشار 1.1.2.4 تاریخ 03/12/2019

هنگام چاپ در ورد، بخش جدول اسناد برنامه به نظر می رسد فرصتی برای استفاده از نه تنها جزئیات این بخش جدولی، بلکه هر گونه جزئیات از nomenclature:


انتشار 1.1.2.5 تاریخ 07/12/2019

این امکان وجود دارد که نه تنها به شکل تشکیل شود قالب کلمه، اما همچنین به طور خودکار آن را به شی اصلی (در فایل های متصل شده) متصل کنید. برای انجام این کار، گزینه تنظیم را انتخاب کنید. ذخیره به فایل های متصل.


در پایان روش چاپ، فرم فایل پیوست شده باز خواهد شد.


از این فرم، هنگامی که شما نیاز به مشاهده / ویرایش قالب فرم پر شده را باز کنید، می توانید باز کنید.