gifts2017

Выгрузка/загрузка справочника "Внешние обработки".

Опубликовал Art Sviat (ArtemiFD) в раздел Обмен - Перенос данных из 1C8 в 1C8

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

Данная обработка не претендует на звание шедевра, но я буду рад, если она кому ни будь, облегчит рабочие будни :)

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

  • Плюсы:
  • - экономия времени, ведь нам всем оно дорого;
  • - стандартизация, мы к этому стремимся;
  • - автоматизация, мне очень нравится это слово;
  • - можно по "тролить" мой код :) .
  • Минусы:
  • - бесполезна, если у Вас всего пару ИБ,... или абсолютно плевать на справочник "Внешние обработки";
  • - можно по "тролить" мой код :( .

У меня на поддержке находится порядка 20 ИБ ЗУП и т.п. баз. И иногда приходится редактировать внешние отчеты или обработки по нескольку раз за день. Хочу так же заметить, что оригинальная обработка берет даннае по подключениям к другим ИБ 1С из специального справочника ("Информационные базы"), что значительно облегчает работу.

Данный механиз ипользует планы обмена и обработку УниверсальныйОбменДаннымиXML. Почему реализовал именно так? Просто мне было интересно попробовать Программное обращение к обработке "Универсальный обмен данными в формате xml".

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

Наименование Файл Версия Размер Кол. Скачив.
Выгрузка загрузка справочника внешние обработки
.epf 22,20Kb
12.03.13
98
.epf 22,20Kb 98 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Art Sviat (ArtemiFD) 10.03.13 17:57
В планах обмена, я заменил стандартное заполнение реквизита "СсылкаОбъекта" табличной части "Принадлежность" на код описанный ниже. Это связано с тем, что помимо тех баз 1с, где планируются использоваться выгружаемые печатные формы или... я складирую их в управленческой базе.

Для Каждого СтрокаТЧ Из Объект.Принадлежность Цикл	
	
	СтрокаТЧ.СсылкаОбъекта = Неопределено;
	
	ПредставлениеОбъекта_ = СокрЛП(СтрокаТЧ.ПредставлениеОбъекта);
				
	Если Найти(ПредставлениеОбъекта_, "Документ") <> 0 Тогда
		ПредставлениеОбъекта_ = СокрЛП(СтрЗаменить(ПредставлениеОбъекта_, "Документ", ""));
		ПредставлениеОбъекта_ = СокрЛП(СтрЗаменить(ПредставлениеОбъекта_, """", ""));
		
		Если Метаданные.Документы.Найти(ПредставлениеОбъекта_) <> Неопределено Тогда
			СтрокаТЧ.СсылкаОбъекта = Документы[ПредставлениеОбъекта_].ПустаяСсылка();	
		Иначе	
			Для Каждого СтрДокумент Из Метаданные.Документы Цикл 
				Если СтрДокумент.Синоним = ПредставлениеОбъекта_ Тогда
					СтрокаТЧ.СсылкаОбъекта = Документы[СтрДокумент.Имя].ПустаяСсылка();	
					Прервать;
				КонецЕсли;
			КонецЦикла;			
		КонецЕсли;
		
	ИначеЕсли Найти(ПредставлениеОбъекта_, "Справочник") <> 0 Тогда
		ПредставлениеОбъекта_ = СокрЛП(СтрЗаменить(ПредставлениеОбъекта_, "Справочник", ""));
		ПредставлениеОбъекта_ = СокрЛП(СтрЗаменить(ПредставлениеОбъекта_, """", ""));
		
		Если Метаданные.Справочники.Найти(ПредставлениеОбъекта_) <> Неопределено Тогда
			СтрокаТЧ.СсылкаОбъекта = Справочники[ПредставлениеОбъекта_].ПустаяСсылка();
		Иначе	
			Для Каждого СтрСправочник Из Метаданные.Справочники Цикл 
				Если СтрСправочник.Синоним = ПредставлениеОбъекта_ Тогда
					СтрокаТЧ.СсылкаОбъекта = Справочники[СтрСправочник.Имя].ПустаяСсылка();	
					Прервать;
				КонецЕсли;
			КонецЦикла;		
		КонецЕсли;	
		
	КонецЕсли;	
	
КонецЦикла;
...Показать Скрыть
2. Макас (makas) 11.03.13 10:05
Спсибо, пригодится!
ArtemiFD; +1 Ответить
3. Юрий Осипов (yuraos) 14.03.13 06:43
Плюс за стремление сделать этот мир лутше.

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

Меняешь какой-нибудь регистр...
...и думаешь гадаешь,
в каком из внешних отчетов с обработками
это может аукнуться.
4. Art Sviat (ArtemiFD) 14.03.13 09:23
(3) yuraos, не совсем понял, прошу пояснить.
Предполагается, что конфигурации типовые (на поддержке и периодически обновляются, особенно это актуально для ЗУПа), без наших изменений. Соответственно все сделанные печатные формы, обработки, отчеты... храним в справочнике "Внешние обработки". Если в структуре метаданных конфигурации, что либо поменялось, исправляем это в одной из баз и перекидываем в остальные.
5. sanches (sanches) 15.03.13 21:06
Буквально на днях думал о такой обработке...
Тоже приходится периодически в 10-ки баз подключать один и тот же отчет.
6. Art Sviat (ArtemiFD) 15.03.13 22:09
(5) sanches, Если все таки надумаешь, то принимаю пожелания по доработке :)
7. sanches (sanches) 15.03.13 22:36
(6) ArtemiFD,
Теперь думать не надо, уже скачал ))
8. С. Дмитрий (spa07) 18.03.13 13:12
хорошая обработка, как раз много баз, сейчас опробую
9. Art Sviat (ArtemiFD) 25.04.13 11:58
Начиная с платформы 8.2.17, обработка стала ругаться на неизвестную ошибку. Исправляем ее следующим образом:
берем внешнюю обработку "УниверсальныйОбменДаннымиXML" и исправляем в ней процедуру СообщитьПользователю, либо комментируем ее содержимое. После это, в моей обработке исправляем вызов "УниверсальныйОбменДаннымиXML" с внутренней на внешнюю.

Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт
	
	#Если Клиент Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = ТекстСообщенияПользователю;
		Сообщение.Сообщить();
	#КонецЕсли
	
КонецПроцедуры
...Показать Скрыть


и

Процедура ВыгрузитьДанные(...)
//Обработка = ИБ_подключение.Обработки.УниверсальныйОбменДаннымиXML.Создать();
Обработка = ИБ_подключение.ВнешниеОбработки.Создать(УниверсальныйОбменДаннымиXML_Внешняя);
...
КонецПроцедуры

Процедура ЗагрузитьДанныеВ_ИБ_Приемник(...)
//ОбработкаОбмена = ИБ_Приемник.Обработки.УниверсальныйОбменДаннымиXML.Создать();
ОбработкаОбмена = ИБ_Приемник.ВнешниеОбработки.Создать(УниверсальныйОбменДаннымиXML_Внешняя);
...
КонецПроцедуры

УниверсальныйОбменДаннымиXML_Внешняя = "\\Обмен\УниверсальныйОбменДаннымиXML.epf";
КэшируемоеПодключение = Ложь;
...

...Показать Скрыть
10. Сергей Маслов (LexSeIch) 30.04.13 09:15
Мир этому дому!
Идея интересная. Скачал - буду пробовать. Из сэкономленных минут - складываются часы, бесценного времени. Автору спасибо.
11. Art Sviat (ArtemiFD) 30.04.13 09:31
(10) LexSeIch, Рад что еще одному человеку пригодилась "идея" :)
Не забудьте сделать изменения по сообщению №9 .
12. Андрей Почукаев (RodinMax) 31.01.14 08:14
платформа 8.2.19.80 конфа БП 54.13

в файловом не работает пишет
Не удалось произвести подключение к информационной базе: D:\Documents\1C_v8X\Base_8.2\8.2_БП_5
{ВнешняяОбработка.ВыгрузкаЗагрузкаСправочникаВнешниеОбработки.МодульОбъекта(52)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V82.COMConnector.1): Неверные или отсутствующие параметры соединения с информационной базой
путь указан базы в которой я открыл обработку, пользователь и пароль не текущего пользователя, но имеющегося в базе с полными правами.

разобрался: в файловом варианте путь должен выглядеть File="D:\База1С"
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа