Выгрузка (Внешняя обработка)

1. Гость 24.07.13 11:55
делаю выгрузку DBF которая каждые 10мин выгружает данные (програмистом не являюсь делаю по аналогиям с других выгрузок) выгрузка выгружает за текущий месяц я хочу что бы 1й раз она создала вайл Xbase а все послед разы просто добовляла в сущесвующий файл ифу
Если Файл.Существует() Тогда

и дальше пишу База.ОткрытьФайл(Путь+"\"+"Kus"+Год+Мес); открыть и тд

Если Не Файл.Существует() Тогда

на слово существует ругается
Значение не является значением объектного типа (Существует)
пробовал ложь истина тоже ругается
По теме из базы знаний
Вознаграждение за ответ
Для передачи вознаграждения воспользуйтесь кнопкой "Отдать $m" в сообщении. Для возврата вознаграждения, отдайте его самому себе. Можно вознаграждение разделить между несколькими участниками. Не забывайте нажимать кнопку "Это решение", это повысит вашу репутацию.
Показать полностью
Найденные решения
5. Walker.pro 8 24.07.13 12:43 Сейчас в теме
Нужно добавить строчку:

Файл = Новый Файл(Путь+"\"+"Kus"+Год+Мес);

перед
Если Файл.Существует() Тогда
pipos522; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. pipos522 8 24.07.13 11:55 Сейчас в теме
Процедура Выгрузка() Экспорт
  // Запись данных Документа в DBF-файл:
Путь =  "C:\Users\asu7\Desktop";
  Год  = Формат(ТекущаяДата(),"ДФ='г'");
  Мес  = Формат(ТекущаяДата(),"ДФ=ММ");
Если СтрДлина(Год)>1 Тогда
  Год = Сред(Год,СтрДлина(Год),1);
КонецЕсли;


Файл = Путь+"\"+"Kus"+Год+Мес;
	//Проверка существования!
	База = Новый XBase();
	//Если существует
	Если Файл.Существует() Тогда

База.ОткрытьФайл(Путь+"\"+"Kus"+Год+Мес);
	Запрос = Новый Запрос();
	Текст = "ВЫБРАТЬ	
	|	ШтрихКодРазбракованнаяТкань.ШтрихКод КАК ШтрихКод,
	|	ШтрихКодРазбракованнаяТкань.Владелец.НомерКуска КАК НомерКуска
	|ПОМЕСТИТЬ Штрих
	|ИЗ
	|	РегистрСведений.ШтрихКодРазбракованнаяТкань КАК ШтрихКодРазбракованнаяТкань
	|ГДЕ
	|	ШтрихКодРазбракованнаяТкань.Владелец.ДатаНачалаПроцесса>= &ДатаНач
	|	И ШтрихКодРазбракованнаяТкань.Владелец.ДатаНачалаПроцесса <= &ДатаКон
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|
	|	РазбракованнаяТкань.Артикул КАК Артикул,
	|	РазбракованнаяТкань.ДатаНачалаПроцесса Дата,
	|	РазбракованнаяТкань.НомерПаспорта НомерПаспорта,
	|	РазбракованнаяТкань.ПользовательПОС.ПарольОператора Пароль,
	|	РазбракованнаяТкань.НомерКуска КАК НомерКус,
	|	РазбракованнаяТканьТкань.Номенклатура.КодНоменклатурыФабрики КАК Код,
	|	РазбракованнаяТканьТкань.СортностьТкани.Код КАК Сорт,
	|	РазбракованнаяТканьТкань.ОбщаяДлинаОбрабатываемойТкани КАК Длина,
	|	РазбракованнаяТканьТкань.КодНоменклатуры КАК КодНом,
	|	РазбракованнаяТканьТкань.ДлинаУсловныхВырезов КАК Вырезы,
	|	РазбракованнаяТканьТкань.Номенклатура.КодНоменклатурыТДЛ КАК ТДЛ
	|ПОМЕСТИТЬ Кус
	|ИЗ                           
	|	Документ.РазбракованнаяТкань.Ткань КАК РазбракованнаяТканьТкань
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РазбракованнаяТкань КАК РазбракованнаяТкань
	|		ПО РазбракованнаяТканьТкань.Ссылка = РазбракованнаяТкань.Ссылка
	|ГДЕ
	|	РазбракованнаяТкань.ДатаНачалаПроцесса >= &ДатаНач
	|	И РазбракованнаяТкань.ДатаНачалаПроцесса <= &ДатаКон
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	| Кус.Дата,
	| Кус.Пароль,
	| Кус.НомерПаспорта,
	| Кус.Артикул,
	| Штрих.Штрихкод,
	| Штрих.НомерКуска,
	| Кус.НомерКус,
	| Кус.Код,
	| Кус.Сорт,
	| Кус.Длина,
	| Кус.КодНом,
	| Кус.Вырезы,
	| Кус.ТДЛ
	|ИЗ
	| Штрих КАК Штрих
	| ЛЕВОЕ СОЕДИНЕНИЕ Кус КАК Кус
	| ПО Штрих.НомерКуска = Кус.НомерКус
	|";
	Запрос.Текст  = Текст;	
	ДатаОкончания = ?(ДатаКон = '00010101', ТекущаяДата(), КонецДня (ДатаКон));		
	Запрос.УстановитьПараметр("ДатаКон", ДатаОкончания);
	Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач));
	Результат = Запрос.Выполнить();
	Выборка   = Результат.Выгрузить();
		Для каждого Строка из Выборка Цикл	
		База.Добавить();	
		База.Date    = Строка.Дата;
		База.Lnom    = Строка.Пароль;
		База.Kod_art = Строка.Код;
		База.Art     = Строка.Артикул;
		База.Sort    = Строка.Сорт;
		База.Len     = Строка.Длина;
		База.N_n     = Строка.КодНом;
		База.S_kod   = Строка.Штрихкод;
		База.Uslv    = Строка.Вырезы;
		База.N_kus   = Строка.НомерКуска;
		База.N_Pas   = Строка.НомерПаспорта;
		База.TDL     = Строка.ТДЛ;
		База.Записать();
	КонецЦикла;
    База.Добавить();
	База.Записать();
	ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;	
//Если не существует
Если Не Файл.Существует() Тогда

База = Новый XBase();
База.Поля.Добавить("Date","D","15");
База.Поля.Добавить("Lnom","s","10");
База.Поля.Добавить("N_zak","S","10");
База.Поля.Добавить("N_part","N","15");
База.Поля.Добавить("Kodd","N","5");
База.Поля.Добавить("Kod_art","N","5");
База.Поля.Добавить("Art","S","11");
База.Поля.Добавить("Sort","N","2");
База.Поля.Добавить("Len","N","10","3");
База.Поля.Добавить("N_n","N","5");
База.Поля.Добавить("S_kod","S","25");
База.Поля.Добавить("Uslv","N","10","3");
База.Поля.Добавить("N_kus","N","11");
База.Поля.Добавить("N_pas","N","10");
База.Поля.Добавить("TDL","N","10");
База.СоздатьФайл(Путь+"\"+"Kus"+Год+Мес);
База.Записать();

База.Кодировка = КодировкаXBase.OEM;
Массив = Новый Массив;

Запрос = Новый Запрос();
Текст = "ВЫБРАТЬ	
|	ШтрихКодРазбракованнаяТкань.ШтрихКод КАК ШтрихКод,
|	ШтрихКодРазбракованнаяТкань.Владелец.НомерКуска КАК НомерКуска
|ПОМЕСТИТЬ Штрих
|ИЗ
|	РегистрСведений.ШтрихКодРазбракованнаяТкань КАК ШтрихКодРазбракованнаяТкань
|ГДЕ
|	ШтрихКодРазбракованнаяТкань.Владелец.ДатаНачалаПроцесса>= &ДатаНач
|	И ШтрихКодРазбракованнаяТкань.Владелец.ДатаНачалаПроцесса <= &ДатаКон
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
|
|	РазбракованнаяТкань.Артикул КАК Артикул,
|	РазбракованнаяТкань.ДатаНачалаПроцесса Дата,
|	РазбракованнаяТкань.НомерПаспорта НомерПаспорта,
|	РазбракованнаяТкань.ПользовательПОС.ПарольОператора Пароль,
|	РазбракованнаяТкань.НомерКуска КАК НомерКус,
|	РазбракованнаяТканьТкань.Номенклатура.КодНоменклатурыФабрики КАК Код,
|	РазбракованнаяТканьТкань.СортностьТкани.Код КАК Сорт,
|	РазбракованнаяТканьТкань.ОбщаяДлинаОбрабатываемойТкани КАК Длина,
|	РазбракованнаяТканьТкань.КодНоменклатуры КАК КодНом,
|	РазбракованнаяТканьТкань.ДлинаУсловныхВырезов КАК Вырезы,
|	РазбракованнаяТканьТкань.Номенклатура.КодНоменклатурыТДЛ КАК ТДЛ
|ПОМЕСТИТЬ Кус
|ИЗ                           
|	Документ.РазбракованнаяТкань.Ткань КАК РазбракованнаяТканьТкань
|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РазбракованнаяТкань КАК РазбракованнаяТкань
|		ПО РазбракованнаяТканьТкань.Ссылка = РазбракованнаяТкань.Ссылка
|ГДЕ
|	РазбракованнаяТкань.ДатаНачалаПроцесса >= &ДатаНач
|	И РазбракованнаяТкань.ДатаНачалаПроцесса <= &ДатаКон
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
| Кус.Дата,
| Кус.Пароль,
| Кус.НомерПаспорта,
| Кус.Артикул,
| Штрих.Штрихкод,
| Штрих.НомерКуска,
| Кус.НомерКус,
| Кус.Код,
| Кус.Сорт,
| Кус.Длина,
| Кус.КодНом,
| Кус.Вырезы,
| Кус.ТДЛ
|ИЗ
| Штрих КАК Штрих
| ЛЕВОЕ СОЕДИНЕНИЕ Кус КАК Кус
| ПО Штрих.НомерКуска = Кус.НомерКус
|";

	Запрос.Текст  = Текст;	
  	ДатаОкончания = ?(ДатаКон = '00010101', ТекущаяДата(), КонецДня (ДатаКон));		
   	Запрос.УстановитьПараметр("ДатаКон", ДатаОкончания);
   	Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач));
	
	Результат = Запрос.Выполнить();
	Выборка   = Результат.Выгрузить();
		
// В Таблицу	
	Для каждого Строка из Выборка Цикл	
	База.Добавить();	
	База.Date    = Строка.Дата;
	База.Lnom    = Строка.Пароль;
	База.Kod_art = Строка.Код;
	База.Art     = Строка.Артикул;
	База.Sort    = Строка.Сорт;
	База.Len     = Строка.Длина;
	База.N_n     = Строка.КодНом;
	База.S_kod   = Строка.Штрихкод;
	База.Uslv    = Строка.Вырезы;
	База.N_kus   = Строка.НомерКуска;
	База.N_Pas   = Строка.НомерПаспорта;
	База.TDL     = Строка.ТДЛ;
	База.Записать();
	
	   КонецЦикла;
База.Записать();
База.ЗакрытьФайл();
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры

Процедура ВыбПериодНажатие(Элемент)
	НастройкаПериода = Новый НастройкаПериода;
	НастройкаПериода.УстановитьПериод(ДатаНач, ?(ДатаКон='0001-01-01', ДатаКон, КонецДня(ДатаКон)));
	НастройкаПериода.РедактироватьКакИнтервал = Истина;
	НастройкаПериода.РедактироватьКакПериод = Истина;
	НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
	НастройкаПериода.Редактировать();
	ДатаНач = НастройкаПериода.ПолучитьДатуНачала();
	ДатаКон = НастройкаПериода.ПолучитьДатуОкончания();
КонецПроцедуры


ДатаНач = НачалоМесяца(ТекущаяДата());
ДатаКон = КонецМесяца(ТекущаяДата());
Выгрузка();
Показать
6. Walker.pro 8 24.07.13 12:54 Сейчас в теме
(2) pipos522,
Файл = Новый Файл(Путь+"\"+"Kus"+Год+Мес);
//Проверка существования!
База = Новый XBase();
//Если существует
Если Файл.Существует() Тогда
3. ediks 337 24.07.13 12:17 Сейчас в теме
правильно ругается - объект Файл не создан

Файл (File)
По имени файла
Синтаксис:

Новый Файл(<Имя>)
Параметры:

<Имя> (обязательный)

Тип: Строка.
Полное имя файла или каталога, с которым будет связан конструируемый объект.
Описание:

Создает новый файловый объект, связанный с указанным файлом.
Пример:

ВыбФайл = Новый Файл(ВыбранноеИмяФайла);

Показать
4. pipos522 8 24.07.13 12:37 Сейчас в теме
(3) ediks, подскажите по конкретней
Если Файл.Существует() Тогда
что мне нужно заместо этого написать
5. Walker.pro 8 24.07.13 12:43 Сейчас в теме
Нужно добавить строчку:

Файл = Новый Файл(Путь+"\"+"Kus"+Год+Мес);

перед
Если Файл.Существует() Тогда
pipos522; +1 Ответить
7. pipos522 8 24.07.13 13:06 Сейчас в теме
Спасибо все получилось
Оставьте свое сообщение

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