Имя: Пароль:
1C
1C 7.7
v7: Вопрос!
🠗Ø (GROOVY 01.12.2011 18:41)
0 ДимонУ35
 
01.12.11
18:22
Нужна подсказка! Дано: два справочника 1-й-Преподаватели, имеет реквизит  
Наименование, в который записывается ФИО преподавателя; 2-й-Дисциплины, реквизиты Наименование и Преподаватель. Нужно чтоб выбранный в форме документа преподаватель мог выбрать только ту дисциплину которую он ведет...
Набросок моего модуля формы:Процедура ПослеВыбораПреподавателя()
   ТекущийПреподаватель=Преподаватель;      
   Дисц=СоздатьОбъект("Справочник.Дисциплины");
   Дисц.ВыбратьЭлементы();
       Пока Дисц.ПолучитьЭлемент()=1 Цикл
            Дисц.НайтиЭлемент(Дисц.Преподаватель);
                                                 
            Если ТекущийПреподаватель=Дисц.Преподаватель Тогда
                   
                             Иначе Дисциплина=Дисц.Наименование;
                       КонецЕсли;                                  Предупреждение("Вы не ведете данную дисциплину!");
               КонецЦикла;
       КонецЦикла;
конецПроцедуры
1 DJ Anthon
 
01.12.11
18:24
от щас на тебе груви оторвется..
2 miki
 
01.12.11
18:24
Дима, это гораздо проще реализовать через подчиненные справочники.
Да и темы называть желательно так, чтобы она отражала суть сообщения...
3 Rie
 
01.12.11
18:25
Я не GROOVY - но ветку притоплю. В назидание.
4 miki
 
01.12.11
18:25
или хотя бы юзать отборы...
5 ParaWiz
 
01.12.11
18:26
(0) год рождения ТС видимо 90+ ...
что курите в таком молодом возрасте ?

Дисц.НайтиЭлемент(Дисц.Преподаватель);
перепозиционирует Дисц ... в цикле который позиционируется ПолучитьЭлемент()
бред :) курите СП, ЖКК
6 dryms
 
01.12.11
18:27
найтипореквизиту()?
7 ДимонУ35
 
01.12.11
18:27
Варианты все перепробовал...
8 ParaWiz
 
01.12.11
18:27
Не говоря о том что Дисц.Преподователь - реквизит, а НайтиЭлемент работает вообще не так :)
9 dryms
 
01.12.11
18:28
По реквизиту ищи ))
10 ДимонУ35
 
01.12.11
18:30
Я по реквизиту все нахожу! только при выборе "не своей" дисциплины предупреждение выводится в цикле...
11 miki
 
01.12.11
18:31
если уж так хочется делать через лпу, почему просто тупо не сравнить препода у выбираемого элемента и препода из дока?
12 miki
 
01.12.11
18:32
*через опу, сорри.
13 ParaWiz
 
01.12.11
18:33
//Не совсем понятна задача но я добрый сегодня на удивление
//ВыбДисциплина - выбранная дисциплина
Если ВыбДисциплина.Преподаватель = Преподаватель Тогда
    Дисциплина = ВыбДисциплина;
Иначе
   Предупреждение("Вы не ведете данную дисциплину!");
    СтатусВозврата(0);
    Возврат;
КонецЕсли;

// ну как то так, по смутно озвученному вопросу
14 Rie
 
01.12.11
18:34
(10) Это вряд ли. НайтиЭлемент у тебя сбивает выборку напрочь.
15 ДимонУ35
 
01.12.11
18:40
Процедура ПослеВыбораПреподавателя()
   ТекПрепод=Преподаватель;
   Дисциплина="";
   Сообщить(ТекПрепод);
   Дисц=СоздатьОбъект("Справочник.Дисциплины");
   Дисц.ВыбратьЭлементы();
       Пока Дисц.ПолучитьЭлемент()=1 Цикл
           Если Дисц.Преподаватель=ТекПрепод Тогда
               Сообщить(Дисц.Наименование);
           КонецЕсли;                      
       КонецЦикла;
КонецПроцедуры
16 ДимонУ35
 
01.12.11
18:40
Данные выбирает:
Перминов Владимир Геннадиевич
Информатика
Системы реального времени