делаю выгрузку DBF которая каждые 10мин выгружает данные (програмистом не являюсь делаю по аналогиям с других выгрузок) выгрузка выгружает за текущий месяц я хочу что бы 1й раз она создала вайл Xbase а все послед разы просто добовляла в сущесвующий файл ифу
Если Файл.Существует() Тогда
и дальше пишу База.ОткрытьФайл(Путь+"\"+"Kus"+Год+Мес); открыть и тд
Если Не Файл.Существует() Тогда
на слово существует ругается
Значение не является значением объектного типа (Существует)
пробовал ложь истина тоже ругается
Если Файл.Существует() Тогда
и дальше пишу База.ОткрытьФайл(Путь+"\"+"Kus"+Год+Мес); открыть и тд
Если Не Файл.Существует() Тогда
на слово существует ругается
Значение не является значением объектного типа (Существует)
пробовал ложь истина тоже ругается
По теме из базы знаний
- Внешняя обработка выгрузки прайса в формате XML (для обмена с интернет-магазином), версия2 (8.2)
- Выгрузка внешних отчетов и обработок в каталог (обычное приложение)
- Выгрузка внешних отчетов и обработок
- Выгрузка внешних отчетов и обработок в каталог для типовых конфигураций (обычное приложение)
- Выгрузка реестров по компенсации части родительской платы в Сбербанк
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура Выгрузка() Экспорт
// Запись данных Документа в 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', ДатаКон, КонецДня(ДатаКон)));
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
НастройкаПериода.Редактировать();
ДатаНач = НастройкаПериода.ПолучитьДатуНачала();
ДатаКон = НастройкаПериода.ПолучитьДатуОкончания();
КонецПроцедуры
ДатаНач = НачалоМесяца(ТекущаяДата());
ДатаКон = КонецМесяца(ТекущаяДата());
Выгрузка();
Показать
Это решение
правильно ругается - объект Файл не создан
Файл (File)
По имени файла
Синтаксис:
Новый Файл(<Имя>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Полное имя файла или каталога, с которым будет связан конструируемый объект.
Описание:
Создает новый файловый объект, связанный с указанным файлом.
Пример:
ВыбФайл = Новый Файл(ВыбранноеИмяФайла);
ПоказатьПо имени файла
Синтаксис:
Новый Файл(<Имя>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Полное имя файла или каталога, с которым будет связан конструируемый объект.
Описание:
Создает новый файловый объект, связанный с указанным файлом.
Пример:
ВыбФайл = Новый Файл(ВыбранноеИмяФайла);
Это решение
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот