Имя: Пароль:
1C
1C 7.7
v7: Перебор элементов справочника
,
0 st31
 
29.06.15
04:57
Народ, что-то туплю на ровном месте.                                                                  Надо перебрать элементы справочника "Сотрудники"                                                             Спр=СоздатьОбъект("Справочник.Сотрудники");                           Спр.ПорядокНаименований();    
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл

После этого вылетает   сообщение "Не выбран элемент!" и цикл завершается.
1 Otkr
 
29.06.15
04:58
Ох недоговариваешь ты, боярин... Вылетает изза кода в самом цикле, небось изменения вносишь
2 st31
 
29.06.15
05:06
(1) Дальше по алгоритму ничего не анализируется. Задача проста- выбрать сотрудников по алфавиту,занести их в таблицу и начислить им определенную сумму в зависимости от ыполненной работы.
Вылетает на строке начала цикла с сообщением "Не выбран элемент!", смотрю в отладчике
3 VladZ
 
29.06.15
05:43
(0) Покажи код в цикле
4 st31
 
29.06.15
05:49
Спр=СоздатьОбъект("Справочник.Сотрудники");        Спр.ПорядокНаименований();
Спр.ВыбратьЭлементы();                
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если  НачМесяца(Спр.ДатаУвольнения)>=НачМесяца(ДатаДок) Тогда
Если Спр.Подразделение.Получить(ДатаДок) <> Подразделение Тогда                            Продолжить;                        КонецЕсли;                        НоваяСтрока();                        Сотрудник = Спр.ТекущийЭлемент();                    Квыдаче=Цена;
КонецЕсли;
КонецЦикла;
5 st31
 
29.06.15
05:54
Некрасиво записывается код.Как сделать, чтобы каждая строка записывалась с новой строки?                                                       В малом окне именно так я и делал,                                                        используя клавиши пробел, ввод и delete.А по факту оказалось некрасиво.
6 Maximysis
 
29.06.15
06:04
(4)"НоваяСтрока()" отрабатывает нормально?                      
"Сотрудник = Спр;" попробуй так.

И пиши читабельно.
7 st31
 
29.06.15
06:26
Как сделать, чтобы в большом окне каждая строка начиналась нормально?                    
Спр=СоздатьОбъект("Справочник.Сотрудники");
Спр.ПорядокНаименований();
Спр.ВыбратьЭлементы();                    
Пока Спр.ПолучитьЭлемент()=1 Цикл
//Дальше не идет, пишет не "выбран элемент!"

Если  (ПустоеЗначение(Спр.ДатаУвольнения)=1) или (НачМесяца(Спр.ДатаУвольнения)>=НачМесяца(ДатаДок)) Тогда
Если Спр.Подразделение.Получить(ДатаДок) <> Подразделение Тогда
Продолжить;
КонецЕсли;
                        НоваяСтрока();
Сотрудник = Спр.ТекущийЭлемент();
Квыдаче=Цена;
КонецЕсли;
КонецЦикла;
8 s911Oleg
 
29.06.15
06:31
Ошибка, возможно, возникает из-за того, что в вашем справочнике есть группы. Надо их исключить перед условием.
9 vip03
 
29.06.15
07:29
Спр.ПорядокНаименований();
без этого работает?
10 st31
 
29.06.15
07:49
Логика идет после начала цикла.
11 st31
 
29.06.15
07:54
Странное дело, заканчивалась виртуальная память у компа, перезагрузил комп, переписал наименование справочника Сотрудники"  и заработало, правда в окне запуска 1С поудалялось половину ссылок на базы программ, с которыми я работал.
12 Chameleon1980
 
29.06.15
22:24
(11) ну это уж какие-то доп. глюки
куда они с реестра подевались?
13 Злопчинский
 
29.06.15
22:33
(11) недоговариваешь ты, боярин...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс