|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Arioch, а нафига оно надо собирать ещё какие промежуточные форматы? Ты ещё XSLT ему предложи чтобы из XML в любой формат преобразовывать ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:19 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Di_LIneПолюбасу - берется файлик и вычитывается от первого до последнего байта, с анализом "а ты кто?" ...а если он не только парсится ? или даже не столько парсится, сколько выполняются другие операции поверх парсинга ? типа валидации и построения дерева объектов, без чего можно бы и обойтись. цитату я приводил, скорость парсера в 2-3 раза выше скорости чтения винчестера ( в идеальном дял посленего случае ) - так что ограничение все равно не в парсере будет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:21 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
[quote Симонов Денис]а нафига оно надо собирать ещё какие промежуточные форматы? 1. чтобы не дублировать код импорта в БД ни по программам, ни по компьютерам 2. чтобы можно было вести истрию обновлений 3. чтобы можно было раследовать ошибки, с помощью п.2 Симонов ДенисТы ещё XSLT ему предложи чтобы из XML в любой формат преобразовывать у него задача противоположная, так что ты cильно не в кассу с XSLT ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:23 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Arioch - что дали то и жуй - Ыщо один...:-))))) PS. Для разрядки. Как-то давным давно пристала фирма "хотим экспорт-импорт с вами!" Ну лана, раз хОчите и денег даете, так пуркуа бы не па?... Давайте через пару дней встретимся и согласуем тех. моменты. В назначенный срок приехал к ним. Ихний сам-глав и главный кодер. Дают мне листок с 2-мя строчками "ТЗ-импорт" и в 3 строки "ТЗ-экспорт". - Хм... Отдал им свою бамашку: 15 страниц "ТЗ-импорт" и 25 стр с "ТЗ-экспорт". Внимание вапрос: - Кто курил бамбук, а кто переплюнул Сизифа? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:30 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Ariochцитату я приводил, скорость парсера в 2-3 раза выше скорости чтения винчестера ( в идеальном дял посленего случае ) - так что ограничение все равно не в парсере будет Отсыл к скорости винта - прыжок в сторону. - Щетай это константой и выноси за скобки, как в математике. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:33 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Di_LIne, с хрена ли выносить за скобки, если в нрмальном парсере к окончанию загрузки файла 90% его уже будет разобрано ? ну а если и выносить, то тогда время парсинга считай не в секундах, а в процентах от ВСЕЙ задачи в целом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:36 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Di_LIne - Кто курил бамбук, а кто переплюнул Сизифа? а смотря чей ТЗ выбрали в итоге я вот не думаю, что 1С согласитс на ТЗ написанный автором ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:37 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Я это к тому, штоп прекратить кидание на вентилятор терминов. А перевернуть задачу: - Пусть 1-Цешник выгружает дельты, в удобном для меня формате, в удобное место. - Не, ну ачёткова? (одно слово) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:40 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Ariochа смотря чей ТЗ выбрали в итоге я вот не думаю, что 1С согласитс на ТЗ написанный автором Пытаешься опровергнуть постулат: - Кому больше надо, тот и пашет? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:44 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Ariochс хрена ли выносить за скобки, если в нрмальном парсере к окончанию загрузки файла 90% его уже будет разобрано ? - Сие не есть факт, мистер Дюк. (кина про Неуловимых) Это - оптимистичный прогноз. ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:46 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Di_LIne, ну если сравнивать пессимистичные парсеры - то я со всем согласный, кривые парсеры XML на порядки хуже хороших парсеров JSON ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:49 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Di_LIneВопрос на засыпку то Олл: - Чем отличается кодер и прогера? Тем, что на "ой, нада сделать ко вчера!" прогер с начала думает "как сделать, штоп ни чего не делать?", а кодер - "Да я ща, за 6 сек наваяю!" :-)) Симонов ДенисНо я думаю что ТС в любом случае придётся работать с тем что ему дадут 1Cники Это - подход кодера. :-) Ща обидно было. И да у меня варианта нет. Или лазить самому по базам. Или 1сники формируют файл как могут. А я уже потом к этому формату сведу и текстовые файлы и выгрузки из других БД. Всем ответить не могу. Да даже прочитать всех не могу. Вот: Есть у них там выгрузка (написал один товарищ) и выложил всем. которая устраивает 1Сника. Там ему напильником делать особо нечего, только подсунуть мой запрос для выгрузки МНЕ НУЖНЫХ данных. Работает эта шляпа так: Бухгалтер поработал, внес изменения в платежки (импортировал из банка или т.п.) если ЗАКОНЧИЛ на сейчас глобальные внесения. Жмет кнопку. Формируется файл с изменениями в платПоручениях. я его забираю. грохаю. Если бух забыл жмякнуть вовремя кнопку. То такой файл будет сформирован при закрытии 1С. (если бухгалтер забыл жмякнуть кнопку и держит 1с сутками открытую а там критические и срочные данные - это проблема бухгалтера, с начальством РЕШЕНО, карательные меры придуманы и будут доведены до пользователей) Если я файл не грохнул(не забрал) еще, а изменения уже есть. Файл будет дописан... и так до посинения пока 1С при старте не увидит что файла НЕТ. С этого момента она (при изменениях и только при них) сформирует новый файл только с актуальными с последней версии файла(уже полученного мной) данными. 2. Вижу так: Файлы с удаленок летят в каталоги на сервере (ну не может 1Сник переименовать файлы)))) ему проще по каталогам их разложить). Сижу (сервисом) на серваке: Курю бамбук и отъедаю ресурсы... бах. В каталоге XXX появляется файл "тоЧеНадо.xml". Стартую утилиту импорта с параметрами "d:\\xxx\тоЧеНадо.xml" и потащил его в GTT. Удачно унес? Ок. Переношу исходный файл в архив. Грохаю файл(сигнал 1с = я тебя понял, этот импорт получен. Следующий импорт с этого места) Вот немного не ясно как поведет себя ГТТ когда 2 таких таблиц прилетит одномоментно... но это просто надо опытным путем на игрушке смотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 13:52 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
dgdogЩа обидно было. А что бы было время на "пообижаться", сядь и не спеша продумай формат этих файликов. Что тебе(!) потом было проще с ними разбираться и вносить изменения/дополнения при расширении данных/объемов и тп. В опчем - речь про ТЗ одноЦешнику. А не кидаться терминами, типа "в XML-формате". Бо каждый это понимает по своему и доказать обратное ты не сможешь, если нету ТЗ. А он, цешник, за тебя думать не будет и тем более лишнее напрягаться, кое и нафех ему не надо. А ТЗ на экспорт/импорт утверди у начальства. Штоп прикрыть свою точку G, если чё. ;-) А это "чё", с 90% вероятностью наступит. И потом бум вместе "обижаться" граммов эдак три-по-стописят. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:07 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Arioch...я вот не думаю, что 1С согласитс на ТЗ написанный автором - а вот так можешь? 1C - нет. - а в текстовый? 1c - возможно. Но не факт. - а как можешь? 1с - ну XML родной формат. - ну х*й с тобой пусть xml. а давать только измененную инфу с последнего импорта можешь? 1c - нет. Ну... быть может, если ты мне как в интернет магазинах будешь ответный файл давать че у тебя есть и сколько, а чего у тебя нет... ... - Я вот тут порылся в вашей ё*аной ОдынЭс. Смотри если два плана выгрузки завести и следить ... вот так, так и так... вот ссылка на форум 1с там все что надо чувак сделал для стороннего интернет магазина. Обмен файлами. За актуальностью следит сам. Только вместо запроса товара надо чтоб выгружались платежки ВСЁ. 1с - эээ... ну я попробую. На одной базе... но не обещаю. И будет как у него xml. - Дай ченить я уж разгребу формат. Все лучше чем к базам коннектиться... 1с - попробую к пятнице ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:10 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
AriochГо-стхипропущено... Сильно сомневаюсь, что план тут влияет, тем более по справочникам - думаю, время его построения находится за разрядной сеткой. А если там сортировка без индексов? пока ВСЕ строки не выберешь - не отсортируешь... Вообще речь шла про подготовку планов, а не выполнение запроса вместе с фетчем. А про разрядную сетку - это значит, что величина настолько мала, что не помещается в отведенный вещественный тип (стремится к нулю, проще говоря :) ) По поводу PickList: если я правильно понимаю, сейчас весь справочник фетчится, перегоняется в stringlist и присваивается соотв свойству столбца грида? А почему бы не сделать Lookup, который будет связан с датасетом, фетча записи при необходимости? Да и фильтрацию можно запросами реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:12 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
dgdogа давать только измененную инфу с последнего импорта можешь? 1c - нет. Врёт. Ещё в 8.0 была штатная процедура экспорта только изменённых документов, используемая для репликации. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:14 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovdgdogа давать только измененную инфу с последнего импорта можешь? 1c - нет. Врёт. Ещё в 8.0 была штатная процедура экспорта только изменённых документов, используемая для репликации. Знаю, что лень ему (или некогда). У него отпуск с первого числа. Ребенок маленький. Баз по городу (на содержании) штук 20-30. Обновления постоянно летят. Везде разные версии... там допили, тут переработай тут напиши доп.обработку. А тут я такой "срочно кнопку. срочно импорт." Как бы понятно все. Про механизм "репликации" сам посмотрю и у него спрошу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:22 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
dgdogСтартую утилиту импорта с параметрами "d:\\xxx\тоЧеНадо.xml" и потащил его в GTT. Удачно унес? Ок. Переношу исходный файл в архив. Грохаю файл ............... Вот немного не ясно как поведет себя ГТТ когда 2 таких таблиц прилетит одномоментно... но это просто надо опытным путем на игрушке смотреть Что-то у тебя с логикой работы GTT не складывается Если "утилита импорта" будет только переносить в промежуточную табличку то они (временные таблицы) тебе не помогут ибо по завершении транзакции(коннекта) все данные в них грохнутся. Если же "утилита" будет полностью обрабатывать все данные, т.е. пересла их в GTT и обработала (раскидала как надо и куда надо) то тогда GTT это то что надо. Вот только при этом "Грохать файл" надо после обработки всех данных, а не после их переноса в GTT. ну и по поводу "как поведет себя ГТТ когда 2 таких таблиц прилетит одномоментно" - хорошо поведет себя тобишь об этом беспокоиться не надо "никто/ничего и не узнает" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:24 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
dgdog- а вот так можешь? 1C - нет. - а в текстовый? 1c - возможно. Но не факт. - а как можешь? 1с - ну XML родной формат. - ну х*й с тобой пусть xml. а давать только измененную инфу с последнего импорта можешь? 1c - нет. Ну... быть может, если ты мне как в интернет магазинах будешь ответный файл давать че у тебя есть и сколько, а чего у тебя нет... ... (скип)... 1с - попробую к пятнице Как там у Классика? - Вдарил раз. Специалист! Видно по нему.... :-))) (Что, в опщем-то, и предполагалось по дефоулту.) Раз ни как не магёт, пусть дельты пихает в отдельную таблю. А если он и этого... автор Не смогешь -- кого винить? -- Я должон тебя казнить. Государственное дело -- Ты улавливаешь нить?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:29 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
m7m...Если же "утилита" будет полностью обрабатывать все данные, т.е. пересла их в GTT и обработала (раскидала как надо и куда надо) то тогда GTT это то что надо. Вот только при этом "Грохать файл" надо после обработки всех данных, а не после их переноса в GTT. ну и по поводу "как поведет себя ГТТ когда 2 таких таблиц прилетит одномоментно" - хорошо поведет себя тобишь об этом беспокоиться не надо "никто/ничего и не узнает" Понял спасибо. Утилита ГТТ (планирую) по подключению. Т.е. Утилита подняла исходный файл, вживила данные в ГТТ. Запустила ХП. Доработала остатки напильником. Отдала команду перенести все что осталось из ТТГ в по табличкам. Проверила. Отпустила базу. Закрылась (эта версия ТТГ схлопнулась)... вроде так. В какой момент грохать файл? Это же сигнал для 1с, что импорт получен. Вот я забрал данные и обрабатываю, а ну как 1С в имеющийся ещё файл чего дописать решит. Дописала, я не вкурсе. Обработал данные и грохаю файл. 1С ведь думает, что она мне и последние строчки передала... да... Вижу: или дату изменения файла проверять перед импортом и в момент удаления файла (если не сошлись, то импорт переделать) или тащить файл в темповую папку и оттуда имортировать уже. А 1с пусть дальше че хочет то и создает. (контроль папок сделать по таймеру, ну пусть раз в 5-10 минут. (чтоб если че успеть отработать прошлую версию точно такого же файла) Вот это огород))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:34 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
dgdogСтартую утилиту импорта с параметрами "d:\\xxx\тоЧеНадо.xml" и потащил его в GTT. Удачно унес? Ок. Переношу исходный файл в архив. Нет не так. Ты так и не понял что такое GTT и для чего оно предлагалось. Правильно как-то так: 1. Стартую утилиту импорта с параметрами "d:\\xxx\тоЧеНадо.xml" 2. Start Trasaction 3. потащил его в GTT. 4. Следом запускаем ХП, которая проверяет дубликаты и раскладывает данные по полочкам. 5. Всё OK? Тогда COMMIT. Переношу исходный файл в архив. 6. Произошла ошибка? Тогда ROLLBACK, сообщаем об этом юзеру или тупо пишем в лог, а файл остаётся на своём месте или переносится в папку для корректировки. В данном случае GTT это просто временный буфер для быстрой переливки данных как есть на сторону сервера, а уж в ХП он пусть разбирается что делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:37 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
dgdogВ какой момент грохать файл? Перед тем, как начнёшь читать из него данные. То есть переименовываешь его, пробуешь открыть на эксклюзивный доступ и только если получилось - начинаешь читать данные. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:44 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Симонов Денис... 2. Start Trasaction... ...а уж в ХП он пусть разбирается что делать. Болеменее понятно. Но ведь Start Trasaction ты явно указал - это если ГТТ по транзакии. Вот (ссу я если честно) на транзакцию вешать ГТТ... если намудрю с транзакциями. А я намудрю))) то не понятно чем дело кончится. Думаю ГТТ по сессии запускать. Стартанула утилитка. Подключилась к базе - вот рабочая ГТТ... и как не намудри с транзакциями, будет медленней, сильней загрузка ЦП, но хоть ГТТ будет жива. Закрылась утилитка. Потеряла коннект с базой. ГТТ списали в утиль. Вроде так (хотя НЕ ВНИКАЛ Я еще в ГТТ - это только между дел мысли) Про ХП: всю логику проверок я в ХП не осилю. Тупо знаний не хватит внутренних возможностей и грамматики ХП. Мне лично, проще часть функций оставить за утилиткой импорта. пусть приложение соображает и кидает SQL запросы. Ну конечный контроль остается за приложением, прежде чем отпустить ГТТ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:51 |
|
Delphi, FireBird создать таблицу в памяти клиента
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovdgdogВ какой момент грохать файл? Перед тем, как начнёшь читать из него данные. То есть переименовываешь его, пробуешь открыть на эксклюзивный доступ и только если получилось - начинаешь читать данные. Разумно. Очень. И проверяем, что 1С отцепилась уже от файла. И файл из под носа 1С уже выдернут... годится. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2016, 14:54 |
|
|
start [/forum/topic.php?fid=40&msg=39281231&tid=1561790]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 158ms |
0 / 0 |