Имя: Пароль:
1C
1С v8
Выбор Основного договора
0 zzzLEXzzz
 
26.09.12
17:38
Доброго времени суток.
Проблема такая. Вот в УТ в справочнике "контрагенты" есть вкладка "Счета и договора" там мы добавляем договора и там есть такой признак "основной". как можно обратиться к этому признаку?
Я так понял надо делать так
НайтиПоРеквизиту("ОсновнойДоговорКонтрагента",);
Во втором параметре должно быть искомое значение, но как сделать так чтобы он понял что выбирать только основной договор, то что выделено жирным шрифтом
1 Amra
 
26.09.12
17:40
(0) Скорее всего как Контрагент.ОсновнойДоговор
2 DrShad
 
26.09.12
17:40
у контрагента есть реквизит ОсновнойДоговор и в нем ссылка на элемент справочника, так что не нужно ничего искать
3 zzzLEXzzz
 
26.09.12
17:45
Спасибо что так отозвались быстро, DrShad я просто не опытный в 1с можно по подробнее, я видел что есть ссылка на элемент, но как правильно реализовать ума не приложу
4 Naumov
 
26.09.12
17:49
(3) Ты бы земным русским сперва объяснил чего хочешь, а то как-то непонятно
5 DrShad
 
26.09.12
17:52
(4)+1
я тоже невкурил что ты с ним хочешь дальше делать
6 zzzLEXzzz
 
26.09.12
17:57
В общем, есть обработка которая скидывает с КПК приходые ордера, мне надо чтобы когда формировался документ в реквезит "договор" попадал именно тот договор который забит у контрагента как основной.
вот полный код функции

функция ДобавитьПКО(Агент_,НомерЗаказаДелф,НомерЗаказа_,ДатаОперации_,ВремяОперации_,Контрагент_,Сумма_,АдресДоставки_,Касса_)
   
   
   Качество = Справочники.Качество.НайтиПоКоду("000000001");
   
   ОпрКонф = "0"+ Лев(СокрЛП(Контрагент_),1);
   
   Если Преф <> ОпрКонф Тогда
       //Сообщить("Контагент не данной системы");
       Возврат 0;
   КонецЕсли;
         
   Контрагент_ = УП(Контрагент_);
   
   Контрагент1С_=Справочники.Контрагенты;
   Договор1С_ = Справочники.ДоговорыКонтрагентов;
   Договор2С_ = Справочники.Контрагенты;
   Док_=Документы.ПриходныйКассовыйОрдер;    
   
   ТоргПред_=Справочники.мбАгенты.НайтиПоРеквизиту("ИмяКПК",Агент_.ИмяКПК);
   
   Док_=Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
   
   
   // Добиваем код нулями
   КодВР_=Контрагент_;
   Для ИТ_=1 по 9-СтрДлина(Контрагент_) Цикл
       КодВР_="0"+КодВР_;  
   КонецЦикла;
   Контрагент_=КодВР_;
   
   
   Расшифровка = Док_.РасшифровкаПлатежа.Добавить();
   Док_.IdMobile=Агент_.ИмяКПК+НомерЗаказаДелф+ДатаОперации_;
   Док_.ОтражатьВБухгалтерскомУчете = Истина;
   Док_.ОтражатьВНалоговомУчете = Истина;
   Док_.ОтражатьВУправленческомУчете = Истина;
   Док_.Оплачено = Истина;
   Док_.ОтраженоВОперУчете = Истина;
   Док_.ВидОперации = Перечисления.ВидыОперацийПКО.ОплатаПокупателя;
   Док_.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;    
   Расшифровка.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;    
   
   
   Док_.Организация=Справочники.Организации.НайтиПоКоду("000000001");
   Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000001");
   
   
   Если Преф = "01" Тогда
   Если Касса_ = "1"  Тогда
       Док_.Организация=Справочники.Организации.НайтиПоКоду("000000001");
       Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000001");
   ИначеЕсли Касса_= "2"  Тогда
       Док_.Организация=Справочники.Организации.НайтиПоКоду("000000002");
       Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000002");
   КонецЕсли;
       ИначеЕсли Преф = "02" Тогда
   Если Касса_ = "1"  Тогда
       Док_.Организация=Справочники.Организации.НайтиПоКоду("000000003");
       Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000003");
   ИначеЕсли Касса_= "2"  Тогда
       Док_.Организация=Справочники.Организации.НайтиПоКоду("000000004");
       Док_.Касса = Справочники.Кассы.НайтиПоКоду("000000004");
   КонецЕсли;
ИначеЕсли Преф = "00" Тогда
   Сообщить ("Ошибка");
   КонецЕсли;

   Док_.Контрагент=Контрагент1С_.НайтиПоКоду(СокрЛП(Контрагент_),0);
   //Док_.Контрагент=Справочники.Контрагенты.НайтиПоКоду("000000317");
   Док_.ПринятоОт = СокрЛП(Док_.Контрагент);
   Док_.Основание = "выручка от реализации";

   Дог1С = Договор1С_.НайтиПоРеквизиту("Организация",Док_.Организация,,Док_.Контрагент);
   Дог2С = Договор2С_.НайтиПоРеквизиту("ОсновнойДоговорКонтрагента",??????????????????????????????????????????????????);
   Если Дог2С = Договор2С_.ПустаяСсылка() Тогда
   Сообщить("ошибка");
   КонецЕсли;

   Если СокрЛП(Дог1С) = "" Тогда
       Док_.ДоговорКонтрагента=Док_.Контрагент.ОсновнойДоговорКонтрагента;
   Иначе
       Док_.ДоговорКонтрагента = Дог2С;
   КонецЕсли;
   
   Док_.Дата=ТекущаяДата();
   Док_.КурсДокумента = 1;
   Док_.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000002");
   Расшифровка.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000002");
   Расшифровка.КурсВзаиморасчетов = 1;
   
   ПрефиксЮрЛицаФирмы = ?(СокрЛП(Док_.Организация.Префикс)="","0",СокрЛП(Док_.Организация.Префикс));
   Док_.УстановитьНовыйНомер(СокрЛП(ПрефиксЮрЛицаФирмы));
   

   Док_.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643");
   Док_.СуммаДокумента = Сумма_;
       
   Расшифровка.ДоговорКонтрагента = Док_.ДоговорКонтрагента;
   Расшифровка.СуммаПлатежа = Сумма_;
   Расшифровка.СуммаВзаиморасчетов = Сумма_;
   Расшифровка.СуммаНДС = Сумма_*18/118;
       
   Док_.Записать();
КонецФункции;


Где Вопросы я незнаю что прописать.
7 zzzLEXzzz
 
26.09.12
17:57
Извеняюсь за запятые
8 DrShad
 
26.09.12
17:58
Дог1С = Док_.Контрагент.ОсновнойДоговор;
9 zzzLEXzzz
 
26.09.12
18:05
{Форма.Форма.Форма(172)}: Поле объекта не обнаружено (ОсновнойДоговор)
Ошибка
10 shuhard
 
26.09.12
18:08
(9) блеать
ну открой ты конфигуратор
реквизит называется ОсновнойДоговорКонтрагента
11 Шапокляк
 
26.09.12
18:09
(9) тогда ОсновнойДоговорКонтрагента
(6) извините за отступление от темы, особенно порадовало
КодВР_=Контрагент_;
   Для ИТ_=1 по 9-СтрДлина(Контрагент_) Цикл
       КодВР_="0"+КодВР_;  
   КонецЦикла;
   Контрагент_=КодВР_;
12 DrShad
 
26.09.12
18:11
(11) ну учится человек и еще не дошел до Формат()
хотя за такой код могут и не заплатить
13 zzzLEXzzz
 
27.09.12
09:06
Благодарю всех кто помог, всё получилось, и извиняюсь за тупость, просто начинающий, поэтому туго доходит )))
14 zzzLEXzzz
 
27.09.12
09:26
нееее ребят, не подходит эта система, вы та объяснили всё правильно, эт я чуточку тупанул, нельзя привязываться к основному, т.к. у нас 2 организации в одной базе, и торговые скидывают то по одной организации, то подругой,  тут тогда всплывает вопрос, как тогда исключить договора в котором есть наименование "бонус" и "оборудования" ?