gifts2017

Универсальная авторегистрация внешних отчетов и обработок (управляемые формы)

Опубликовал Максим Жохов (ZhokhovM) в раздел Обработки - Универсальные обработки

Вы сделали клиенту внешнюю печатную форму? А дополнительную обработку? Дополнительный отчет? Создание и заполнение связанных объектов? Сколько Вы их сделали? Десятки? Сотни? Не надоело ли Вам регистрировать их по одному разу? Клиенту это не всегда объяснить? Дистанционно не всегда сделаете? Дальше их еще обновлять каждый раз? Есть решение!

Представьтесь себе, у каждой базы есть подключенные внешние обработки/отчеты и они должны нормально функционировать на новой версии любой конфигурации. Обработка проверена на релизе конфигурации "1С:Управление торговлей, редакция 11" версия 11.1.10.138, так же в макете обработки встроена внешняя обработка печатной формы. Вы можете ее выгрузить на рабочий стол и посмотреть исходный код, а так же код самой обработки. Весь исходный код открыт.

Примеры внешних обработок/отчетов могут быть различными и их может быть куда больше:

  • ФОТ: Доп. отчет "Выгрузка прайсов(расширенная)"
  • ЙЕТОУниверсальное заполнение справочников и документов
  • УМО: Внешняя печатная форма акта об указании услуг
  • РА: Формирование счетов поставщикам

ПРОГРАММИСТ ДОЛЖЕН:

  1. Открыть обработку "ZhokhovM_UATR.epf" в режиме конфигуратора
  2. Добавить новый макет с типом "Двоичные данные" и загрузить в него внешнюю обработку/отчет с исправленной версией
  3. Добавить конечный префикс в имени макета на "_epf" или "_erf" (зависит от того, какой формат файла Вы загрузили в него)
  4. Сохранить изменения
  • Примечание: Если есть еще файлы, делаем пункты повторно 2-4.

Пример полного имени макета: "ЙЕТО_ПФ_РеализацияТоваров_epf".

  • Требования: В любой внешней обработке/отчете должна быть установлена версия 1.0.0.1 или новее. 

Пример кода:

РегистрационныеДанные.Вставить("Версия", Версия());
//Функция Версия
//  Предназначена для определения версии.
//
// Параметры:
//  Нет.
//
// Возвращаемое значение:
//  Строка - результат выполнения функции.
//
Функция Версия()
	
	Возврат "2.0.5.16";
	
КонецФункции

Но это еще не всё, в любом внешнем файле(обработки, отчеты) Вы можете добавить себе любимые функции, какие нет в ИТС:

  • Новая функция: Разделы().
РегистрационныеДанные.Вставить("Разделы", Разделы());
//Функция Разделы
//  Предназначена для определения разделов.
//
// Параметры:
//  Нет.
//
// Возвращаемое значение:
//  СписокЗначений - результат выполнения функции.
//
Функция Разделы()
	
	л_Результат = Новый СписокЗначений;
	л_Результат.Добавить(Метаданные.Подсистемы.ЗапасыИЗакупки);
	
	Возврат л_Результат;
	
КонецФункции
  • Новые функции: Команды() с проверкой прав доступа ролей.
РегистрационныеДанные.Вставить("Команды", Команды(ТаблицаКоманд(),Роли(),Доступ()));
// Функция Команды
//  Предназначена для добавления команд.
//
// Параметры:
//  ТаблицаКоманд - ТаблицаЗначений - Таблица команд.
//  Роли - Массив - Роли.
//  Доступ - СписокЗначений - Быстрый доступ.
//
// Возвращаемое значение:
//  ТаблицаЗначений - результат работы функции
//
Функция Команды(ТаблицаКоманд, Роли, Доступ)
	
	ДобавитьРоль(Роли, "РА_ПравоСформироватьСчет");
	ДобавитьРоль(Роли, "ПолныеПрава");
	
	Если
		Пользователи.РолиДоступны(СтрЗаменить(Массив2Строка(Роли, ",")," ",""))
	Тогда
		
		//ДобавитьДоступ(Доступ, "Администратор");
		
		ДобавитьКоманду(
			ТаблицаКоманд,
			НСтр("ru = 'РА: Формирование счетов поставщикам'"),
			"РА_ФормированиеСчетовПоставщикам", 
			"ОткрытиеФормы",
			Ложь,
			"",
			//Доступ.Скопировать()
		);
		
		//Доступ.Очистить();
		
	КонецЕсли;
	
	Возврат ТаблицаКоманд;
	
