![]() |
![]() |
![]() |
|
УТ 11: Заполнение табличной части ДополнительныеРеквизиты для Партнеров | ☑ | ||
---|---|---|---|---|
0
PiotrLoginov
06.11.12
✎
07:51
|
Здравствуйте всем. Всю голову уже сломал. Переношу данные с помощью КД в справочник Партнеры УТ 11. Закончив настройку основных реквизитов, принялся за дополнительное сведение Представитель (оно уже создано вручную для Партнеров) с типом значения Физ. лицо.
Сначала как положено внутри ПКО для справочника Партнеры создал ПКГС для табличной части ДополнительныеРеквизиты с двумя ПКС, ссылающимися на ПКО для справочника ФизическиеЛица и для Плана видов характеристик ДополнительныеРеквизитыИСведения. Написал обработчик для этого ПКГС: КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); КоллекцияОбъектов.НоваяКолонка("Свойство"); КоллекцияОбъектов.НоваяКолонка("Значение"); КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Свойство = "Представитель"; КоллекцияОбъектов.Значение = "Пупкин Вася"; Сохранил правила, выгрузил из источника, загрузил в приемник. Без сообщений об ошибках. В итоге в приемнике новые элементы появились, к сожалению, без заполненных доп. сведений :( ..... Тогда удалил из ПКО созданное ПКГС и написал в ПКО в обработчике После выгрузки: ДР = Объект.ДополнительныеРеквизиты.Добавить(); ДР.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Представитель"); ДР.Значение = Справочники.ФизическиеЛица.НайтиПоНаименованию("Пупкин Вася"); Сохранил правила, выгрузил из источника, загрузил в приемник. Без сообщений об ошибках. В итоге та же картина, что после первой попытки. Очень хочется довести заполнение справочника Партнеры до ума. И заодно научиться программно заполнять дополнительные сведения. В пособиях по КД инфу об этом не нашел. В сети информация не помогла. Уверен, уважаемые гуру мисты помогут. Заранее Большое спасибо всем неравнодушным. |
|||
1
PiotrLoginov
06.11.12
✎
08:24
|
и сразу ап :)
|
|||
2
PiotrLoginov
06.11.12
✎
09:42
|
еще один :(
|
|||
3
Defender aka LINN
06.11.12
✎
09:43
|
КоллекцияОбъектов.Свойство = "Представитель";
КоллекцияОбъектов.Значение = "Пупкин Вася"; А они в УТ11 прямо оба строки, да? |
|||
4
PiotrLoginov
06.11.12
✎
09:49
|
Ну на самом деле С помощью двух ПКО, в которые передается управление (см. выше), полученные строки преобразуются в ссылочные значения. На самом деле формату xml все равно, он в любом случае по каждому ссылочному значению передает лишь само значение и информацию о содержимом полей поиска. В данном случае это выглядит так:
|
|||
5
Defender aka LINN
06.11.12
✎
09:53
|
(4) Как следует из (0), "формату xml" может и все равно, но твоя теория не работает один хрен.
|
|||
6
PiotrLoginov
06.11.12
✎
10:01
|
(4) ... выглядит так:
... <ТабличнаяЧасть Имя="ДополнительныеРеквизиты"> <Запись> <Свойство Имя="Свойство" Тип="ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"> <Ссылка Нпп="3"> <Свойство Имя="Наименование" Тип="Строка"> <Значение>Представитель</Значение> </Свойство> </Ссылка> </Свойство> <Свойство Имя="Значение" Тип="СправочникСсылка.ФизическиеЛица"> <Ссылка> <Свойство Имя="Наименование" Тип="Строка"> <Значение>Василий Пупкин</Значение> </Свойство> </Ссылка> </Свойство> </Запись> </ТабличнаяЧасть> ... |
|||
7
PiotrLoginov
06.11.12
✎
10:42
|
(5) Какая уж там теория... На практике освоить бы диктуемые разработчиками правила.
|
|||
8
hhhh
06.11.12
✎
11:08
|
(1) ну может там у вас поиск по коду задан? Или по внутреннему идентификатору?
|
|||
9
PiotrLoginov
06.11.12
✎
11:22
|
(8) Никак нет.
Ну ладно, в первом варианте... Но во втором-то почему не прокатило? Прям руки опускаются... Должна же быть причина. Ведь во втором случае код заполнения табличной части с доп. сведением верный? |
|||
10
PiotrLoginov
06.11.12
✎
12:19
|
Жду любые мысли и замечания. Особо приветствуется критика и тыканье носом.
|
|||
11
hhhh
06.11.12
✎
12:24
|
(9) потому что при выгрузке нет никаких планов видов характеристик. В 7.7 не бывает такого.
|
|||
12
PiotrLoginov
06.11.12
✎
12:28
|
Так. И как же заполнить доп. сведение в приемнике на основании данных в источнике?
|
|||
13
PiotrLoginov
06.11.12
✎
12:34
|
Была у меня мысль перекинуть исходные значения в маловажный реквизит элементов справочника Партнеры. А потом уже внутри базы приемника воспользоваться УниверсальныеПодборИОбработкаОбъектов.epf . То есть написать произвольный алгоритм: Если Значение в комментарии такое-то, то заполнить строку ТЧ ДополнительныеРеквизиты так-то. А если такое-то, то заполнить строку эдак-то.
Но ведь это опять же надо будет этим произвольным алгоритмом делать тоже самое - программно заполнять значения в табличной части. Почему хоть такая проблема? Вот уж не думал, где выйдет затык... |
|||
14
PiotrLoginov
06.11.12
✎
12:43
|
Форумчане, будьте добры, помогите, пожалуйста, заполнить это ... нехорошее сведение. Не вручную же несколько сотен элементов перелопачивать :( Допустим, у меня будет вписана фамилия в реквизит элемента Комментарий. Значит, я пишу в универсальной обработке:
Если Объект.Комментарий = "Сидоров" Тогда ДР = Объект.ДополнительныеРеквизиты.Добавить(); ДР.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Представитель"); ДР.Значение = Справочники.ФизическиеЛица.НайтиПоНаименованию("Сидоров Иван"); ИначеЕсли Объект.Комментарий = "Пупкин" Тогда ДР = Объект.ДополнительныеРеквизиты.Добавить(); ДР.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Представитель"); ДР.Значение = Справочники.ФизическиеЛица.НайтиПоНаименованию("Пупкин Вася"); КонецЕсли; Правильно? |
|||
15
hhhh
06.11.12
✎
12:49
|
(14) справа сверху жмакаешь Быстрый старт. Там у них есть бесплатные уроки по КД. И как раз этот случай подробно разжевывается.
|
|||
16
PiotrLoginov
06.11.12
✎
12:54
|
Ищу... Есть у них раздел с бесплатными курсами, но КД там не присутствует.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |