1с як зробити зовнішню друкарську форму. Публікації

У цій статті докладно буде розказано, як новачкові, який погано знає 1С 8 друкарську форму. Наприклад візьмемо одну з найпоширеніших конфігурацій 1С 8 - Бухгалтерію 2.0. Створення друкованої форми 1С етапи написання:

  • створення файлу зовнішньої друкованої форми;
  • Створення макету друкованої форми;
  • Написання програмного коду виведення даних друкованої форми на екран;
  • створення параметрів автореєстрації друкованої форми;
  • Підключення зовнішньої друкованої форми до бази 1С Підприємства.

Створення друкованої форми 1С. Постановка задачі

Від нас вимагається конфігурації Бухгалтерія 2.0створити друковану форму до документа Надходження товарів та послуг. У шапці друкарської форми вивести такі дані:

  • Організацію;
  • Контрагента;
  • Договір контрагента;
  • Дата надходження.

У вигляді таблиці вивести дані табличної частини Товаридокумента. Таблиця повинна включати наступні колонки:

  • Номенклатура;
  • Кількість;
  • Ціна;
  • сума;
  • А також ціна номенклатури на поточну дату (з огляду на ціни з документа).

Файл зовнішньої обробки

Перейдемо до розв'язання задачі. Для початку відкриємо 1С 8 у режимі Конфігуратор. Саме в цьому режимі здійснюються всі розробки на платформі 1С8. Тепер нам необхідно створити файл зовнішньої обробки. Для цього клацніть по меню Файл -> Новий…або за піктограмою нового файлу.

У вікні, що відкрилося, виберемо пункт Зовнішня обробка.

Далі у полі Ім'янеобхідно вписати назву зовнішньої обробки. У нашому випадку назвемо її просто: "Друкована Форма", поле синонім при цьому заповниться автоматично. Зверніть увагу, що у полі Ім'я,зовнішньої обробки, слід писати назву без пробілів і розділових знаків.

Додамо реквізит зовнішньої обробки ПосиланняНаОб'єкт і оберемодля нього тип ДокументПосилання.НадходженняТоварівПослуг. Для цього в дереві метаданих зовнішньої обробки 1С виділимо пункт Реквізитита натиснемо кнопку Додати(кнопка із зеленим плюсом). У правій частині екрана відкриється вікно властивостей реквізиту в полі Ім'явпишемо - ПосиланняНаОб'єкт. Уполе Типнатисніть кнопку з трьома точками.

У дереві типів розкриємо гілку ДокументПосилання, і знайдемо там елемент Надходження Товарів Послуг, поставимо навпроти нього галочку і натиснемо ОК.

Збережемо файл зовнішньої обробки на жорсткий диск, для цього скористаємося меню Файл -> Зберегти, піктограма Зберегти(синя дискета), або поєднанням клавіш Ctrl+S. Назвемо файл «Друкована Форма», що зберігається.

Створення макету друкованої форми

Приступимо до створення макету друкованої форми 1С. Макет служить шаблоном для виведення друкованої форми, тому якщо хочете, щоб ваша форма виглядала добре, слід приділити йому увагу.

У дереві метаданих зовнішньої обробки додамо новий макет, у вікні конструктора макета нічого не мінятимемо і натиснемо кнопку Готово.

У новому макеті створимо кілька областей, необхідних для виведення друкованої форми. Усі необхідні нам області макету будуть горизонтальними, тому для створення нової області слід виділити необхідну кількість рядків макету та перейти до меню Таблиця -> Імена -> Призначити ім'яабо використовувати клавіші Ctrl+Shift+N,після чого ввести у віконці ім'я області. При створенні області макета не бійтеся помилитися з кількістю рядків їх завжди можна буде додати або видалити. Для видалення рядка макета 1С виділіть потрібний рядок і виберіть пункт меню видалити. Щоб додати новий рядок до макету, виділіть будь-який рядок макету та виберіть у контекстному меню пункт Розсунути.

Додавання шапки макету

Насамперед створимо область Шапка, у ній будуть виводитись дані для заголовка друкованої форми. Для цієї галузі нам знадобиться сім рядків макета. Виділимо їх і, як я вже писав вище, натисніть клавіші Ctrl+Shift+N, в полі Ім'янапишемо «Шапка» та натиснемо кнопку ОК.

Заповнимо область макета потрібними нам даними. Зазвичай, жодна друкована форма не обходиться без заголовка, тому створимо його і в нашій шапці макета. Так як у заголовку крім назви друкованої форми ми виводитимемо ще й номер документа з якого вона була надрукована, то текст заголовка в макеті ми задамо параметром. Параметр макета — це спеціально позначена комірка макета, в яку за допомогою вбудованої мови 1С 8 можна виводити різні дані. Заголовок повинен виводитись на всю ширину друкованої форми, тому визначимося скільки осередків макета нам буде достатньо для друку на стандартній альбомній орієнтації аркуша.

Зазвичай вистачає тринадцять чи чотирнадцять осередків макета, виділимо їх у першому рядку області Шапкаі об'єднаємо в один осередок ( Контекстне меню -> Об'єднати). Після цього двічі клацнемо по великому осередку, що вийшов, і напишемо назву параметра, в нашому випадку «ТекстЗаголовка». Для того щоб введений текст став повноцінним параметром, клацніть по осередку правою кнопкою миші і в контекстному меню виберемо пункт Властивості. На закладці Макетзнайдемо поле Заповненняі виберемо значення Параметр. Параметри в макеті 1С позначаються дужками.<>».

Заголовок друкованої форми має виділятися серед іншого тексту, тому ще раз виділимо комірку та за допомогою піктограм на панелі форматування макета, поставимо вирівнювання тексту По центрута розмір шрифту 14.

Після тексту заголовка виведемо в область Шапкадані про організацію, контрагент, договір контрагента та дату надходження товару. Оскільки всі ці дані також беруться з документа, також оформимо їх параметрами. Крім того, перед кожним параметром слід написати пояснювальний текст, щоб користувач легко зрозумів, де організація, а де контрагент і т.д. Всі ці дії подібні до створення заголовка тому не буду докладно на них зупинятися, наведу лише малюнок з тим, що має вийти в результаті.

На малюнку видно, як відрізняються параметри макета від звичайного тексту.

Додавання шапки таблиці макету

Останнє, що нам необхідно створити в даній області макета, - це шапка таблиці, в яку будуть виводитися дані табличної частини. Товари. Колонки, необхідні для таблиці, були описані в розділі «Постановка задачі». Шапку таблиці також створимо використовуючи об'єднання осередків та написання тексту (назв колонок). Кордони шапки таблиці виділимо за допомогою інструмента Рамка, що розташований на панелі форматування макету.

Додавання таблиці до макету

Створимо в макеті ще одну область Дані. У ній буде виводитись таблиця даних табличної частини Товари.Для цієї галузі нам знадобиться лише один рядок макета. Щоб вивести всі рядки табличної частини в друковану форму, ми будемо заповнювати і виводити цю область потрібну кількість разів. Колонки в області Даніповинні збігатися з колонками шапки таблиці, тому заповнити її не важко. Єдина відмінність - в області Данінам потрібні параметри, а чи не просто текст. Також зауважте, що за замовчуванням числові параметри форматуються праворуч, а текстові ліворуч. Для виділення колонок також необхідно використовувати інструмент Рамка.

Додавання підвалу в макет

Остання необхідна нам область макета – це Підвал. До неї виводитимуться підсумки за кількістю та сумою. Створення аналогічне до створення області Дані, але додатково слід виділити результати жирним шрифтом.

У результаті має вийти макет такого виду:

Створення друкованої форми 1С. Програмування

Приступимо до програмування - це найважливіший етап створення друкованої форми. Насамперед перейдемо в модуль об'єкта зовнішньої друкованої форми, саме там ми програмуватимемо. Для цього в основному вікні зовнішньої обробки натиснемо Дії -> Відкрити модуль об'єкта.

У модулі об'єкта зовнішньої друкованої форми необхідно створити експортну функцію Друк().

Функція Друк() Експорт КінецьФункції

Зверніть увагу, що дана функціяє обов'язковою для зовнішніх друкованих форм у конфігураціях, що використовують звичайну програму. Весь наступний програмний код необхідний виведення друкованої форми будемо писати всередині цієї функції.

Ініціалізація основних змінних

Створимо змінну ТабДок, в якій міститься табличний документ — саме він і є друкарською формою, в яку ми виводитимемо заповнені області макета.

ТабДок = новий Табличний Документ;

У змінну Макетотримаємо створений нами макет друкованої форми. Для цього використовуємо вбудовану функцію ОтриматиМакет(<ИмяМакета>).

Макет = ОтриматиМакет("Макет");

Усі області макета отримаємо у змінні. Для цього використовуємо метод макету ОтриматиОбласть(<ИмяОбласти>) .

ОбластьШапки = Макет.ОтриматиОбласть("Шапка"); ОбластьДані = Макет.ОтриматиОбласть("Дані"); ОбластьПодвал = Макет.ОтриматиОбласть("Подвал");

Виведення шапки друкарської форми у табличний документ

Усі необхідні змінні ініціалізовані. Приступимо до заповнення та виведення областей макета в табличний документ. Насамперед заповнимо заголовок друкованої форми, для цього нам необхідно передати в параметр ТекстЗаголовка, який ми створили у макеті, потрібний нам текст. Для заповнення значень параметрів в області макета існує спеціальна колекція, яка так і називається Параметри.З якої через «.» можна отримати будь-який параметр. У текст заголовка передамо текст: "Друкована форма", а також номер документа.

ОбластьШапки.Параметри.ТекстЗаголовка = "Друкована форма "+ПосиланняНаОб'єкт.Номер;

Інші параметри шапки заповнимо подібним чином, всі необхідні для них значення отримаємо з реквізиту ПосиланняНаОб'єкт, в якому міститься посилання на документ, що друкується.

ОбластьШапки.Параметри.Організація = ПосиланняНаОб'єкт.Організація; ОбластьШапки.Параметри.Контрагент = ПосиланняНаОб'єкт.Контрагент; ОбластьШапки.Параметри.ДатаНадходження = ПосиланняНаОб'єкт.Дата; ОбластьШапки.Параметри.ДоговірКонтрагенту = ПосиланняНаОб'єкт.ДоговірКонтрагенту;

Всі параметри шапки заповнені, виведемо її у створений нами табличний документ, для цього використовуємо метод Вивести(<Область>) .

ТабДок.Вивести(ОбластьШапки);

Написання запиту для друкарської фори

Займемося заповненням та висновком області Дані. Створення друкованої форми 1С передбачає і написання запиту, нам він необхідний отримання даних табличної частини Товарита цін Номенклатурина поточну дату будемо використовувати Запит. Мова запитів 1С 8 схожа на SQL, а точніше практично копіює можливості його оператора SELECT, але при цьому весь запит пишеться російською мовою. Тому якщо ви хоча б віддалено знайомі з SQL, то й мову запитів 1С 8 зрозумієте легко.

У цій друкованій формі запит буде досить простим і багато хто скаже, що можна було б обійтися і без нього, але знання мови запитів та вміння його грамотно використовувати - одне з головних умінь програміста 1С. Запити дозволяють, використовуючи менші ресурси, отримувати найскладніші вибірки даних, а також у тексті запиту набагато легше розібратися, ніж у програмному коді написаному без використання запиту (або з мінімальним його використанням). До того ж, у 1С 8 є дуже хороший конструктор запитів, що дозволяє в інтерактивному режимі збирати запит із потрібних таблиць.

Створимо змінну, яка міститиме запит.

Запит = Новий Запит;

Текст запиту складатимемо за допомогою конструктора запитів. Для початку напишемо:

Запит. Текст = "";

Поставимо курсор мишки між лапками, натиснемо праву кнопку миші. У контекстному меню, що відкрилося, виберемо пункт Конструктор запитувін дуже допоможе нам у створенні друкованої форми 1С. Після цього відкриється вікно конструктора запиту, воно містить багато вкладок, але для нашого запиту знадобляться лише чотири: "Таблиці та поля", "Зв'язки", "Умови", "Об'єднання/Псевдоніми".

Для нашого запиту нам знадобляться дві таблиці: таблична частина Товаридокумента Надходження товарів та послугта зріз останніх на поточну дату регістру відомостей Ціни номенклатури.

У лівій частині вікна конструктора знайдемо стовпець База даних. У ньому є дерево всіх об'єктів метаданих, знайдемо потрібні нам. Для цього розкриємо гілку Документиі знайдемо документ НадходженняТоварівПослуг, розкриємо його та знайдемо табличну частину Товари, перетягнемо її в стовпець конструктора запитів Таблиці. Перетягнути можна трьома способами: власне перетягуванням, подвійним клацанням по таблиці або виділивши її та натиснувши кнопку «>». Розкриємо гілку РеєстриВідомостейі знайдемо там таблицю Ціни Номенклатури., також перетягнемо її в стовпець Таблиці. Цих двох таблиць достатньо для нашого запиту.

Виберемо потрібні поля з отриманих таблиць. Для цього у стовпці Таблицірозкриємо таблицю і знайдемо поля: Номенклатура, Сума, Ціна, Кількістьі перетягнемо їх у третій стовпець конструктора. Поля. Розкриємо таблицю , знайдемо поле Цінаі теж перетягнемо його в Поля.

Структура таблиць та полів нашого запиту готова, тепер займемося умовами. Нам необхідно щоб дані табличної частини Товарибралися не з усіх надходжень, а тільки з того, що ми друкуємо. Для цього накладемо умову на таблицю НадходженняТоварівПослугТовари. Перейдемо на закладку "Умови" конструктора запитів. У колонці Полярозташовані обрані нами раніше таблиці, для умови нам знадобиться поле Посиланняз таблиці НадходженняТоварівПослугТовари,перетягнемо його у вікно Умови.

У запитах 1С можна використовувати параметри, вони потрібні щоб передавати у запит дані. Наприклад, якщо ми хочемо обмежити вибірку документів якимсь конкретним документом, то можна за допомогою параметра передати посилання запит на цей документ і використовувати даний параметр в умові. Саме так ми і зробимо у нашому запиті.

Після того, як у вікно Умовими додали поле Посилання, конструктор запитів сам створить параметр з аналогічною назвою та розташує його після знака «=». Цей параметр можна перейменувати, якщо є бажання. У тексті запиту параметри позначаються знаком «&», але в цьому випадку цього робити не потрібно, оскільки мається на увазі, що в другій частині умови стоїть параметр, це просто потрібно запам'ятати. Про те як передати значення параметр запиту 1С буде розказано нижче.

Так як у запиті ми використовуємо не повну таблицю цін номенклатури, а віртуальну (зріз останніх у даному випадку), то нам необхідно задати умови формування цієї віртуальної таблиці, у нашому випадку це дата зрізу та умова на тип цін (мають вибиратися ціни, що мають суворо визначений) тип цін - той який заданий у документі надходження, який ми виводимо на друк).

Для заповнення параметрів віртуальної таблиці перейдемо на закладку Таблиці та поляконструктора запиту, в колонці Таблицівиділимо таблицю ЦіниНоменклатуриЗріз Останніхта натиснемо кнопку Параметри віртуальної таблиці, що знаходиться вгорі. У вікні, в полі Періодслід задати параметр, в який передаватиметься дата, на яку буде робитися зріз цін. У нашому випадку це буде поточна дата (тобто сьогодні), тому і параметр назвемо «Поточна Дата». У полі умови напишемо умови на тип цін, його ми також передамо в параметрі, який назвемо «ТипЦен». Умова, що вийшла, буде виглядати наступним чином (де ТипЦін- Вимір регістру Ціни номенклатури):

ТипЦін = &ТипЦен

Параметри віртуальної таблиці заповнені, натисніть кнопку ОК.

Тепер, коли ми обмежили вибірку лише потрібним нам документом, створимо зв'язок між таблицями запиту. Якщо цього не зробити, то ціни з таблиці Ціни Номенклатури з останніх не будуть пов'язані з номенклатурою з надходження. Перейдемо на вкладку Зв'язкиконструктора запитів. Створимо зв'язок по полю Номенклатураміж двома нашими таблицями. Для цього натисніть кнопку Додати, в полі Таблиця 1оберемо таблицю НадходженняТоварівПослугТовари, а в полі Таблиця 2 - Ціни Номенклатури Зріз Останніх. В умовах зв'язку виберемо поля Номенклатураз обох таблиць.

Також слід зауважити, що у вибірці запиту нам необхідно отримати всі рядки з табчастини Товариі ціни лише у разі, якщо такі є на поточну дату на кшталт цін документа. Таким чином дані табчастини Товариє обов'язковими, а дані зрізу цін немає. Тому у зв'язках між цими таблицями необхідно використовувати так зване ЛІВОЕ З'ЄДНАННЯ, причому лівою (або обов'язковою) таблицею буде НадходженняТоварівПослугТовари, а правою (або необов'язковою) ЦіниНоменклатуриЗріз Останніх. Для того, щоб ліве з'єднання таблиць запиту запрацювало так як я описав вище необхідно поставити галочку Усепісля поля Таблиця 1.


Запит практично готовий, залишилося лише трохи попрацювати над псевдонімами полів. Перейдемо на закладку Об'єднання / Псевдонімиі поставимо псевдонім для поля ЦіниНоменклатуриЗріз Останніх.Ціна. Ім'я псевдоніма буде ЦінаНа сьогодні, потрібен він для того, щоб імена полів вибірки запиту та імена параметрів у макеті друкованої форми збігалися.

Робота в конструкторі запитів на цьому закінчена, натисніть кнопку ОК. Після того, як вікно конструктора закриється, ви побачите, що рядок з текстом запиту заповнений і має такий вигляд:

Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Номенклатура, | ПоступлениеТоваровУслугТовары.Сумма, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Количество, | ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаНаСегодня |ИЗ |Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних (| &ПоточнаДата, ТипЦен = &ТипЦен) ЯК ЦіниНоменклатуриЗрезОстанніх | ПО ВступТоварівПослугТовари.Номенклатура |

Виконання запиту

Передамо в запит необхідні параметри, для цього скористаємося методом запиту ВстановитиПараметр(<ИмяПараметра>,<Значение>). Для отримання поточної дати скористаємося вбудованою функцією Поточна дата(), вона повертає дату та час комп'ютера.

Виконаємо запит для отримання вибірки із потрібними нам даними. Для цього спочатку скористаємося методом запиту Виконати(), а потім методом Вибрати().

Вибірка = Запит.Виконати().Вибрати();

Заповнення таблиці друкарської форми

У результаті, у змінній Вибіркабуде міститися вибірка результатів запиту, переміщатися по ній можна за допомогою методу Наступний(), а щоб обійти цілком знадобиться цикл Бувай. Конструкція вийде така:

Поки Вибірка.Наступний() Цикл КінецьЦикл;

Саме в цьому циклі ми будемо заповнювати та виводити область макета Дані. Але для початку ініціалізуємо дві змінні числового типу. У них збиратимемо підсумки за кількістю та сумою, які нам необхідно вивести в область Підвал.

РазомСума = 0; РазомКількість = 0;

Усередині циклу будемо заповнювати область Даніданими з поточного елемента вибірки, змінні РазомСумаі РазомКількістьдодавати значення суми та кількості, і нарешті, виводити область у табличний документ за допомогою вже знайомого нам методу Вивести(). Оскільки імена полів нашого запиту повністю збігаються з іменами параметрів області Дані, то для заповнення будемо використовувати вбудовану процедуру ЗаповнитиЗначенняВластивостей(<Приемник>, <Источник>), яка копіює значення властивостей<Источника>у властивості<Приемника>.

Поки Вибірка.Наступний() Цикл ЗаповнитиЗначенняВластивостей(ОбластьДані.Параметри,Вибірка); ИтогоСума = ИтогоСума + Выборка.Сума; РазомКількість = РазомКількість + Вибірка.Кількість; ТабДок.Вивести(ОбластьДані); КінецьЦикл;

Виведення підвалу друкованої форми до табличного документа

Залишилося заповнити та вивести останню область макета Підвал. Дані для заповнення ми вже підготували, заповнення та виведення здійснюємо за тією самою схемою.

ОбластьПідвал.Параметри.РазомКількість =РазомКількість; ОбластьПідвал.Параметри.РезультатСумма =РезультатСумма; ТабДок.Вивести(ОбластьПодвал);

Табличний документ повністю заповнений, залишилося вивести його на екран, щоб користувач міг переглянути друковану форму і при необхідності роздрукувати. Але в типових конфігураціях 1С 8 виведення зовнішніх друкованих форм відповідають процедури спеціальних модулів. Тому достатньо повернути із функції Друк()заповнений табличний документ.

Повернення ТабДок;

У цьому етап програмування закінчено створення друкованої форми 1с майже завершено. Повний текстфункції Друк()тут наводити не буду, можете подивитися його у файлі друкованої форми, завантажити який можна внизу статті.

Створення друкованої форми 1С. Параметри автореєстрації

При підключенні зовнішньої друкованої форми до бази система автоматично не визначає для якого документа або довідника призначена друкована форма, вибирати його доводиться вручну. А якщо писала друковану форму інша людина, а вам доручено лише підключити її, то вибір може стати неоднозначним. Щоб уникнути таких проблем, у всіх зовнішніх друкованих формах необхідно створювати макет із параметрами автореєстрації. Якщо він створений і правильно оформлений, система автоматично визначає, якому документу або довіднику призначена друкована форма.

Робиться він так:

  • У зовнішній обробці створюємо новий макет. Називаємо його «Параметри_Автореєстрації» (важливо не помилитись!).
  • У першому осередку макета пишемо документи.(або Довідники.) та ім'я документа до якого необхідно підключити друковану форму.

Підключення до бази зовнішньої друкованої форми

  • Запустіть 1С 8 у режимі Підприємство;
  • Перейдіть до меню Сервіс -> Додаткові звіти та обробки -> Додаткові зовнішні друковані форми;
  • Натисніть кнопку Додати;
  • У вікні, натисніть піктограму Замінити файл зовнішньої обробки;
  • Якщо у вас створено параметри автореєстрації, то погоджуємось їх використовувати;
  • Якщо у вас не створено параметри автореєстрації, то до табличної частини Приналежність друкарської формидодаємо потрібний документчи довідник;
  • Натискаємо кнопку ОК.

Після цього зовнішня друкована форма буде доступна у меню Друкдокумента Надходження товарів та послуг.Створення друкованої форми 1С цьому можна вважати завершеним.

Як відомо - без папірця ти..не може обійтись жоден серйозний бізнес. І коли ми говоримо, що в 1С є якісь там електронні документи, то одразу виникає питання як їх роздрукувати у паперовому вигляді.

Процес друку електронного документа 1С називається друкована форма 1С.

Кожен документ може мати кілька друкованих форм 1С. Наприклад, документ Реалізація товарів та послуг (тобто продаж) друкується у друковані форми 1С: ТОРГ-12, Накладна, Товарно-транспортна накладна, Акт наданих послуг тощо.

Суть друкованої форми 1С – це шаблон (типу документа Excel), у якому задані змінні. Під час друку замість змінних підставляється текст із електронного документа. Шаблон зазвичай зберігається у конфігурації.

Проблема зміни типової друкованої форми 1С у тому, що типову конфігурацію зазвичай не бажано змінювати, інакше буде складніше оновлюватися. Тому почали винаходити велосипед різні методики використання зовнішніх друкованих форм 1С.

Зовнішня друкована форма 1С – це шаблон друку, який зберігається окремо від самої конфігурації.

Однак це все теорія. А як створити друкарську форму? А ще краще – як внести зміни до існуючої?

Як друкується документ 1С

Щоб роздрукувати будь-який документ 1С (який може бути надрукований) – потрібно в документі натиснути кнопку Друк. 1С запропонує вибрати друковану форму 1С для цього документа зі списку.

Зліва від кнопки Друк зазвичай знаходиться кнопка швидкого доступу до останньої обраної друкованої форми 1С.

Результат друку виглядає так. Щоб надрукувати його на принтер, потрібно поставити курсор у друковану форму 1С, натиснути Ctrl+P або кнопку з принтером на панелі кнопок або в меню Файл/Друк.

Параметри друку (поля, орієнтація аркуша тощо) розташовані в меню Файл/Параметри сторінки. Також у налаштуваннях користувача можна зробити, щоб друк проводився відразу на принтер.

Звідки береться ця друкарська форма?

Де знаходиться друкована форма 1С

Зайдемо до конфігуратора. Знайдемо у вікні конфігурації необхідний документ. Розкриємо його гілку Макети. Саме вони і перетворюються на друковану форму 1С під час друку.

Однак замало буде – нам пропонували вибрати набагато більше варіантів друку. Справа в тому, що безліч макетів друкованих форм 1С заховано в іншому місці.

Повернімося до вікна конфігурації 1С. Відкриємо гілку Загальні, а потім гілку Загальні макети. Саме тут і є більшість макетів. Особливо це стосується регламентованих державою друкованих форм 1С – ТОРГ 12, Рахунок фактури тощо.

До речі не складно помітити, що макетів ТОРГ12 або Рахунок Фактури Ви побачите кілька. Чому? Це легко пояснити. Закони та вимоги періодично змінюються. Але ми не можемо просто змінити той самий макет – а якщо доведеться роздрукувати документ від дати, яка знаходиться раніше дати зміни. Тому робиться кілька макетів і, залежно від дати документа, використовується правильний.

Але це не все! Є ще зовнішні макети. Де вони зберігаються?

Повернімося до режиму 1С Підприємство. Через меню користувача з адміністративними правами Операції/Довідники виберемо довідник Зовнішні обробки.

Рядки цього довідника, які мають вигляд Друкована форма, додають варіанти друку для документа, зазначеного в таблиці Приналежність друкованої форми (на малюнку це Реалізація товарів послуг).

Для того, щоб це запрацювало – Ви повинні зробити зовнішню обробку, яка має у своєму модулі об'єкта процедуру Друк() із позначкою Експорт, яка організує процес друку.
Але ми забігаємо наперед. Давайте спочатку подивимося, як організований макет друкованої форми 1С.

Макет друкованої форми 1С

Макет друкованої форми 1С має такий вигляд.

Як Ви бачите, він поділений на блоки. Блоки можуть бути горизонтальні (ім'я зліва) та вертикальні (ім'я вгорі).

Сам макет у тому вигляді, який він є – не друкується. Друкуються окремі блоки. Програміст у процедурі обробки друку вказує порядок блоків та кількість повторень кожного блоку. Через війну складається друкована форма.

Щоб призначити область – виділіть кілька рядків (або кілька колонок) та виберіть у меню Таблиця/Імена/Призначити ім'я. Щоб прибрати – там є команда Прибрати ім'я.

Назва потрібна для того, щоб до області можна було звертатися з програмного коду. Назву можна призначити не тільки рядкам або колонкам, а й просто кільком осередкам. Для цього виділіть комірки та виберіть те саме меню.

Однак за промовчанням назви довільних осередків не відображаються. Щоб побачити їх, виберіть пункт меню Таблиця/Імена/Відображати іменовані осередки.

Отже, сьогодні ми дізналися, що друкована форма 1С формується за допомогою макету. Макет складається з блоків - по розумному - іменованих областей.

Типові (зазвичай використовувані) блоки для друкарської форми:

  • Шапка – виводиться заголовок документа
  • Рядок – виводиться один рядок таблиці, цей блок повторюють стільки разів, скільки потрібно надрукувати рядків
  • Підвал - виводиться закінчення документа.

Тепер нам потрібно розібратися з тим,

У цій статті описано як підключити зовнішню друковану форму до бази 1С на прикладі конфігурації «Управління торгівлею 11.2»

Конфігурація «Керування торгівлею 11.2» — це конфігурація на «КЕРУЮЧИХ» формах!

Наша інструкція «показує» як підключити зовнішню друковану форму в інформаційній базі 1С із конфігурацією на «КЕРУЮЧИХ» формах а саме:

  • "Бухгалтерія 3.0"
  • "Управління торгівлею 11.2"
  • «Зарплата та управління персоналом 3.1»
  • «Комплексна автоматизація 2.0»
  • «Управління невеликою фірмою 1.6»
  • «Роздріб 2.2»
  • та інші подібні конфігурації.

Для того, щоб підключити зовнішню друковану форму в 1С, нам доведеться пройти 11 кроків.

1 — Меню «НСІ та адміністрування» (В інших конфігураціях, як, наприклад, у Бухгалтерії підприємства 3.0, може називатися просто — «Адміністрування»). 2 — Вибираємо «Друкарські форми, звіти та обробки» (див. мал. нижче ↓)

3 — Розкриваємо підменю «Звіти та обробки» (В інших конфігураціях, як, наприклад, у Бухгалтерії підприємства 3.0, такого підменю може не виявитися, тому відразу переходимо до наступної дії). 4 — Ставимо «галочку» Використання додаткових звітів та обробок. 5 — Переходимо до розділу: Додаткові звіти та обробки. (див. мал. нижче ↓) ()

6 - Натискаємо кнопку "Створити". (див. мал. нижче ↓)

У нових версіях 1С (починаючи з серпня 2016 року) в програму вбудовано механізм попередження про небезпеку використання невідомих зовнішніх обробок, які можуть містити «віруси», у попередніх версіях програми попередження не виникатиме! Якщо воно виникло, то для підключення зовнішньої друкованої форми буде потрібно. 7 - Натиснути кнопку "Продовжити". (див. мал. нижче ↓)

8 — Вибираємо каталог, в якому знаходиться обробка. 9 - Виділяємо її (потрібну нам обробку). 10 - Натискаємо кнопку "Відкрити". Або замість дій 9 і 10 можна просто двічі клацнути по потрібній нам зовнішній друкованій формі у вікні вибору. (див. мал. нижче ↓)

Якщо нам необхідно додати розміщення для обробки, що додається (Наприклад, це Універсальна форма договору з нашого сайту і нам треба, щоб команда друку цієї форми виводилася в якомусь об'єкті, в якому спочатку не виводиться). 11 — натискаємо на рядок розміщення («Розмістити в:», можливо «Розміщення:») та обираємо необхідні довідники та документи. 12 — Завершуємо дії щодо підключення зовнішньої друкованої форми натисканням кнопки «Записати та закрити». (див. мал. нижче ↓)

От і все! Вітаємо! Зовнішню друковану форму підключено!Чи все ми зробили правильно? Перевіримо…

Перед Записом та закриттям ми звернули увагу, що дана зовнішня друкована форма розміщена в документі Реалізація товарів та послуг, а значить можливості друку відкриваємо будь-який документ виду: «Реалізація товарів та послуг». натискаємо кнопку «Друк» і бачимо — з'явилося вікно вибору друкованих форм, серед них — 13 - Підключена нами зовнішня друкована форма (див. мал. нижче ↓)

Тепер точно все. Ми сподіваємося, що ця стаття була вам корисна.

Як додати (зареєструвати) зовнішню друкарську форму (або обробку) до 1С Бухгалтерія 8.3 (редакція 3.0)

2019-05-15T13:40:54+00:00

Часто у бухгалтера виникає потреба у додатковій друкованій формі до якогось із стандартних документів 1С:Бухгалтерія 8.3 (редакція 3.0). Або потрібна додаткова обробка, наприклад, щоб автоматично заповнити документ або ввести новий на підставі. Зазвичай така можливість вже кимось розроблена і її можна знайти або замовити у програміста. І ось доопрацювання отримано, залишилося лише додати її до бухгалтерії. Як це зробити? Про це нижче за кроки.

1. Відкрийте 1С Бухгалтерія 3.0 і виберіть у лівій панелі розділ "Адміністрування"->"Друкарські форми, звіти та обробки" ():

2. Тут знайдіть та виберіть пункт "Додаткові звіти та обробки", попередньо встановивши галку "Додаткові звіти та обробки" зліва:

3. Натисніть кнопку "Додати з файлу...".

4. І виберіть файл із зовнішньою друкованою формою або обробкою (розширення epf).

5. У новому вікні натисніть кнопку "Записати та закрити".

6. Відкрийте потрібний документ і переконайтеся, що в кнопці друк з'явився ще один варіант друкованої форми або пункт меню "Створити на підставі" або нова кнопка на панелі інструментів форми. Готово!

З повагою, Володимир Мількін(Викладач та розробник).

Зовнішні друковані форми для звичайного додатка (для конфігурації Бухгалтерія підприємства 2.0, Зарплата та управління персоналом 2.5, Управління торгівлею 10.3 і т.д.) створюються досить просто порівняно із зовнішніми друкованими формами для керованого додатка.

Навіщо створювати зовнішні друковані форми

Перевага зовнішньої друкованої форми проти звичайної у цьому, що дозволяє уникнути зміни конфігурації інформаційної бази. А це означає, що подальшого оновлення конфігурації не буде ускладнений. Крім того, зовнішні друковані форми поряд із зовнішніми обробками є єдиним варіантом розширення функціоналу. базових версійконфігурацій 1С, які не можна змінювати взагалі.

Та й останнє: зовнішні друковані форми легше тиражувати, т.к. вони є окремим файлом, який можна швидко підключити до інформаційної бази.

Як створити зовнішню друкарську форму

Розглянемо процес створення зовнішньої друкованої форми 1С за кроками:

  1. Створюємо зовнішню обробку. Для цього у конфігураторі вибираємо пункт меню Файл - Новий...І в діалоговому вікні, що відкрилося. Зовнішня обробка.
  2. Створюємо реквізит зовнішньої обробки з ім'ям ПосиланняНаОб'єкт. Тип реквізиту — посилання довідник чи документ, котрій створюється зовнішня друкована форма. Одна й та форма може застосовуватися для кількох типів об'єктів, у разі тип даних реквізиту ПосиланняНаОб'єктмає бути складовим.
  3. У модулі об'єкта створюємо експортну функцію з ім'ям Друк, яка має повертати готовий табличний документ друкованої форми.

Часто буває, що потрібно трохи підкоригувати макет вже існуючої друкованої форми і зробити її зовнішньою. Наприклад, додати на макет друк організації та підпис керівника.

Створення зовнішньої друкованої форми на основі стандартної з незначними змінами

Розглянемо цю процедуру з прикладу створення зовнішньої друкованої форми універсального передавального документа для документа Реалізація товарів та послуг 1С: Бухгалтерії. Від стандартної друкованої форми вона відрізнятиметься наявністю друку організації.

  1. Створюємо зовнішню обробку з реквізитом ПосиланняНаОб'єкт,тип даних - ДокументПосилання.РеалізаціяТоварівПослуг.
  2. Знаходимо макет стандартної друкованої форми УПД (він перебуває у загальних макетах) і копіюємо (перетягуємо) їх у вікно зовнішньої обробки. Макети інших друкованих форм можуть перебувати у документах чи довідниках.
  3. Вносимо необхідні змінископійований макет друкованої форми.
  4. Знаходимо функцію, відповідальну формування друкованої форми. Ця функція має повертати сформований табличний документ. Копіюємо її вміст у експортну функцію Друк()у модулі об'єкта зовнішньої обробки.
    У нашому випадку це функція ДрукУніверсальногоПередавальногоДокумента() Експортз модуля об'єкта документа Реалізація товарів та послуг.
    Якщо зміни макета були суттєвими (змінювалися області та/або параметри), необхідно внести відповідні коригування у функцію друку.
  5. Намагаємось зберегти зовнішню обробку. При цьому, швидше за все, з'являться повідомлення про помилки, пов'язані з відсутністю деяких процедур та функцій, що викликаються функцією друку. Ці функції та процедури необхідно знайти у вихідному документі і скопіювати в модуль об'єкта зовнішньої обробки. Або скоригувати посилання, якщо вихідна функція або експортна процедура.
  6. (не обов'язково).Для тестування зовнішньої друкованої форми зручно зробити її форму, яку винести реквізит ПосиланняНаОб'єкт. Кнопка Виконатимає викликати процедуру Друк()із модуля об'єкта. Для цієї події натискання кнопки задається процедура:
Продовження теми:
Податкова система

По мені ж людина – спочатку це НІЩО, це – гівно в ополонці, дулю в кишені. Однак він може здатний вирости до Великих Над небес, до Вічності – якщо за його спиною...

Нові статті
/
Популярні