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

Печатные формы в 1С позволяют трансформировать электронный документ в печатный вариант.

Для этого разработчик предусмотрел отличный инструмент - Конструктор печати. С его помощью можно создавать документы, в которых можно указывать любые нужные вам данные, а не только несколько стандартных форм. Особенно это касается тех документов, которые не имеют строго регламентированного вида, менять который ни в коем случае нельзя. Сюда, в частности, можно отнести акт выполненных работ, некоторые накладные или платёжки.

В этом руководстве предлагаем разобраться с возможностями Конструктора печати, рассмотрим, какие могут быть виды печатных форм и чем они между собой отличаются. Также мы покажем на примере, как выводить созданную форму на печать .

Для начала стоит разобраться, что, вообще, представляет собой печатная форма в 1С 8. Это шаблон электронной таблицы 1С (наподобие Excel), в котором указанные некоторые переменные строки, заполняемые данными из программы при оформлении документа.

Печатные формы бывают двух видов:

  • Внутренние (встроенные). Они хранятся в конфигурации программы, поэтому лучше их не менять, так как потом могут возникнуть проблемы при обновлении.
  • Внешние - хранящиеся отдельно от настроек программы. И их помощью можно создавать и подготавливать для печати документ практически любой сложности, не влияя на конфигурацию программы 1С 8.

Как выбрать уже подготовленные макеты? После того как вы проводите операцию прихода или расхода, например, выписываете акт выполненных работ, для распечатки документы вы нажимаете кнопку «Печать». В списке отображается список форм для печати, которые уже заполнены введёнными данными о совершённой операции и вашей компании. Нажав нужный вам вид документа, вы открываете окно предварительного просмотра, чтобы можно было убедиться в правильности заполненных данных. Кнопка печати выводит документ на принтер .

Разобравшись с основами, давайте выясним, где хранятся все ваши печатные формы. Перейдём к следующему вопросу.

Где хранятся печатные формы

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

Во втором случае нужно перейти в раздел меню «Администрирование» - «Печатные формы, отчёты и обработки» - «Макеты печатных форм». В нём будут отображаться все макеты документов. Примечательно, что в этом же меню их можно и отредактировать.

Что касается внешних форм, то их сначала нужно либо создать через режим конфигуратора, либо скачав готовый файл, а затем подключить в меню «Администрирование» - «Печатные формы, отчёты и обработки» - «Дополнительные отчёты и обработки». Об этом расскажем несколько позже.

Создание простой формы через встроенный Конструктор печати

Такая печатная форма не подразумевает возможность глубокого редактирования, поскольку это повлечёт за собой изменение конфигурации программы , а также в дальнейшем сложности при её обновлении. Тем не менее, если вас полностью устраивает стандартная форма либо вы хотите углубляться в тонкости создания внешней формы, это способ вам полностью подойдёт.

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

Создание внешней печатной формы

Формы, создаваемые через Конструктор печати, можно сравнить с визуальным программным редактором, когда вы не вводите весь код вручную, а лишь составляете его из предложенных элементов. Внешняя же форма представляет собой файл с записанным вручную программным кодом, в котором описана процедура вывода данных на экран. Именно это и позволяет редактировать печатную форму, как угодно, задавая абсолютно любые данные в любой последовательности.

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

Теперь подробнее о самой процедуре. Рассмотрим на примере создания макета «Счёт» для документа «Реализация (акты, накладные)».

  1. Откройте программу 1С 8 в режиме Конфигуратора.
  2. Нажмите Файл - Новый - Внешняя обработка, придумайте его название (оно не должно включать пробелы), затем нажмите кнопку Действия - Открыть модуль объекта.
  3. В открывшемся поле для ввода введите следующий код (жёлтым цветом выделены значения, которые можно изменить на свои):

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить(«Документ.РеализацияТоваровУслуг»); //Указываем документ, к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить(«Вид», «ПечатнаяФорма»); //может быть — ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов…
ПараметрыРегистрации.Вставить(«Назначение», МассивНазначений);
ПараметрыРегистрации.Вставить(«Наименование», «Заказ для реализации товаров»); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить(«БезопасныйРежим», ЛОЖЬ);
ПараметрыРегистрации.Вставить(«Версия», «1.0»);
ПараметрыРегистрации.Вставить(«Информация», «Эта форма для печати была создана в качестве образца»);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, «Внешний заказ», «ВнешнийЗаказ», «ВызовСерверногоМетода», Истина, «ПечатьMXL»);
ПараметрыРегистрации.Вставить(«Команды», ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции // СведенияОВнешнейОбработке()
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»)); //имя макета печ.формы
Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»)); //ВызовСерверногоМетода
Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = «»)
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

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

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

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

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

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

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

Заключение

Мы рассмотрели с вами образец создания печатной формы через Конструктор печати и через инструмент создания внешних форм. Надеемся, что у вас всё получится. В комментариях оставляйте свои вопросы.

Как создать внешнюю печатную форму на основе готовой? 1С 8.0/8.1
_______________________________________________________

Предполагается, что у вас есть уже знания, полученные в процессе чтения темы, поэтому подробно затрагиваются только новые вопросы.

Итак: нам потребовалось немного изменить макет счёта на оплату покупателю (работать будем с конфигигурацией Бухгалтерия 1.6):
- убрать заголовок в макете счета на оплату (текст "Внимание! Оплата данного счета..., при наличии доверенности и паспорта.")
- изменить представление поставщика (т.е. нас) по требованию банка
(задача из реальной жизни с временем работы на 15-20 минут)

Создание обработки будет состоять их двух этапов:
1 - создание полного аналога исходной печатной формы
2 - доработка под собственные нужды

Этап первый

Для начала создадим пустую внешнюю обработку, только макет создавать не будем -
мы его скопируем для последующего изменения из основной конфигурации. Чтобы скопировать макет в обработку из конфигурации - достаточно
выделить его в дереве объектов, далее зайти в меню Правка -Копировать , после в дереве данных обработки в ветке макетов выбрать
в меню Правка -Вставить Более удобный путь - напрямую перетащить мышкой этой макет из основной конфигурации в дерево данных
обработки.

И пишем такой код:

Функция Печать() Экспорт //... тут мы что-нибудь напишем потом КонецФункции

Что мы сделали: для работы внешней печатной формы требуется экспортная (т.е. видимая для других объектов конфигурации) функция Печать ,
которая должна возвращать в основную программу сформированный табличный документ для предварительно просмотра и последующей печати.

Что бы не изобретать велосипед - посмотрим, как происходит формирование табличного документа в основной конфигурации: для этого мы зайдём
в модуль документа СчтНаОплатуПокупателю Найдём в модуле функцию Печать , которая выглядит примерно вот так:

// Процедура осуществляет печать документа. Можно направить печать на // экран или принтер, а также распечатать необходмое количество копий. // // Название макета печати передается в качестве параметра, // по переданному названию находим имя макета в соответствии. // // Параметры: // НазваниеМакета - строка, название макета. // Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт // Получить экземпляр документа на печать Если ИмяМакета = "Счет" Тогда ТабДокумент = ПечатьСчетаЗаказа(ИмяМакета); КонецЕсли; УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект, ""), НепосредственнаяПечать); КонецПроцедуры // Печать

В нашем случае получается, что для печати счёта в эту функцию передается параметр ИмяМакета равный строковой переменной "счет" ,
если посмотреть на код, мы увидим, что для формирование стандартного счета используется функция ПечатьСчетаЗаказа(...) , которую теперь
нам и требуется найти в коде модуля документа. Обвчно она расположена чуть выше функции печать(...)
Итак, вот сокращенный текст этой функции:

// Функция формирует табличный документ с печатной формой заказа или счета, // разработанного методистами // // Возвращаемое значение: // Табличный документ - сформированная печатная форма // Функция ПечатьСчетаЗаказа(Тип) Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); // ...код программы... ОбластьМакета.Параметры.Заполнить(Шапка); ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецФункции // ПечатьСчетаЗаказа()

Как мы видим, в конце работы этой функции возвращается сформированный табличный документ - нам остается только полностью скопировать текст
этой функции (начиная со строки "Запрос = Новый Запрос;" и заканчивая строкой "Возрат ТабДокумент;") и вставить его в тело подготовленой функции
Печать в модуле нашей обработки.

После того, как вставим текст функции - попробуем сохранить обработку. Конфигуратор предупредит нас, что в модуле он обнаружил ошибки и выведет
их в в окно служебных сообщений. Вот примерный тест этих ошибок:

{ВнешняяОбработка.ВнешняяОбработка1(102,7)}: Переменная не определена (Тип) Если <>Тип = "Счет" Тогда {ВнешняяОбработка.ВнешняяОбработка1(224,7)}: Переменная не определена (Тип) Если <>Тип = "Счет" Тогда {ВнешняяОбработка.ВнешняяОбработка1(107,15)}: Переменная не определена (СтруктурнаяЕдиница) Если ТипЗнч(<>СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда {ВнешняяОбработка.ВнешняяОбработка1(108,40)}: Переменная не определена (СтруктурнаяЕдиница) Банк = ?(НЕ ЗначениеЗаполнено(<>СтруктурнаяЕдиница.БанкДляРасчетов), СтруктурнаяЕдиница.Банк, СтруктурнаяЕдиница.БанкДляРасчетов); {ВнешняяОбработка.ВнешняяОбработка1(108,77)}: Переменная не определена (СтруктурнаяЕдиница) Банк = ?(НЕ ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов), <>СтруктурнаяЕдиница.Банк, СтруктурнаяЕдиница.БанкДляРасчетов); {ВнешняяОбработка.ВнешняяОбработка1(108,102)}: Переменная не определена (СтруктурнаяЕдиница) Банк = ?(НЕ ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов), СтруктурнаяЕдиница.Банк, <>СтруктурнаяЕдиница.БанкДляРасчетов); {ВнешняяОбработка.ВнешняяОбработка1(112,38)}: Переменная не определена (СтруктурнаяЕдиница) НомерСчета = ВернутьРасчетныйСчет(<>СтруктурнаяЕдиница); {ВнешняяОбработка.ВнешняяОбработка1(123,21)}: Переменная не определена (СтруктурнаяЕдиница) Если ПустаяСтрока(<>СтруктурнаяЕдиница.ТекстКорреспондента) Тогда {ВнешняяОбработка.ВнешняяОбработка1(125,27)}: Переменная не определена (СтруктурнаяЕдиница) Если ЗначениеЗаполнено(<>СтруктурнаяЕдиница.БанкДляРасчетов) Тогда {ВнешняяОбработка.ВнешняяОбработка1(126,59)}: Переменная не определена (СтруктурнаяЕдиница) ТекстКорреспондента = ТекстКорреспондента + " р/с " + <>СтруктурнаяЕдиница.НомерСчета {ВнешняяОбработка.ВнешняяОбработка1(127,15)}: Переменная не определена (СтруктурнаяЕдиница) + " в " + <>СтруктурнаяЕдиница.Банк + " " + СтруктурнаяЕдиница.Банк.Город; {ВнешняяОбработка.ВнешняяОбработка1(127,47)}: Переменная не определена (СтруктурнаяЕдиница) + " в " + СтруктурнаяЕдиница.Банк + " " + <>СтруктурнаяЕдиница.Банк.Город; {ВнешняяОбработка.ВнешняяОбработка1(130,26)}: Переменная не определена (СтруктурнаяЕдиница) ТекстКорреспондента = <>СтруктурнаяЕдиница.ТекстКорреспондента; {ВнешняяОбработка.ВнешняяОбработка1(112,17)}: Процедура или функция с указанным именем не определена (ВернутьРасчетныйСчет) НомерСчета = <>ВернутьРасчетныйСчет(СтруктурнаяЕдиница);

Давайте разберём эти ошибки:
*** 1. Переменная не определена (Тип) - если посмотреть исходный код функции, становиться ясно, что переменная тип являлась параметром:
Функция ПечатьСчетаЗаказа(Тип) , мы же этот параметр удалили. В данном случае - этот параметр содержал в себе строку с именем макета
для печати. Т.к. нам требуется печатать только один макет - определеим эту переменную следующим образом: мы измененим заголовок
функции Печать в модуле обработки:

Функция Печать(Тип = "Счет")

Что означает такая запись: она означает, что если в функцию небыл передан параметр, то параметр Тип примет значение
по умолчанию "Счет" , что нам и требуется для работы.

*** 2. Переменная не определена (СтруктурнаяЕдиница) - данная переменная является реквизитом документа СчетНаОплатуПокупателю , т.к.
в модуле внешней печатной формы мы этот реквизит не видим (мы не находимся в теле объекта документ), то получим эту переменную через
ссылку на документ, т.е. через реквизит обработки СсылкаНаОбъект , в который програама передат ссылку на текущий документ.
Добавим в начало функции следующую строку:

*** 3. Процедура или функция с указанным именем не определена (ВернутьРасчетныйСчет) - данная функция определена (т.е. описана) в модуле
документа, соответственно - нам достаточно полностью перенести код этой функции в нашу обработку.

Итак, теперь модуль обработки выглядит примерно следующим образом:

Функция ВернутьРасчетныйСчет(СчетКонтрагента) БанкДляРасчетов = СчетКонтрагента.БанкДляРасчетов; Результат = ?(БанкДляРасчетов.Пустая(), СчетКонтрагента.НомерСчета, СчетКонтрагента.Банк.КоррСчет); Возврат Результат; КонецФункции // ВернутьРасчетныйСчет() // Функция формирует табличный документ с печатной формой заказа или счета, // разработанного методистами // // Возвращаемое значение: // Табличный документ - сформированная печатная форма // Функция Печать(Тип = "Счет") Экспорт СтруктурнаяЕдиница = СсылкаНаОбъект.СтруктурнаяЕдиница; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); // ...текст программы... ОбластьМакета.Параметры.Заполнить(Шапка); ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецФункции // ПечатьСчетаЗаказа()

Если всё правильно сделано - то теперь мы можем сохранить обработку и мы получим полный внешний аналог встроенной печатной формы.

Этап второй

Теперь внесём необходимые изменения при печати в макет (предполагается, что вы умеете работать с макетами), а также изменим
текст поставщика в шапке счёта.

Как мы видим по коду программы, текст получателя заполняется в этом месте:

Если ПустаяСтрока(СтруктурнаяЕдиница.ТекстКорреспондента) Тогда ТекстКорреспондента = СведенияОПоставщике.ПолноеНаименование; Если ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов) Тогда ТекстКорреспондента = ТекстКорреспондента + " р/с " + СтруктурнаяЕдиница.НомерСчета + " в " + СтруктурнаяЕдиница.Банк + " " + СтруктурнаяЕдиница.Банк.Город; КонецЕсли; Иначе ТекстКорреспондента = СтруктурнаяЕдиница.ТекстКорреспондента; КонецЕсли; ОбластьМакета.Параметры.ПредставлениеПоставщика = ТекстКорреспондента;

Закзазчик поставил условие, что бы текст для данной ячеки брался из наименования плательщика в платежных поручениях на
перечисление налогов. Этот текст храниться в реквизите элемента справочника Организации - нам осталось только
получить к нему доступ. Если посмотреть на реквизиты документа, то мы уидим что в них храниться данные об организации,
по которой выписывался документ, а нужный нам текст храниться в реквизите организации - теперь мы знаем, как получить доступ:

ОбластьМакета.Параметры.ПредставлениеПоставщика = СсылкаНаОбъект.Организация.НаименованиеПлательщикаПриПеречисленииНалогов;

Вот и всё - макет готов к работе и его можно подключать к конфигурации!

В теме вы можете взять обработку, которая должна была получиться в итоге.

PS. Обсуждения, вопросы, предложения - всё в теме.

Инструкция

Откройте программу «1С:Предприятие» версии 8. Обратите внимание на пункт меню «Сервис» – «Внешние обработки и печатные формы». С его помощью вы можете хранить внешние отчеты, обработки, печатные формы, а также обработки заполнения табличных элементов. Также вы можете подключить внешнюю форму вместо изменения уже существующей, что повлечет за собой вмешательство в конфигурацию программы.

Запустите программу «1С:Предприятие» в режиме конфигуратора, затем создайте внешнюю обработку, для этого выполните команду «Файл» – «Новый». В появившемся окне выберите «Внешняя обработка». На экране появится новая форма внешней обработки. Присвойте ей название «Внешняя ». Затем добавьте новый реквизит, называемый «Ссылка на объект», укажите тип для него – «Документ. Ссылка. Реализация товаров и услуг». Для создания печатной формы для иного вида документа используйте соответствующий тип ссылки.

Добавьте новый макет щелчком по соответствующей кнопке в окне новой формы. Присвойте ему имя «Макет», создайте область с именем «Заголовок», присвойте ей параметр «Текст заголовка». Затем щелкните по кнопке «Действия», выберите команду «Открыть модуль объекта». Затем вставьте текст модуля, вы можете воспользоваться примером, размещенным на сайте http://www.uasoft.com.ua/content/articles/315/.

Запустите программу «1С:Предприятие», перейдите в меню «Сервис», выберите «Внешние печатные формы». Внесите новую запись в список форм. Для этого выберите созданный файл обработки, а в табличной части укажите принадлежность формы документу «Реализация товаров». Проверьте правильность работы новой печатной формы. Для этого откройте созданный документ, проведите его, затем в нижней части экрана щелкните по кнопке «Печать», выберите опцию «Внешняя печатная форма».

Источники:

  • как в 1с изменить печатную форму

Для того чтобы создавать и редактировать формы объектов, в программе «1C:Предприятие» предусмотрен специальный редактор формы (или Form Designer). Формы объектов прикладного решения предназначены для визуального представления данных во время работы с программой. В редакторе формы содержатся несколько закладок, которые обеспечивают возможность редактирования всех элементов формы.

Вам понадобится

  • компьютер, программа 1С

Инструкция

С помощью редактора формы вы можете добавить в форму один или несколько элементов «Группа – Страницы», для этого нажмите на зеленый плюсик в верхнем левом углу редактора, находясь на вкладке «Элементы».
В режиме «1C:Предприятие» все существующие элементы группы будут отображаться каждая на отдельной вкладке. Чтобы расположить сверху или снизу рабочей , в окне «Свойства» той или иной группы в пункте «Отображение » выберите соответствующую команду.

Вы можете также добавлять элементы в форму, перетаскивая нужные реквизиты в дерево элементов. Для удобства обхода элементов управления формы при редактировании или вводе данных, задайте подходящий для вас порядок, расположив элементы в дереве и подчинив их другим элементам, а также задав свойства элементов-групп в соответствии с вашими нуждами.
Для редактирования реквизитов формы – их изменения, создания новых или удаления используйте панель в области дерева реквизитов на соответствующей вкладке.

Чтобы отредактировать командный интерфейс, перейдите на соответствующую вкладку. Перед вами будет дерево команд, основные ветви которого – это «Панель навигации» и «Командная панель». Часть команд в дерево командного интерфейса добавляется автоматически, однако вы также можете самостоятельно добавлять их, для этого перетащите нужные вам команды из списка глобальных (общих) команд или из списка команд формы.

Редактируются команды формы в соответствующем списке. Вы можете добавлять их, удалять из списка, задавать каждой команде свойства при помощи палитры свойств, которую вы можете вызвать кликнув на пиктограмме карандашика в командной строке списка.
Для редактирования параметров формы перейдите на вкладку «Параметры», где вы также сможете их добавлять, удалять и задавать нужные свойства.

Видео по теме

План счетов, используемый в бухгалтерском учете для отображения хозяйственной деятельности предприятия, поддерживает многоуровневую иерархию: счет – субсчета. Чтобы пользователь мог просматривать данные, которые содержатся в плане счетов, и корректировать их, система 1С позволяет изменить форму счета. Кроме того, печатная форма счета изменена может быть и в любом другом документе в 1С.

Вам понадобится

  • - персональный компьютер с 1С.

Инструкция

По каждому счету либо субсчету предусмотрено ведение аналитического учета. Поэтому при создании и последующем редактировании плана счетов в 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с 8.1 — 8.2 на примере конфигурации Бухгалтерия предприятия 2.0 . Допустим требуется написать внешнюю печатную форму к документу : вывести основные данные документа, а так же из табличной части Товары : номенклатуру, цену, количество и сумму.

Скачать получившийся пример можно по .

В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка ), задаем имя, создаем обязательный для внешней печатной формы реквизит СсылкаНаОбъект с типом ДокументСсылка.РеализацияТоваровУслуг .

Создание макета печатной формы

Добавляем новый макет , тип макета оставляем Табличный документ . На макете создаем три области: Шапка, Данные и Подвал . Сделать это можно выделив нужное количество строк и нажав меню Таблица->Имена->Назначить имя (Ctrl+Shift+N) .

После этого начинаем располагать в областях текст и параметры. В шапку выведем название печатной формы, номер документа и организацию , а также нарисуем границы шапки таблицы и напишем имена колонок. При создании параметра в свойствах ячейки, на закладке макет следует установить свойство Заполнение в значение Параметр .

В области Данные создадим параметры для вывода строк табличной части(Номенклатура, цена и т.д.), а в области Подвал для итогов по количеству и сумме.

Программирование

Зайдем в модуль объекта печатной формы Действия->Открыть модуль объекта .

Создадим там обязательную для печатных форм экспортную функцию Печать() .

Функция Печать() Экспорт КонецФункции

В функции создадим переменную для табличного документа , в который будет выводится печатная форма, получим макет и области макета .

ТабДок = новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет" ); ОбластьШапки = Макет.ПолучитьОбласть("Шапка" ); ОбластьДанные = Макет.ПолучитьОбласть("Данные" ); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал" );

Заполним параметры шапки и выведем ее в табличный документ .

ОбластьШапки.Параметры.ТекстЗаголовка = +СсылкаНаОбъект.Номер; ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация; ТабДок.Вывести(ОбластьШапки);

Для того чтобы получить строки табличной части Товары используем запрос.

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

В параметр запроса передаем реквизит СсылкаНаОбъект , что бы указать в условии ГДЕ , что нам нужны данные только того документа из которого выводим печатную форму. Чтобы получить выборку запроса, сначала выполняем его, а затем выбираем строки.

Выборка = Запрос.Выполнить().Выбрать();

Далее в цикле заполняем параметры области Данные для каждой строки выборки документа и выводим их в табличный документ . Также в цикле считаем итоговые значения количества и суммы . Заполнять каждый параметр в отдельности мы не будем, а используем процедуру ЗаполнитьЗначенияСвойств((<Приемник>, <Источник>) из глобального контекста , она копирует значения свойств <Источника> в свойства <Приемника> . Сопоставление производится по именам свойств. Подробнее об этом можно прочитать в синтаксис-помощнике 1С Предприятия 8 .

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

Заполним и выведем область Подвал .

ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество; ОбластьПодвал.Параметры.ИтогоСумма = ИтогоСумма; ТабДок.Вывести(ОбластьПодвал);

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

возврат ТабДок;

Если вы используете одну из типовых конфигураций, то после возврата табличного документа само выведет на экран печатную форму. Так же для вывода можно использовать метод табличного документа Показать() .

5. Подключение печатной формы к документу

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

Добавляем новый элемент справочника, загружаем печатную форму с диска и выбираем тип документа.

Теперь в документе Реализация товаров и услуг появится новая печатная форма.

Авторегистрация печатной формы

Для того чтобы при подключении печатной формы не нужно было выбирать тип документа вручную можно настроить авторегистрацию . Для этого добавляем новый макет и называем его Параметры_Авторегистрации (только так) и в первой его ячейке пишем Документы.<Наименование документа> (либо Справочники.<Наименование справочника> ).

Теперь при подключении печатной формы нам будет предложено воспользоваться параметрами авторегистрации .