![]() |
![]() |
![]() |
|
КД - заменить источник в правилах - как? | ☑ | ||
---|---|---|---|---|
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.х |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |