Имя: Пароль:
1C
 
КД - заменить источник в правилах - как?
0 RomaH
 
naïve
06.06.15
14:29
Есть типовые правила
задача - сделать возможным использование этих правил на нетиповой конфигурации

например в рабочей базе нет значения в перечислении
или каких-то видов документов, или реквизита в справочнике

как "конвертировать" существующие провала для другой конфигурации?
1 RomaH
 
naïve
06.06.15
14:35
например после загрузки структуры метаданных рабочей конфы в конфигурацию типовых правил получаю "красные строки" в конвертации значений
вот как их удалить автоматически?
2 RomaH
 
naïve
06.06.15
14:35
4 Naumov
 
06.06.15
14:46
Автоматически ни как, только руками
5 RomaH
 
naïve
06.06.15
15:39
ну вроде есть вариант
загрузка конфигурации из файла - модификация типовой
потом проверка с удалением
... только вот лишнего поудаляла
3 шаг - сравнение объединение правила с типовыми - для восстановления утраченого
6 RomanYS
 
06.06.15
15:46
(1) сервис-проверка - там есть галочки "удалять...."
7 Mikhail Volkov
 
07.06.15
06:44
Возьми для примера обработку переноса данных из УПП/КА1.1 в УП2.1/КА2.0

Процедура ИзменитьТекстПравилПриНеобходимости(ИмяВременногоФайлаПравил, ИмяПравилОбмена)
    Если ВариантПереноса <> "КА" Тогда
        Возврат;
    КонецЕсли;
    ТекстДокумент = Новый ТекстовыйДокумент;
    ТекстДокумент.Прочитать(ИмяВременногоФайлаПравил);
    // Изменение заголовочной части правил.
    ТекстДокумент.ЗаменитьСтроку(4, Символы.Таб + "<Наименование>КА - УП (1.1.58.x - 2.0.11.x, v.1)</Наименование>");
    ТекстДокумент.ЗаменитьСтроку(6, Символы.Таб
            + "<Источник ВерсияПлатформы=""8.0"" ВерсияКонфигурации=""1.1.58.1"" СинонимКонфигурации=""Комплексная автоматизация, редакция 1.1"">КомплекснаяАвтоматизация</Источник>");
    Если ИмяПравилОбмена = "ПравилаОбменаЗУП" Тогда
        ТекстДокумент.Записать(ИмяВременногоФайлаПравил);
        Возврат;
    КонецЕсли;
    МассивПВДКУдалению = Новый Массив;
    МассивПВДКУдалению.Добавить("ВводОстатковПоМеждународномуУчету");
    МассивПВДКУдалению.Добавить("ВидыБюджетов");
    МассивПВДКУдалению.Добавить("Сценарии");
    
    МассивИсточниковКУдалению = Новый Массив;
    МассивИсточниковКУдалению.Добавить("СправочникСсылка.Бюджеты");
    МассивИсточниковКУдалению.Добавить("СправочникСсылка.ГруппыЗаменяемостиРабочихЦентров");
    МассивИсточниковКУдалению.Добавить("СправочникСсылка.НоменклатурныеУзлы");
    МассивИсточниковКУдалению.Добавить("СправочникСсылка.РабочиеЦентры");
    МассивИсточниковКУдалению.Добавить("СправочникСсылка.СтатьиОборотовПоБюджетам");
    МассивИсточниковКУдалению.Добавить("СправочникСсылка.ТехнологическиеКартыПроизводства");
    МассивИсточниковКУдалению.Добавить("ПланВидовХарактеристикСсылка.ВидыСубконтоМеждународные");
    МассивИсточниковКУдалению.Добавить("ПланВидовХарактеристикСсылка.ВидыСубконтоБюджетирования");
    МассивИсточниковКУдалению.Добавить("ПланСчетовСсылка.Международный");
    МассивИсточниковКУдалению.Добавить("ПланСчетовСсылка.Бюджетирование");
    МассивИсточниковКУдалению.Добавить("РегистрСведенийЗапись.АналогиНоменклатуры");
    МассивИсточниковКУдалению.Добавить("РегистрСведенийЗапись.УчетнаяПолитикаМеждународныйУчет");

    // Документ корректируется в обратном порядке.
    КоличествоСтрокДокумента = ТекстДокумент.КоличествоСтрок();
    ОбластьПВД = Ложь;
    ОбластьПКО = Ложь;
    НомерСтрокиКонецПравила = 0;
    Для Итерация = 0 По КоличествоСтрокДокумента - 7 Цикл
        СтрокаДокумента = ТекстДокумент.ПолучитьСтроку(КоличествоСтрокДокумента - Итерация);
        Если Найти(СтрокаДокумента, "</ПравилаКонвертацииОбъектов>") > 0 Тогда
            ОбластьПКО = Истина;
        ИначеЕсли Найти(СтрокаДокумента, "<ПравилаКонвертацииОбъектов>") > 0 Тогда
            ОбластьПКО = Ложь;
        ИначеЕсли Найти(СтрокаДокумента, "</ПравилаВыгрузкиДанных>") > 0 Тогда
            ОбластьПВД = Истина;
        ИначеЕсли Найти(СтрокаДокумента, "<ПравилаВыгрузкиДанных>") > 0 Тогда
            ОбластьПВД = Ложь;
        ИначеЕсли Найти(СтрокаДокумента, "</Правило>") > 0 Тогда
            НомерСтрокиКонецПравила = КоличествоСтрокДокумента - Итерация;
        ИначеЕсли Найти(СтрокаДокумента, "<Правило") > 0 Тогда
            // Начало правила. Поиск источника.
            СтрокаНачало = КоличествоСтрокДокумента - Итерация;
            ИсточникДанных = "";
            КодПравила = "";
            Для НомСтр = СтрокаНачало + 1 По НомерСтрокиКонецПравила Цикл
                СтрокаДокумента = ТекстДокумент.ПолучитьСтроку(НомСтр);
                Если Найти(СтрокаДокумента, "<Код>") > 0 Тогда
                    КодПравила = СтрЗаменить(СокрЛП(СтрокаДокумента), "</Код>","");
                    КодПравила = СтрЗаменить(СокрЛП(КодПравила), "<Код>","");
                ИначеЕсли ОбластьПКО И Найти(СтрокаДокумента, "<Источник>") > 0 Тогда
                    ИсточникДанных = СтрЗаменить(СокрЛП(СтрокаДокумента), "</Источник>","");
                    ИсточникДанных = СтрЗаменить(ИсточникДанных, "<Источник>","");
                ИначеЕсли ОбластьПВД И Найти(СтрокаДокумента, "<ОбъектВыборки>") > 0 Тогда
                    ИсточникДанных = СтрЗаменить(СокрЛП(СтрокаДокумента), "</ОбъектВыборки>","");
                    ИсточникДанных = СтрЗаменить(ИсточникДанных, "<ОбъектВыборки>","");
                КонецЕсли;
                Если ИсточникДанных <> "" И КодПравила <> "" Тогда
                    Прервать;
                КонецЕсли;
            КонецЦикла;
            Если (КодПравила <> "" И МассивПВДКУдалению.Найти(КодПравила) <> Неопределено)
                ИЛИ (ИсточникДанных <> "" И МассивИсточниковКУдалению.Найти(ИсточникДанных) <> Неопределено) Тогда
                УдалитьФрагментТекста(ТекстДокумент, СтрокаНачало, НомерСтрокиКонецПравила);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ТекстДокумент.Записать(ИмяВременногоФайлаПравил);
КонецПроцедуры
8 Mikhail Volkov
 
09.06.15
09:32
Интересно, параметром ВариантПереноса можно управлять галочкой "Отключить обработку правила"?
Для приведенного примера еще нужно ряд констант отключить:
ВалютаПредставления
ВалютаФункциональная
ИспользоватьМеждународныйФинансовыйУчет
ИспользоватьПроизводствоИзДавальческогоСырья
Их нет в КА, только в УПП и УП2.х