#0
by Allan Stark
Есть обработка, которая выполняет достаточно долгую операцию - импорт из DBF и создание по нему документов. Операция длится в среднем несколько часов, может быть запущена вечером, в конце рабочего дня, а завершена - ночью, уже на другой день. Хочу вставить в код обработки подсчет затраченного времени. Стандартна ф-ция ТекущееВремя возвращает только время в текстовом формате. Ее корректное использование потребует обработки смены даты и несколько корявого кодинга (преобразования в секунды, вычисления разницы во времени и затем снова преобразование в строку). Аналога функции, возвращающей UnixTimeStamp в 1С насколько знаю - нет. Есть ли еще какой путь ?
#7
by Cthulhu
ЗЫ: и вообще, кодинг кривой - когда его криво кодят. вычисление по дате+времени количества секунд с 31-го декабря 2000-го года, например - простая, логичная и бістрая арифметическая операция.
#11
by Allan Stark
В общем, _GetPerformanceCounter устраивает полностью... Не поделятся ли уважаемые мастера документацией по остальным недокументированным функциям ?
#18
by Allan Stark
Пасиба, но уже реализовал по своему ;-) // функция преобразовывает временную метку Юникс в форматное строковое значение
#19
by trdm
А теперь сравни 2 замера с _GetPerformanceCounter и с ТекущееВремя.. Тут затык такого рода: _GetPerformanceCounter думаю меряет тики процессора, а не время...
#22
by Невский Александр
А сколько записей из DBF считывается, и сколько реквизитов в самой базе? Наверняка есть какие-нибудь средства для оптимизации загрузки
#26
by Mikeware
Ну, сдуру можно и сам знаешь что... Мне тут недавно попросили помочь ускорить разбор эксэмэля... построчное чтение файла как текста с поиском тегов в каждой строке, и после этого чтение с самого начала... Это была _она_
#27
by Torquader
Всё зависит от количества загружаемых данных, а также от того, куда эти данные грузятся. Конечно, если каждый день грузить проводки из какой-то базы за последние 5-7 лет, то будет медленно - но нужно ли это делать ? P.S. обычно, импорт из DBF - несколько секунд, создание по нему документов - несколько минут и ... ПРОВЕДЕНИЕ ДОКУМЕНТОВ ... несколько часов (с расчётом остатков и т.п.) - вполне реально.
#30
by Невский Александр
+ зависит еще, откуда эти данные выгружаются :) Может выгружается из 1С в DBF и загружается из DBF в 1С :)
#31
by Torquader
Вполне вероятно, хотя - там "изощрённо" не выгрузишь, чтобы, например, код контрагента был в одном файле, а наименование - в другом, а связывать это всё через какой-нить номер или т.п. и без индексов (прямым перебором) - хотя, боюсь, что из-за кеширования файла в памяти сильных тормозов не добьёшься.
#32
by Невский Александр
Я имел в виду, вместо того, чтобы использовать УРБД, или КД, прогер мается такой ф*ей, как загрузка/выгрузка данных через DBF
#33
by Allan Stark
Мда... узнаю "Волшебный форум"... Если уж так интересно ваятелям конф для всяких торговых ларьков и магазинов опишу ситуацию. Выгрузка идет из БД Firebird, на ней у нас вертится торговля, склад и логистика. БД большая, в среднем одновременно 80 клиентских подключений... Бухи естественно сидят в 1С. Экспорт НН за месяц в DBF идет минуту-две. Несколько десятков тысяч документов... При импорте, как правильно заметил в 1С создаются и проводятся накладные со всеми причитающимися действиями. Больше всего времени при импорте накладной занимают всевозможные проверки. Операция в месяц однократная, автоматизированная.
#34
by Torquader
Чаще всего это зависит от постановки задачи - если сказано, что вот такие-то строки документов из этой базы должны автоматом переходить в такой-то документ той базы, и при этом там все реквизиты меняются по каким-то "нелепым" правилам - то только и остаётся, что выгрузку загрузку писать - только обычно txt или xml - там проще визуально разбираться.
#35
by Torquader
Я тут на досуге решил одну базу перепровести для проверки - так "три года" => "трое суток".
#36
by Allan Stark
То, что ты выложил - решение стандартными средствами. Но громоздко и медленно. Через любезно приведенную выше "условно-документированную" функцию - все решается на порядки проще и быстрее. Кстати практически во всех других языках программирования все решается именно таким образом, без "тяжелых родов" только из-за того что разработчики 1С не включили в API 1С элементарные функции работы с временем и получения того же остатка от деления...
#37
by Mikeware
"БД Firebird","БД большая, в среднем одновременно 80 клиентских подключений... " - "бугага"©
#38
by trdm
>> Выгрузка идет из БД Firebird, на ней у нас вертится торговля, склад и логистика. Что за система?
#40
by Torquader
Не надо на FireBird бочку катить - надо сказать, что для своего класса задач - очень хорошая база данных - и в неё можно даже из php заглянуть.
#41
by Mikeware
"Больше всего времени при импорте накладной занимают всевозможные проверки." - возникает традиционный китайский вопрос... Накладная-то уже "прошла". Хочешь ты этого или не хоченшь. И проверять тут ее при импорте - как пить боржоми если почки уже отвалились...
#42
by Ёпрст
+41 тем более, даже проверять останки и прочую хрень не надо, тупо пишем как есть все проводки/движения регистров и ау..влёт всё грузится.
#44
by Ёпрст
+42 для этого достаточно проводить доки с параметром и привет, как это сделано в МОД-е, например, где движения документов можно сразу грузить нужные, а можно их и документом создавать.. И любой обмен, хоть за год - очень быстрое занятие.
#45
by Allan Stark
МИФ, фармацевтическая торговля. Сторонняя (не наша) разработка. Тут нужно иметь представление как организованы бизнеспроцессы конкретной организации. У нас целый холдинг, одних бухгалтерских БД 1С полсотни. В 1С бухи ведут в типовых конфах свою стандартную бухгалтерию. Из Firebird-а импортируются ТОЛЬКО результаты торговли. Нужно для регламентированных отчетов. Экспорт в 1С принят из двух соображений: 1. Слияние информации - в 1С проводятся куча НН, к торговле не имеющая отношение. 2. Остается возможность правки НН - в целях оптимизации налогообложения. По поводу firebird-а - лично мне он НЕ НРАВИТСЯ. Но свою нишу (бесплатный, быстрый и функциональный) он таки занимает. И в конечном итоге все зависит от рук программера - криворукого ПО, через попу исп. великий и ужастный Оракл таки хватает.
#46
by Allan Stark
Да, обработка импорта при необходимости учитывает документы созданные автоматом (по спец. полю) и обновляет ТОЛЬКО их. Или НЕ обновляет - все зависит от рук бухгалтеров. В обработку впихнута куча всевозможных проверок и алгоритмов создания/обновления документов в зависимости от ситуации. Свою задачу выполняет исправно и уже довольно долгий период. Бухи довольны... :-)
#47
by Allan Stark
Да, мы делали онлайн-сервис для наших клиентов и поставщиков. Прекрасно "сопрягли" с РНР (с ним к слову вообще любая СУБД ;-) легко сопрягается).
#48
by Allan Stark
См. выше. Экспорт НН в 1С делается исключительно для автоматизации бухгалтерской отчетности.
#50
by Torquader
Firebird - это даже не СУБД, а просто SQL-сервер, так как СУБД предполагает наличие механизма визуального доступа к базе данных, что в FireBird не наблюдается (ну SQL-консоль мы не рассматриваем). Просто у FireBird есть реализация InProcess сервера, который позволяет запускать себя внутри приложения. И ещё - у FireBird база живёт в одном или нескольких файлах, которые нужно указать перед первым обращением к базе, что позволяет переносить файлы с одного места на другое (выгрузить данные в базу и отправить её по почте).
#51
by Allan Stark
Понятие СУБД вообще много чего предполагает. А конкретно - необходимый функционал для функционирования, администрирования и разработки. Например тот же MS SQL - все в одном делает MS, для Firebird-а, поскольку он бесплатный и открытый - сторонние разработчики.
#52
by Allan Stark
кстати открою тебе один бальшой секрет ;-) "Меняться базами" можно практически в любом нормальном SQL сервере. Например в том же MS SQL - Detach... и вперед, с песней. Но кто ж такими БД базами по почте кидаться то будет ? ;-) У нас центральная БД под 5 гиг весит (а там ТОЛЬКО торговля и склад с простой логистикой).
#54
by Allan Stark
Даже если в 10 раз (!) сделает меньше, 500 метров по почте - это ммммммм Господин аутлук с эксченьжем ( сендмейлом, постфиксом етс.) - подавятся от такого письма...
#55
by Allan Stark
Кстати бэкапами со структурой до нескольких сот метров (в нашем случае) в архиве (7z) тоже не покидаешься.
#56
by Allan Stark
у нас тоже распределенка между филиалами. Обмен построен на базе пересылки по почте файлов с записями о внесенных в БД изменениях. Но это уже реализовано логикой приложения (через триггеры с внесением инфы в буферные таблицы обмена).
#57
by Torquader
У меня DVD-образы по почте пересылались нормально - только не надо целиком - а по частям всё пролезет.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Офф. Несоответствие времени постов этого форума реальному времени.
- Телега нашего времени. Можно ли к текущему времени прибавить пару минут...?
- Подсчет разницы времени в 1с
- Подсчет количества часов между двумя значениями времени
- Сложение времени и сортировка по времени
- Подсчет рабочего времени с точностью до секунды, между двумя датами
В этой группе 1С
- Множественный отбор в Табличной части объекта 8.2
- Как выразить ссылку в строку в запросе
- УТ НДС в документе отчет о розничных продажах
- Бух 1.6.24, вычет НДС по налог. агенту (без НДС) не попадает в книгу покупок
- Ошибка преобразования данных XML при загрузке в центральную базу
- СКД: Как вызвать функцию модуля объекта этого отчета
- Переполнение tempdb
- Как научить считывать штрих EAN13 и EAN5 вместе
- Внешний отчет в качестве внешней печатной формы?
- v8: //Мастер класс по добавлению к дате нужного числа рабочих дней
- Apache не стартует из за LoadModule _1cws_module
- Иерархия элементов или подчиненный справочник
- 1с8 УПП (сдельная оплата труда)
- Как программно назначить тип реквизиту?
- Как описать и выполнить запрос в БД подключенной через V81.COMConnector.
- Ограничение доступа к счетам учета в типовых конфигурациях
- КД 2: Значение не является значением объектного типа (ПометкаУдаления)
- Выгрузка из 1С бюджет в Парус своды
- Обработка(Ввод документов на основании)
- Двухуровневая таблица