Извлечение данных из СЛК-конфигурации
У клиента возникло желание уйти с отраслевой бухгалтерии в обычную.
Облако было уже не оплаченным, но была доступна выгрузка DT:
Загрузил из DT, но вот свинство — база не дает выгрузить данные, сразу завершает работу. Пробуем разобраться в проблеме.
При запуске 1С из конфигуратора устанавливаю два параметра запуска:
- ОтключитьЛогикуНачалаРаботыСистемы — чтобы не происходило лишних действия от 1С
- РежимОтладки — чтобы выгрузка данных шла не в фоне и ее можно было отлаживать.
При запуске появляется предупреждение об отключенной логике:
Окно настройки защиты СЛК просто закрываю:
После этого появляется окно ошибки и 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 час
Свежие комментарии