|
v7: Как правильно поставить отметку на удаление элемента в справочнике | ☑ | ||
---|---|---|---|---|
0
Izuchayu1C7
28.04.15
✎
08:48
|
Нужно удалить 10 элементов с Наименованием Новый555 из справочника
Пишу простую процедуру Процедура ПриОткрытии() СправочникСотрудники=СоздатьОбъект("Справочник.Сотрудники"); ФлагПоиска=0; Режим=0; Пока СправочникСотрудники.НайтиПоНаименованию("Новый",Режим,ФлагПоиска)=1 Цикл СправочникСотрудники.Удалить(0); КонецЦикла; КонецПроцедуры В результате 1с в режиме предприятия виснет намертво при открытии Справочник Сотрудники. Что не так? Как сделать правильно? |
|||
1
фобка
28.04.15
✎
08:58
|
На одной ссылке стоишь все время. Делай выборку
|
|||
2
Дотошный
28.04.15
✎
08:59
|
(0) Оно не висит. Оно постоянно находит один и тот же (первый из) элемент. По Esc - просит подтвердить прерывание обработки.
|
|||
3
Дотошный
28.04.15
✎
09:12
|
(0) Если любишь риск, то напиши в своей конструкции
СправочникСотрудники.Удалить(); Сработает ;) |
|||
4
User_Agronom
28.04.15
✎
09:15
|
(0) Бесконечный цикл. Вот истинное лицо программиста 1С. От статыщ и не знает о теории циклов ;(
|
|||
5
Izuchayu1C7
28.04.15
✎
09:17
|
(1)
СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент()=1 Цикл Если СпрСотр.Наименование = "Новый" Тогда СпрСотр.Удаление(0); КонецЕсли; КонецЦикла; Находит первый попавшийся, помечает и прерывает цикл |
|||
6
User_Agronom
28.04.15
✎
09:18
|
(5) Ещё и слово "выборка" не понял. Жуть.
|
|||
7
Herby
28.04.15
✎
09:21
|
(5) ну уж лучше тогда запрос написать по условию.
А так перелапачивать весь справочник слишком долго, ну если конечно в справочнике не 10 сотрудников... |
|||
8
Масянька
28.04.15
✎
09:21
|
Каждый программист должен в своей жизни сделать 2 вещи: написать бесконечный цикл и вирус.
|
|||
9
Дотошный
28.04.15
✎
09:23
|
(5) И таки да - нет такого слова "Удаление" в русском языке ;)
(7) >>долго>> проверял ? ;) |
|||
10
User_Agronom
28.04.15
✎
09:23
|
Запрос = новый Запрос;
Запрос.Текст = "выбрать ссылка из Справочник.Сотрудники где Наименование = ""Новый"""; РезЗапроса = Запрос.Выполнить(); Выборка = Запрос.Выбрать(); Пока Выборка.Следующий() цикл ОбъектСпр = Выборка.Ссылка.ПолучитьОбъект(); ОбъектСпр.УстановитьПометкуУдаления(Истина); КонецЦикла; |
|||
11
Дотошный
28.04.15
✎
09:25
|
(10) Товарищ, здесь "клюшками" торгуют ))
|
|||
12
User_Agronom
28.04.15
✎
09:27
|
(11) Тогда pardon, но нигде это не написано.
Актуальность поста (4), кстати, не изменилась. |
|||
13
Масянька
28.04.15
✎
09:33
|
(12) Не "пардон" :) Секцию читать надо.
|
|||
14
Дотошный
28.04.15
✎
09:40
|
Попробуй вместо вот этого:
СпрСотр.Наименование = "Новый" написать Лев(СпрСотр.Наименование,5) = "Новый" Должно взлететь. И замени слово "Удаление" на единственно правильное "Удалить" (0 можешь оставить) )) |
|||
15
Дотошный
28.04.15
✎
09:40
|
Предыдущее к (5), если что
|
|||
16
Izuchayu1C7
28.04.15
✎
10:25
|
(15) Дотошный! ты лучший!
СПАСИБО то что нужно! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |