![]() |
![]() |
![]() |
|
Как загружать с каталога фалы dbf с именем заканчивающимся на "d1" и "d2" | ☑ | ||
---|---|---|---|---|
0
Taffy
04.06.12
✎
10:20
|
Подскажите пожалуйста,правильно или нет??
КаталогФайла = "F:\ExportCRM on report\"+Каталог+"\"; МассивФайлов = НайтиФайлы(КаталогФайла,"*.dbf"); Для каждого ФайлДБФ Из МассивФайлов Цикл ИмяФайла = ФайлДБФ.Имя; Если ВРег(Прав(ИмяФайла,1)) = "d1" ИЛИ ВРег(Прав(ИмяФайла,1)) = "d2" Тогда ДБФ = Новый XBase; ДБФ.ОткрытьФайл(ПутьКФайлу); ДБФ.Кодировка=КодировкаXBase.OEM; //Проверка на наличие записей Если ДБФ.КоличествоЗаписей() = 0 Тогда Сообщить("Файл данных пуст"); ДБФ.ЗакрытьФайл(); //Возврат КонецЕсли; |
|||
1
0_Serg_0
04.06.12
✎
10:21
|
нет
|
|||
2
butterbean
04.06.12
✎
10:23
|
(0) как Прав(...,1) может быть равно "d1" или "d2"?? и тем более Врег()
|
|||
3
Taffy
04.06.12
✎
10:23
|
а как надо?
|
|||
4
Kavar
04.06.12
✎
10:24
|
для начла
НайтиФайлы(КаталогФайла,"*d?.dbf") |
|||
5
Kavar
04.06.12
✎
10:25
|
А потом
Если (Прав(ИмяФайла,1)) = "1" ИЛИ (Прав(ИмяФайла,1)) = "2" Тогда |
|||
6
Taffy
04.06.12
✎
10:31
|
спасибо!
|
|||
7
Taffy
04.06.12
✎
11:15
|
Можно еще вопрос?как загрузить в один документ "счет на оплату покупателю"-данные из 3 разных dbf?Когда выгружались все данные в один dbf делала так:
ДБФ = Новый XBase; ДБФ.ОткрытьФайл(ПутьКФайлу); ДБФ.Кодировка=КодировкаXBase.OEM; //Проверка на наличие записей Если ДБФ.КоличествоЗаписей() = 0 Тогда Сообщить("Файл данных пуст"); ДБФ.ЗакрытьФайл(); //Возврат КонецЕсли; //Переходим на первую строку файла ДокСчет=Документы.СчетНаОплатуПокупателю; ДБФ.Первая(); ПредыдущийНомер = 0; Док=Неопределено; Пока Истина Цикл //Создадим новый документ ТекущийНомер=ДБФ.NUMBERD; Дата=ДБФ.DATE; Если ТекущийНомер <> ПредыдущийНомер Тогда //записываем предыдущий документ Если Док<>Неопределено тогда Док.Записать(); КонецЕсли; Если ДокСчет.НайтиПоНомеру(ТекущийНомер,Дата)=ДокСчет.ПустаяСсылка() тогда //переходим к следующему документу Док = ДокСчет.СоздатьДокумент(); НовыйДокумент=Истина; Док.Номер= СокрЛП(ДБФ.NUMBERD); Док.Дата = Дата; Док.Организация = Справочники.Организации.НайтиПоНаименованию(СокрЛП(ДБФ.ORG)); Док.ВалютаДокумента =Справочники.Валюты.НайтиПоНаименованию(СокрЛП(ДБФ.VALD)); Док.Контрагент=Справочники.Контрагенты.НайтиПоНаименованию(СокрЛП(ДБФ.KONTR)); Док.СтруктурнаяЕдиница = Справочники.БанковскиеСчета.НайтиПоНаименованию(СокрЛП(ДБФ.NAMEBS)); ДоговорКонтрагента=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); ДоговорКонтрагента.Владелец = Док.Контрагент.Ссылка; ДоговорКонтрагента.Наименование = СокрЛП(ДБФ.NAMED); ДоговорКонтрагента.Номер = СокрЛП(ДБФ.NUMBER); ДоговорКонтрагента.ВидДоговора = Вычислить("Перечисления.ВидыДоговоровКонтрагентов."+СокрЛП(ДБФ.VID)); ДоговорКонтрагента.Дата = СокрЛП(ДБФ.DATED); ДоговорКонтрагента.ВалютаВзаиморасчетов=Справочники.Валюты.НайтиПоНаименованию(СокрЛП(ДБФ.VAL)); ДоговорКонтрагента.Организация =Справочники.Организации.НайтиПоНаименованию(СокрЛП(ДБФ.ORG)); ДоговорКонтрагента.Записать(); Док.ДоговорКонтрагента=ДоговорКонтрагента.Ссылка; Док.КратностьВзаиморасчетов=1; //Док.Записать(); Банк= Справочники.Банки.СоздатьЭлемент(); //Банк.КоррСчет=СокрЛП(ДБФ.KORS); //Банк.Код=СокрЛП(ДБФ.BIK); Банк.Наименование=СокрЛП(ДБФ.NAMEB); Банк.Записать(); БанкСчет=Справочники.БанковскиеСчета.СоздатьЭлемент(); БанкСчет.Владелец=Справочники.Организации.НайтиПоНаименованию(СокрЛП(ДБФ.ORG)); БанкСчет.Банк=Справочники.Банки.НайтиПоКоду(ДБФ.BIK); БанкСчет.Наименование=СокрЛП(ДБФ.NAMEBS); БанкСчет.ВалютаДенежныхСредств=Справочники.Валюты.НайтиПоНаименованию(СокрЛП(ДБФ.VAL)); //БанкСчет.НомерСчета=СокрЛП(ДБФ.COUNT); Банк.Записать(); БанкСчет.Записать(); иначе ДокСсылка=ДокСчет.НайтиПоНомеру(ТекущийНомер,Дата); Док=ДокСсылка.ПолучитьОбъект(); НовыйДокумент=Ложь; КонецЕсли; КонецЕсли; //Заполним табличную часть "Товары" ТекНоменклатура=Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ДБФ.NOM)); Если НовыйДокумент тогда НоваяСтрока=Док.Товары.Добавить(); НоваяСтрока.Номенклатура=ТекНоменклатура; иначе НайденныеСтроки=Док.Товары.НайтиСтроки(Новый Структура("Номенклатура",ТекНоменклатура)); Если НайденныеСтроки.Количество()>0 тогда НоваяСтрока=НайденныеСтроки[0]; иначе НоваяСтрока=Док.Товары.Добавить(); НоваяСтрока.Номенклатура=ТекНоменклатура; КонецЕсли; Конецесли; //НоваяСтрока.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ДБФ.NOM)); НоваяСтрока.ЕдиницаИзмерения= Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(СокрЛП(ДБФ.ED)); НоваяСтрока.Количество=СокрЛП(ДБФ.KOL); НоваяСтрока.Цена=СокрЛП(ДБФ.PRICE); НоваяСтрока.СтавкаНДС=СокрЛП(ДБФ.NDS); //Заполним табличную часть "Оплачено" ТекПлатежное=СокрЛП(ДБФ.NDOK); Если НовыйДокумент тогда НоваяОплачено= Док.Оплата.Добавить(); НоваяОплачено.НомерДокумента=ТекПлатежное; иначе НайденныеСтроки=Док.Оплата.НайтиСтроки(Новый Структура("НомерДокумента",ТекПлатежное)); //НоваяОплачено= Док.Оплата.Добавить(); Если НайденныеСтроки.Количество()>0 тогда НоваяОплачено=НайденныеСтроки[0]; иначе НоваяОплачено= Док.Оплата.Добавить(); НоваяОплачено.НомерДокумента=ТекПлатежное; КонецЕсли; КонецЕсли; НоваяОплачено.ДатаОплаты=СокрЛП(ДБФ.DATEO); НоваяОплачено.Сумма=СокрЛП(ДБФ.SUM); //НоваяОплачено.НомерДокумента=СокрЛП(ДБФ.NDOK); //Заполним табличную часть "Отгружено" ТекНоменклатура=Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ДБФ.NOM)); Если НовыйДокумент тогда НоваяОтгружено= Док.Отгрузка.Добавить(); НоваяОтгружено.Номенклатура=ТекНоменклатура; иначе НайденныеСтроки=Док.Отгрузка.НайтиСтроки(Новый Структура("Номенклатура",ТекНоменклатура)); Если НайденныеСтроки.Количество()>0 тогда НоваяОтгружено=НайденныеСтроки[0]; иначе НоваяОтгружено=Док.Отгрузка.Добавить(); НоваяОтгружено.Номенклатура=ТекНоменклатура; КонецЕсли; конецЕсли; НоваяОтгружено.ДатаОтгрузки=СокрЛП(ДБФ.DATEOT); НоваяОтгружено.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ДБФ.NOM)); НоваяОтгружено.Количество=СокрЛП(ДБФ.KOL); НоваяОтгружено.Цена=СокрЛП(ДБФ.PRICE); НоваяОтгружено.Сумма=СокрЛП(ДБФ.SUMOT); //КонецЕсли; //иначе // ДокСсылка=ДокСчет.НайтиПоНомеру(ТекущийНомер,Дата); // Док=ДокСсылка.ПолучитьОбъект(); //КонецЕсли; Если Не ДБФ.Следующая()Тогда Прервать; КонецЕсли; ПредыдущийНомер = ТекущийНомер; КонецЦикла; //записываем последний док Если Док<>Неопределено тогда Док.Записать(); КонецЕсли; |
|||
8
Taffy
04.06.12
✎
12:45
|
поняла какое фото:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |