|   |   | 
| 
 | 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) весь код покажи     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |