Имя: Пароль:
1C
1С v8
Конвертация контактных данных в регистр сведений
0 manti
 
09.07.13
17:21
Переношу контрагентов из системы закупок в УПП. Попутн выгружаю контактную информацию контрагента.

ПКО контрагенты. Событие после загрузки

Если Не Объект.ЭтоГруппа Тогда
       Сообщить(Объект);
       ЗначениеЮридическийАдрес =  ПараметрыОбъекта.Получить("ЮридическийАдрес");
       Если ЗначениеЮридическийАдрес <> "" тогда
           
           Запись = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
           Запись.Объект = Объект.Ссылка;
           Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
           Запись.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
           Запись.Представление = ПараметрыОбъекта.Получить("ЮридическийАдрес");
           Запись.Записать();
           Сообщить("Дополнен контрагент " + Объект+ " "+Запись.Тип + " "+ Запись.Вид + " " + Запись.Представление);
       КонецЕсли;

Если контрагент уже есть в базе - то система при переносе его просто перезаписывает. Но если контрагента нет - то выдает ошибку:

Не заполнен объект.

Ошибка в обработчике события ПослеЗагрузкиОбъекта
   ИмяПКО                 =  Контрагенты
   ТипОбъекта             =  Контрагент
   Объект                 =  ЗАО "ГОЛЛАРД"
   Обработчик             =  ПослеЗагрузкиОбъекта
   ОписаниеОшибки         =  Ошибка при вызове метода контекста (Записать): Не удалось записать: "Контактная информация"!
   ПозицияМодуля          =  ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(89)
   КодСообщения           =  21

каким образом при отсутствии контрагента - сначала создать его, а потом загрузить его контакты??
1 manti
 
09.07.13
17:50
Объект.Записать(); всего то было нужно
2 ЧашкаЧая
 
09.07.13
17:52
Или УстановитьСсылкуНового.
3 manti
 
09.07.13
17:54
(2) да ну, больно кода много
4 Alex S D
 
09.07.13
17:55
у меня чет не ругается, а приоритет ПКО не влияет случаем?
5 Alex S D
 
09.07.13
17:56
а , сори перепутал
6 acsent
 
09.07.13
17:59
сделай лучше правило на это одельное
7 mxs089
 
09.07.13
18:05
ВыгрузитьПоПравилу, после выгрузки владельца (контрагента), и передавай в процедуру выборку выборка = регистрсвведений.контактнаяинформация.получить()
8 manti
 
10.07.13
14:54
По условию контрагенты грузятся из документа.
В ПКО контрагент, перед выгрузкой пишу:

Отказ = Источник.ПометкаУдаления;
Отказ = Источник.ЭтоГруппа;

Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Лот.Ссылка,
   |    Лот.Победитель,
   |    Лот.Дата
   |ИЗ
   |    Документ.Лот КАК Лот
   |ГДЕ
   |    Лот.Победитель = &Победитель
   |    И Лот.Дата = &Дата";
   
   Запрос.УстановитьПараметр("Победитель", Источник.Ссылка);
   
   Результат = Запрос.Выполнить().Выбрать();
   
   Если Результат.Количество() = 0 Тогда
       Отказ = истина;
   Иначе
       Отказ = Ложь;
       Сообщить(Источник.Ссылка);
   КонецЕсли;

В стандартной обработке выгрузки/загрузки V8Exchan82.epf есть тандартное поле как период выгрузки. Каким образом реализовать подстановку параметра "Дата" из этого поля чтобы тянулся контрагент из документа за период??
9 manti
 
10.07.13
15:18
-up