1с управляемое приложение внешний отчет

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

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

sozdanie vneshnego otcheta 1

sozdanie vneshnego otcheta 2

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

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

sozdanie vneshnego otcheta 3

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

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

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

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

sozdanie vneshnego otcheta 4

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

sozdanie vneshnego otcheta 5

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

sozdanie vneshnego otcheta 6

sozdanie vneshnego otcheta 7

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

sozdanie vneshnego otcheta 8

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

sozdanie vneshnego otcheta 9

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

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

sozdanie vneshnego otcheta 10

sozdanie vneshnego otcheta 11

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

sozdanie vneshnego otcheta 12

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

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

sozdanie vneshnego otcheta 13

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

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

sozdanie vneshnego otcheta 14

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

sozdanie vneshnego otcheta 15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sozdanie vneshnego otcheta 16

sozdanie vneshnego otcheta 17

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

sozdanie vneshnego otcheta 18

sozdanie vneshnego otcheta 19

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

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

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

sozdanie vneshnego otcheta 20

sozdanie vneshnego otcheta 21

sozdanie vneshnego otcheta 22

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

sozdanie vneshnego otcheta 23

sozdanie vneshnego otcheta 24

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Пример создания внешнего отчета в 1с

1.Создаем новый внешний отчет через конфигуратор 1с

createO

2.Присваиваем отчету имя и добавляем пустую форму отчета, нажав на лупу

1

3. В созданной форме добавляем элемент управления ‘Выбор периода’ (меню Форма-вставить Элемент управления)

2

4. Теперь хотим чтобы при открытии формы отчета автоматически проставлялись даты – к примеру с начала прошлого месяца до конца прошлого месяца.

5. Создаем макет отчета – (Макеты-добавить, тип макета:Табличный документ)

3

6.Добавляем заголовок и постоянные названия для строк и колонок, затем форматируем (шрифты, размеры, границы, цвет)

4

7. Теперь добавляем переменные значения (здесь это будет период и количество различных типов сеток).Вводим имя параметра и меняем в свойствах ячейки Заполнение со значения ‘Текст’ на ‘Параметр’

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

5

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

naming

Здесь в отчете будут две области ‘ЗаговокОтчета’ и ‘Строки’. Сразу оговорюсь не называйте область “Заголовок” (похоже на зарезервированное поле), во внешнем отчете происходит конфликт и область не выбирается, идут ошибки с параметрами итд.

9. Сформируем саму печатную форму по нажатию на кнопку.

Источник

Обучение программированию на 1С

Внешние отчёты и обработки

Обработка 1С – это объект конфигурации, который служит для изменения и преобразования данных в информационной базе 1С.

012416 1243 1

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

012416 1243 2

Рассмотрим некоторые вопросы, связанные с этими объектами:

Отличия обработки от отчёта 1С

Главное различие объектов – это назначение в их использовании:

На уровне различия в структуре метаданных в отчётах дополнительно можно указать основную Схему Компоновки Данных (СКД) и настройки для сохранения параметров. Также здесь есть используемый в текущий момент компоновщик настроек. В обработках данные структуры не используются.

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

012416 1243 3

Внешние отчёты и обработки 1C

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

Внешние отчёты/обработки сохраняются в отдельные файлы и имеют следующие расширения:

012416 1243 4

Пример создания внешней обработки 1С

Создавать внешние объекты довольно просто. Функционал, закладываемый разработчиком в конкретную реализацию отчёта или обработки в 1С 8.3 или 8.2, индивидуален и зависит от решаемой задачи.

Покажем пример создания простой обработки 1С. Обработка по нажатию на кнопку «Выполнить» должна выводить на экран сообщение, заданное пользователем в поле «Вывести».

1. Выбираем информационную базу из списка, заходим в режим конфигуратора 1С.

012416 1243 5

2. В конфигураторе выбираем пункт меню Файл – Новый…

012416 1243 6

3. Выбираем из списка вид объекта – Внешняя обработка.

012416 1243 7

4. Задаём имя обработки. В данном случае имя нашей обработки будет «ПримерВнешнейОбработки».

012416 1243 8

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

012416 1243 9

012416 1243 10

012416 1243 11

6. Создаём пользовательскую форму. Тип формы: Обычная.

012416 1243 12

012416 1243 13

012416 1243 14

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

012416 1243 15

8. Прописываем код обработки.

012416 1243 16

9. Сохраняем нашу обработку на диск. Заходим в режим предприятия 1С.

012416 1243 17

012416 1243 18

10. Выбираем пункт меню Файл – Открыть…

012416 1243 19

11. Выбираем созданную нами обработку и нажимаем «Открыть».

012416 1243 20

12. В форме самой обработки вводим текст и нажимаем кнопку «Выполнить». При этом в служебных сообщениях появляется наш текст.

012416 1243 21

012416 1243 22

Мы рассмотрели создание внешней обработки. О том, как создать простейший внешний отчёт на СКД, написано более подробно в этой статье: https://life1c.ru/post/478.

Созданную обработку можно скачать по ссылке ниже.

Дополнительные отчёты и обработки

В конфигурациях 1С существуют также подключаемые внешние отчёты и обработки. Чтобы включить в информационную базу 1С соответствующую обработку/отчёт нужно выполнить ряд действий:

1. Зайти в конфигурацию в режиме предприятия 1С

2. В главном меню выбрать Сервис – Дополнительные отчеты и обработки – Дополнительные внешние обработки

012416 1243 23

3. Открылся список внешних обработок, загруженных в информационную базу 1С. Нажимаем кнопку «Добавить».

012416 1243 24

4. Загружаем файл обработки.

012416 1243 25

012416 1243 26

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

012416 1243 27

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

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

Источник

Превращение внутреннего отчета во внешний без снятия с поддержки конфигурации

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

06bf899fa5bedded2ac059e337c3cc51

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

1676a1a3be3d797d1d0e0c6bbd285299

e90fecb4c68abdbd87f150ce26df09fc

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

Решив, уже ради спортивного интереса, добиться всё таки чтобы механизм по выгрузке отчетов заработал так как мне нужно (напомню, цель была сделать возможным доработку типового отчета с минимальными трудозатратами) прибегнул к методу которого нигде не нашел: Расширение! Если отчету нужен модель менеджера сделаем ему его :) Но столкнулся с проблемой что при заимствовании отчета в расширение СКД нельзя поменять, но вот если загрузить внешний отчет (ПКМ в конфигураторе), тогда картина становится совсем другой.

ebbeaecae415996fec5e9a4194093d27

Далее переименовал имя отчета и вот беда подкралась не заметно, в расширении не открывается СКД этого отчета (потому что мы не «перетянули» в расширение все объекты, из которых строится отчет).

cbea6ea1366d97727aaa3e1185cb491c

Однако и тут оказалось всё достаточно просто. В том отчете который мы просто выгрузили в самом начале, СКД прекрасно открывается и редактируется. Подправив СКД под требования заказчика, осталось только заменить его в нашем отчете из расширения.

Сделать это тоже очень просто достаточно просто сравнить отчет

1383e3bd94677fcc741b78d43dfa9821

при этом мы знаем, что нам нужно только измененное СКД:

598b1be1b0d76839038f0e2c683f76b2

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

Источник

Как программно открыть внешний отчет из «Дополнительных отчетов и обработок» и передать параметры (при помощи БСП)

Дано: конфигурация на платформе 1С 8.3. В «Дополнительные отчеты и обработки» загружен отчет или обработка.

Задача: открыть данный отчет/обработку программно в коде, например, по кнопке.

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

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

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

Итак, в БСП есть модуль работы со справочником «Дополнительные отчеты и обработки» (ДополнительныеОтчетыИОбработки), в частности есть процедура открытия отчета и функция подключения внешнего отчета:

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

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

Поэтому решила использовать функцию под номером 2, что подключает нужный отчет/обработку, который затем можно открыть по имени, возвращаемому данной функцией.

Итак, сам пример (полный код):

Пример формы с кнопками, вызывающими эти процедуры:

4b41344d712bfaf79d0a74833de955d6

Скачать пример данной формы можно в файлах к статье.

Если вызывается отчет на СКД, то нужно создать для него типовую форму. Подробнее см. Как добавить типовую форму для СКД

Примечание: создавать форму, как оказалось, не обязательно. См. вариант вызова СКД без создания формы

Чтобы сработал код передачи параметров в СКД (ОткрытьВнешнийОтчетСКДсПараметром), нужно в модуле объекта СКД добавить код, принимающий эти параметры:

Скачать пример данного СКД отчета можно в файлах к статье.

Также пробовала передавать параметры в СКД вот так:

Однако возникала ошибка: Невозможно применить фиксированные настройки. Пересекаются элементы отбора.

64c7828a2e0175459c59ac6578d4021b

Поэтому выше описала, как передавала параметры отбора в отчет СКД при котором такой ошибки не было.

Обработки тестировались на демо-базе БСП версии 2.4.5.

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

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с управляемая форма модифицированность
  • 1с управляемая форма как сохранять настройки списка