Имя: Пароль:
1C
1С v8
КД 2.1 - Не отрабатывает ПВД
0 YurAnt
 
12.11.14
12:03
Доброго времени суток, господа-форумчане.
Не так часто (как хотелось бы) сталкиваюсь с конвертацией данных. Возник вот такой вопрос:

КД 2.1, переписанные v7.7
1) Источник - ТиС 9.2
2) Приемник - БУ 4.5

При попытке выгрузить значения перечисления в элементы справочника, даже не попадаю в процедуру выгрузки.

http://savepic.su/4409520.png
http://savepic.su/4407472.png

Собственно не могу разобраться, то ли я что-то забыл (все таки с конвертацией сталкиваюсь раз в полгода если придется)
то ли чего-то недопонимаю.

Написал, сохранил правила в файл, галки на выгрузку модулей выгрузки/загрузки для 7 стоят. Выгрузил, заменил код.

На отладке
http://savepic.su/4402352.png

в процедуру с этим "фывфыв" даже не попадает.

В глубоких раздумиях...
С уважением, YurAnt.
1 YurAnt
 
12.11.14
12:07
*в функцию с этим "фывфыв" даже не попадает.*
2 YurAnt
 
12.11.14
12:30
В обработке выгрузки (код которой формируется автоматом в КДшке) в процедуре:

(в нижеприкрепленной промокашке - в условии   Правило.СпособОтбораДанных = "СтандартнаяВыборка"
отсутствует тип Перечисления как таковой)

Процедура ВыгрузкаОбъектаВыборки(Объект, Правило, ВходящиеДанные)

методом отладки и тыка нашел вот такой кусок.

// Выборка данных
    Если Правило.СпособОтбораДанных = "СтандартнаяВыборка" Тогда
                                                                                  
        ЕстьОтбор = 0;
        Если ТипЗначенияСтр(мТаблицаПравилВыгрузки.Отбор) = "ТаблицаЗначений" Тогда
            мТаблицаПравилВыгрузки.Отбор.ВыбратьСтроки();
            Пока мТаблицаПравилВыгрузки.Отбор.ПолучитьСтроку() = 1 Цикл
                Если (мТаблицаПравилВыгрузки.Отбор.Использовать = 2) И (ПустаяСтрока(мТаблицаПравилВыгрузки.Отбор.ПолеОтбора)=0) Тогда
                    ЕстьОтбор = 1;
                    Прервать;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
        
        ОбъектВыборки = СтрЗаменить(Правило.ОбъектВыборки, "Ссылка", "");
        ИмяТипа = Лев(ОбъектВыборки, Найти(ОбъектВыборки, ".") - 1);
        
        Если ЕстьОтбор = 1 Тогда      
                                  
            Запрос = СоздатьОбъект("Запрос");
            ТекстЗапроса = СоздатьЗапрос(ОбъектВыборки, мТаблицаПравилВыгрузки.Отбор);
            Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
                Сообщить("Ошибка при выполнении запроса для отбора данных по правилу " + мТаблицаПравилВыгрузки.Наименование,"!");
                Сообщить("Выгрузка данных по этому правилу не проведена!","!");
                Возврат;
            КонецЕсли;      
            
            Пока Запрос.Группировка("ПеремОбъект") = 1 Цикл      
                ВыгрузкаОбъектаВыборки(Запрос.ПеремОбъект, Правило, ИсходящиеДанные);
            КонецЦикла;
            
        Иначе        
            
            Если ИмяТипа = "Справочник" Тогда
    
                Выборка = СоздатьОбъект(ОбъектВыборки);
                Выборка.ВыбратьЭлементы(0);
                
                Пока Выборка.ПолучитьЭлемент() > 0 Цикл
                    
                    ВыгрузкаОбъектаВыборки(Выборка.ТекущийЭлемент(), Правило, ИсходящиеДанные);
                    
                КонецЦикла;
                
            ИначеЕсли ИмяТипа = "Документ" Тогда
                
                Выборка = СоздатьОбъект(ОбъектВыборки);
                Выборка.ВыбратьДокументы(ДатаНачала, ДатаОкончания);
                
                Пока Выборка.ПолучитьДокумент() > 0 Цикл
                    
                    ВыгрузкаОбъектаВыборки(Выборка.ТекущийДокумент(), Правило, ИсходящиеДанные);
                    
                КонецЦикла;
            
            ИначеЕсли ОбъектВыборки = "КонстантыНабор" Тогда
                
                ВыгрузкаОбъектаВыборки(Константа, Правило, ИсходящиеДанные);
    
            ИначеЕсли ИмяТипа = "ПланСчетов" Тогда
                
                Возврат;
                
            Иначе
                
                Возврат;
                
            КонецЕсли;

            
        КонецЕсли;
        
            
    ИначеЕсли Правило.СпособОтбораДанных = "ПроизвольныйАлгоритм" Тогда
        
        Если ПустоеЗначение(ВыборкаДанных) = 0 Тогда
            
            Если ТипЗначенияСтр(ВыборкаДанных) = "ТаблицаЗначений" Тогда
                
                ВыборкаДанных.ВыбратьСтроки();
                
                Пока ВыборкаДанных.ПолучитьСтроку() > 0 Цикл
                    
                    ВыборкаДанных.ТекущаяСтрока(ВыборкаДанных.НомерСтроки);
                    ВыгрузкаОбъектаВыборки(ВыборкаДанных, Правило, ИсходящиеДанные);
                
                КонецЦикла;                                            
                
            ИначеЕсли ТипЗначенияСтр(ВыборкаДанных) = "СписокЗначений" Тогда
                
                СчетчикЦикла = 0;
                Для СчетчикЦикла = 1 По ВыборкаДанных.РазмерСписка() Цикл    
                    
                    ОбъектДляВыгрузки = ВыборкаДанных.ПолучитьЗначение(СчетчикЦикла);    
                    ВыгрузкаОбъектаВыборки(ОбъектДляВыгрузки, Правило, ИсходящиеДанные);
                    
                КонецЦикла;
            
            Иначе
                
                Возврат;
                
            КонецЕсли;
            
        Иначе
            
            Возврат;
            
        КонецЕсли;
    
    КонецЕсли;
3 YurAnt
 
12.11.14
12:32
Вот собственно не пойму почему?
что-то в КДхе не дописал?
аль её там по дефолту нет?

полагаю перечисления в 7ке люди ж перебрасывали... и, судя по отсутствию топиков на эту тему - успешно.
4 YurAnt
 
12.11.14
12:44
действительно)
медленно до меня начало доходить :D что перечисления мы создаем из конфигуратора...
и прграрммная попытка их создания вызывает краш)

По итогам общения с самим собой прихожу к выводу, что
"у меня яркая форма шизы" (зачеркнуто)

придется прогарммно вносить все перечисления руками в конфу приемник, и настраивать правила соответствия перечислений в реквизитах доков.

вроде бы так. поправьте если ошибаюсь.

С уважением, YurAnt
5 YurAnt
 
12.11.14
12:46
PS: Миста - это такое волшебное место, которое позволяет привести мысли в порядок)
6 Defender aka LINN
 
12.11.14
12:46
А ты Стандартную выборку из принципа убирать не будешь, да?
7 Naumov
 
12.11.14
12:47
какой ПВД для перечисления? ты их специально выгружаешь?
Если ПКО отрабатывается по ссылке, то ПВД не при чем.
8 YurAnt
 
12.11.14
12:52
так. стоп. сам себя уже запутал.
выгружем мы в справочник, т.е. пргарммным созданием порядок.

благодарю вас, Defender aka LINN, намек понял.
Программист всегда исправляет последнюю ошибку.