Имя: Пароль:
1C
1C 7.7
v7: обработка справочника, переназначение реквизита
0 Fiasko
 
26.01.12
03:16
Здравствуйте! Туплю, не могу уже... следующая проблема:
В подчиненном справочике записаны значения.
Необходимо обработать справочник владелец, содержащий определенный реквизит "ОсновнойКонтакт", по которому нужно искать в подчиненном и присвоить реквизиту "ОсновнойКонтактNEW" найденное значение в случае успеха.
Тип реквизита "ОсновнойКонтакт" - Справочник.ФизЛица
Тип реквизита "ОсновнойКонтактNEW" - Справочник.Сотрудники (подчиненный контрагентам)

Пишет что не выбран элемент... ПАЧЕМУ!? :)
1 Злопчинский
 
26.01.12
03:19
патамушта код криво напиан.
давай код - получишь ответ
2 Fiasko
 
26.01.12
03:20
а, забыл, ведь скопировал в буфер же :)

   Контрагенты = СоздатьОбъект("Справочник.Контрагенты");    
   Сотрудники = СоздатьОбъект("Справочник.Сотрудники");
   Контрагенты.ВыбратьЭлементы();
   Пока Контрагенты.ПолучитьЭлемент()=1 Цикл
       
       Сотрудники.ИспользоватьВладельца(Контрагенты.ТекущийЭлемент());
       Сотрудники.ВыбратьЭлементы();
           Пока Сотрудники.ПолучитьЭлемент() = 1 Цикл
               Если Сотрудники.ТекущийЭлемент().Сотрудник = Контрагенты.ОсновнойКонтакт Тогда
                   Контрагенты.ОсновнойКонтактNEW.Сотрудник = Сотрудники.ТекущийЭлемент().Сотрудник;
                   Контрагенты.Записать();
               КонецЕсли;
           КонецЦикла;
       Состояние        
   КонецЦикла;
3 Fiasko
 
26.01.12
03:21
*состояния там не должно быть, не пинайте )
4 KRV
 
26.01.12
03:34
не взлетит... сравниваешь белое с твердым
5 KRV
 
26.01.12
03:34
ну или теплое с мягким..
6 Fiasko
 
26.01.12
03:38
это, собственно, из-за подчиннего справочника..!? т.е. нужно как-то по другому плясать получается...
7 VladZ
 
26.01.12
04:57
(2) Хм... "Сотрудники.ТекущийЭлемент().Сотрудник" - что за дикая структура?
8 DJ Anthon
 
26.01.12
05:01
Контрагенты.ОсновнойКонтактNEW.Сотрудник - такого не бывает, учи матчасть
9 Злопчинский
 
26.01.12
05:54
(2) в справочнике "Сотрудники" - есть реквизит "Сотрудник" типа Справочниу.ФизЛица..?
10 Злопчинский
 
26.01.12
05:56
Контрагенты = СоздатьОбъект("Справочник.Контрагенты");    
Сотрудники = СоздатьОбъект("Справочник.Сотрудники");

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

   Если Сотрудники.Сотрудник <> Контрагенты.ОсновнойКонтакт
   Тогда
     Продолжить;
   КонецЕсли;

   Контрагенты.ОсновнойКонтактNEW = Сотрудники.ТекущийЭлемент();
   Контрагенты.Записать();
 КонецЦикла;
КонецЦикла;
11 1Сергей
 
26.01.12
07:48
Сотрудники подчинены контрагентам? это где так?
12 Fiasko
 
26.01.12
20:06
(10) да, есть
получилось, все ок... спасибо..
только сейчас до меня дошло, что я несколько иначе, но решил проблему еще раньше, просто, как я сказал в первом посте - тупил...
13 Fiasko
 
26.01.12
20:09
Злопчинскому отдельно спасибо за вдумчивость и конструктивность :)
14 miki
 
26.01.12
20:30
(13)код в (10) рабочий, но не оптимальный
15 Дядя Васька
 
26.01.12
20:36
(14)+ а Злопчинский он ваще такой с_ц_уко вдумчивый...