Заполнение табличной части документа ЗаказПокупателя из DBF.

1. baracuda 2 25.06.15 15:48 Сейчас в теме
Пытаюсь написать простую обработку заполнения ТЧ документа ЗаказПокупателя.

ОбработкуТЧ зарегистрировал через внешние обработки. Указал что она будет срабатывать для ДОК ЗаказПокупателя и его ТЧ Товары.

В модуле обработки написал код
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта = Неопределено) Экспорт
	//Выбираем файл из локального каталога
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Диалог.Заголовок = "Выберите файл для загрузки";
	Диалог.ПолноеИмяФайла = "";
	Если Диалог.Выбрать() Тогда
		ВыбранныйФайл = Диалог.ПолноеИмяФайла; 
	Иначе
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	БД = Новый XBase;
	
	БД.ОткрытьФайл(ВыбранныйФайл);
	БД.Кодировка = КодировкаXBase.OEM;
    
    Если НЕ БД.Открыта() Тогда
        Предупреждение("Не удалось открыть файл, попробуйте снова!");
        Возврат;
    КонецЕсли;
    
    ТабличнаяЧасть = Объект[ИмяТабличнойЧасти];
    
    БД.Первая();
    Пока Не БД.ВКонце() Цикл
        СторокаТЧ = ТабличнаяЧасть.Добавить();
    КонецЦикла;    
КонецПроцедуры
Показать

При выборе файла dbf программа зависает.
Я так понимаю, я не правильно обращаюсь к тч.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. shira84 226 25.06.15 16:06 Сейчас в теме
(1) baracuda, зациклился на первой строчке
5. baracuda 2 25.06.15 16:34 Сейчас в теме
(4) shira84, спасибо, помогло.

Теперь проблема в следуюшем.

В поле БД.NOMEN которое хранится в dbf файле у меня хранятся наименования номенлатуры из другой бд.
Как мне сделать проверку, на чтоб если наименование из файла равно наименованию из справочника номенлатуры, то подставить в ТЧ.Номенклатура найденную ссылку?

Если кусочек похожего кода для наглядности.
2. spezc 795 25.06.15 15:54 Сейчас в теме
имхо дело в БД.ВКонце()
3. shira84 226 25.06.15 16:04 Сейчас в теме
БД.Следующая() добавь в цикл
baracuda; +1 Ответить
6. spezc 795 25.06.15 17:19 Сейчас в теме
    Пока Не БД.ВКонце() Цикл
        СторокаТЧ = ТабличнаяЧасть.Добавить();
        СторокаТЧ.НайденнаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(БД.Name);
    КонецЦикла; 
baracuda; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот