Имя: Пароль:
1C
1С v8
БП3, Основной договор контрагента
0 Soul771
 
17.08.17
20:15
Добрый вечер.
В БП3 реквизит ОсновнойДоговорКонтрагента переехал в РегистрСведений, в принципе, для чего было сделано поняла, ок, привыкаем, под конец дня затык с вроде бы простейшим куском кода...
Пытаюсь проверить, есть ли у контрагента основной договор, если нет, создаю, помечаю что основной и тд.. Собственно, затык на проверке условия есть\нет. Не видит ни установленную программно пометку,что основной, ни вручную перещелкнутую неоднократно на форме. В сам регистр заглядывала, все имеется..

Отбор = Новый Структура;
                    Орг =Справочники.Организации.НайтиПоКоду("000000001");
                    Отбор.Вставить("Организация",Орг);
                    Отбор.Вставить("Контрагент",Док.Контрагент);
                    Отбор.Вставить("ВидДоговора",Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
                    
                    ДогВыборка= РегистрыСведений.ОсновныеДоговорыКонтрагента.Получить(Отбор);
                    
                    Док.ДоговорКонтрагента= ДогВыборка.Договор;
                    
                    Если Док.ДоговорКонтрагента=Дог.ПустаяСсылка() Тогда
1 Soul771
 
17.08.17
20:16
В отбор в отладчике выходит Структура с нужными значениями, т.е. вижу в отладчике и Организацию, и Контрагента, и ВидДоговора..
2 h-sp
 
17.08.17
22:25
(1) что такое Дог.ПустаяСсылка()  ??
3 Soul771
 
17.08.17
22:31
(2) Справочники.ДоговорыКонтрагентов.ПустаяСсылка()
выше у меня кусочек такой, не вписала :Дог=Справочники.ДоговорыКонтрагентов;
4 Fram
 
17.08.17
22:40
(0) ну, отладчик в руки.. наверняка отбор кривой
5 Soul771
 
17.08.17
23:23
(4) запись в регистре по данному отбору 1 штука.
у контрагента вообще 1 договор (создавала тестового контр и договор)... организация в базе одна, база типовая...
плафторма 8.3.9.2233, бп 3.0.51.20
6 Soul771
 
17.08.17
23:27
(4) - если в отладчике смотрю Отбор, то находится Структура, вроде и Организация, и Контрагент, и ВидДоговора - все нашлось....((
7 h-sp
 
17.08.17
23:30
чего там дальше после пустая ссылка?
8 Soul771
 
17.08.17
23:42
Если Док.ДоговорКонтрагента=Дог.ПустаяСсылка() Тогда
                        СсылкаДоговор=Дог.СоздатьЭлемент();
                        СсылкаДоговор.Наименование=ДоговорКонтрагента;
                        СсылкаДоговор.Организация=Объект.Организация;
                        СсылкаДоговор.ВалютаВзаиморасчетов=Константы.ВалютаРегламентированногоУчета.Получить();
                        СсылкаДоговор.ВидДоговора=Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
                        СсылкаДоговор.Владелец=Ссылка.Ссылка;
                        СсылкаДоговор.Записать();
                        
                        
                    
                        Док.ДоговорКонтрагента=СсылкаДоговор.Ссылка;

                        
                        НоваяЗапись = РегистрыСведений.ОсновныеДоговорыКонтрагента.СоздатьМенеджерЗаписи();
                        НоваяЗапись.Организация = СсылкаДоговор.Организация;
                        НоваяЗапись.Контрагент  = Ссылка.Ссылка;
                        НоваяЗапись.ВидДоговора = СсылкаДоговор.ВидДоговора;
                        НоваяЗапись.Договор     = СсылкаДоговор.Ссылка;
                        НоваяЗапись.Записать(Истина);
                        
                        
                    КонецЕсли;
9 Soul771
 
17.08.17
23:43
(7) по идее, не должен бы вообще в это условие заходить, договор в базе есть, основным помечен...
10 Soul771
 
18.08.17
00:09
Нашла косяк!) Вот это место проглядела СсылкаДоговор.Организация=Объект.Организация (значение можно на форме выбрать, а я его на форме не указывала, а в коде проглядела это место, дабы 1 организация в базе, мозг решил "потом")
Благодарю всех за участие!))
h-sp, без вас бы так и искала "полтергейст")
11 Fram
 
18.08.17
18:52
(10) а как же тогда все ваши предыдущие утверждения, что записи в регистре точно есть? то есть они были, но немножко с пустой организацией? :) а так да - есть