Имя: Пароль:
1C
1C 7.7
v7: ИспользоватьВладельца() - не работает
,
0 Norilmash
 
13.09.11
20:26
В этом коде неработает ИспользоватьВладельца, непойму почему. Кат.ВыбратьЭлементы(0); просто выбирает первый элемент в справочнике категории и все. Что нетак ? Сотр проверял получает правильный элемент вот в это строке: Кат.ИспользоватьВладельца(Сотр); Где ошибка ?
Процедура Сформировать()  
   Х=1;
   Табл = СоздатьОбъект("Таблица");
   Сотр = СоздатьОбъект ("Справочник.Сотрудники");
   Сотр.ВыбратьЭлементы();
   Пока Сотр.ПолучитьЭлемент()=1 Цикл
       Если Сотр.ЭтоГруппа() =1 Тогда
       Продолжить;    
       КонецЕсли;
       Кат = СоздатьОбъект("Справочник.Категории");
       Кат.ИспользоватьВладельца(Сотр);
       Кат.ВыбратьЭлементы(0);
       Табл.Область(Х,1).Текст = Сотр;
       Х=Х+1;
   КонецЦикла;
   
   Табл.Показать();

КонецПроцедуры
1 Джинн
 
13.09.11
20:29
ТекущийЭлемент
2 andrewks
 
13.09.11
20:30
Кат.ИспользоватьВладельца(Сотр.ТекущийЭлемент());

и это, ты в курсе, что делают за СоздатьОбъект в цикле?
3 Norilmash
 
13.09.11
20:30
Кат.ИспользоватьВладельца(Сотр.ТекущийЭлемент());

Так ? Если да то пробывал, результат тот же ...
4 Norilmash
 
13.09.11
20:31
Ну это мне уже друг посоветовал в цикл его вписать =)) На самом деле раньше это строка была вне Цикла
5 andrewks
 
13.09.11
20:31
Кат.ВыбратьЭлементы(0); просто выбирает первый элемент в справочнике категории. если он есть. и всё. и это правильно
6 andrewks
 
13.09.11
20:32
(4) передай привет своему другу
7 Norilmash
 
13.09.11
20:34
Дак а как тогда сделать так чтобы выбирал Категорию имено нашего сотрудника ?
8 andrewks
 
13.09.11
20:34
+(5) хотя, не. она ещё возвращает значение. которое потом можно проанализировать
9 Norilmash
 
13.09.11
20:37
Непонятно, зачем тогда нам ИспользоватьВладельца ? Ведь эта строка как раз таки должна делать так чтобы выбор элемента был непервым из справочника а того что принадлежит нашему владельцу, разве нет ???
10 andrewks
 
13.09.11
20:38
скажи честно - у тебя СП уже украли, или ещё нет?
11 Norilmash
 
13.09.11
20:39
О чем ты ?
12 andrewks
 
13.09.11
20:40
встань на интересующую тебя функцию, нажми Ctrl-F1, узнаешь много нового
13 Мимохожий Однако
 
13.09.11
20:41
(11)СП - синтаксис помощник
14 Norilmash
 
13.09.11
20:41
Я все это уже читал ... Возможно я чего то непонимаю ... потому и обратился сюда за помощью
15 Norilmash
 
13.09.11
20:42
привел кусок кода вот измененый, проблема осталась

Процедура Сформировать()  
   Х=1;
   Табл = СоздатьОбъект("Таблица");
   Сотр = СоздатьОбъект ("Справочник.Сотрудники");
   Кат = СоздатьОбъект("Справочник.Категории");
   Сотр.ВыбратьЭлементы();
   Пока Сотр.ПолучитьЭлемент()=1 Цикл
       Если Сотр.ЭтоГруппа() =1 Тогда
       Продолжить;    
       КонецЕсли;
       Кат.ИспользоватьВладельца(Сотр.ТекущийЭлемент());
       Кат.ВыбратьЭлементы(0);
       Табл.Область(Х,1).Текст = Сотр;
       Х=Х+1;
   КонецЦикла;
   
   Табл.Показать();

КонецПроцедуры
16 Мимохожий Однако
 
13.09.11
20:46
Переменная Кат не нужна  ИспользоватьВладельца() не при чем, если используешь кусок
Табл.Область(Х,1).Текст = Сотр;
.
Что же именно не получается?
17 andrewks
 
13.09.11
20:47
Табл.Область(Х,1).Текст = СокрП(Сотр.ТекущийЭлемент());
18 Norilmash
 
13.09.11
20:50
Код пока еще недописан... Задача была вывести только сотрудников с определенной Категорией. Сперва я сделал так чтобы просто вывести всех сотрудников из справочника сотрудники, затем стал делать отбор по категории и тут столкнулся со сложностью.
19 Cthulhu
 
13.09.11
20:51
"Кат.ВыбратьЭлементы(0); просто выбирает первый элемент в справочнике категории (причем НЕ ПОДЧИНЕННЫЙ сотруднику - как ты и накодировал) и все." - так и есть, что накожено - то и получилось.
Интересует другое. В коде нигде не видно - КАК ты определил, что выбирает только один элемент, и  ЗАЧЕМ тебе все элементы подчиненного справочника?..
20 Norilmash
 
13.09.11
20:52
Мне надо не все элементы мне надо чтобы из списка категорий выбиралась категория имено моего сотрудника
21 Cthulhu
 
13.09.11
20:52
(18): этот бутерброд надо кушать с другой стороны. Запрос по подчиненному справочнику, с отбором.
22 Cthulhu
 
13.09.11
20:53
(20): а справочник Категории разве подчинен справочнику Сотрудники?
23 Cthulhu
 
13.09.11
20:53
Если (22) "нет" - то все, что я тут сказал, прошу вычеркнуть!
24 andrewks
 
13.09.11
20:54
(20) ты хотя бы скажи, какую конфу пилишь?
25 Norilmash
 
13.09.11
20:54
Нет неподчинен =) Из-за этого и не работает ?
26 Norilmash
 
13.09.11
20:54
У меня 7.7 ЗиК
27 Мимохожий Однако
 
13.09.11
20:54
(24)ОФФ: неподъемные вопросы однако.
28 andrewks
 
13.09.11
20:54
(26) типовая? тогда не подчинён
29 Cthulhu
 
13.09.11
20:55
ЗЫ: и - лучше бы ты не лез в семерку. начинаешь - начинай с восьмерки. а то ещё нормальным семерочникам не хватало в годы расцвета снеговика за "пионэрами" разгребать кучи г0вна.
30 Cthulhu
 
13.09.11
20:56
(25): нет, не из-за этого. просто из-за того, что написанная тобой фигня в принципе не может "работать" - в том смысле, как тебе надо.
31 NS
 
13.09.11
20:56
Ну если за хорошие деньги - то почему бы и нет?!
32 Norilmash
 
13.09.11
20:56
А как надо написать ?
33 Мимохожий Однако
 
13.09.11
20:57
(32)Наконец-то подошли к постановке задаче. С этого надо было начинать ветку.
34 Cthulhu
 
13.09.11
20:58
наводящий вопрос:
В каком реквизите у справочника Сотрудники хранится Категория? (или где она хранится?)
(31): потому что за хорошие деньги нужно делать хорошую работу, а без умения это не получится. то, что ты пытаешься сделать - это обман и вредно для кармы.
35 Cthulhu
 
13.09.11
20:58
(31): упс, не тебе. ))))
36 Norilmash
 
13.09.11
21:00
в реквизите Категория, должен храниться, Я вижу в карточке сотрудника выбрана Категория. Но откуда ее вытенуть так и непонял, т.к. когда я в отладчике Табло у выбраного сотрудника Категория =""
37 Norilmash
 
13.09.11
21:02
а если в карточке жмешь по новой выбрать категорию то попадаешь в справочник.категории
38 Cthulhu
 
13.09.11
21:05
(36): а "Категория.Получить(РабочаяДата())"?..
39 andrewks
 
13.09.11
21:06
даже не знаю, что и посоветовать. читать ЖКК?
или (29), особливо первое предложение
40 Мимохожий Однако
 
13.09.11
21:08
(38)Телепат :-)
41 Norilmash
 
13.09.11
21:13
(38) Куда это вписать ?
42 Cthulhu
 
13.09.11
21:16
(41): а-фи-геть. смотри на руки, читай по слогам: (38) дано в ответ на твое (36). впиши туда же, куда вписывал "Категория" в (36)
43 Norilmash
 
13.09.11
21:20
Я его никуда не вписывал ) Я пр ОТладке смотрел что храниться в моем сотруднике и там в Категория ничего не храниться. =)
44 Мимохожий Однако
 
13.09.11
21:22
Не.. не взлетит однако.
45 Norilmash
 
13.09.11
21:25
=)) Да ладно не хороните раньше времени, первое время самое трудное =)
Категория это какой тип у переменной ? =)
Вот как переделал код =)

Процедура Сформировать()  
   Х=1;
   Табл = СоздатьОбъект("Таблица");
   Сотр = СоздатьОбъект ("Справочник.Сотрудники");
   Кат = СоздатьОбъект("Справочник.Категории");
   Категория = СоздатьОбъект("Справочник.Сотрудники.Категория");
   Сотр.ВыбратьЭлементы();
   Пока Сотр.ПолучитьЭлемент()=1 Цикл
       Если Сотр.ЭтоГруппа() =1 Тогда
       Продолжить;    
       КонецЕсли;
       Категория.Получить(РабочаяДата());
       Табл.Область(Х,1).Текст = Сотр;
       Х=Х+1;
   КонецЦикла;
   
   Табл.Показать();

КонецПроцедуры
46 NS
 
13.09.11
21:25
Пока Сотр.ПолучитьЭлемент()=1 Цикл
       Если Сотр.ЭтоГруппа() =1 Тогда
          Продолжить;    
       КонецЕсли;
       Кат=Сотр.Категория.Получить(РабочаяДата());
       Табл.Область(Х,1).Текст = Сотр;
       Х=Х+1;
КонецЦикла;
47 Мимохожий Однако
 
13.09.11
21:26
Табл.Область(Х,1).Текст = Кат;
48 NS
 
13.09.11
21:26
Кстати, у область() разве нре четыре параметра?
Вроде либо четыре, либо один.
49 Norilmash
 
13.09.11
21:29
УРА ПОЛУЧИЛОСЬ +)) Спасибо Большое Cthulhu, NS, МимохожийОднако !!!

Только объясните теперь, я так понял что тот метод которым я хотел изначально получить значение Категории не подошел потому что реквизит переодический ??
50 Norilmash
 
13.09.11
21:31
(48) Нет два, вертикальная и горизонтальная координата
51 NS
 
13.09.11
21:31
(49) Этот метод для подчиненных справочников.
(50) Да ладно? Из СП описание можешь скопировать?
52 aleks-id
 
13.09.11
21:31
научите его уже прямым запросам да закройте быстренько темку :)
53 Norilmash
 
13.09.11
21:34
(51) Ты был прав 4-е =) Но если вписать два параметра то он выбирает по ячейкам первая координата горизонтальной ячейки вторая вертикальной =)
Область(<?>)
Синтаксис:
Область(<R1>,<C1>,<R2>,<C2>)
Назначение:
Возвращает значение типа ''ОбластьТаблицы'' области выходной таблицы или таблицы в режиме ввода данных.
Параметры:
<R1> - необязательный параметр. Номер первой строки области.
<C1> - необязательный параметр. Номер первого столбца области.
<R2> - необязательный параметр. Номер последней строки области.
<C2> - необязательный параметр. Номер последнего столбца области.
Замечание:
Если последняя строка и последний столбец отсутствуют, то область задана единственной ячейкой. Если строки или столбцы отсутствуют, то область задана диапазоном столбцов или строк соответственно. Если метод вызван без параметров, то область задана всей таблицей.
Замечание:
Метод может использоваться при работе с таблицей в режиме ввода данных.
54 Эльниньо
 
13.09.11
21:35
Область(<?>)
Синтаксис:
Область(<R1>,<C1>,<R2>,<C2>)
Назначение:
Возвращает значение типа ''ОбластьТаблицы'' области выходной таблицы или таблицы в режиме ввода данных.
Параметры:
<R1> - необязательный параметр. Номер первой строки области.
<C1> - необязательный параметр. Номер первого столбца области.
<R2> - необязательный параметр. Номер последней строки области.
<C2> - необязательный параметр. Номер последнего столбца области.
55 Norilmash
 
13.09.11
21:35
NS Подскажи если знаешь где можно почитать про Запросы, потому как я пытался через запрос все сделать но вообще не понимаю как они функционируют.
56 Мимохожий Однако
 
13.09.11
21:38
(55) см (12)
57 NS
 
13.09.11
21:38
Запрос=создатьобъект("Запрос");
ТекстЗапроса="
|Сотр=справочник.Сотрудники.Текущийэлемент;
|Кат=справчоник.Сотрудники.Категория;
|Группировка сотр без групп;";
Запрос.выполнить(ТекстЗапроса);
Пока Запрос.Группировка(1)=1 цикл
 сообщить(""+сотр.наименование+" "+кат.наименование);
Конеццикла;
58 Cthulhu
 
13.09.11
21:39
а, все-таки, лучше - (29) !
59 Эльниньо
 
13.09.11
21:40
(55) Конструктор в зубы
60 Norilmash
 
13.09.11
21:40
Всем еще раз большое спасибо =)Буду учиться ...