Имя: Пароль:
1C
1С v8
Помогите с обработкой справочника
0 KENT2007
 
26.11.12
12:35
В договорах есть группы, их может быть несколько разных
Роллеты
   Договор №1
   Договор №2
   ..........
Секции
   Договор №3

Как перебрать догвора и в каждом договоре установить вид взаиморасчетов = грппе договора? тоесть родитель
1 KENT2007
 
26.11.12
12:35
Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   
  ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          Если ВоборкаСправочников.ЭтоГруппа Тогда
              ИмяГруппыДог = ВоборкаСправочников.Владелец.Наименование;
             
тДоговор = ВоборкаСправочников.ПолучитьОбъект();
          тДоговор.ВидВзаиморасчетов = ИмяГруппыДог;
              тДоговор.Записать();
        КонецЕсли        
Конеццикла;

КонецПроцедуры
2 Maxus43
 
26.11.12
12:36
ВидВзаиморасчетов - это строка чтоли? перечисление же
3 rbcvg
 
26.11.12
12:37
типы у тДоговор.ВидВзаиморасчетов и ИмяГруппыДог, конечно, одинаковые...
4 Maxus43
 
26.11.12
12:38
(1) + сори, справочник)
5 KENT2007
 
26.11.12
12:39
вот так с условием

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   
  ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          Если ВоборкаСправочников.ЭтоГруппа Тогда
              ИмяГруппыДог = ВоборкаСправочников.Владелец.Наименование;
             
             
             
             
             
       тДоговор = ВоборкаСправочников.ВидВзаиморасчетов;
       Если ВоборкаСправочников.ВидВзаиморасчетов.Наименование = ИмяГруппыДог тогда
       тДоговор.ВидВзаиморасчетов = ИмяГруппыДог;
              тДоговор.Записать();
          КонецЕсли  
          конецесли;
Конеццикла;

КонецПроцедуры
6 zladenuw
 
26.11.12
12:51
(5) владелец ? а не Родитель ? и зачем к наименованию ? если сразу к ссылке
7 KENT2007
 
26.11.12
12:51
как поставить условие чтоб проверить в нужной ли грппе договор для присвоения ВидаВзаиморасчета
8 zladenuw
 
26.11.12
12:59
зачем условие на проверку группы ? если тебе нужно в элементе взять родителя и записать в реквизит. в чем проблема ?
9 KENT2007
 
26.11.12
13:01
Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   
  ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
   
   Если НЕ ВоборкаСправочников.ЭтоГруппа Тогда
  ИмяГруппыДог = ВоборкаСправочников.Родитель.Ссылка;
             
                       
       Вид = ВоборкаСправочников.ВидВзаиморасчетов.ПолучитьОбъект();
       
       Вид = ИмяГруппыДог;
             Вид.Записать();
          //КонецЕсли  
          конецесли;
Конеццикла;

КонецПроцедуры
10 KENT2007
 
26.11.12
13:02
как его присвоимть
вот тут какая то каша
Вид = ВоборкаСправочников.ВидВзаиморасчетов.ПолучитьОбъект();
       
       Вид = ИмяГруппыДог;
11 zladenuw
 
26.11.12
13:02
(9) ужас. 5 лет на форуме. а такие вопросы :). похмелье ?
12 zladenuw
 
26.11.12
13:04
ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          Если НЕ ВоборкаСправочников.ЭтоГруппа Тогда
              ИмяГруппыДог = ВоборкаСправочников.Родитель;
             
             
             
             
             
       тДоговор = ВоборкаСправочников.ВидВзаиморасчетов;
       Если ВоборкаСправочников.ВидВзаиморасчетов = ИмяГруппыДог тогда
       тДоговор.ВидВзаиморасчетов = ИмяГруппыДог;
              тДоговор.Записать();
          КонецЕсли  
          конецесли;
Конеццикла;

Мда....
13 zladenuw
 
26.11.12
13:06
(12) с твоим кодом.
ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          Если НЕ ВоборкаСправочников.ЭтоГруппа Тогда
              ИмяГруппыДог = ВоборкаСправочников.Родитель;
тДоговор = ВоборкаСправочников.ПолучитьОбъект();
Если ВоборкаСправочников.ВидВзаиморасчетов = ИмяГруппыДог тогда
       тДоговор.ВидВзаиморасчетов = ИмяГруппыДог;
              тДоговор.Записать();
          КонецЕсли  
          конецесли;
Конеццикла;
14 KENT2007
 
26.11.12
13:06
я в справочник ВидВзаиморасчетов уже добавил элементы которые по наименованию = Группе договора
15 zladenuw
 
26.11.12
13:07
(14) ну так найди по наименованию тогда. и подставляй
16 KENT2007
 
26.11.12
13:09
так Если ВоборкаСправочников.ВидВзаиморасчетов = ИмяГруппыДог тогда
?
17 zak555
 
26.11.12
13:10
18 hhhh
 
26.11.12
13:14
(16) они никогда не будут равны.
19 KENT2007
 
26.11.12
13:15
(15) еще цикл внутри перебирать ВидВзаиморасчетов
20 KENT2007
 
26.11.12
13:21
а что это
Вид    <Объект не найден> (22:8578848f69b7294511e237aa45240c29)    СправочникСсылка.ВидыВзаиморасчетов
21 KENT2007
 
26.11.12
13:26
народ но не забивайте, помогите
22 KENT2007
 
26.11.12
13:37
вроде как задумывается и что то пишет но результат 0

Процедура КнопкаВыполнитьНажатие(Кнопка)
ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          Если НЕ ВоборкаСправочников.ЭтоГруппа Тогда
              ИмяГруппыДог = ВоборкаСправочников.Родитель;
тДоговор = ВоборкаСправочников.ПолучитьОбъект();

Вид=Справочники.ВидыВзаиморасчетов.НайтиПоНаименованию(ИмяГруппыДог);

//Пока тДоговор.ВидВзаиморасчетов.Следующий() Цикл
     Если Вид.Наименование= ИмяГруппыДог.Наименование тогда
       тДоговор.ВидВзаиморасчетов = ИмяГруппыДог;
              тДоговор.Записать();
          КонецЕсли  
          //Конеццикла;        
  конецесли;

Конеццикла;    
  КонецПроцедуры
23 KENT2007
 
26.11.12
13:43
как указать чтоб присвоилось значение
тДоговор.ВидВзаиморасчетов = ИмяГруппыДог;
              тДоговор.Записать();
24 KENT2007
 
26.11.12
13:53
ап
25 KENT2007
 
26.11.12
13:54
отбирает то что нужно как присвоить тДоговор.ВидВзаиморасчетов = ИмяГруппыДог;
26 KENT2007
 
26.11.12
14:06
всем спасибо получилось
27 KENT2007
 
26.11.12
14:06
Процедура КнопкаВыполнитьНажатие(Кнопка)
ВоборкаСправочников = Справочники.ДоговорыКонтрагентов.Выбрать();
Пока ВоборкаСправочников.Следующий() Цикл
          Если НЕ ВоборкаСправочников.ЭтоГруппа Тогда
              ИмяГруппыДог = ВоборкаСправочников.Родитель;
тДоговор = ВоборкаСправочников.ПолучитьОбъект();

Вид=Справочники.ВидыВзаиморасчетов.НайтиПоНаименованию(ИмяГруппыДог,,, ВоборкаСправочников.ВидВзаиморасчетов);

//Пока тДоговор.ВидВзаиморасчетов.Следующий() Цикл
     Если Вид.Наименование= ИмяГруппыДог.Наименование тогда
       тДоговор.ВидВзаиморасчетов= Вид.Ссылка;
              тДоговор.Записать();
          КонецЕсли  
          //Конеццикла;        
  конецесли;

Конеццикла;    
  КонецПроцедуры