![]() |
![]() |
![]() |
|
Выгрузка из DBF | ☑ | ||
---|---|---|---|---|
0
infik
13.09.11
✎
15:27
|
Добрый день. Имеем: Есть файл DBF из которого выгружается ID номенклатуры из одной базы, по реквизиту ищу эту номенклатуру в другой базе и подставляю в ТЧ значения. Суть проблемы: Не хочет искать ID по следующей строке DBF файла, а во всех последующих подставляет найденный в первой.
Процедура КнопкаВыполнитьНажатие(Кнопка) БД = Новый XBase; БД.ОткрытьФайл(Файл); БД.Кодировка = КодировкаXBase.OEM; БД.АвтоСохранение = Истина; Если БД.Открыта() Тогда БД.Первая(); Попытка ЧислоСтрока = Число(БД.ID); Исключение ЧислоСтрока = СокрЛП(БД.ID); КонецПопытки; ТабЧастьЗагрузка.Очистить(); Пока НЕ БД.ВКонце() Цикл НомерЗаписи = БД.НомерЗаписи(); Номен = Справочники.Номенклатура.НайтиПоРеквизиту("ID",ЧислоСтрока); НоваяСтрокаТЧ = ТабЧастьЗагрузка.Добавить(); НоваяСтрокаТЧ.Наименование = Номен; НоваяСтрокаТЧ.НомерДок = БД.number; НоваяСтрокаТЧ.ID = ЧислоСтрока; НоваяСтрокаТЧ.Количество = БД.amount; НоваяСтрокаТЧ.ДатаПоступления = БД.date; НайденЯчХран = Справочники.РарусЯчейкиХранения.НайтиПоНаименованию(БД.cell); Если НайденЯчХран = Справочники.РарусЯчейкиХранения.ПустаяСсылка() Тогда НовЯчХран = Справочники.РарусЯчейкиХранения.СоздатьЭлемент(); НовЯчХран.УстановитьНовыйКод(); НовЯчХран.Наименование = БД.cell; НовЯчХран.Записать(); НайденЯчХран = НовЯчХран.Ссылка; КонецЕсли; Если Номен.ЯчейкаХранения <> НайденЯчХран Тогда НоменОбъект = Номен.ПолучитьОбъект(); НоменОбъект.ЯчейкаХранения = НайденЯчХран; НоменОбъект.Записать(); КонецЕсли; НоваяСтрокаТЧ.ЯчейкаХранения = Номен.ЯчейкаХранения; НоваяСтрокаТЧ.Артикул = Номен.Артикул; НоваяСтрокаТЧ.Поставщик = Номен.ДокументРеестрЗапчастей.Поставщик1; НоваяСтрокаТЧ.ТехническаяКомпания = Номен.ДокументРеестрЗапчастей.Покупатель1; НоваяСтрокаТЧ.Цена1 = Номен.ДокументРеестрЗапчастей.Цена1; НоваяСтрокаТЧ.Себестоимость = Номен.ДокументРеестрЗапчастей.СебестоимостьЗаЕдиницу1; НоваяСтрокаТЧ.ЦенаЗаЕдиницу = Номен.ДокументРеестрЗапчастей.Цена2; НоваяСтрокаТЧ.СебестоимостьПартия = Номен.ДокументРеестрЗапчастей.СебестоимостьЗаЕдиницу1 * БД.amount; НоваяСтрокаТЧ.Стоимость = Номен.ДокументРеестрЗапчастей.Цена1 * БД.amount; НоваяСтрокаТЧ.СтоимостьПокупка = Номен.ДокументРеестрЗапчастей.Цена2 * БД.amount; БД.Следующая(); КонецЦикла; Иначе Сообщить("Не могу открыть файл"); КонецЕсли; БД.ЗакрытьФайл(); КонецПроцедуры |
|||
1
poligraf
13.09.11
✎
15:30
|
Отладчик поломался?
Не можешь посмотреть как (не)изменяется у тебя "ЧислоСтрока"? |
|||
2
infik
13.09.11
✎
15:39
|
Разобрался. Попытку надо было включить в цикл)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |