powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Результаты запроса в файл
16 сообщений из 16, страница 1 из 1
Результаты запроса в файл
    #38402586
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли результаты запроса сохранить в файл\dbf???? Мне нужно данные из 1С перекачать в другую систему, похоже, что при таком объеме только bulk insert можно использовать без тормозов, но для этого нужно выгрузить куда-то данные.
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38402591
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro,
ctrl+F1 XBase
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38402829
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro,

Можно. При большом объеме можно даже в xml или даже брать напрямую из таблиц БД 1С. Вы версию 1С озвучьте для начала...
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38403043
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почти домучил до конца, но никак не могу понять ошибки, народ, ХЕЛП!!!
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
	Запрос = Новый Запрос();
	Запрос.Текст = "КАКОЙ-НИБУДЬ ЗАПРОС";
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выгрузить();
	База=Новый XBase;
	тп = "";
	Для Каждого колонка из Результат.Колонки Цикл
		Если Колонка.ТипЗначения.СодержитТип(Тип("Число")) Тогда тп = "N"; КонецЕсли;
		Если Колонка.ТипЗначения.СодержитТип(Тип("Строка")) Тогда тп = "S"; КонецЕсли;
		Если Колонка.ТипЗначения.СодержитТип(Тип("Дата")) Тогда тп = "D"; КонецЕсли;
		Если Колонка.ТипЗначения.СодержитТип(Тип("Булево")) Тогда тп = "L"; КонецЕсли;
		Если Колонка.ТипЗначения.СодержитТип(Тип("Неопределено")) Тогда тп = "M"; КонецЕсли; 
		База.поля.Добавить(АнгИмя(Колонка.Имя), тп, Колонка.Ширина);
		// "N" - число, "S" - строка, "D" - дата, "L" - булево, "F" - аналогично "N" - число, "M" - мемополе (не поддерживается). 
	КонецЦикла;	
	База.СоздатьФайл("D:\Other\test.dbf");	
	База.АвтоСохранение = Истина;
	Для Каждого строка из Выборка Цикл
		База.Добавить();
		Для к = 1 По Результат.Колонки.Количество() Цикл
			поле = База.УстановитьЗначениеПоля(колонка.Имя,Выборка.Получить(к));
			
		КонецЦикла;
		База.Записать();
	КонецЦикла;
	База.ЗакрытьФайл();


В результате выдает сначала сообщение (так понимаю, от драйвера)
Error #:200
File is not a Data File
D:\Other\test.dbf
В самом 1С выдает:
{Форма.Форма.Форма(73)}: Ошибка при вызове метода контекста (СоздатьФайл)
База.СоздатьФайл("D:\Other\test.dbf");
по причине:
Формат файла отличен от .DBF

Проверил екселем, файл открывается корректно, суда по структуре, dbf нормально прописался (заголовок)
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38403152
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сотрите файл перед его созданием.
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38403383
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже стирал, не помогает. может, дело в виндовс 8х64?
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38403399
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробовали с индексным создавать? Отладчиком останавливались?
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38404876
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я предлагаю вызывать 1С "из другой системы" и там уже парсить результат запроса - без всяких файликов.
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38405579
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как раз из пытаюсь уйти от предложенной схемы, т.к. вставка работала очень медленно из-за количества триггеров.
А вот решение загадочки:
Теперь окончательно понял, что 1С программировала женщина и заложила туда свою логику.
Если Колонка.ТипЗначения.СодержитТип(Тип("Строка")) Тогда тп = "S"; КонецЕсли;
Выдает Истина и одновременно с этим, под барабанную дробь:
Если Колонка.ТипЗначения.СодержитТип(Тип("Неопределено")) Тогда тп = "M"; КонецЕсли;
ВЫДАЕТ ИСТИНА!!! Ура, товарищи, салют, бдышь!!!!
Только в 1С значение тип может быть одновременно и "Неопределено", и "Строка"
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38405594
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Brasileiro,
конкретный тип и надо спрашивать у Значения.
А не у колонки - которая может содержать значения разных типов,ибо составные типы данных в 1с8 допускаются и используются.
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38405605
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Составной тип "Неопределенная строка" - гениально!
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38405747
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BrasileiroСоставной тип "Неопределенная строка" - гениально!Тип неопределено? Помоему у Вас ошибка. В колонке данных вполне может содеражаться несколько типов - я же не вижу Ваш запрос.

Если Колонка.ТипЗначения.СодержитТип(Тип("Неопределено")) Тогда тп = "M"; КонецЕсли;
Заменить на
Если тп = "" Тогда тп = "M"; КонецЕсли;

Не забудьте поставить тп = ""; первым в цикле.
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38406078
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сСодержитТип(Тип("Неопределено"))СодержитТип - проверили, что такой тип в реквизите (колонке) есть. Потом проверить конкретное хначение конкретной ячейки.

Конечно, в 1С тупые сидят. а умные по форумам шоркаются с вопросами, вместо того, чтобы прочитать книжки из комплекта.
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38406079
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, в предыдущий пост не попала копипаста
BrasileiroКак раз из пытаюсь уйти от предложенной схемы, т.к. вставка работала очень медленно из-за количества триггеров.
А вот решение загадочки:
Теперь окончательно понял, что 1С программировала женщина и заложила туда свою логику.
Если Колонка.ТипЗначения.СодержитТип(Тип("Строка")) Тогда тп = "S"; КонецЕсли;
Выдает Истина и одновременно с этим, под барабанную дробь:
Если Колонка.ТипЗначения.СодержитТип(Тип("Неопределено")) Тогда тп = "M"; КонецЕсли;
ВЫДАЕТ ИСТИНА!!! Ура, товарищи, салют, бдышь!!!!
Только в 1С значение тип может быть одновременно и "Неопределено", и "Строка"Конечно, в 1С тупые сидят. а умные по форумам шоркаются с вопросами, вместо того, чтобы прочитать книжки из комплекта.
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38406169
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BrasileiroВЫДАЕТ ИСТИНА!!! Ура, товарищи, салют, бдышь!!!!
Только в 1С значение тип может быть одновременно и "Неопределено", и "Строка"

тип значений может и не такое. учите матчасть, а то больше на истерию нуба походит
...
Рейтинг: 0 / 0
Результаты запроса в файл
    #38406276
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BrasileiroТолько в 1С значение тип может быть одновременно и "Неопределено", и "Строка"В мемориз.
И далась тебе эта ваыгрузка в ДБФ? Ты же ради неё корячишься чтобы определить тип колонки.
Определяй всё как строка и не парься.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Результаты запроса в файл
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]