|
КД из двух табличных частей в одну. | ☑ | ||
---|---|---|---|---|
0
Hans
26.02.12
✎
16:55
|
Изменяю типовые правила из БП 2.0 в УТ 11. Загрузка из 2х таб частей в одну не срабатывает и затирается. Код НеОчищать = Истина; в обработчике "ПередОбработкой" стоит 2й таб части стоит. Такое ощущение что тут это просто не реализовано.. Кто нибудь в курсе?
|
|||
1
sergey yevsenya
26.02.12
✎
17:09
|
первая таб часть затирается?
|
|||
2
Hans
26.02.12
✎
17:11
|
да.. Первая.
|
|||
3
Rie
26.02.12
✎
17:12
|
(0) Флажок для этого имеется - "Не очищать".
|
|||
4
Hans
26.02.12
✎
17:13
|
Вот код
Имя = одАтрибут(ФайлОбмена, ТипСтрока, "Имя"); НеЗамещатьСвойство = одАтрибут(ФайлОбмена, ТипБулево, "НеЗамещать"); НеОчищать = одАтрибут(ФайлОбмена, ТипБулево, "НеОчищать"); Если ОбъектНайден И НеЗамещатьСвойство Тогда одПропустить(ФайлОбмена, ИмяУзла); Продолжить; КонецЕсли; Если Объект = Неопределено Тогда СоздатьНовыйОбъект(ТипОбъекта, СвойстваПоиска, Объект, Ложь, , НппСсылки, НППГлобальнойСсылки, Правило, ПараметрыОбъекта); КонецЕсли; Если ИмяУзла = "ТабличнаяЧасть" Тогда // загрузка элементов из табличной части ЗагрузитьТабличнуюЧасть(Объект, Имя, ИнформацияОТипах, ПараметрыОбъекта, Правило); ИначеЕсли ИмяУзла = "НаборЗаписей" Тогда // загрузка движений ЗагрузитьДвижения(Объект, Имя, Не НеОчищать, ИнформацияОТипах, ПараметрыОбъекта, Правило); КонецЕсли; |
|||
5
Hans
26.02.12
✎
17:15
|
Ни как походу этот флаг не обрабатывается.
|
|||
6
Hans
26.02.12
✎
17:15
|
Я их дом труба шатал этих одинесников.
|
|||
7
sergey yevsenya
26.02.12
✎
17:18
|
Забыли, сволочи
должно быыть так, наверно: Если ИмяУзла = "ТабличнаяЧасть" Тогда // загрузка элементов из табличной части ЗагрузитьТабличнуюЧасть(Объект, Имя, Не НеОчищать, ИнформацияОТипах, НужноЗаписатьОбъект, ПараметрыОбъекта, Правило); |
|||
8
Hans
26.02.12
✎
17:20
|
(7) в универсальной загрузке XML так и есть, а то что через планы обмена работает - так не работает.
|
|||
9
sergey yevsenya
26.02.12
✎
17:23
|
а планы обмена разве не через обработку "ОбменДаннымиXML" работают?
|
|||
10
Hans
26.02.12
✎
17:26
|
Нет, есть какая то обработка "КонвертацияОбъектовИнформационныхБаз" через нее работают.
|
|||
11
Hans
26.02.12
✎
17:55
|
Может кому нибудь пригодится. я сегодня почти весь выходной на это убил.
Процедура ПрочитатьОбъект(УникальныйИдентификаторСтрокой = "") ....... ....... //добавлен посл параметр ЗагрузитьТабличнуюЧасть(Объект, Имя, ИнформацияОТипах, ПараметрыОбъекта, Правило, НЕОчищать); .... .... КонецПроцедуры; Сама процедура: Процедура ЗагрузитьТабличнуюЧасть(Объект, ИмяТабличнойЧасти, ОбщаяИнформацияОТипеДокумента, ПараметрыОбъекта, ПКО, НеОчищать = ЛОЖЬ) Перем КлючевыеПоляПоиска; Перем МассивКлючевыхПолейПоиска; Результат = ПолучитьКлючевыеПоляПоискаПоТабличнойЧасти(ПКО, ИмяТабличнойЧасти, МассивКлючевыхПолейПоиска, КлючевыеПоляПоиска); Если Не Результат Тогда одПропустить(ФайлОбмена); Возврат; КонецЕсли; УникальныйИдентификатор = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "_"); ИмяПоляСортировки = "ПолеСортировки_[УникальныйИдентификатор]"; ИмяПоляСортировки = СтрЗаменить(ИмяПоляСортировки, "[УникальныйИдентификатор]", УникальныйИдентификатор); ИмяКолонкиИтератора = "ПолеИтератора_[УникальныйИдентификатор]"; ИмяКолонкиИтератора = СтрЗаменить(ИмяКолонкиИтератора, "[УникальныйИдентификатор]", УникальныйИдентификатор); ТабличнаяЧастьОбъекта = Объект[ИмяТабличнойЧасти]; КоллекцияОбъекта = ТабличнаяЧастьОбъекта.Выгрузить(); КоллекцияФайлаОбмена = КоллекцияОбъекта.СкопироватьКолонки(); КоллекцияФайлаОбмена.Колонки.Добавить(ИмяПоляСортировки); ЗаполнитьКоллекциюФайлаОбмена(Объект, КоллекцияФайлаОбмена, ИмяТабличнойЧасти, ОбщаяИнформацияОТипеДокумента, ПараметрыОбъекта, МассивКлючевыхПолейПоиска, ИмяПоляСортировки); ДобавитьИтераторТаблице(КоллекцияФайлаОбмена, +1, ИмяКолонкиИтератора); ДобавитьИтераторТаблице(КоллекцияОбъекта, -1, ИмяКолонкиИтератора); КоллекцияГруппировки = ИнициализацияТаблицыПоКлючевымПолям(МассивКлючевыхПолейПоиска); КоллекцияГруппировки.Колонки.Добавить(ИмяКолонкиИтератора); ЗаполнитьЗначенияСвойствТаблицы(КоллекцияФайлаОбмена, КоллекцияГруппировки); ЗаполнитьЗначенияСвойствТаблицы(КоллекцияОбъекта, КоллекцияГруппировки); КоллекцияГруппировки.Свернуть(КлючевыеПоляПоиска, ИмяКолонкиИтератора); КоллекцияСортировки = ТабличнаяЧастьОбъекта.ВыгрузитьКолонки(); КоллекцияСортировки.Колонки.Добавить(ИмяПоляСортировки); Для Каждого СтрокаКоллекции ИЗ КоллекцияГруппировки Цикл // получаем структуру отбора Отбор = Новый Структура(); Для Каждого ИмяПоля ИЗ МассивКлючевыхПолейПоиска Цикл Отбор.Вставить(ИмяПоля, СтрокаКоллекции[ИмяПоля]); КонецЦикла; ЗначенияПолейСортировки = Неопределено; Если СтрокаКоллекции[ИмяКолонкиИтератора] = 0 Тогда //заполняем строки табличной части из старой версии объекта СтрокиКоллекцииОбъекта = КоллекцияОбъекта.НайтиСтроки(Отбор); ЗначенияПолейСортировки = КоллекцияФайлаОбмена.НайтиСтроки(Отбор); Иначе // заполняем строки табличной части из коллекции файла обмена СтрокиКоллекцииОбъекта = КоллекцияФайлаОбмена.НайтиСтроки(Отбор); КонецЕсли; // добавляем строки табличной части объекта Для Каждого СтрокаКоллекции ИЗ СтрокиКоллекцииОбъекта Цикл СтрокаКоллекцииСортировки = КоллекцияСортировки.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаКоллекцииСортировки, СтрокаКоллекции); Если ЗначенияПолейСортировки <> Неопределено Тогда СтрокаКоллекцииСортировки[ИмяПоляСортировки] = ЗначенияПолейСортировки[СтрокиКоллекцииОбъекта.Найти(СтрокаКоллекции)][ИмяПоляСортировки]; КонецЕсли; КонецЦикла; КонецЦикла; КоллекцияСортировки.Сортировать(ИмяПоляСортировки); // Загружаем результат в табличную часть объекта Попытка //1Сники сволочи Если НЕОчищать Тогда Для каждого СтрокаКС Из КоллекцияСортировки Цикл НоваяСтрока = ТабличнаяЧастьОбъекта.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаКС); КонецЦикла; Иначе ТабличнаяЧастьОбъекта.Загрузить(КоллекцияСортировки); КонецЕсли; Исключение Текст = НСтр("ru = 'Имя табличной части: %1'"); ЗП = ПолучитьСтруктуруЗаписиПротокола(83, ОписаниеОшибки()); ЗП.Объект = Объект; ЗП.ТипОбъекта = ТипЗнч(Объект); ЗП.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Текст, ИмяТабличнойЧасти); ЗаписатьВПротоколВыполнения(83, ЗП); одПропустить(ФайлОбмена); Возврат; КонецПопытки; КонецПроцедуры |
|||
12
Bajen
17.03.12
✎
14:25
|
(11), Эти изменения в УТ 11 добавлял?
|
|||
13
Hans
17.03.12
✎
18:28
|
да в ут добавлял.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |