Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Дополнительные отчеты и обработки в 1С 8.3 (8.2)

Дополнительные отчеты и обработки — подсистема, предназначена для расширения функционала решения без изменения конфигурации. Этот модуль позволяет разработать новые возможности в программе и встроить их. Ниже речь пойдет о подсистеме из последней Библиотеке стандартных подсистем (версии 2) на платформе 1С 8.3 и 8.2. Она уже встроена в такие конфигурации как 1С: Управление торговлей 11, Бухгалтерия предприятия 3, 1С Управление предприятием 2.0, 1С: Зарплата и управление персоналом 3.

Библиотека стандартных подсистем 1С

Но теперь работать с внешними компонентами не так просто как раньше, в 1С БСП 1.0. Теперь необходимо поддерживаться некоторых стандартов, которые заложила фирма «1С». Рассмотрим как произвести разработку, настройку и как пользоваться таким функционалом.

Создание и настройка

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

Функция должна возвращать структуру со следующими ключами:

  • Вид — назначения объекта. Возможные значения: «ДополнительныйОтчет», «ЗаполнениеОбъекта», «ДополнительнаяОбработка», «Отчет», «ПечатнаяФорма» или «СозданиеСвязанныхОбъектов».
  • Назначение — массив названий объектов, для которого предназначается данных отчет или обработка. Например — «Документ.РеализацияТоваровУслуг».
  • Наименование — строка, пользовательское имя обработки.
  • Команды — таблица значений, в которой содержатся команды, которые будут использоваться для добавления обработки или отчета в интерфейс программы (колонки таблицы: «Представление», «Идентификатор», «Использование», «ПоказыватьОповещение»,»Модификатор»).
  • ВерсияБСП — строка, версия встроенной в конфигурации библиотеки стандартных подсистем. Необходимы для поддержки совместимости.
  • БезопасныйРежим — булево, отображает режим запуска обработка — безопасный или нет. В безопасном режиме недоступен привилегированный режим, COM-соединение, загрузка dll, доступ к файловой системе и интернету.
  • Информация — строка, комментарий, который характеризует обработку.
  • Версия — строка, версия обработки.

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

Рассмотрим небольшой пошаговый пример создания внешней печатной формы ТОРГ-12 для новой системы.

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

ОбъектыНазначенияФормы = Новый Массив;
ОбъектыНазначенияФормы.Добавить("Документ.РеализацияТоваровУслуг");

ПараметрыРегистрации = ПолучитьПараметрыРегистрации(ОбъектыНазначенияФормы, "ТОРГ - 12 (альтернативная)");

ПараметрыРегистрации.Версия = "2017.03.07";
ПараметрыРегистрации.Информация = "Внешняя печатная форма документа реализации товаров и услуг ТОРГ - 12 (альтернативная)";

ТаблицаКоманд = ПолучитьТаблицуКоманд();

ДобавитьКоманду(ТаблицаКоманд,
"ТОРГ - 12 (альтернативная)", // Представление команды в пользовательском интерфейсе
"ТОРГ_12_альтернативная", // Уникальный идентификатор команды
"ВызовСерверногоМетода", // Использование команды //ОткрытиеФормы
Истина, // Показывать оповещение.
"ПечатьMXL" // Дополнительный модификатор команды.
);

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции

Где функция ПолучитьПараметрыРегистрации:

Получите 267 видеоуроков по 1С бесплатно:

Функция ПолучитьПараметрыРегистрации(ОбъектыНазначенияФормы = Неопределено, НаименованиеОбработки = "", Информация = "", Версия = "1.0.0")

Если ТипЗнч(ОбъектыНазначенияФормы) = Тип("Строка") Тогда
ОбъектНазначенияФормы = ОбъектыНазначенияФормы;
ОбъектыНазначенияФормы = Новый Массив;
ОбъектыНазначенияФормы.Добавить(ОбъектНазначенияФормы);
КонецЕсли;

ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Назначение", ОбъектыНазначенияФормы);

Если Не ЗначениеЗаполнено(НаименованиеОбработки) Тогда
НаименованиеОбработки = ЭтотОбъект.Метаданные().Представление();
КонецЕсли;
ПараметрыРегистрации.Вставить("Наименование", НаименованиеОбработки);

Если Не ЗначениеЗаполнено(Информация) Тогда
Информация = ЭтотОбъект.Метаданные().Комментарий;
КонецЕсли;
ПараметрыРегистрации.Вставить("Информация", Информация);

ПараметрыРегистрации.Вставить("Версия", Версия);

Возврат ПараметрыРегистрации;

КонецФункции

Фукнция ПолучитьТаблицуКоманд:

Функция ПолучитьТаблицуКоманд()

Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;

КонецФункции

Процедура добавление команд ДобавитьКоманду:

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

В данных функциях описываются сведения о внешней печатной формы.

4. В модуле объекта необходимо добавить функцию «Печать», которая будет запускаться при печати.

Функция Печать(СсылкаНаОбъект, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");

Настройка=КоллекцияПечатныхФорм.Добавить();
Настройка.ИмяВРЕГ= "ТОРГ_12_АЛЬТЕРНАТИВНАЯ";
Настройка.Экземпляров = 1;

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
"ТОРГ_12_Альтернативная", "ТОРГ 12 (Альтернативная)",
ПолучитьТабличныйДокументТорг12(СсылкаНаОбъект, ОбъектыПечати));

КонецФункции

Где функция ПолучитьТабличныйДокументТорг12(…) — функция, которая вернет уже подготовленный табличный документ для печати (подробности как это делается — создание и настройка печатных форм в 1С на примере).

5. Для размещения обработки необходимо посетить справочник внешних отчетов и обработок. Чаще всего они располагаются на вкладке «Администрирование».

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

Настройка включения внешних печатных форм

В справочнике необходимо нажать кнопку «Добавить», после чего система предложит прикрепить внешнюю обработку 1С.

Добавление в 1С новой печатной формы

 Если всё указано верно — то система пойдет для какого документа предназначена обработка и установит всё настройки верно:

Новая печатная форма в списке

Вот и всё.

Подробное описание данного механизма можно найти к документации конфигурации БСП.

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

Видеоурок по созданию внешних печатных форм в управляемых формах 1С 8.3:

Читайте и другие наши материалы по программированию 1С!

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

Задайте ВОПРОС на нашем форуме 1С! ››

СПРОСИТЕ в комментариях!

Комментариев: 10 на “Дополнительные отчеты и обработки в 1С 8.3 (8.2)
  1. Спасибо за полезный, грамотно составленный урок!

    Ответить

    • Спасибо за хорошие слова!
      Заглядывайте к нам:)

      Ответить

    • Здравствуйте! А у вас есть внешняя обработка по расчету процентов по выданным займам контрагентам, сотрудникам? Буду очень признателен если предоставите возможность воспользоваться вашей обработкой

      Ответить

  2. Урок создан содержательный,доступно изложенный,спасибо за талантливую и полезную общественную работу

    Ответить

    • Спасибо!!!!! Очень приятно! 🙂

      Ответить

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

    Ответить

  4. Толково и полезно.

    Ответить

  5. Ваш сайт содержит наиболее полную и достоверную информацию по формам. Очень помогла статья нашему бухгалтеру.

    Ответить

    • Спасибо большое! Очень приятно слышать хорошие отзывы — значит не зря стараемся 🙂

      Ответить

  6. Было бы здорово, если бы еще комментарии к коду были. Это раскроет непонятные участки.

    Ответить

Добавить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*