Внешняя Обработка

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

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

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

на слово существует ругается
Значение не является значением объектного типа (Существует)
пробовал ложь истина тоже ругается
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. pipos522 8 24.07.13 11:35 Сейчас в теме
Процедура Выгрузка() Экспорт
  // Запись данных Документа в 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', ДатаКон, КонецДня(ДатаКон)));
	НастройкаПериода.РедактироватьКакИнтервал = Истина;
	НастройкаПериода.РедактироватьКакПериод = Истина;
	НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
	НастройкаПериода.Редактировать();
	ДатаНач = НастройкаПериода.ПолучитьДатуНачала();
	ДатаКон = НастройкаПериода.ПолучитьДатуОкончания();
КонецПроцедуры


ДатаНач = НачалоМесяца(ТекущаяДата());
ДатаКон = КонецМесяца(ТекущаяДата());
Выгрузка();
Показать
Оставьте свое сообщение

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