КонецФункции

ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН:

  1. Открыть обработку "ZhokhovM_UATR.epf" через меню "Файл" - "Открыть" в режиме предприятия
  2. Далее в открывшейся форме выбрать галочкой строки, которые нужно зарегистрировать в базу и нажать на кнопку "Зарегистрировать в ИБ", так же можно перерегистрировать их, нажав кнопку "Пометить на удаление" или красным крестиком справа от кнопки "Зарегистрировать в ИБ".
  3. Затем выполнить конкретные действия пользователя
  • Из пункта 3 приведу пример:
    • Программист загрузил в обработку пару новых печатных форм в обработку через двоичные данные, далее пользователь должен прикрепить эти файлы к базе, затем он должен открыть любой документ или справочник, пусть это будет документ "Реализация товаров и услуг", у документа реализации прикреплена внешняя печатная форма, которая находится через кнопку "Печать" - "Дополнительные печатные формы", пользователю нужно выбрать эту печатную форму и нажать на кнопку "Выполнить".
Примечание:
  • "Версия двоичного файла" - версия из макета обработки.
  • "Версия регистрируемого файла" - версия из элемента справочника "Дополнительные отчеты и обработки".
  • Если версия двоичного файла свежее версии регистрируемого файла, то колонка помечается зеленым фоном, иначе красным. Белый фон - когда нет версии регистрируемого файла или обе версии одинаковые.
Важно:
  • На всякий случай делайте копию всех внешних файлов.
P.S. Пишите свои комментарии, идеи, предложения, пожелания, идеи и мнение об этой публикации.

Здесь можно поддержать развитие публикации

InnocentЯндекс.Кошелек: 410012743280614Innocent

Скачать файлы

Наименование Файл Версия Размер
ZhokhovM_UAR_TR.epf 10
.epf 35,81Kb
11.11.16
10
.epf 35,81Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Яков Коган (Yashazz) 19.05.15 14:53
Перечитал дважды и трижды. Совершенно хаотично и малопонятно, неудобоваримый набор кусков мыслей и кода. Это вообще о чём? Это вообще как? Каждую из десятков обработок в двоичный макет пихать?
Зато самомнение и скромность у автора на высоте, да.

Авторегистрация, вообще-то, баян. Даже я отметился: http://infostart.ru/public/329326/ - посмотрите, там мне накидали толковых мыслей в комментах.
sbcode; u_n_k_n_o_w_n; ojiojiowka; ZOMI; h00k; +5 Ответить 1
2. Максим Жохов (ZhokhovM) 19.05.15 15:26
(1) Yashazz,
Авторегистрация, вообще-то, баян. Даже я отметился: http://infostart.ru/public/329326/ - посмотрите, там мне накидали толковых мыслей в комментах.

ну я свою обработку делал еще с 2013 года, но я ее не стал выкладывать до тех пор пока не сделаю ее универсальной во всех режимах(файловый, серверный) и конфигурациях, плюс код не такой как у тебя или у поручика. У тебя обработка регистрирует при открытии, у поручика тоже практически, на счёт Яндекс.Диск без интернета ее не загрузишь одним разом.

Каждую из десятков обработок в двоичный макет пихать?

Да, только тех, которые не функционируют нормально на новой версии конфигурации.

Это вообще о чём? Это вообще как?

Ну, обработка умеет регистрировать все внешние обработки или отчеты сама после того, как пользователь нажмет на кнопку регистрации, так же при открытии делает сравнение всех версий файлов, которые подключены внутри базы.
3. Максим Жохов (ZhokhovM) 19.05.15 15:59
(1) Yashazz,
Из жизни приведу пример:
клиент купил урезанный продукт 1С без возможности дальнейшего обновления, ему не хватило пары четвертей печатных форм и загрузку картинок из формата excel, программист сделал их и показал клиенту, клиент доволен, через полторы года клиент докупил лицензию или перешел на более полный продукт, клиенту потребовалось обновить конфигурацию до последней версии, внешние печатные формы открываются с ошибками, обработка загружает некорректно, программисту придется это скорее всего переделать, а клиенту приходится задавать вопросы.