|
КД. Создать новый элемент справочника в приемнике, при отсутствии источника. | ☑ | ||
---|---|---|---|---|
0
LoydWeb
24.07.11
✎
13:02
|
Добрый день!
ПКО - "СчетНаОплатуПокупателю", ПКС (Источник - Пусто, Приемник - Контрагент) Хочу создать новый элемент справочника контрагенты при следующей ситуации: В ПКС пишу "ПередВыгрузкой" Если ЗначениеЗаполнено(Источник.Customer) Тогда Значение = Источник.Customer; ИмяПКО = "Контрагенты"; ИначеЕсли Не ЗначениеЗаполнено(Источник.Customer) И ЗначениеЗаполнено(Источник.Client) Тогда Значение = Источник.Client; ИмяПКО = "Клиенты"; Иначе Сообщить("Оба поля пусты"); Собственно что дальше делать, необходимо создать новый элемент справочника контрагенты с наименованием допустим "ФизЛицо" если в источнике оба поля Customer и Client пусты. |
|||
1
Генератор
24.07.11
✎
13:04
|
Значение = Новый Структура("Код,Наименование","12345","ФизЛицо");
|
|||
2
LoydWeb
24.07.11
✎
13:12
|
Если ЗначениеЗаполнено(Источник.Customer) Тогда
Сообщить("Контрагенты"); Значение = Источник.Customer; ИмяПКО = "Контрагенты"; ИначеЕсли Не ЗначениеЗаполнено(Источник.Customer) И ЗначениеЗаполнено(Источник.Client) Тогда Сообщить("Клиенты"); Значение = Источник.Client; ИмяПКО = "Клиенты"; Иначе Сообщить("Оба поля пусты"); Значение = Новый Структура("Код,Наименование","12345","ФизЛицо"); Элемент не хочет создаваться( |
|||
3
Aleksey
24.07.11
✎
13:18
|
А имя ПКО что не указал?
|
|||
4
Генератор
24.07.11
✎
13:19
|
я те не готовое решение написал, поля все предусмотри которые у тебя по правилу идут
|
|||
5
LoydWeb
24.07.11
✎
13:32
|
Делал так
Если ЗначениеЗаполнено(Источник.Customer) Тогда Сообщить("Контрагенты"); Значение = Источник.Customer; ИмяПКО = "Контрагенты"; ИначеЕсли Не ЗначениеЗаполнено(Источник.Customer) И ЗначениеЗаполнено(Источник.Client) Тогда Сообщить("Клиенты"); Значение = Источник.Client; ИмяПКО = "Клиенты"; Иначе Сообщить("Оба поля пусты"); //Значение = Новый Структура("Код,Наименование,ЮрФизЛицо",Источник.Номер,"ФизЛицо","ФизЛицо"); ИмяПКО = "Контрагенты"; ИсходящиеДанные = Новый Структура; ИсходящиеДанные.Вставить("Код", Источник.Номер); ИсходящиеДанные.Вставить("Наименование", "Физ.Лицо"); ИсходящиеДанные.Вставить("ПометкаУдаления", Ложь); ИсходящиеДанные.Вставить("ЭтоГруппа", Ложь); ИсходящиеДанные.Вставить("Родитель", ""); ИсходящиеДанные.Вставить("TIN", ""); ИсходящиеДанные.Вставить("KPP", ""); ИсходящиеДанные.Вставить("LegacyName","Физ.Лицо"); ИсходящиеДанные.Вставить("ContactPersons", ""); ИсходящиеДанные.Вставить("ContactPerson", ""); ИсходящиеДанные.Вставить("Remarks", ""); ИсходящиеДанные.Вставить("Ref", ""); ИсходящиеДанные.Вставить("LegacyAddress", ""); ИсходящиеДанные.Вставить("PostAddress", ""); ИсходящиеДанные.Вставить("Phone", ""); ИсходящиеДанные.Вставить("Fax", ""); ИсходящиеДанные.Вставить("EMail", ""); Значение = ИсходящиеДанные; КонецЕсли; Т.е все поля что есть указал. Но есть нюанс( В ПКО Контрагенты в ПКС Родитель прописано следующие Если Источник.Уровень() = 0 Тогда Значение = 1; ИмяПКО = "СоздатьПапкуКонтрагентыИзРумбы"; КонецЕсли; Соответственно если это закомментить то все работает, но мне нужно контрагентов по папкам ложить, а если не комментить то вылетает следующая ошибка ОписаниеОшибки = Ошибка в обработчике события ПередВыгрузкой (свойства) ПКО = Контрагенты (Справочник: Контрагенты) ПКС = 4 (Родитель --> Родитель) Объект = Structure (Структура) СвойствоПриемника = Родитель (СправочникСсылка.Контрагенты) Обработчик = ПередВыгрузкойСвойства ОписаниеОшибки = Метод объекта не обнаружен (Уровень) ПозицияМодуля = (1) КодСообщения = 55 ПозицияМодуля = ExternalDataProcessor.УниверсальныйОбменДаннымиXML.ObjectModule(1618) Почему так происходит подскажите пожалуйста |
|||
6
Генератор
24.07.11
✎
13:37
|
проверяй тип источника в пкс родитель, у тебя он "структура", а у нее нет метода "уровень"
|
|||
7
LoydWeb
24.07.11
✎
13:42
|
Если просто ПВД Контрагенты использовать то он контрагентов нормально по папкам раскидывает, а вот если через создание структуры делать, то начинаются ошибки(
|
|||
8
Генератор
24.07.11
✎
13:52
|
(7) ну я про это и пишу, поставь условие по типу источника
|
|||
9
LoydWeb
24.07.11
✎
14:13
|
Генератор спасибо большое за совет, вот что написал
Если ТипЗНЧ(Источник) = Тип("СправочникСсылка.Customers") Тогда Если Источник.Уровень() = 0 Тогда Значение = 1; ИмяПКО = "СоздатьПапкуКонтрагентыИзРумбы"; КонецЕсли; ИначеЕсли ТипЗНЧ(Источник) = Тип("Структура")Тогда Если Источник.ЭтоГруппа Тогда Значение = 1; ИмяПКО = "СоздатьПапкуКонтрагентыИзРумбы"; КонецЕсли; КонецЕсли; Вот только вновь созданое физ.лицо в папку не хочет идти( |
|||
10
Генератор
24.07.11
✎
14:17
|
А зачем где структура условие источник.этоГруппа ? убери его
|
|||
11
LoydWeb
24.07.11
✎
14:21
|
Все заработало)) спасибо большое!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |