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

Друковані форми в 1С дозволяють трансформувати електронний документ на друкований варіант.

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

У цьому посібнику пропонуємо розібратися з можливостями Конструктора друку, розглянемо, які можуть бути види друкованих форм і чим вони відрізняються. Також ми покажемо на прикладі, як виводити створену форму на друк.

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

Друковані форми бувають двох видів:

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

Як вибрати підготовлені макети? Після того як ви проводите операцію приходу або витрати, наприклад, виписуєте акт виконаних робіт, для друку документи ви натискаєте кнопку «Друк». У списку відображається список форм для друку, які вже заповнені введеними даними про виконану операцію та вашу компанію. Натиснувши потрібний вид документа, ви відкриваєте вікно попереднього перегляду, щоб можна було переконатися в правильності заповнених даних. Кнопка друку виводить документ на принтер.

Розібравшись із основами, давайте з'ясуємо, де зберігаються всі ваші друкарські форми. Перейдемо до наступного питання.

Де зберігаються друкарські форми

Переглянути вбудовані друковані форми можна як у режимі конфігуратора, так і у звичайному режимі підприємства. У першому випадку потрібно при запуску програми натиснути кнопку в стартовому вікні. Ви побачите меню програми, знайти гілку «Реалізація Товарів Послуг», в якій міститься пункт «Макети». У ньому найчастіше містяться лише два пункти – «Накладна» та «Акт». Де ж тоді всі інші, адже список значно більший? Вони просто ховаються в іншому місці. Потрібно відкрити гілки «Загальні» - «Загальні макети», в ній і зберігаються практично всі макети.

У другому випадку потрібно перейти до розділу меню «Адміністрування» - «Друкарські форми, звіти та обробки» - «Макети друкованих форм». У ньому відображатимуться всі макети документів. Примітно, що в цьому меню їх можна і відредагувати.

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

Створення простої форми через вбудований конструктор друку

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

  1. Насамперед запустіться в режим Конфігуратора, знайдіть потрібний вам документ, наприклад, Реалізація Товарів Послуг, у властивостях документа перейдіть в Дії - Конструктори - Конструктор друку.
  2. При запиті роботи виберіть «Звичайні форми».
  3. Дайте назву новому макету, наприклад, "Друк рахунку".
  4. Виберіть ті реквізити, які ви хотіли б бачити в шапці документа. Причому їх потрібно вибирати в порядку, в якому вони відображатимуться. Для вибору вам потрібно виділити курсором пункт у лівій колонці та натиснути стрілку посеред екрана, щоб реквізит відобразився у правій колонці.
  5. Позначте реквізити для відображення у табличній частині. Вибір реквізитів відбувається за тим самим принципом, що й у попередньому пункті.
  6. Так само виберіть реквізити нижньої частини документа.
  7. На заключному етапі створення виберіть, чи ви хочете друкувати відразу ж без попереднього перегляду, чи потрібний захист таблиці, після чого підтвердіть створення форми кнопкою ОК.

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

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

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

Тепер докладніше про саму процедуру. Розглянемо з прикладу створення макета «Рахунок» для документа «Реалізація (акти, накладні)».

  1. Відкрийте програму 1C 8 у режимі Конфігуратора.
  2. Натисніть Файл – Новий – Зовнішня обробка, придумайте його назву (вона не повинна включати пробіли), потім натисніть кнопку Дії – Відкрити модуль об'єкта.
  3. У полі для введення введіть наступний код ( жовтим кольоромвиділені значення, які можна змінити на свої):

Функція ВідомостіЗовнішнійОбробці() Експорт
ПараметриРеєстрації = Новий Структура;
Масив Призначень = Новий Масив;
МасивПризначень.Додати(«Документ.РеалізаціяТоварівПослуг»); //Вказуємо документ, якого робимо зовнішню печь. форму
ПараметриРеєстрації.Вставити(«Вигляд», «ДрукованаФорма»); // може бути - Друкована Форма, Заповнення Об'єкта, Додатковий Звіт, Створення Пов'язаних Об'єктів ...
ПараметриРеєстрації.Вставити(«Призначення», МасивПризначень);
ПараметриРеєстрації.Вставити(«Найменування», «Замовлення для реалізації товарів»); //ім'я під яким обробка буде зареєстрована у довіднику зовнішніх обробок
ПараметриРеєстрації.Вставити(«БезпечнийРежим», брехня);
ПараметриРеєстрації.Вставити(«Версія», «1.0»);
ПараметриРеєстрації.Вставити(«Інформація», «Ця форма для друку була створена як зразок»);
ТаблицяКоманд = ОтриматиТаблицюКоманд();
Додати Команду (Таблиця Команд, «Зовнішнє замовлення», «Зовнішнє Замовлення», «Виклик Серверного Методу», Істина, «Друк MXL»);
ПараметриРеєстрації.Вставити(«Команда», ТаблицяКоманд);
Повернення ПараметриРеєстрації;
КінецьФункції / / Відомості Зовнішній Обробці ()
Функція ОтриматиТаблицюКоманд()
Команди = Новий ТаблицяЗначень;
Команди.Колонки.Додати(«Уявлення», Новий ОписТипів(«Рядок»));//як виглядатиме опис печ.форми для користувача
Команди.Колонки.Додати («Ідентифікатор», Новий Опис Типів («Рядок»)); //ім'я макета печ.форми
Команди.Колонки.Додати(«Використання», Новий ОписТипів(«Рядок»)); / / Виклик Серверного Методу
Команди.Колонки.Додати («Показувати Оповіщення», Новий Опис Типів («Булево»));
Команди.Колонки.Додати(«Модифікатор», Новий ОписТипів(«Рядок»));
Повернення Команди;
КінецьФункції
Процедура ДодатиКоманду(ТаблицяКоманд, Подання, Ідентифікатор, Використання, ПоказуватиОповідь = Брехня, Модифікатор = «»)
НоваКоманда = ТаблицяКоманд.Додати();
Нова Команда. Подання = Подання;
Нова Команда. Ідентифікатор = Ідентифікатор;
Нова Команда. Використання = Використання;
Нова Команда.
Нова Команда. Модифікатор = Модифікатор;
КінецьПроцедури

  1. Збережіть макет для друку як файл у будь-яку папку на жорсткому диску, назвіть його відповідним чином.

Вставте в цей же документ процедуру запуску друку з меню програми (виділені жовтим кольором команди повинні співпадати з рядком):

ДодатиКоманду(ТаблицяКоманд, «Зовнішнє замовлення», «ЗовнішнєЗамовлення»):
Процедура Друк(МасивОб'єктів, КолекціяДрукованихФорм, Об'єктиДруку, ПараметриВиводу) Експорт
УправлінняДруком.ВивестиТабличнийДокументВКолекцію(
КолекціяДрукарськихФорм,
«Зовнішнє замовлення»,
«Зовнішнє замовлення»,
СформуватиДруковуФорму(МасивОб'єктів, Об'єктиДруку);
КінецьПроцедури // Друк()

  1. Вставте макет заповнення друкованої форми, клацнувши за назвою зовнішньої форми в лівому нижньому кутку та обравши «Макети» - «Додати» - «Таблічний документ», дайте йому назву. Після цього заповніть електронну таблицю потрібними даними. Наприклад:
    • Замовлення товару № [НомерРеалізації] від [ДатаРеалізації] - клік правою кнопкою миші - Властивості - Макет - Заповнення - Шаблон.
    • Створіть стовпчики, які мають відображатися у документі.
    • Перейдіть до введених осередків, натисніть Таблиця - Імена - Призначити ім'я - введіть назву «Шапка».
    • Скопіюйте рядок із заголовками таблиці, виділіть їх, клацніть правою кнопкою миші - Властивості - Макет - Заповнення - Параметр.
    • Виділіть рядок, назвіть його, наприклад, «СтрокаТЧ».
    • Створіть підвал: пропишіть Разом, комірку, в якій має відображатися підсумкова сума, назвіть СумаРазом, у властивостях виберіть «Параметри».
    • Вкажіть відповідального, у властивостях осередку для виведення прізвища вкажіть «Параметри».
    • Виділіть нижні рядки та дайте діапазону найменування «Подвал».
  2. Тепер у вікні введення пропишіть функцію формування друкованої форми:

Функція СформуватиДруковуФорму(ПосиланняНаДокумент, Об'єктиДруку)
Табличний Документ = Новий Табличний Документ;
ТабличнийДокумент.Ім'яПараметрівДруку = «ПАРАМЕТРИ_ДРУКУ_РахунокНаОплатуВРТУ»;
МакетОбробки = ОтриматиМакет(«РахунокНаОплатуЗовнішній»);
//Заповнюємо шапку
ОбластьШапка = МакетОбробки. ОтриматиОбласть(«Шапка»);
ОбластьШапка.Параметри.НомерДокумента = ПосиланняНаДокумент.Номер;
ОбластьШапка.Параметри.ДатаДокумента = ПосиланняНаДокумент.Дата;
ОбластьШапка.Параметри.НазваОрганизации = ПосиланняНаДокумент.Організація.Найменування;
//виводимо шапку в табличний документ
ТабличнийДокумент.Вивести(ОбластьШапка);
//заповнюємо рядки ТЧ
ОбластьРядки = МакетОбробки. ОтриматиОбласть(«РядокТЧ»);
Для кожного ПоточнийРядок З ПосиланняНаДокумент.Товари Цикл
ЗаповнитиЗначенняВластивостей(ОбластьРядки.Параметри, ПоточнаРядок);
ТабличнийДокумент.Вивести(ОбластьРядки);
КінецьЦикл;
//заповнюємо підвал
ОбластьПідвал = МакетОбробки.ОтриматиОбласть(«Підвал»);
ОбластьПідвал.Параметри.КількістьПідсумок = ПосиланняНаДокумент.Товари.Підсумок(«Кількість»);
ОбластьПідвал.Параметри.СумаПідсумок = ПосиланняНаДокумент.Товари.Підсумок(«Сума»);
ОбластьПідвал.Параметри.Ім'яВідповідального = ПосиланняНаДокумент.Менеджер.Найменування;
//виводимо підвал у табличний документ
ТабличнийДокумент.Вивести(ОбластьПодвал);
ТабличнийДокумент.АвтоМасштаб = Істина;
Повернення ТабличнийДокумент;
КінецьФункції

  1. Збережіть зміни у документі.
  2. Тепер потрібно активувати створену форму. Для цього:
    • Перейдіть до «Адміністрування» - «Друкарські форми, звіти та обробки» - «Додаткові звіти та обробки».
    • Натисніть кнопку «Створити», виберіть у провіднику файл зовнішньої форми, підтвердіть введення кнопкою «Записати та закрити».
  3. Для перевірки перейдіть в Продаж - Реалізація (акти, накладні), натисніть кнопку «Друк», виберіть свою форму та перевірте правильність заповнення.
  4. Роздрукуйте документ за потреби.

Висновок

Ми розглянули з вами зразок створення друкованої форми через Конструктор друку та інструмент створення зовнішніх форм. Сподіваємось, що у вас все вийде. У коментарях залишайте свої питання.

У цій статті докладно буде розказано, як новачкові, який погано знає 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С:Бухгалтерія 8" дозволяє настроїти груповий друк однотипних документів. Така необхідність може виникнути у різних випадках: при завершенні місяця, коли треба виставити велику кількість актів щодо надання послуг та рахунків-фактур; під час друку платіжних доручень на податки з фонду оплати праці за головну фірму та представництва та філії тощо. У всіх цих випадках необхідно зробити певні налаштування в програмі. Методисти фірми "1С" на прикладі розповідають, як це зробити.

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

Примітка:
Підприємство, що надає консультаційні послуги, виставляє клієнтам рахунки-фактури наприкінці місяця. Друковані форми рахунків-фактур необхідно надати клієнтам. Бухгалтеру необхідно роздрукувати всі виставлені покупцям рахунки-фактури за період з 01.05.2008 до 31.05.2008 включно.

Для друку всіх виставлених покупцям рахунків-фактур у меню "Сервіс" оберемо "Групова обробка довідників та документів". На закладці "Об'єкти відбору" у полі "Тип об'єкта" виберемо "Документи". Тепер необхідно вказати, за якими документами буде здійснено відбір. При додаванні нового елемента відкриється вікно зі списком документів, у якому виберемо документ "Рахунок-фактура" (див. мал. 1).

Рис. 1

Тепер перейдемо на закладку "Відбір". Нам необхідно відібрати рахунки-фактури, виставлені за період з 01.05.2008 до 31.05.2008, та виключити зі списку рахунки-фактури на аванс. За допомогою кнопки (або клавіша Insert) у вікні відбору додаємо необхідні умови відбору – див. мал. 2.


Рис. 2

При натисканні кнопки "Відібрати" будуть відібрані рахунки-фактури, що відповідають заданим умовам. Список відібраних рахунків-фактур автоматично сформується на закладці "Обробка" форми "Групова обробка довідників та документів". Зі списку дій виберемо "Друк документів" (див. рис. 3).


Рис. 3

Далі слід вибрати "Друк із попереднім переглядом" або "Друк без попереднього перегляду". Для друку реєстру відібраних документів слід вибрати відповідне значення – "Реєстр документів".

Тепер натискаємо кнопку "Виконати" на питання "Виконати друк документів?" відповідаємо "Так".

При цьому, якщо вибрано значення "Друк без попереднього перегляду", відразу буде запущено процедуру друку документів. Якщо вибрано значення "Друк із попереднім переглядом", на екран будуть виведені друковані форми всіх відібраних рахунків-фактур. У цьому випадку після перегляду документів необхідно запустити процедуру друку з головного меню програми (меню "Файл" -> "Друк"). Якщо вибрано значення "Реєстр документів", на екрані також буде виведена друкована форма реєстру зі списком відібраних рахунків-фактур, яку можна роздрукувати з головного меню програми (меню "Файл" -> "Друк").

Реалізований у "Груповій обробці довідників та документів" алгоритм є універсальним і може використовуватися не тільки для групового друку документів.

При використанні обробки з групою довідників/документів доступні наступні дії: зміна дати, проведення документа, відмітки на видалення, ознаки належності до податкового обліку, відповідального, коментарів. Цю обробку можна скористатися, наприклад, для групової зміни реквізитів табличної частини документів, дати документів.

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

Також вам буде корисно дізнатися як виробляється експорт даних з 1С, наприклад, в таблицю Excel.

Тут була важлива частина статті, але без JavaScript її не видно!

Налаштування друку форм документів у 1С 8.2

Найпростіший випадок. Налаштування друку форм документів у 1С Бухгалтерії 8.2 зводиться до заповнення вкладки "Друк" вікна документа. Якщо ці дані заповнити, то друкована форма документа міститиме " прогалини " , тобто. незаповнені поля.


Не плутайте кнопку "Друк" внизу форми документа та вкладку "Друк", де вводяться дані для друкованої форми!А ось і результат налаштованої та сформованої друкованої форми 1С на прикладі наведеного вище документа.

сайт_

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

сайт_

У ряді випадків деякі поля можна залишати порожніми, оскільки вони заповнюються за замовчуванням. Тут я на цьому не зупиняюся, оскільки докладно пояснюю на своїх курсах.

Відеоурок з налаштування друкованих форм документів 1С

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

Підведемо підсумки

Це лише основні відомості з налаштування друку документів у 1С 8.2. Складного нічого тут немає. Якщо виникають проблеми з друком, це, як правило, стосується проблем використання Windows, а зовсім не 1С Бухгалтерії.

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

Колеги!

Продовжуємо тему оформлення звітів у 1С. Нещодавно у нашого клієнта виникла проблема передачі документації з 1С 8.3.

Внесення додаткової інформації до друкованої форми, нумерації аркушів друку, вказівки дати, часу та звіту користувача.

Аналогічний приклад у конфігурації 8.2 ми розібрали у попередньому випуску. Зараз ми розглянемо параметри друку, що дозволяють все це зробити в конфігурації 8.3.

Тим більше, що багато чого з цього в 8.3 автоматизовано.

Отже, як можна включити зазначену вище інформацію до друку? Що потрібно у цьому випадку зробити?

Пропонуємо наш огляд варіантів, можливо, він буде корисним і Вам.

Варіант 1. Прямо із самої друкованої форми сформованого звіту або документа:

Формуєте друковану форму рахунку на оплату і викликає через гол. меню – Таблиця – Настройка друку – Колонтитули та налаштовуєте як потрібно.
Так робиться разово для будь-якої СФОРМОВАНОЇ друкарської форми.

Налаштовуємо поля колонтитулів

Зверніть увагу на значки у верхньому лівому куті форми:

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

Варіант 2. Налаштовується для будь-якого друку (звітів, документів, довідок) із програми

Якщо Ви не бажаєте щоразу налаштовувати вручну колонтитули, то можна через розділ Адміністрація – Налаштування колонтитулів налаштувати загальний вигляд колонтитулів для друку.

Виглядає так:

Тут більше можливостей для виведення інформації до друкованих форм: додаються дані «Назви звіту» та «Користувач». Це якраз наш випадок.

Вибір даних у колонтитули здійснюється, як було описано у варіанті 1, тільки замість значків ми вибираємо текстові кнопки "Час", "Дата", "Назва звіту" і т.д. Але суть від цього не змінюється. Після вказівки потрібної інформації в потрібних місцях форми налаштування зберігається.

При виведенні друкованої форми на друк усі вказані дані будуть відображатися в ній.

Варіант 3. Редагування макету в режимі користувача

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

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

Зміна макетів проводиться у розділі Адміністрація – Друковані форми, звіти, обробки – Макети друкованих форм.

Ось приклад редагування макету Рахунок-замовлення (документ Рахунок на оплату покупцю):

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

Наприклад, так:

Зберігаємо зміни та формуємо друковану форму.

І друкуємо із змінами.
Але можливості такого редагування обмежені.

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

Але часто і цього досить. 🙂