|
Конструктор не обнаружен (ХранилищеЗначения) | ☑ | ||
---|---|---|---|---|
0
koketka
02.04.13
✎
09:23
|
Всегда пользовалась стандарной обработкой пенос данных хml а тут пишет мне ошибку Конструктор не обнаружен (ХранилищеЗначения), что это такое отчего раньше не было а тут появилась
|
|||
1
Fragster
гуру
02.04.13
✎
09:23
|
управляемые формы?
|
|||
2
koketka
02.04.13
✎
09:29
|
первый раз слышк у нас 8.0
|
|||
3
Godofsin
02.04.13
✎
09:32
|
Й, не?
|
|||
4
Godofsin
02.04.13
✎
09:34
|
а нет, "Я" =)
|
|||
5
Wobland
02.04.13
✎
09:38
|
(0) очевидно, потому, что раньше обнаружение бывало
|
|||
6
koketka
02.04.13
✎
09:39
|
а как исправить данную ошибку
|
|||
7
koketka
02.04.13
✎
11:15
|
но может кто подскажет хоть где копать то
|
|||
8
Wobland
02.04.13
✎
11:15
|
может, я даже подскажу. при наличии большего количества информации
|
|||
9
koketka
02.04.13
✎
11:19
|
выгружаю поступление товаров и услуг за месяц из одной базы в другую обработкой перенос данных xml
вот обработка внутри Перем ВсеТипыДок,ВсеТипыСпр; // Определяет заполнено ли переданное значение // // Параметры: // Значение - значение, заполенение которого надо проверить // // Возвращаемое значение: // Истина - значение не заполнено, ложь - иначе. // Функция _ЗначениеНеЗаполнено(Значение) Результат = Ложь; ТипЗначения = ТипЗнч(Значение); // Сначала примитивные типы Если Значение = Неопределено Тогда Результат = Истина; ИначеЕсли Значение = NULL Тогда Результат = Истина; ИначеЕсли ТипЗначения = Тип("Строка") Тогда Если СокрЛП(Значение) = "" Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Число") Тогда Если Значение = 0 Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Дата") Тогда Если Значение = Дата('00010101') Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Булево") Тогда Результат = Ложь; // Булево будем считать не пустым // для МоментаВремени и Границы будем проверять заполнение Даты ИначеЕсли ТипЗначения = Тип("Граница") Тогда Если Значение.Значение = Дата('00010101') Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("МоментВремени") Тогда Если Значение.Дата = Дата('00010101') Тогда Результат = Истина; КонецЕсли; // Для остальных будем считать значение пустым, если оно равно // дефолтному значению своего типа Иначе Если Значение = Новый(ТипЗначения) Тогда Результат = Истина; КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции // ЗначениеНеЗаполнено() Процедура ЗаписатьВПротоколВыполнения(Сообщение,Ошибка=Ложь) Экспорт Если Ошибка Тогда Если ЭтоИнтерактивныйРежим Тогда Сообщить(Сообщение, СтатусСообщения.ОченьВажное); Иначе ЗаписьЖурналаРегистрации(РежимОбмена,УровеньЖурналаРегистрации.Ошибка,,,Сообщение); КонецЕсли; Иначе Если ЭтоИнтерактивныйРежим Тогда Сообщить(Сообщение, СтатусСообщения.Информация); Иначе ЗаписьЖурналаРегистрации(РежимОбмена,УровеньЖурналаРегистрации.Информация,,,Сообщение); КонецЕсли; КонецЕсли; КонецПроцедуры // ЗаписатьВПротоколВыполнения() Процедура ЗаполнитьТаблицаПравилВыгрузки() Экспорт ТаблицаПравилВыгрузки.Строки.Очистить(); СтрокиДЗ = ТаблицаПравилВыгрузки.Строки; СтрокаДЗГруппа = СтрокиДЗ.Добавить(); СтрокаДЗГруппа.Имя="Константы"; СтрокаДЗГруппа.ЭтоГруппа=Истина; СтрокаДЗГруппа.Включить = 0; Для Каждого Конст ИЗ Метаданные.Константы Цикл СтрокаДЗ = СтрокаДЗГруппа.Строки.Добавить(); СтрокаДЗ.Имя=Конст.Имя; СтрокаДЗ.ЭтоГруппа=Ложь; СтрокаДЗ.Включить = 0; КонецЦикла; СтрокаДЗГруппа = СтрокиДЗ.Добавить(); СтрокаДЗГруппа.Имя="Справочники"; СтрокаДЗГруппа.ЭтоГруппа=Истина; СтрокаДЗГруппа.Включить = 0; Для Каждого Спр ИЗ Метаданные.Справочники Цикл СтрокаДЗ = СтрокаДЗГруппа.Строки.Добавить(); СтрокаДЗ.Имя=Спр.Имя; СтрокаДЗ.ЭтоГруппа=Ложь; СтрокаДЗ.Включить = 0; КонецЦикла; СтрокаДЗГруппа = СтрокиДЗ.Добавить(); СтрокаДЗГруппа.Имя="Документы"; СтрокаДЗГруппа.ЭтоГруппа=Истина; СтрокаДЗГруппа.Включить = 0; Для Каждого Док ИЗ Метаданные.Документы Цикл СтрокаДЗ = СтрокаДЗГруппа.Строки.Добавить(); СтрокаДЗ.Имя=Док.Имя; СтрокаДЗ.ЭтоГруппа=Ложь; СтрокаДЗ.Включить = 0; КонецЦикла; СтрокаДЗГруппа = СтрокиДЗ.Добавить(); СтрокаДЗГруппа.Имя="РегистрыСведений"; СтрокаДЗГруппа.ЭтоГруппа=Истина; СтрокаДЗГруппа.Включить = 0; Для Каждого РегСвед ИЗ Метаданные.РегистрыСведений Цикл Если РегСвед.РежимЗаписи=Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый Тогда СтрокаДЗ = СтрокаДЗГруппа.Строки.Добавить(); СтрокаДЗ.Имя=РегСвед.Имя; СтрокаДЗ.ЭтоГруппа=Ложь; СтрокаДЗ.Включить = 0; КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ДобавитьДанныеВСписок(СписокДанных,Данные) ОбработкаПрерыванияПользователя(); Если _ЗначениеНеЗаполнено(Данные) Тогда Возврат; КонецЕсли; Если ВсеТипыДок.СодержитТип(ТипЗнч(Данные)) ИЛИ ВсеТипыСпр.СодержитТип(ТипЗнч(Данные)) Тогда Если СписокДанных.НайтиПоЗначению(Данные)<>Неопределено Тогда Возврат; КонецЕсли; СписокДанных.Добавить(Данные); Если ВсеТипыСпр.СодержитТип(ТипЗнч(Данные)) Тогда Если Данные.Родитель<>Неопределено И НЕ Данные.Родитель.Пустая() Тогда ДобавитьДанныеВСписок(СписокДанных,Данные.Родитель.Ссылка); КонецЕсли; Если Данные.Владелец<>Неопределено И НЕ Данные.Владелец.Пустая() Тогда ДобавитьДанныеВСписок(СписокДанных,Данные.Владелец.Ссылка); КонецЕсли; КонецЕсли; Для Каждого Реквизит ИЗ Данные.Метаданные().Реквизиты Цикл ИмяРеквизита=Реквизит.Имя; ЗначРекв=Данные[ИмяРеквизита]; ДобавитьДанныеВСписок(СписокДанных,ЗначРекв); КонецЦикла; Для Каждого ТаблЧастьМД ИЗ Данные.Метаданные().ТабличныеЧасти Цикл СписокАгрРекв=Новый СписокЗначений(); Для Каждого Реквизит ИЗ ТаблЧастьМД.Реквизиты Цикл Если ВсеТипыДок.СодержитТип(ТипЗнч(Данные)) ИЛИ ВсеТипыСпр.СодержитТип(ТипЗнч(Данные)) Тогда СписокАгрРекв.Добавить(Реквизит.Имя); КонецЕсли; КонецЦикла; ТаблЧасть=Данные[ТаблЧастьМД.Имя]; Если ТаблЧасть.Количество()>0 И СписокАгрРекв.Количество()>0 Тогда Для Каждого СтрТаблЧасть ИЗ ТаблЧасть Цикл Для Каждого СтрАгрРекв ИЗ СписокАгрРекв Цикл ДобавитьДанныеВСписок(СписокДанных,СтрТаблЧасть[СтрАгрРекв.Значение]); КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; ИначеЕсли(Найти(Строка(Данные),"РегистрСведений")>0) Тогда СписокДанных.Добавить(Данные); СписокАгрРекв=Новый СписокЗначений(); Для Каждого Измерение ИЗ Данные.Метаданные().Измерения Цикл ТипСтрока=Строка(Измерение.Тип); Если Найти(ТипСтрока,"Справочник")>0 ИЛИ Найти(ТипСтрока,"Документ")>0 Тогда СписокАгрРекв.Добавить(Измерение.Имя); КонецЕсли; КонецЦикла; Для Каждого Ресурс ИЗ Данные.Метаданные().Ресурсы Цикл ТипСтрока=Строка(Ресурс.Тип); Если Найти(ТипСтрока,"Справочник")>0 ИЛИ Найти(ТипСтрока,"Документ")>0 Тогда СписокАгрРекв.Добавить(Ресурс.Имя); КонецЕсли; КонецЦикла; Для Каждого Реквизит ИЗ Данные.Метаданные().Реквизиты Цикл ТипСтрока=Строка(Реквизит.Тип); Если Найти(ТипСтрока,"Справочник")>0 ИЛИ Найти(ТипСтрока,"Документ")>0 Тогда СписокАгрРекв.Добавить(Реквизит.Имя); КонецЕсли; КонецЦикла; Если СписокАгрРекв.Количество()>0 Тогда Для Каждого СтрДанные ИЗ Данные Цикл Для Каждого СтрАгрРекв ИЗ СписокАгрРекв Цикл ДобавитьДанныеВСписок(СписокДанных,СтрДанные[СтрАгрРекв.Значение]); КонецЦикла; КонецЦикла; КонецЕсли; ИначеЕсли(Найти(Строка(Данные),"КонстантаМенеджер")>0) Тогда СписокДанных.Добавить(Данные); ДобавитьДанныеВСписок(СписокДанных,Данные.Значение); Иначе Возврат; КонецЕсли; КонецПроцедуры Процедура ВыполнитьВыгрузку() Экспорт ЗаписатьВПротоколВыполнения("Начало выгрузки: " + ТекущаяДата(),Ложь); СписокДанных=Новый СписокЗначений(); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайлаОбмена,"UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("ФайлОбмена"); Для Каждого СтрокаДЗГруппа ИЗ ТаблицаПравилВыгрузки.Строки Цикл Если СтрокаДЗГруппа.Включить>0 Тогда ИмяСтрокаДЗГруппа=СтрокаДЗГруппа.Имя; Для Каждого СтрокаДЗОбъект ИЗ СтрокаДЗГруппа.Строки Цикл Если СтрокаДЗОбъект.Включить>0 Тогда Если ИмяСтрокаДЗГруппа="Справочники" Тогда Менеджер=Справочники[СтрокаДЗОбъект.Имя]; Выборка=Менеджер.Выбрать(,,,); Пока Выборка.Следующий() Цикл Состояние("Выгрузка объектов "+Строка(Менеджер)); ДобавитьДанныеВСписок(СписокДанных,Выборка.Ссылка); КонецЦикла; ИначеЕсли(ИмяСтрокаДЗГруппа="Документы") Тогда Менеджер=Документы[СтрокаДЗОбъект.Имя]; Выборка=Менеджер.Выбрать(ДатаНачала,ДатаОкончания,,); Пока Выборка.Следующий() Цикл Состояние("Выгрузка объектов "+Строка(Менеджер)); ДобавитьДанныеВСписок(СписокДанных,Выборка.Ссылка); КонецЦикла; ИначеЕсли(ИмяСтрокаДЗГруппа="РегистрыСведений") Тогда Набор=РегистрыСведений[СтрокаДЗОбъект.Имя].СоздатьНаборЗаписей(); Состояние("Выгрузка объектов "+Строка(Набор)); Набор.Прочитать(); Если Набор.Количество()>0 Тогда ДобавитьДанныеВСписок(СписокДанных,Набор); Конецесли; ИначеЕсли(ИмяСтрокаДЗГруппа="Константы") Тогда МенеджерЗначения=Константы[СтрокаДЗОбъект.Имя].СоздатьМенеджерЗначения(); МенеджерЗначения.Прочитать(); ДобавитьДанныеВСписок(СписокДанных,МенеджерЗначения); КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Для Каждого ЭлСписка ИЗ СписокДанных Цикл Попытка Данные=ЭлСписка.Значение; Если ВсеТипыДок.СодержитТип(ТипЗнч(Данные)) ИЛИ ВсеТипыСпр.СодержитТип(ТипЗнч(Данные)) Тогда Данные=Данные.ПолучитьОбъект() КонецЕсли; ЗаписатьXML(ЗаписьXML, Данные); Исключение Продолжить; КонецПопытки; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); ЗаписатьВПротоколВыполнения("Окончание выгрузки: " + ТекущаяДата(),Ложь); КонецПроцедуры Процедура ВыполнитьЗагрузку() Экспорт ЗаписатьВПротоколВыполнения("Начало загрузки: " + ТекущаяДата(),Ложь); // Создаем объект чтения XML ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяФайлаОбмена); Пока ЧтениеXML.Прочитать() Цикл Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл Попытка // Читаем очередное значение Данные = ПрочитатьXML(ЧтениеXML); // Включает режим Загрузка, так как данные могут загружаться в произвольном порядке и // нужно отключить такой контроль данных, как проверка уникальности номеров Данные.ОбменДанными.Загрузка = Истина; // Запись перенесенных данных Данные.Записать(); Исключение ЗаписатьВПротоколВыполнения(ОписаниеОшибки(),Истина); Продолжить; КонецПопытки; КонецЦикла; КонецЦикла; ЧтениеXML.Закрыть(); ЗаписатьВПротоколВыполнения("Окончание загрузки: " + ТекущаяДата(),Ложь); КонецПроцедуры ВсеТипыДок=Документы.ТипВсеСсылки(); ВсеТипыСпр=Справочники.ТипВсеСсылки(); Колонки = ТаблицаПравилВыгрузки.Колонки; Колонки.Добавить("Включить"); Колонки.Добавить("ЭтоГруппа"); Колонки.Добавить("Имя"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |