Извлечение данных из СЛК-конфигурации

У клиента возникло желание уйти с отраслевой бухгалтерии в обычную.

Облако было уже не оплаченным, но была доступна выгрузка DT:

Загрузил из DT, но вот свинство — база не дает выгрузить данные, сразу завершает работу. Пробуем разобраться в проблеме.

При запуске 1С из конфигуратора устанавливаю два параметра запуска:

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

При запуске появляется предупреждение об отключенной логике:

Окно настройки защиты СЛК просто закрываю:

После этого появляется окно ошибки и 1С закрывается:

Чтобы 1С не закрывалась, в общую форму ИмпФормаНастройкиЗащитыСЛК добавляю расширением патч:

&НаКлиенте
&Вместо("ЗавершитьРаботу")
Процедура Расш1_ЗавершитьРаботу(ДополнительныеПараметры)
	Возврат;
	ПродолжитьВызов(ДополнительныеПараметры);
КонецПроцедуры

Далее открываю выгрузку в EnterpriseData по ссылке: e1cib/app/Обработка.ВыгрузкаЗагрузкаEnterpriseData

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

Дальше при выгрузке возникает ошибка:

Пришлось опять внести правку расширением в модуль ОбменДаннымиXDTOСервер:

&ИзменениеИКонтроль("ВыгрузкаОбъектаВыборки")
Процедура Расш1_ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Объект, ПравилоОбработки)
...

			Если Не ПропуститьОбработку Тогда
				ОшибкаПроверкиПоСхеме = Ложь;
				ОписаниеОшибкиПроверкиПоСхеме = Неопределено;

				Контекст = Новый Структура;
				Контекст.Вставить("НаправлениеОбмена",    КомпонентыОбмена.НаправлениеОбмена);
				Контекст.Вставить("ИмяПОД",               ПравилоОбработки.Имя);
				Контекст.Вставить("ИмяПКО",               ПравилоКонвертации.ИмяПКО);
				Контекст.Вставить("ПредставлениеОбъекта", ПредставлениеОбъектаДляПротокола(Объект, ПравилоКонвертации.ОбъектДанных));

				ПроверитьОбъектXDTOПоСхеме(ОбъектXDTO, ПравилоКонвертации.ТипXDTO, Контекст, ОшибкаПроверкиПоСхеме, ОписаниеОшибкиПроверкиПоСхеме);

				Если ОшибкаПроверкиПоСхеме Тогда
					ПропуститьОбработку = Истина;

					ЗафиксироватьПроблемуПриОбработкеОбъекта(КомпонентыОбмена,
					Объект,
					Перечисления.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта,
					ОписаниеОшибкиПроверкиПоСхеме.ПодробноеПредставление,
					ОписаниеОшибкиПроверкиПоСхеме.КраткоеПредставление);
				КонецЕсли;
			КонецЕсли;

			Если ПропуститьОбработку Тогда
				ПрерватьОбработку = Истина;
#Вставка     
				Сообщить("Не удалось выгрузить: " + Строка(Объект));
				ПрерватьОбработку = ложь;
#КонецВставки
				Продолжить;
			КонецЕсли;

			ВыгрузитьОбъектыПоСсылке(КомпонентыОбмена, СсылкиИзОбъекта);

			// 4. Записываем ОбъектXDTO в XML-файл.
			ФабрикаXDTO.ЗаписатьXML(КомпонентыОбмена.ФайлОбмена, ОбъектXDTO);
		КонецЦикла;
	КонецЕсли;

	Если ПрерватьОбработку Тогда
		КомпонентыОбмена.НеВыгруженныеОбъекты.Добавить(?(ОбъектСсылочногоТипа, Объект.Ссылка, Объект));
	КонецЕсли;

	Если ВзвестиФлагОшибки Тогда
		КомпонентыОбмена.ФлагОшибки = Истина;
		КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка;
	КонецЕсли;

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

После чего выгрузка все же произошла. Но документов оказалось мало, всего 157:

Правда, я проверил по статистике, документов реально немного:

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

Среда: 1С:Бухгалтерия строительной организации, редакция 3.1 (3.1.148.41) (http://v8.1c.ru/solutions/product.jsp?prod_id=85)

Объем: 2 час

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

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

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

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