К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Внешний источник данных - файл EXCEL

0 - 22.06.2016 - 11:11
есть файл экселя. в нем технические параметры комплектующих. Причем у разных единиц набор параметров может отличаться по количеству параметров (у кого-то только один диаметр присоединительной резьбы, у другого - два диаметра, у третьего четыре, у пятого есть еще и угол изгиба и т.п.).
Т.е. заранее сколько будет полей (и листов) в файле неизвестно. Но хотелось бы использовать эти данные в запросе через внешний источник данных. Вот только непонятно, как обработчик будет работать с такой структурой... Кто-нибудь делал что-нибудь похожее?



Гость
1 - 22.06.2016 - 11:50
ну в 1С 7.7 делали )))
Гость
2 - 22.06.2016 - 12:15
0-bma1 > А эти самые ексели, что, делаются разными людьми, со своим собственными хохряками? Тады никак.
Иначе вначале разрабатываем шаблоны. И пока не удастся исполнителей им следовать (уговорами, угрозами увольнения, отстрелом, ets.) про обработчик даже не думаем.

1-101 > В 7.7 формировали ТЗ, в 8.х можно формировать структуру. Тем паче, что Клиент ТЗ не знает.
Гость
3 - 22.06.2016 - 12:24
SQLite можно припахать. Два шага: на первом создаем .db, на втором из 1С присасываемся к .db
4 - 22.06.2016 - 12:48
(1) На клюшках любой дурак сделает.
(2) Ну, что-то типа правил заполнения создать можно. Но все равно, структура листов будет разная. Вот это и смущает.
Гость
5 - 22.06.2016 - 12:49
по моим представлениям в таких задачах надо четко условится о спецификациях обмена, должно быть четко понятно, что находится в каком файле и как расположено. То есть полностью формализован интерфейс обмена или как VZ называет шаблоны. Тогда открываешь, читаешь вид, затем по виду берешь нужный алгоритм и разбираешь
Гость
6 - 22.06.2016 - 12:51
либо читать как есть и потом парсить )
Гость
7 - 22.06.2016 - 12:59
6-USSR > "потом парсить" - это просто откладывать неизбежное на другой этап. Алгоритм распознавания никак не изменится.
Гость
8 - 22.06.2016 - 13:02
(7)я согласен )
Гость
9 - 22.06.2016 - 13:04
Наличие четких спецификаций существенно повышает ответственность сторон, участвующих в процессе ) ID вида файла, в нем ID видов листов, в листе ID параметров и их значения
10 - 22.06.2016 - 13:07
2(5) Формально правила будут примерно такие:
на каждом листе номенклатура с одинаковым набором параметров.
На листе первой строкой идут слово "артикул" и потом названия колонок (стандартизованные, названия параметров из внутренней документации берется (там есть чертежи всех этих комплектующих с ключевыми размерами и их обозначениями латиницей и цифирью, типа L - Длина (общая), LT12 - длина хвостовика первого присоединения (у всех)), DD31 - диаметр третьей присоединительной части, FX1 - смещение оси первой присоединительной части от базы по оси х и т.п.)
И со второй строки сами позиции и значения параметров без пропусков.
Конструктора так ведут свою документацию.
Проанализировать врукопашную файл без запросов - элементарно, а вот загнать его во внешний источник данных, чтоб внутри запроса его раскручивать и в отчеты можно было выводить - тут уже у меня затык в мозгах...
Гость
11 - 22.06.2016 - 13:21
10-bma1 > Просто для каждого варианта таблицы делаешь отдельный файл .db - Type1.db, Type2.db ets. В каждой таблице свой набор полей.
Потом, при соединении просто пишешь:
ПараметрыСоединения = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
ПараметрыСоединения.СтрокаСоединения = "DRIVER=SQLite3 ODBC Driver;Database=" + Type1 + ";BigInt=1;";
ВнешниеИсточникиДанных.Type1.УстановитьОбщиеПараме трыСоединения(ПараметрыСоединения);
ВнешниеИсточникиДанных.Type1.УстановитьСоединение( );
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
....
Как-то так ...
12 - 22.06.2016 - 13:25
2(11) Заранее варианты не создать. Это же конструктора, они себе черта в ступе нарисуют и в свой файлик закинут. И там будет такой набор параметров, что никак заранее предусмотреть не можно.
Гость
13 - 22.06.2016 - 13:45
12-bma1 > Ну, извини. У компа интеллекта нема. Для него слово "Диаметр" - просто набор байтов. Он их не понимает.
Гость
14 - 22.06.2016 - 13:57
(13)По поводу диаметра не совсем соглашусь, потому что в прикладном решении, которое будет читать (это видимо 1С) можно завести словарь идентификаторов и программа будет прекрасно понимать, что "диаметр" это "диаметр", а не просто набор байтов
15 - 22.06.2016 - 14:19
2(13, 14) Да ничего там расшифровывать не надо. Данные будут называться как колонки в экселе: LT12, FX2 etc. так пользователям и требуется.
Гость
16 - 22.06.2016 - 16:56
Выход: написать "преобразователь", который будет превращать неформализованные мысли конструкторов в структурированные таблицы. И уже эти таблицы - давать на вход отчета.


К списку вопросов






Copyright ©, Все права защищены