|
Конвертация данных 2. Выгрузка/загрузка док. Разные реквизиты. | ☑ | ||
---|---|---|---|---|
0
dva1c
03.05.12
✎
07:46
|
С помощью КД получается выгружать/загружать объекты с реквизитами одного типа.
Когда потребовалось выгрузить документ, то столкнулся с тем, что разные реквизиты и документа в источнике и приемнике. Скрины: http://s019.radikal.ru/i615/1205/7e/5a71b4634d25.jpg http://s019.radikal.ru/i630/1205/c5/e4ccb76329c2.jpg Подскажите: где и что написать, чтобы документы нормально выгрузились/загрузились? PS Пытался использовать книжку Бояркина, Филатова. Пока не въехал. :( Пытался писать После загрузки Отказ = Истина; ПараметрНоменклатураОС = ПараметрыОбъекта["НомОС"]; // КонецЕсли; // //НаименованиеГруппыОС = "Производство КМГ"; //СправОС = Справочники.ОсновныеСредства; //СпрВнеоборотныеАктивы = Справочники.ВнеоборотныеАктивы; Если ПараметрНоменклатураОС <> Неопределено Тогда //НужнаяГруппаОС = СправОС.НайтиПоНаименованию(НаименованиеГруппы); //Если ПараметрНоменклатураОС.ПринадлежитЭлементу(НужнаяГруппаОС) Тогда //Если Не НайденныйЭлемент.Пустая() Тогда РезультатПоиска = СпрВнеоборотныеАктивы.НайтиПоНаименованию(ПараметрНоменклатураОС); Если РезультатПоиска.Пустая() Тогда Отказ = Ложь; НовыйЭлементВнеоборотныеАктивы = Справочники.ВнеоборотныеАктивы.СоздатьЭлемент(); НовыйЭлементВнеоборотныеАктивы.Наименование = ПараметрНоменклатураОС.Наименование; НовыйЭлементВнеоборотныеАктивы.Записать(); Сообщить("Элемент "+НовыйЭлементВнеоборотныеАктивы+" записан!", СтатусСообщения.Важное); Попытка Объект.ВнеоборотныйАктив = НовыйЭлементВнеоборотныеАктивы; Исключение Сообщить("Фиг тебе"); КонецПопытки; КонецЕсли; КонецЕсли; КонецЕсли; Скрин: http://i016.radikal.ru/1205/7e/b342f6a324fa.jpg Тоже бред получается. |
|||
1
dva1c
03.05.12
✎
07:47
|
||||
2
dva1c
03.05.12
✎
07:58
|
Подскажите где глянуть аналогичные правила?
|
|||
3
dva1c
03.05.12
✎
08:00
|
Думал передавать через параметр:
РезультатПоиска = СпрВнеоборотныеАктивы.НайтиПоНаименованию(ПараметрНоменклатураОС); Если РезультатПоиска.Пустая() Тогда Отказ = Ложь; НовыйЭлементВнеоборотныеАктивы = Справочники.ВнеоборотныеАктивы.СоздатьЭлемент(); НовыйЭлементВнеоборотныеАктивы.Наименование = ПараметрНоменклатураОС.Наименование; НовыйЭлементВнеоборотныеАктивы.Записать(); Сообщить("Элемент "+НовыйЭлементВнеоборотныеАктивы+" записан!", СтатусСообщения.Важное); Попытка Объект.ВнеоборотныйАктив = НовыйЭлементВнеоборотныеАктивы; Исключение Сообщить("Фиг тебе"); КонецПопытки; КонецЕсли; |
|||
4
dva1c
03.05.12
✎
08:01
|
Элементы в справочнике ВнеоборотныеАктивы создаются. Ссылку передать в документ не сумел.
ЧЯНТД? |
|||
5
Рэйв
03.05.12
✎
08:04
|
Сделай отдельное ПКО для этих типов, где покажи как и что будет переходить из одного в другое. И вставь его для реквизита в поле "Правило" , которое вот тут
http://s019.radikal.ru/i630/1205/c5/e4ccb76329c2.jpg у тебя пустое |
|||
6
dva1c
03.05.12
✎
08:04
|
В поиске нашел v8: конвертация данных: пренос справочника в документ
Там что-то говорится о примере в демо-базе КД2. Попробую поискать. |
|||
7
dva1c
03.05.12
✎
08:06
|
(5) Спасибо за участие!
Скрин привел для того, чтобы показать: как я двигаюсь. |
|||
8
dva1c
03.05.12
✎
08:11
|
(5) Имеешь ввиду то, что я обвел на скрине?
http://s017.radikal.ru/i409/1205/87/d3eb46d626ae.jpg |
|||
9
Рэйв
03.05.12
✎
08:13
|
(8)Да. Если реквизиты не простого типа(дата, число, строка), то вообще-то там положено быть ПКО, ко которому переносится реквизит-объект.В котором ты должен написать что и куда. Так что все велосипеды там давно изобретены.
|
|||
10
dva1c
12.05.12
✎
08:06
|
После перерыва, продолжаю осваивать КД2.
Созданы правила для переноса документов, но... В источнике, в документе "ПринятиеКУчетуОС" есть реквизит Оборудование (СправочникСсылка.Номенклатура), а в приемнике такой же реквизит ВнеоборотныйАктив (СправочникСсылка.ВнеоборотныеАктивы). В ПКО ПринятиеКУчетуОС создано правило "ПринятиеКУчетуОС". В нем я прописал ПослеЗагрузки следующее: Попытка НовыйЭлемент = Справочники.ВнеоборотныеАктивы.СоздатьЭлемент; НовыйЭлемент.Наименование = Источник.Номенклатура.Наименование; НовыйЭлемент.Записать(); Объект.ВнеоборотныйАктив = НовыйЭлемент.Ссылка; Сообщить("Записал!", СтатусСообщения.Информация); Исключение Сообщить("Не получилось!", СтатусСообщения.Важное); КонецПопытки; Моя попытка не работает. Пишет: Начало выгрузки: 12.05.2012 9:57:17 Ошибка получения значения свойства подчиненного объекта (по имени свойства источника) ПКО = ПринятиеКУчетуОС (Документ: Принятие к учету ОС) ПКС = 16 (Номенклатура --> ВнеоборотныйАктив) Объект = Принятие к учету ОС 00000000039 от 01.02.2010 15:00:00 (Документ ссылка: Принятие к учету ОС) СвойствоПриемника = ВнеоборотныйАктив (СправочникСсылка.ВнеоборотныеАктивы) ОписаниеОшибки = Поле объекта не обнаружено (Номенклатура) ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML(6534) КодСообщения = 16 Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(1556)}: Ошибка получения значения свойства подчиненного объекта (по имени свойства источника) ПКО = ПринятиеКУчетуОС (Документ: Принятие к учету ОС) ПКС = 16 (Номенклатура --> ВнеоборотныйАктив) Объект = Принятие к учету ОС 00000000039 от 01.02.2010 15:00:00 (Документ ссылка: Принятие к учету ОС) СвойствоПриемника = ВнеоборотныйАктив (СправочникСсылка.ВнеоборотныеАктивы) ОписаниеОшибки = Поле объекта не обнаружено (Номенклатура) ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML(6534) КодСообщения = 16 ЧЯНТД? Подскажите, пожалуйста! |
|||
11
dva1c
12.05.12
✎
08:07
|
Рэйв
если ты на форуме, направь мои стопы в нужном направлении. |
|||
12
dva1c
12.05.12
✎
08:10
|
Объект источник и Объект приемник описываются одинаково:
ДокументСсылка.ПринятиеКУчетуОС |
|||
13
echo77
12.05.12
✎
08:12
|
(10) Ни хера не понятно. Правила выложи
|
|||
14
echo77
12.05.12
✎
08:13
|
и скриншоты поменьше делай - слишком хорошо видно и читается даже
|
|||
15
dva1c
12.05.12
✎
08:15
|
Спасибо! Сча.
|
|||
16
echo77
12.05.12
✎
08:15
|
(10) На хера создавать элемент - он и так будет создан, если не найден.
СоздатьЭлемент() - это метод справочника-менеджера |
|||
17
dva1c
12.05.12
✎
08:38
|
(16) Спасибо!
|
|||
18
dva1c
12.05.12
✎
08:49
|
Нет. Не получается.
Не получается потому, что в Источнике реквизит Объект (Справочники.Номенклатура), где Код длина 11, Строка а в Приемнике реквизит ВнеоборотныеАктивы (Справочники.ВнеоборотныеАктивы) |
|||
19
dva1c
12.05.12
✎
08:50
|
+(18) и все эти реквизиты в переносимом документе "ПринятиеКУчетуОС"
|
|||
20
dva1c
12.05.12
✎
08:55
|
||||
21
echo77
12.05.12
✎
09:01
|
(20) Чувак, если ты не понял - на скринах ни хера не видно
|
|||
22
dva1c
12.05.12
✎
09:01
|
Моя неудачная попытка http://zalil.ru/33221012
|
|||
23
dva1c
12.05.12
✎
09:01
|
(21) Крупнее надо?
|
|||
24
dva1c
12.05.12
✎
09:03
|
(21) Вот так http://s40.radikal.ru/i090/1205/ed/5839b34d0f10.jpg
|
|||
25
dva1c
12.05.12
✎
09:06
|
||||
26
echo77
12.05.12
✎
09:06
|
Для ПКС ПринятиеКУчетуОС.ОсновныеСредства.Номенклатура => ВнеоборотныйАктив В обработчике ПослеВыгрузки вот так не надо делать:
Объект.ВнеоборотныйАктив.Наименование = Источник.Номенклатура.Наименование; в добавок переменная Объект там неопределена |
|||
27
echo77
12.05.12
✎
09:08
|
в ПКО Номенклатура не указаны приемники для кучи реквизитов. На хер их тогда выгружать? Отключай эти ПКС/удаляй
|
|||
28
dva1c
12.05.12
✎
09:08
|
(26) Спасибо! Я чувствую, что где-то близко )
А как правильно писать, чтобы Номенклатура вливалась во ВнеоборотныеАктивы? |
|||
29
dva1c
12.05.12
✎
09:09
|
(27) попробую, но мне нудно Наименование этого справочника
|
|||
30
dva1c
12.05.12
✎
09:09
|
*(29) нужно
|
|||
31
echo77
12.05.12
✎
09:11
|
Нужно наименование - конвертируй Наименование=>Наименование. В чем проблема?
|
|||
32
echo77
12.05.12
✎
09:13
|
вот так это ПКО выглядит у меня: http://savepic.net/2755215.htm
|
|||
33
dva1c
12.05.12
✎
09:15
|
(32) Спасибо! Пробую сделать также.
|
|||
34
dva1c
12.05.12
✎
09:49
|
Спасибо, echo77 !
Все получилось, но надо еще сделать, чтобы в Приемнике, в документе щаполнялся еще один реквизит. Этот реквизит "ПрочийОбъектУчета", который выбирается из предопределенных элементов справочника "ПрочиеОбъектыУчета". Интересен элемент этого справочника "Приобретение ОС" http://s019.radikal.ru/i601/1205/05/c8c0b73994b1.jpg |
|||
35
dva1c
12.05.12
✎
09:50
|
*(34) заполнялся
|
|||
36
dva1c
12.05.12
✎
09:51
|
Я не останавливаю свои "исследования".
Но если подскажите, буду благодарен! |
|||
37
dva1c
12.05.12
✎
10:06
|
Что-то не догоняю (
|
|||
38
dva1c
12.05.12
✎
10:19
|
Вверх
|
|||
39
dva1c
12.05.12
✎
10:58
|
Попытался в ПКО ПринятиеКУчетуОС написать в После загрузки:
Попытка Сообщить(Объект.ПрочийОбъектУчет); Объект.ПрочийОбъектУчета = Справочники.ПрочиеОбъектыУчета.ПриобретениеОС; Исключение Сообщить(Объект.ПрочийОбъектУчет); КонецПопытки; |
|||
40
dva1c
12.05.12
✎
10:59
|
Не спасло (
|
|||
41
dva1c
12.05.12
✎
11:00
|
<Пока не поддерживаю ветку на плаву, усиленно думаю )>
|
|||
42
dva1c
12.05.12
✎
12:18
|
Вопрос из (34) решен. Уже лучше!
|
|||
43
dva1c
12.05.12
✎
12:19
|
Написал в обработчике событий После загрузки
Попытка Сообщить(Объект.ПрочийОбъектУчета); Объект.ПрочийОбъектУчета = Справочники.ПрочиеОбъектыУчета.ПриобретениеОС; Исключение Сообщить(Объект.ПрочийОбъектУчета); КонецПопытки; ...и прокатило. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |