1с управляемые формы создание отчета

Обновлено: 07.07.2024

Только начал осваивать управляемое приложение. Пытаюсь сделать отчет.
Подскажите, пожалуйста, как сделать самый простейший отчет. Дальше уже сам додумаю.

Есть отчет, форма с табличным полем, макет.

Проблема в том, что как бы я не пытался, постоянно ошибки, что что-то недоступно на сервере, на клиенте и т.д.

Где вообще должна быть процедура печати, в модуле чего?

(1) про скд вообще ничего не знаю. А разве обычным макетом не сделать?
(2) Сделать. Но т.к. ты "только начал осваивать управляемое приложение", то будут "постоянно ошибки, что что-то недоступно на сервере, на клиенте и т.д".
А в простейшем отчете на СКД все ньюансы клиент-серверного взаимодействия платформа возьмет на себя.
На самом деле, с обычным макетом тоже никаких проблем.
Делаешь процедуру &НаСервере, в которой формируешь табличный документ и присваиваешь его реквизиту формы, который служит источником данных для твоего табличного поля. Её вызываешь из обработчика нажатия кнопки "Сформировать" (который &НаКлиенте). Вроде и всё.
Дайте пример какой-нибудь, пожалуйста. Или подробнее напишите. Как с обычным макетом сделать.
Чего-то вообще не въехать.

Имеем пустую заготовку отчета с пустой управляемой формой.

5. В свойствах команды "Сформировать" клацаешь на лупу в свойстве "Действие" - откроется модуль формы с пустым обработчиком команды.
6. Приводишь модуль формы к виду:

Спасибо огромное. А где должно находиться описание параметров макета?

А если на форме есть поле ввода. как мне его передать в макет?
Если так:
&НаСервере

то ругается, что нельзя на сервере.

Что тебе скажу. Без системного изучения ты подобные вопросы будешь бесконечно задавать. Забудь про научный тык.
Последний раз:

(12) Изучать по-любому надо будет. Просто сейчас срочно понадобилось.
Вот с этим не до конца понял - ИмяРеквизитаФормыИсточникаДанныхПоляВвода. Напиши, пожалуйста.
Если поле ввода - Номенклатура (реквизит обработки), то как должно это выглядеть в процедуре?
Заранее спасибо.

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

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

Создание внешнего отчета

Прежде всего, перейдем в режим Конфигуратора , выберем подраздел Файл, после кликнем на значок Новый документ или слово Новый, и создадим файл внешнего отчета.


Выберем строку Внешний отчет в перечне. После формирования файлы, укажем его Наименование (допустим, ПростейшийОтвет ) и выполним сохранение на диск. Кроме того, внесем несколько реквизитов вида Дата – КонецПериода и НачалоПериода . Они потребуются для выставления временных рамок при выборке информации в процессе создания отчета.


Создание макета внешнего отчета

Для создания отчета в 1С Бухгалтерия 2.0 понадобится шаблон для вывода информации, или, другими словами, макет, в котором будут составляться таблицы, задаваться необходимые параметры и т.д. Для добавки шаблона кликаем на раздел Макеты, находящийся в дереве мета-данных отчета, после – на Добавить. При формировании макета определяем вид Табличный документ.


В шаблоне – четыре основных части:

  1. Шапка – в которой станет располагаться название отчета, временной отрезок, за который он создан, шапка таблицы.
  2. ДанныеКонтрагент – здесь будет находиться информация по контрагентам в таблице.
  3. ДанныеДоговорКонтрагента – тут мы станем указывать информацию по соглашению с контрагентом, также в таблице.
  4. Подвал – часть предназначается для указания итоговых параметров по всему отчету для Расхода и Прихода.

Начнем формировать части шаблона. Для этого выделяем необходимое число строк, после чего:

  • Нажимаем одновременно сочетание клавиш «N + Shift + Ctrl»;
  • Или кликаем на Назначить имя, расположенное в меню Имена в разделе Меню Таблица.

В Шапке прописываем название документа: Обороты сч. 62. Используя инструмент Границы, рисуем шапку отчета, после – задаем параметры. Последние позволяют указывать в отчете необходимые сведения. Но об этом мы поговорим позднее.

Параметр в шаблоне создается путем выбора необходимой ячейки и указания в ней (без пробелов) названия параметра. После нужно будет нажать на ячейку, используя правую кнопку мышки, и в выпавшем списке кликнуть на строчку Свойства. Выберите заполнение Параметр в закладке Макета в свойствах ячейки.


В результате название параметра в ячейке окажется окруженным скобками (<>). Вид получившейся Шапки должен быть таким:


В части ДанныеКонтрагент задаем параметры для указания названия контрагента, и для Расхода и Прихода по сч. 62. С этой целью используем инструмент Границы, оформляя часть как строку таблицы.


В части ДанныеДоговорКонтагент определяем парамаметры для указания названия соглашения, Расхода и Прихода по сч. 62. С этой целью используем инструмент Границы, оформляя часть как строку таблицы. Выполняем незначительный отступ перед параметром ДоговорКонтрагент (разбейте и соедините ячейки, работая с правой кпонкой мышки). Отступ потребуется для того, чтобы в документе было заметно, что строчка по соглашению располагается ниже по иерархии, в сравнении со строчкой по контагенту .


В части Подвал указываем параметры для результатов Расхода и Прихода.


В результате должен появиться шаблон следующего вида:


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

Форма необходима для появления кнопки Формировать, указания срока формирования и внесения информации. Получить ее можно, перейдя к дереву с мета-данными и выбрав в нем раздел Форма. Кликайте на Добавить. На 1-ой странице конструктора для создания форм никакие корректировки не нужны. Кликайте сразу на Далее.


На новой странице указывайте для размещения на форме два реквизита – КонецПериода и НачалоПериода .


В результате будет показана форма следующего вида:


Этот вид формы нам не подходит, изменим его:

  • Перенесем в верхнюю часть панели кнопку Сформировать, пока что расположенную внизу;
  • Вытянем форму горизонтально и вертикально;
  • Разместим по горизонтили КонецПериода и НачалоПериода ;
  • Добавим Поле табличного документа (элемент управления) в форму. Поле потребуется нам для вывода отчета. Укажем его название – ТабДок ;
  • Создадим кнопку для определения периода (при клике на нее станет показываться окно выбора необходимого периода). Заниматься написанием программного кода для этой кнопки мы сейчас не станем. Размещаем ее около полей периода.

В результате указанных действий форма выглядит так:


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

Переходить к программированию можно после формирования формы. Выводим окно выбора периода. Нажимаем на кнопку правой кнопкой мышки, переходим в раздел Свойства – здесь выбираем События (в этом меню, используя символ лупы, в модуле формы мы создадим процедуру Кнопка-1Нажатие).


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


Вызвать окно выбора периода можно, используя стандартный модуль ОбработчикНастройкаПериодаНажатие , расположенный в меню РаботаСДиалогами . Здесь в качестве параметров необходимо передать отчетные реквизиты КонецПериода и НачалоПериода .

Приступаем к программированию – нам нужен код для формирования и вывода отчета. Используем уже имеющуюся процедуру КнопкаСформироватьНажатие . Она станет осуществляться при клике на Сформировать.

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

ТабДок = ЭлементыФормы . ТабДок

Создался шаблон. Используя ПолучитьМакет (< ИмяМакета >), в параметр ему присвоим имя шаблона. При существовании такого шаблона, система отыщет его.

Макет = ПолучитьМакет («Макет»)

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

ОбластьШапка = Макет. ПолучитьОбласть («Шапка»)

ОбластьПодвал = Макет. ПолучитьОбласть («Подвал»);

ОбластьДанныеДоговор =Макет. ПолучитьОбласть (« ДанныеДоговор »)

ОбластьДанныеКонтрагент = Макет. ПолучитьОбласть (« ДанныеКонтрагент »).

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

По завершению инициализации переменных, начинаем по очереди заполнять и выводить части шаблона – с Шапки. У Шапки есть КонецПериода и НачалоПериода – зададим тут показатели периода формирования документа. С этой целью используем Параметры области макета.

КонецПериода = ОбластьШапка .Параметры. КонецПериода

НачалоПериода = ОбластьШапка .Параметры. НачалоПериода

Другие действия с частью не нужны: убираем Шапку в поле таблицы-документа.

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

Пишем запрос для базы данных, который позволит получать обороты по сч. 62 из бух . регистра Хозрасчетный. Указываем переменную для расположения запроса.

Запрос = новый Запрос.

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

Запрос. УстановитьПараметр («Счет62», ПланыСчетов .Хозрасчетный. НайтиПоКоду («62»)).

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

Запрос. УстановитьПараметр (« КонецПериода », КонецПериода )

Запрос. УстановитьПараметр (« НачалоПериода », НачалоПериода )

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

Далее наводим курсор мышки между кавычками, кликаем правой клавишей мышки и определяем строку Конструктор запроса. Откроется нужное нам окошко.


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


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


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


Теперь нужно оформить условие по сч. 62 бухгалтерского учета. С этой целью ищем УсловиеСчета в параметрах виртуальной таблицы, и пишем условие в нем.

Счет В ИЕРАРХИИ (&Счет62)

Кроме того, можно использовать Конструктор для формирования условий. Кликните на кнопку с 3 точками.


После этого на виртуальную таблицу больше не нужно будет накладывать никаких условий. Дальше кликаем на кнопку ОК, расположенную в окошке с параметрами виртуальной таблицы. После – определяем необходимые нам поля из таблички Хозрасчетной.Обороты. в частности требуются Расход и Приход, Договор контрагента и Контрагент. Просмотреть перечень полей, возможных в выбранной сейчас таблице, можно, кликнув на значок «+» (он располагается около наименования таблицы). Переносим необходимые поля в правую часть конструктора запросов (название части аналогичное – ПОЛЯ). Если вы перейдете в план счетов бухучета , то обнаружите, что для сч. 62 аналитика по ДоговоруКонтрагента — Субконто2, а по Контрагенту — это Субконто1.


Соответственно, из полей виртуальной таблички нам нужны Субконто2 и Субконто1. В связи с необходимостью Расхода и Прихода по сумме, дополнительно треуются поля СуммаОборотКт и СуммаОборотДт .


Оформив наименования определенных сейчас полей. С этой целью необходимо открыть меню Объединения/Псевдонимы, и указать необходимые названия полей.


В связи с тем, что в формируемом нами отчете информация станет указываться в соответствии с иерархией (соглашения с контрагентами будут выходить на уровне, перед которым будет располагаться уровень самих контрагентов), нужно настроить демонстрацию информации в иерархии, используя Итоги. Открываем подраздел Итоги в конструкторе. Переносим в поля группировок один за другим Контрагент и ДоговорКонтрагента , далее - итоговые Приход и Расход.


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

| ХозрасчетныйОбороты .Субконто1 КАК Контрагент,

| ХозрасчетныйОбороты .Субконто2 КАК ДоговорКонтрагента ,

| ХозрасчетныйОбороты . СуммаОборотДт КАК Приход,

| ХозрасчетныйОбороты . СуммаОборотКт КАК Расход

| РегистрБухгалтерии .Хозрасчетный.Обороты(& НачалоПериода , & КонецПериода , , Счет В ИЕРАРХИИ (&Счет62), , , , ) КАК ХозрасчетныйОбороты

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

ВыборкаКонтрагент = Запрос.Выполнить().Выбрать( ОбходРезультатаЗапроса . ПоГруппировкам );

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

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

Для корректного вывода данных с учетом иерархии и разворотами по знаку «+», указываем начало автоматической группировки строчек документа-таблицы:

Все предварительные работы завершены. Следует начать обходить итоги запроса. Для обхода потребуется использовать цикл Пока:

Пока ВыборкаКонтрагент .Следующий() Цикл

Аннулируем параметры Расход и Приход области ДанныеКонтрагент в самом начале цикла. Что это нам даст? Предположим, что по поставщику, назовем его Х, расход составляет 10, а приход 20. У следующего за ним поставщика, назовем его Н, расход и приход отсутствуют полностью. При аннулировании параметров Расхода и Прихода в такой ситуации в строке по поставщику Н окажутся данные поставщика Х – расход 10 и приход 20.

ОбластьДанныеКонтрагент .Параметры.Приход = 0;

ОбластьДанныеКонтрагент .Параметры.Расход = 0;

Теперь оформляем данными элемента выборки часть ДанныеКонтрагент

ЗаполнитьЗначенияСвойств ( ОбластьДанныеКонтрагент .Параметры, ВыборкаКонтрагент );

Оформив данные, можно выводить часть в Табличный документ. Т.к. мы работаем с автоматическим группированием строчек, необходимо определить степень строки в группировке (в нашем случае у отчета окажется 2 степени, для договоров контрагентов – второго уровня, для самих контрагентов – первого уровня).

ТабДок .Вывести( ОбластьДанныеКонтрагент ,1);

После для указанного контрагента нужно выполнить выборку по его соглашениям:

ВыборкаДоговорКонтрагента = ВыборкаКонтрагент .Выбрать( ОбходРезультатаЗапроса . ПоГруппировкам );

Используем цикл Пока для выполнения обхода:

Пока ВыборкаДоговорКонтрагента .Следующий() Цикл

Обнуляем параметры Расход и Приход в цикле по соглашениям контрагентов. Оформляем часть ДанныеДоговора из выборки и выносим эту часть на 2-ой уровень записей в таблицу-документ:

ОбластьДанныеДоговор .Параметры.Приход = 0;

ОбластьДанныеДоговор .Параметры.Расход = 0;

ЗаполнитьЗначенияСвойств ( ОбластьДанныеДоговор .Параметры, ВыборкаДоговорКонтрагента );

ТабДок .Вывести( ОбластьДанныеДоговор ,2);

Кроме того, к переменным расчета итоговых показателей по Расходу и Приходу в данном цикле присоединим нынешние показатели.

ИтогоПриход = ИтогоПриход + ВыборкаДоговорКонтрагента .Приход;

ИтогоРасход = ИтогоРасход + ВыборкаДоговорКонтрагента .Расход;

После этого вынос данных в части ДанныеДоговорКонтрагент и ДанныеКонтрагент будет закончен. Потребуется только окончить автоматическую группировку строчек таблицы-документа:

Циклы, ответственные за демонстрацию информации в частях документа ДанныеДоговорКонтрагент и ДанныеКонтрагент , целиком станут иметь следующий вид:

Пока ВыборкаКонтрагент .Следующий() Цикл

ОбластьДанныеКонтрагент .Параметры.Приход = 0;

ОбластьДанныеКонтрагент .Параметры.Расход = 0;

ЗаполнитьЗначенияСвойств ( ОбластьДанныеКонтрагент .Параметры, ВыборкаКонтрагент );

ТабДок .Вывести( ОбластьДанныеКонтрагент ,1);

ВыборкаДоговорКонтрагента = ВыборкаКонтрагент .Выбрать( ОбходРезультатаЗапроса . ПоГруппировкам );

Пока ВыборкаДоговорКонтрагента .Следующий() Цикл

ОбластьДанныеДоговор .Параметры.Приход = 0;

ОбластьДанныеДоговор .Параметры.Расход = 0;

ЗаполнитьЗначенияСвойств ( ОбластьДанныеДоговор .Параметры, ВыборкаДоговорКонтрагента );

ТабДок .Вывести( ОбластьДанныеДоговор ,2);

ИтогоПриход = ИтогоПриход + ВыборкаДоговорКонтрагента .Приход;

ИтогоРасход = ИтогоРасход + ВыборкаДоговорКонтрагента .Расход;

На завершающем этапе необходимо перенести итоговые сведения в часть Подвал и перевести сам Подвал в таблицу-документ:

ОбластьПодвал .Параметры. ИтогоПриход = ИтогоПриход ;

ОбластьПодвал .Параметры. ИтогоРасход = ИтогоРасход ;

ТабДок .Вывести( ОбластьПодвал );

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

Начиная с версии 8.2 в программе начали применяться новые принципы разработки интерфейса и взаимодействия юзеров с базой данных. Наименование этой технологии - «Управляемое приложение».

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

Отличительные черты управляемых форм

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

  • Платформа самостоятельно формирует структуры формы и местоположение полей. До этого разработчики описывали расположение поля, указывали пиксели. Сейчас же получится только указать тип группировки.
  • Форма представляет собой реквизиты (ее данные) и команды (выполняемые опции).
  • Код формы делается на каждой стороне. Форма - это объект конфигурации, который создается на сервере и отображается на клиенте. То есть, она объединяет клиентскую и серверную часть.
  • На клиентской стороне перестали функционировать многие виды данных и теперь нет возможности поменять сведения в информационной базе.
  • Для каждой операции или опции нужно указывать директиву компиляции (она представляет из себя специальную настройку). Необходима для определения места выполнения кода и может принимать несколько значений:
  1. Наклиенте;
  2. НаСервере;
  3. НаСервереБезКонтекста;
  4. НаКлиентеНаСервере;
  5. НаКлиентеНаСервереБезКонтекста.

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

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

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

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

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


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

Принципы разработки управляемых форм

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

Разобраться, где осуществляется процедура, получится по названию директивы, которая прописана перед каждой процедурой и опцией в модуле формы. Формулировка «БезКонтекста» показывает, что сведения на управляемой форме не передаются в данную процедуру на сервер. А значит, в таких процедурах нельзя писать алгоритмы, которые опираются на значения, введенные юзером. Если формулировка не указана, тогда форма будет передаваться целиком с реквизитами и у вас получится обращаться к ним.

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

Обновленные правила разработки форм приложения принесут огромную пользу, если разработчики будут ими пользоваться. Изменения к лучшему заметят все. Как программисты, так и фирмы, осуществляющие деятельность в 1С и разработчики программы. Главные последствия верного использования управляемых форм:

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

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

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

Пример с отчетом

Реализуем самый простой вариант отчета, который будет без какой-то смысловой нагрузки, призванный просто показать, как работает табличный документ на управляемой форме. В основном все современные отчеты делают на СКД, но этот мы сделаем по «старинке», используя табличный документ. Для этого создадим объект Отчет и подчиненный ему макет табличного документа всего с одной областью.

Отчет с макетом табличного документа

Подробнее о том, как создается и оформляется макет табличного документа, читайте в этой статье:

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

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

Поместим этот реквизит на форму. Если его перетащить мышкой, то он станет элементом поля табличного документа. Чтобы не было заголовка, нужно в свойстве ПоложениеЗаголовка добавленного элемента формы установить значение Нет.

Элемент формы поле табличного документа

Создадим команду управляемой формы, и поместим её на форму в виде кнопки.

Команда управляемой формы

Подробнее о заполнении табличных документов читайте в этой статье:

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

Вывод табличного документа в 1с предприятии

Пример с печатной формой документа

А сейчас, мы доработаем вывод печатной формы документа, который мы делали в статье ранее:

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

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

Общая форма

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

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

Следующим шагом, создадим параметр ТабДок с типом ТабличныйДокумент.

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

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

На этом мы закончим работать с общей формой. В нашем случае, при открытии, форма будет заполняться тем табличным документом, который будет передан в параметре.

Перейдем в модуль команды документа, которую мы создали в предыдущей статье.

Открытие модуля команды

И подправим эту команду: будем открывать общую форму, в которую в качестве параметра передадим сформированный ранее табличный документ.

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

Всё! На этом доработка команды закончена. Можно проверить, как работает открытие нашей формы.

Открытие общей управляемой формы для печати

Причем, форму мы можем открыть, как с общего списка документов, так и из нужного нам документа.

Открытие общей управляемой формы для печати


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

Читайте также: