Имя: Пароль:
1C
 
Выгрузка описания структуры конфигурации 2.1.4 и БП 2.0.18.2 (8.1)
0 Kasper076
 
04.01.11
22:03
Платформа 8.1.15
Не удается выгрузить структуру конфигурации БП 2.0.18.2 при помощи обработки "Выгрузка описания структуры конфигурации 2.1.4" (MD81Exp.epf) из последней КД из-за ошибки. Кто-то еще сталкивался с этой проблемой? Это не единственный косяк КД 2.1.4
1 Kasper076
 
04.01.11
22:06
+(0) Описание ошибки:

{ВнешняяОбработка.ВыгрузкаМетаданных(1309)}: Ошибка при вызове метода контекста (Содержит): Несоответствие типов (параметр номер '1')
   Если Метаданные.Константы.Содержит(Объект) Тогда
по причине:
Несоответствие типов (параметр номер '1')
2 Mitriy
 
04.01.11
22:07
прикольно... сейчас попробую...
3 Kasper076
 
04.01.11
22:08
4 Kasper076
 
05.01.11
08:47
К (0).
Отладчик показал, что в плане обмена (ПО) "Полный" конфигурации БП 2.0.18.2 (платформа 8.1) содержит пустой элемент состава. В конфигураторе естественно этого косяка не видно, а в выборке элементов состава ПО "Полный" он присутствует. Соответственно конструкция:
Метаданные.Константы.Содержит(Объект), где Объект - пустой элемент состава ПО, вызывает ошибку.
ТИИ не исправило ситуацию.
5 Kasper076
 
05.01.11
09:13
Цитата из файла "Конвертация данных. Версия 2.1.4. Изменения в версии.mxl": "Описание метаданных конфигурации дополнено информацией о составе плана обмена."

Ошибка вызвана именно этим новым функционалом, но проявляется только на двух ПО "Полный" и "ПоОрганизации". Структура всех остальных ПО выгружается нормально.
6 Живой Ископаемый
 
05.01.11
09:15
Можно вставить заглушку тпа Если Объект=Неопрелено Тогда возврат; КонецЕсли; ?
7 Kasper076
 
05.01.11
09:28
(6) Так и сделал. Но хочется понять что это за объект такой и почему его не видно в составе ПО в режиме Конфигуратора??
8 Kasper076
 
05.01.11
09:36
Я не совсем верно выразился, сказав что элемент состава ПО является пустым. Он не пустой. А вот его свойство Метаданные пустое. Т.е. ПО содержит элемент не соответствующий ни одному объекту конфигурации.

На БП 1.6.28.1 данная ошибка не воспроизводится.
9 Генератор
 
05.01.11
09:40
вчера столкнулся, сделал один в один с (6), вроде норм стало
10 aljas2006
 
08.01.11
18:31
Спасибо ОГРОМНОЕ   Живой Ископаемый !!!!!!!!!!
Правда,не будучи программистом, не сразу сообразила-куда вставить
Если Объект=Неопрелено Тогда возврат; КонецЕсли;

Вернее -ни куда вставить, а каким образом (т.е.надо было вместо
Если Метаданные.Константы.Содержит(Объект) Тогда, а не после этой фразы)
и что КонецЕсли там уже есть.Сначала вставила всю фразу.Получилось удвоение КонецЕсли
Но методом проб и ошибок все получилось!И работает!!!!
Спасибо, а то мучалась полдня.
11 Aleksey
 
08.01.11
18:42
Эта ошибка со времен БП 2.0. По крайне мере последний релизов 10 точно присутствует. Из за нее нельзя посмотреть зарегистрированные объекты, приходиться заглушку вставлять.
Хотя в последней в БП 2.0.18.1 (для 8.2) вроде бы все ОК, по крайне мере ошибку не выдает при попытки просмотра зарегистрированных
12 aljas2006
 
08.01.11
19:05
Нет, Aleksey!
Я всю конвертацию и, в.т. числе базу_источник и базу_приемник, и саму Конвертацию обновила до сегодняшнего дня.И БП стоит 2.0.18.1(для 8.2) В том- то и проблема!
Я сильно удивилась,когда с ходу не получилось с БП,т.к. перед этим спокойно сделал перенос данных в БП 1.6.(тоже последней модели)
13 aljas2006
 
08.01.11
19:07
т.е. на БП 1.6.28.1  (для 8.2)
14 Aleksey
 
08.01.11
19:20
Ничего не понял. Просто была такая ошибка

Операции - План обмена - (Выбор плана обмена) - в меню жмем картинку "Монитора" и ... вываливается ошибка

{Обработка.РегистрацияИзмененийДляОбмена.Форма.Форма(30)}: Ошибка при вызове метода контекста (Индекс): Несоответствие типов (параметр номер '1')
       Если СтрокаСоответствия.Метаданные.Индекс(МетаданныеОбъекта) > -1 Тогда
по причине:
Несоответствие типов (параметр номер '1')

Причем на 1.6 все ок, а в 2.0 она воспроизводилась и в демки и в рабочей, и приходилось вставлять проверку в обработку РегистрацииИзмененийДляОбмена

//Функция возвращает элемент соответсвия массива по метаданным
Функция ПолучитьЭлементСоответствияПоМетаданным(СоответствиеСтрокДереваИМетаданных, МетаданныеОбъекта)
   //Моя вставка
   Если МетаданныеОбъекта = неопределено тогда
       Возврат Неопределено;
   КонецЕсли;
   //конец вставки
15 Aleksey
 
08.01.11
19:25
Нов последней версии 2.0.18.1 (под 8.2) Данная ошибка не воспроизводиться (по крайне мере у меня)

И кстати только что выгрузил описание. Выгрузилось без проблем
16 aljas2006
 
08.01.11
19:39
Извините, что непонятно обяъяснение
1С:БП_2.0.18.1 – в режиме Предприятие-файл-открыть- (из 1С-Конвертация данных-2.1.4.1-окно выгрузки описания структуры метаданных-выгрузить-Выгрузка объектов»План обмена» доходило до 33% и выдавало ошибку:
{ВнешняяОбработка.ВыгрузкаМетаданных.МодульОбъекта(1309)}: Ошибка при вызове метода контекста (Содержит)
   Если Метаданные.Константы.Содержит(Объект) Тогда
по причине:
Несоответствие типов (параметр номер '1')

Справилась с этой ошибкой с помощью «Живой Ископаемый», (за что ему спасибо)
Но не сразу сориентировалась как применить совет( ну не программист я, просто продвинутый главбух)

И  В КОНФИГУРАТОРЕ вместо
Процедура ВыгрузитьЭлементСоставаПланаОбмена(ЭлементСостава, Родитель)
   
   Объект = ЭлементСостава.Метаданные;
   
   Если Метаданные.Константы.Содержит(Объект) Тогда
       Возврат;
   КонецЕсли;


СДЕЛАЛА
Процедура ВыгрузитьЭлементСоставаПланаОбмена(ЭлементСостава, Родитель)
   
   Объект = ЭлементСостава.Метаданные;
   
   Если Объект=Неопрелено Тогда возврат;

   КонецЕсли;

И все сработало!
17 Aleksey
 
08.01.11
19:43
Ну аналогично делал, только
БП 2.0.18.1 под 8.2, а в сабже про 8.1
Но не суть. Проверял именно нп 2.0.18.1 - платформа 8.2
18 aljas2006
 
08.01.11
19:43
Извините-не вставилось MD82exp.epf
Повторю
1С:БП_2.0.18.1 (для 8.2)– в режиме Предприятие-файл-открыть-MD82exp.epf (из 1С-Конвертация данных-2.1.4.1-окно выгрузки описания структуры метаданных-выгрузить-Выгрузка объектов»План обмена» доходило до 33% и выдавало ошибку:
{ВнешняяОбработка.ВыгрузкаМетаданных.МодульОбъекта(1309)}: Ошибка при вызове метода контекста (Содержит)
   Если Метаданные.Константы.Содержит(Объект) Тогда
по причине:
Несоответствие типов (параметр номер '1')

Справилась с этой ошибкой с помощью «Живой Ископаемый», (за что ему спасибо)
Но не сразу сориентировалась как применить совет( ну не программист я, просто продвинутый главбух)

И  В КОНФИГУРАТОРЕ вместо
Процедура ВыгрузитьЭлементСоставаПланаОбмена(ЭлементСостава, Родитель)
   
   Объект = ЭлементСостава.Метаданные;
   
   Если Метаданные.Константы.Содержит(Объект) Тогда
       Возврат;
   КонецЕсли;


СДЕЛАЛА
Процедура ВыгрузитьЭлементСоставаПланаОбмена(ЭлементСостава, Родитель)
   
   Объект = ЭлементСостава.Метаданные;
   
   Если Объект=Неопрелено Тогда возврат;

   КонецЕсли;

И все сработало!
19 aljas2006
 
08.01.11
19:44
Чудес не бывает.
Что-то у нас с Вами разное.
20 aljas2006
 
08.01.11
19:45
Главное получилось!УРА!