|
v7: Поиск по справочнику | ☑ | ||
---|---|---|---|---|
0
ВежливаяТварь
30.09.11
✎
11:56
|
Добрый день уважаемые форумчане. Появилась некоторая проблема. Передо мной поставили задачу считать с екселевсого файла информацию и занести её в документы. Однако при считывании фамилии и попытке поиска по наименованию в справочнике возвращается ноль. С справочнике такая фамилия есть. Код:
Процедура Сформировать() Попытка Эксель= СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); Возврат; КонецПопытки; СпрСотрудники=СоздатьОбъект ("Справочник.Сотрудники"); Книга=Эксель.WorkBooks.Open(Путь); Лист=Книга.WorkSheets("Ведомость-филиалы"); СтрокаЕкселя=6; ИндикаторСуществованияДокумента=0; НовыйДокумент=СоздатьОбъект ("Документ.НашеНачислениеЗП"); Пока ПустоеЗначение(Лист.Cells(СтрокаЕкселя, 2).Value)=0 Цикл Если ПустоеЗначение(Лист.Cells(СтрокаЕкселя, 1).Value)=0 Тогда Если ИндикаторСуществованияДокумента=1 Тогда НовыйДокумент.Записать(); ОткрытьФорму(НовыйДокумент.ТекущийДокумент()); НовыйДокумент=СоздатьОбъект ("Документ.НашеНачислениеЗП"); КонецЕсли; //Заполняем шапку документа ИндикаторСуществованияДокумента=1; НовыйДокумент.Новый(); НовыйДокумент.ВидВыплаты=Перечисление.ВидыВыплат.ОсновнаяЗП; НовыйДокумент.ДатаДок=ТекущаяДата(); НовыйДокумент.Дней=глКолРабочихДней(НачМесяца(НовыйДокумент.ДатаДок),КонМесяца(НовыйДокумент.ДатаДок)); НовыйДокумент.Примечание=Лист.Cells(СтрокаЕкселя, 1).Value; НовыйДокумент.НоваяСтрока(); Сотрудник=Лист.Cells(СтрокаЕкселя, 2).Value; СпрСотрудники.НайтиПоНаименованию(Сотрудник); НовыйДокумент.Сотрудник=СпрСотрудники.ТекущийЭлемент(); СтрокаЕкселя=СтрокаЕкселя+1; Иначе НовыйДокумент.НоваяСтрока(); Сотрудник=Лист.Cells(СтрокаЕкселя, 2).Value; СпрСотрудники.НайтиПоНаименованию(Сотрудник); НовыйДокумент.Сотрудник=СпрСотрудники.ТекущийЭлемент(); СтрокаЕкселя=СтрокаЕкселя+1; КонецЕсли; КонецЦикла; НовыйДокумент.Записать(); ОткрытьФорму(НовыйДокумент.ТекущийДокумент()); Эксель.Quit(); КонецПроцедуры |
|||
1
План счетов
30.09.11
✎
12:02
|
в программе
Петров Александр Александрович в эксель фале - Петров А.А. ??? До создания нового документа надо пройтись поиском по сотрудникам, если не найден то не загружать (искать ошибку почему не находит) или предложить выбрать ручками. |
|||
2
ВежливаяТварь
30.09.11
✎
12:03
|
Нет проверял, точь в точь такой же, каждую букву сверил.
|
|||
3
ВежливаяТварь
30.09.11
✎
12:05
|
Даже если я копирую наименование из справочника, вставляю в код всё равно не находит...
|
|||
4
Darych
30.09.11
✎
12:05
|
сокрлп().... а ваще-то иди в отладчик
|
|||
5
ВежливаяТварь
30.09.11
✎
12:08
|
сокрлп()? Сходил считывает фамилию нормально, а при поиске выдаёт ноль.
|
|||
6
chief accountant
30.09.11
✎
12:10
|
НайтиПоНаименованию(ФИО,0,1)
|
|||
7
catena
30.09.11
✎
12:10
|
А если скопировать наименование и контрл+Ф по екселю - находит?
|
|||
8
Darych
30.09.11
✎
12:10
|
СпрСотрудники.НайтиПоНаименованию(Сотрудник,0)
|
|||
9
graf123
30.09.11
✎
12:12
|
СпрСотрудники.НайтиПоНаименованию(Сотрудник);
попробуй так: СпрСотрудники.НайтиПоНаименованию(СокрЛП(Сотрудник)); а ещё может быть, что между словами лишние пробелы стоят. |
|||
10
ВежливаяТварь
30.09.11
✎
12:12
|
(6) Заработало, огромное спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |