|
v7: как в справочнике найти запись | ☑ | ||
---|---|---|---|---|
0
alpha78
11.05.19
✎
17:33
|
как в справочнике найти запись
вот код - постоянно выдает что записи нет, хотя есть, что нето? на форме внешней обработки положил текстовый реквизит С000 Процедура Сформировать() Сотр = СоздатьОбъект("Справочник.Сотрудники"); Сотр.ВыбратьЭлементы(); пока Сотр.ПолучитьЭлемент()=1 цикл если Сотр.НайтиПоНаименованию (СокрЛП(С000),,)=1 Тогда Предупреждение ("Элемент справочник Сотрудники"+С000+"Найден"); иначе Предупреждение ("Нет!!!"); конецесли; конеццикла; пишет предупреждение что нет и выдает такую хрень: пока Сотр.ПолучитьЭлемент()=1 цикл {D:\1C_LOCAL\TESTBUH\EXTFORMS\НАЙТИ СОТРУДНИКА.ERT(6)}: Не выбран элемент! подсобите, благодарен! |
|||
1
Ёпрст
11.05.19
✎
17:40
|
(0)
|
|||
2
Looking
11.05.19
✎
17:51
|
(0) см (1) цикл здесь ни к чему.
|
|||
3
Кодер
11.05.19
✎
17:51
|
http://firststeps.ru, в левом столбце выбери 1С, там много и подробно про 77.
|
|||
4
Sasha_H
11.05.19
✎
17:55
|
(1) еще хорошо бы добавить Сотр.ТекущийЭлемент() для подальшей работы с элементом .
|
|||
5
mishaPH
модератор
11.05.19
✎
17:57
|
(0) автор. ты либо цикл гоняй и а наименовании ищи искомое, либо сразу ищи по наименованию.
|
|||
6
Looking
11.05.19
✎
17:58
|
С циклом будет примерно так
Процедура Сформировать() Сотр = СоздатьОбъект("Справочник.Сотрудники"); Сотр.ВыбратьЭлементы(); пока Сотр.ПолучитьЭлемент()=1 цикл Если СокрЛП(Сотр.Наименование)="С000" Тогда Предупреждение ("Элемент справочник Сотрудники"+С000+"Найден"); иначе Предупреждение ("Нет!!!"); конецесли; конеццикла; |
|||
7
Looking
11.05.19
✎
18:00
|
+(6)правда так лучше будет ))), чтобы не было постоянных предупреждений "Нет"
Процедура Сформировать() Сотр = СоздатьОбъект("Справочник.Сотрудники"); Сотр.ВыбратьЭлементы(); пока Сотр.ПолучитьЭлемент()=1 цикл Если СокрЛП(Сотр.Наименование)="С000" Тогда Предупреждение ("Элемент справочник Сотрудники"+С000+"Найден"); конеццикла; |
|||
8
mishaPH
модератор
11.05.19
✎
18:03
|
(6) (7) странное использование справочника сотрудника. С000 скорее всего какой-то код или реквизит.
|
|||
9
Looking
11.05.19
✎
18:04
|
+(7)А так еще лучше
Процедура Сформировать() ПеремСотрудникС000=""; Сотр = СоздатьОбъект("Справочник.Сотрудники"); Сотр.ВыбратьЭлементы(); пока Сотр.ПолучитьЭлемент()=1 цикл Если СокрЛП(Сотр.Наименование)="С000" Тогда ПеремСотрудникС000=Сотр.ТекущийЭлемент(); Прервать; конеццикла; Если ПустоеЗначение(ПеремСотрудникС000)=1 Тогда Предупреждение ("Нет!!!"); Иначе Предупреждение ("Элемент справочник Сотрудники"+С000+"Найден"); КонецЕсли; |
|||
10
mishaPH
модератор
11.05.19
✎
18:05
|
(7) вообще быстрее и менее замороченное
если Сотр.НайтиПоНаименованию (СокрЛП(С000),,)=1 Тогда Предупреждение ("Элемент справочник Сотрудники"+С000+"Найден"); иначе Предупреждение ("Нет!!!"); конецесли; находит просто. НО у автора скорее всего создано было C0000 а ищет он С0000 разные раскладки клавы англ и русский |
|||
11
Looking
11.05.19
✎
18:05
|
+(9)только не Прервать, а Продолжить?
|
|||
13
Looking
11.05.19
✎
18:06
|
(10)это да, я просто пример цикла привожу, как он будет работать, а не оптимальное решение вопроса в (0)
|
|||
14
alpha78
11.05.19
✎
20:27
|
спасибо всем коллеги удачи все ок
|
|||
15
alpha78
22.05.19
✎
16:06
|
пробовал показзываеть
Пока Сотр.ПолучитьЭлемент()=1 Цикл {C:\USERS\...\ПОИСКВСПРАВОЧНИКЕ.ERT(7)}: Не выбран элемент! |
|||
16
hhhh
22.05.19
✎
16:26
|
(15) весь код покажи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |