Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 июн 2024, 11:51

поиск по наименованию в справочнике

Автор anna.tepl, 19 янв 2015, 02:23

0 Пользователей и 1 гость просматривают эту тему.

anna.tepl

Здравствуйте!

У меня не происходит поиск контрагента из соответствующего справочника. Обработку делаю как внешную, считываю из файла excel наименование, в отладчике вижу его, а потом почему-то это наименование теряется, и получается пустое значение. ниже приведен код.

&НаСервере
Процедура ЗагрузитьДанныеНаСервере()

Excel = Новый COMОбъект("Excel.Application");

Книга = Excel.WorkBooks.Open(Объект.ИмяФайла);
Лист = Книга.WorkSheets(1);
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;

Для НомерСтроки = 2  по ВсегоСтрок Цикл   

РасходнаяНакладная = Документы.РеализацияТоваровУслуг.СоздатьДокумент();

//ищем контрагента
        Контрагент = Справочники.Контрагенты.НайтиПоНаименованию((СокрЛП(Лист.Cells(НомерСтроки,3).Value)),истина);

Если Контрагент.Пустая() Тогда
Сообщить("Контрагент" + Контрагент + "не найден. Будет создан новый контрагент");

Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
    Контрагент.Наименование = Контрагент;
    Контрагент.Записать();
// далее идет поиск договора и
КонецПроцедуры

SitnovaMarina

Цитата: anna.tepl от 19 янв 2015, 02:23
Здравствуйте!

У меня не происходит поиск контрагента из соответствующего справочника. Обработку делаю как внешную, считываю из файла excel наименование, в отладчике вижу его, а потом почему-то это наименование теряется, и получается пустое значение. ниже приведен код.

&НаСервере
Процедура ЗагрузитьДанныеНаСервере()

Excel = Новый COMОбъект("Excel.Application");

Книга = Excel.WorkBooks.Open(Объект.ИмяФайла);
Лист = Книга.WorkSheets(1);
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;

Для НомерСтроки = 2  по ВсегоСтрок Цикл   

РасходнаяНакладная = Документы.РеализацияТоваровУслуг.СоздатьДокумент();

//ищем контрагента
        Контрагент = Справочники.Контрагенты.НайтиПоНаименованию((СокрЛП(Лист.Cells(НомерСтроки,3).Value)),истина);

Если Контрагент.Пустая() Тогда
Сообщить("Контрагент" + Контрагент + "не найден. Будет создан новый контрагент");

Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
    Контрагент.Наименование = Контрагент;
    Контрагент.Записать();
// далее идет поиск договора и
КонецПроцедуры



все просто! вы используете одну и ту же переменную и для поиска контрагента и для создания нового.
Вам нужно переменную Контрагент, которой вы пользуетесь для поиска по наименованию, переименовать, например в НайденыйКонтрагент, и прописать Контрагент.Наименование = НайденыйКонтрагент
Добавлено: 19 янв 2015, 19:10


Цитата: SitnovaMarina от 19 янв 2015, 08:36
Цитата: anna.tepl от 19 янв 2015, 02:23
Здравствуйте!

У меня не происходит поиск контрагента из соответствующего справочника. Обработку делаю как внешную, считываю из файла excel наименование, в отладчике вижу его, а потом почему-то это наименование теряется, и получается пустое значение. ниже приведен код.

&НаСервере
Процедура ЗагрузитьДанныеНаСервере()

Excel = Новый COMОбъект("Excel.Application");

Книга = Excel.WorkBooks.Open(Объект.ИмяФайла);
Лист = Книга.WorkSheets(1);
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;

Для НомерСтроки = 2  по ВсегоСтрок Цикл   

РасходнаяНакладная = Документы.РеализацияТоваровУслуг.СоздатьДокумент();

//ищем контрагента
        Контрагент = Справочники.Контрагенты.НайтиПоНаименованию((СокрЛП(Лист.Cells(НомерСтроки,3).Value)),истина);

Если Контрагент.Пустая() Тогда
Сообщить("Контрагент" + Контрагент + "не найден. Будет создан новый контрагент");

Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
    Контрагент.Наименование = Контрагент;
    Контрагент.Записать();
// далее идет поиск договора и
КонецПроцедуры



все просто! вы используете одну и ту же переменную и для поиска контрагента и для создания нового.
Вам нужно переменную Контрагент, которой вы пользуетесь для поиска по наименованию, переименовать, например в НайденыйКонтрагент, и НаименованиеКонтрагента = СокрЛП(Лист.Cells(НомерСтроки,3).Value). Затем прописать Контрагент.Наименование = НаименованиеКонтрагента
Народная мудрость: Программу встречают по интерфейсу

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск