Имя: Пароль:
1C
1С v8
Запрос в КД
0 TwoWorld
 
28.10.11
11:36
В ПКО после загрузке пишу запрос:
Запрос = Новый Запрос;

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


Выдает ошибку при загрузке:
Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1541)}: Ошибка в обработчике события ПоследовательностьПолейПоиска
   ИмяПКО                 =  
   ТипОбъекта             =  Договоры контрагентов
   Обработчик             =  Последовательность полей поиска
   ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,1)}: Переменная не определена (Запрос)
   ПозицияМодуля          =  Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6114)
   КодСообщения           =  73
1 GenV
 
28.10.11
11:50
(0) Как-то не стыкуется: "В ПКО после загрузке пишу запрос" и "Ошибка в обработчике события ПоследовательностьПолейПоиска" ...
2 Поручик
 
28.10.11
11:52
(0) Это что за шляпа?

       Пока ВыборкаДоговоров.Следующий() Цикл
           Объект.ДоговорКонтрагента = ВыборкаДоговоров.Ссылка;
           прервать;
       КонецЦикла;


Так не канает?

       Если ВыборкаДоговоров.Следующий() Тогда
           Объект.ДоговорКонтрагента = ВыборкаДоговоров.Ссылка;
       КонецЕсли;
3 Рэйв
 
28.10.11
11:57
(0)Ошибка не из этого обработчика
4 Рэйв
 
28.10.11
11:58
(2)Ему нужен первый попавшийся.Если убрать прервать, будет перебирать все и присвоит последнего.
5 Рэйв
 
28.10.11
11:59
(0)Кстати
   
       ВыборкаДоговоров = Запрос.Выполнить().Выбрать();
       Пока ВыборкаДоговоров.Следующий() Цикл
           Объект.ДоговорКонтрагента = ВыборкаДоговоров.Ссылка;
           прервать;
       КонецЦикла;

Можно заменить на

Объект.ДоговорКонтрагента =Запрос.Выполнить().Выгрузить()[0].Ссылка
6 Поручик
 
28.10.11
12:02
(5) Я ему дал годное решение, тоже что и у тебя
7 TwoWorld
 
28.10.11
12:07
это не из за этого ошибка(2) (5)
8 TwoWorld
 
28.10.11
12:08
нашел проблему)
9 Поручик
 
28.10.11
14:31
(8) В ДНК?
Независимо от того, куда вы едете — это в гору и против ветра!