BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Структура main.dbf, БЭСТ5
 
Добрый день.

Подскажите, пожалуйста по какому алгоритму заполняются поля idmain и val_id в файле main.dbf; обязательны ли они к заполнению и можно ли их не заполнять при генерации проводок?
Счастливый бухгалтер
 
Давайте уточним как Вы хотите делать генерацию проводок - самостоятельно или штатными средствами ? Т.е. как Вы это делаете ?
 
val_id - Гуид Валюты, если Вы зполняетет сами то он обязателен разумеется !!!
Иначе проводка не будет знать по какой валюте она живет, последствия думаю не изучал никто.

idmain - гуид связи с банком данных.
Думаю что он создается в момент расчета банка данных и Вам это поле никак не заполнить да и не надо.

А если сделать через импорт проводок штатными средствами - то Вы собственно увидите все поля, которые нужны, поглядев на эту запись через FoxBro
 
Цитата
nordk пишет:
val_id - Гуид Валюты, если Вы зполняетет сами то он обязателен разумеется !!!

Иначе проводка не будет знать по какой валюте она живет, последствия думаю не изучал никто.

Проводка пойдет мимо в результатах, то есть как бы будет, но в отчетах как бы и нет.
С уважением,
Ильин Евгений
 
Ну вот одно из последствий,короче это поле однозначно важное и ему подобные тоже.

Хочется спросить: а само описание назначения полей в БЭСТе Александр читает ?
 
Цитата
itman пишет:
Проводка пойдет мимо в результатах, то есть как бы будет, но в отчетах как бы и нет.


Понял, спасибо за разъяснения. val_id - важное поле и к заполнению обязательное, а idmain можно пренебречь.

Хочется ответить nordk`у: проводку генерируем самостоятельно скриптом на Харборе, так как Ваши Штатные функции (DR и CR) работают очень долго и выдают совершенно непонятные и не логичные Вопросы, и нет никакого желания лезь в программирование, но вы сами вынуждаете - создаёте функции, которые не управляются проектировщиком или программистом. Легче тогда свой скоб установить, рассчитать всё, что нужно и выдать результат за пять минут, а не за тридцать...

описания полей я читаю..., а спрашиваю, потому что, непонятно написано... и Вопрос возник не на пустом месте, и вообще если Вы такой опытный и умный, то дайте ссылку где почитать и не устраивайте выпендрёж. Мне нужен ответ на Вопрос, а не рассуждения на тему - "а зачем вам это надо"
Счастливый бухгалтер
 
Александр, чтобы вам помочь быстро и правильно - надо понять задачу с которой вы работаете.
Не исключено, что выбранный вами путь - не верен, и вы зря тратите время, усложняя себе задачу.
Мини-ТЗ в таких случаях - обязательная вещь.
К тому же вы затрагиваете самое святое - main.dbf, кому придется за последствия отвечать?

Судя по Вопросу, можно понять что вы пытаетесь сформировать пакет проводок на основании данных по счетам.
Почему харбор а не групповые операции?
Что ответил на вашу проблему Региональный представитель?
С уважением,
Ильин Евгений
 
Цитата
Александр Батищев пишет:
Цитата
itman пишет:

Проводка пойдет мимо в результатах, то есть как бы будет, но в отчетах как бы и нет.




Понял, спасибо за разъяснения. val_id - важное поле и к заполнению обязательное, а idmain можно пренебречь.



Хочется ответить nordk`у: проводку генерируем самостоятельно скриптом на Харборе, так как Ваши Штатные функции (DR и CR) работают очень долго и выдают совершенно непонятные и не логичные Вопросы, и нет никакого желания лезь в программирование, но вы сами вынуждаете - создаёте функции, которые не управляются проектировщиком или программистом. Легче тогда свой скоб установить, рассчитать всё, что нужно и выдать результат за пять минут, а не за тридцать...
описания полей я читаю..., а спрашиваю, потому что, непонятно написано... и Вопрос возник не на пустом месте, и вообще если Вы такой опытный и умный, то дайте ссылку где почитать и не устраивайте выпендрёж. Мне нужен ответ на Вопрос, а не рассуждения на тему - "а зачем вам это надо"

Добрый день!
1. IDMAIN лучше заполнить функцией XGUID() (если в БЭСТе).
2. Насчет запросов - с ближайшем пакете сделаем возможность управления (задать вид расчета).
3. По поводу "наложить скоб и выдать результат за пять минут" - пробуйте конечно, но не все так просто...
 
Цитата
itman пишет:
Судя по Вопросу, можно понять что вы пытаетесь сформировать пакет проводок на основании данных по счетам. Почему харбор а не групповые операции? Что ответил на вашу проблему Региональный представитель?


1. Совершенно верно, есть такая задача - закрытие счетов затрат, да и не только затрат.
2. Харбор, потому что, база большая, 352503 проводки и пользователей 53 человека будет. Хотя для SQL, это не объём должен быть...
3. Региональный представитель настраивает групповые операции, а они в данном случае очень медленно работают.
Счастливый бухгалтер
 
Цитата
Александр Батищев пишет:
описания полей я читаю..., а спрашиваю, потому что, непонятно написано... и Вопрос возник не на пустом месте, и вообще если Вы такой опытный и умный, то дайте ссылку где почитать и не устраивайте выпендрёж.


Александр я прошу Вас оставить эмоции.
Не вижу, чтобы я был с Вами не вежлив.
И самое главное над Вашей темой работа производилась, поэтому не осветив ее достаточно подробно, имейте пожалуйста терпение отвечать на примитивные Вопросы - это нормально в любой сфере связанной с ремонтом, в том числе и в сфере разработки.
Зачастую, чтобы понять что Вы хотите на самом деле, нужно понимать конечную цель.
Иначе помогать Вам очень трудно .

Если в БЭСТе что-то неудобно сделано, нам необходимо четкая аргументация что, почему и зачем, в какой ситуации и по какой причине это имеет место. И это тоже нормально. Критика нужна в конструктивной форме, иначе она не имеет смысла.

Насчет документирования и подсказок.
Если пользователю что-то непонятно написано - то интересно всегда знать что конкретно.
Бывает, что люди не читают и узнают тут (на форуме) где почитать.

На все остальное Сан Саныч Вам написал.
 
Цитата
itman пишет:
К тому же вы затрагиваете самое святое - main.dbf, кому придется за последствия отвечать?


Последствия мои..
Счастливый бухгалтер
 
Цитата
Александр Титов пишет:
Добрый день! 1. IDMAIN лучше заполнить функцией XGUID() (если в БЭСТе). 2. Насчет запросов - с ближайшем пакете сделаем возможность управления (задать вид расчета). 3. По поводу "наложить скоб и выдать результат за пять минут" - пробуйте конечно, но не все так просто...


Спасибо за конструктивный ответ.
Только что, получили результат: отчёт со скобом сформировался за 4-ре секунды !!!

Заметили ещё одну особенность: в случае использования DR и CR на сервере отчёт отчёт формировался за 5-7 минут, а на клиенте более 40 и выключили не дождавшись... Такое ощущение, что алгоритм расчёта функций не использует технологии SQL или использует как-то не полностью.
Счастливый бухгалтер
 
Цитата
Александр Батищев пишет:
Харбор, потому что, база большая, 352503 проводки и пользователей 53 человека будет. Хотя для SQL, это не объём должен быть...

Хочу развенчать миф про SQL, потому как наши программисты в нем постоянно "варятся"
Могу сразу сказать скорость работы харбора настолько высока, что нам удавалось обеспечить работу до 200 мест, в то время как на SQL-платформах специалисты с опаской оценивают объемы при работе 100 пользователей...
Никакого бешеного прироста в скорости на том же объеме SQL на самом деле не даст, а при грамотном проектировании. Прироста добиться можно, но зачастую можно оказаться медленнее :) Все зависит от конкретной задачи и способов ее решения.
Разница тут скорее не харбор- SQL, а формат хранения данных. Один рассчитан на большой объем, другой нет.

В свое время Александр Гершанов обращался с вопросом, что у него в базе было около миллиона проводок и мне доводлилось доказывать что харбор умеет работать с таким массивом очень быстро. Так что 300 тысяч для харбора это не размер :)

В функциях которые Вы критикуете, применяется именно скоб и работают они не медленно, а если использовать банк данных, то практически моментально. Но они написаны не конкретно под Вашу задачу, они написаны для большого числа вариантов ситуаций.
Ускорить решение можно только путем упрощения задачи под частный случай, но при этом следует помнить, что могут быть подводные камни, которые на тестовых примерах вы не увидите...(что вероятно и вызывает сомнение у Сан Саныча в том, что у вас получится лучше)
 
Цитата
Александр Батищев пишет:
Заметили ещё одну особенность: в случае использования DR и CR на сервере отчёт отчёт формировался за 5-7 минут, а на клиенте более 40 и выключили не дождавшись...

Характерный случай неоптимизированного сервера под файл-серверные потребности БЭСТа.
Обычно при такой ситуации мы давали системную администратору задачу, чтобы скорость работы по сети не уступала локальной существенно.
Не знаю над чем он там колдовал, но в итоге скорость работы что локально, что по сети были примерно одинаковые.
 
Цитата
nordk пишет:
Александр я прошу Вас оставить эмоции. Не вижу, чтобы я был с Вами не вежлив.


Может я и погорячился, но я прошу помощи в решении Вопроса и не рассчитываю на ответ, а читал ли я про поля.
На будущее - замечание услышал... буду точнее описывать задачу и ситуацию вокруг неё.

Я сюда хожу за решениями вопросов и клиент у меня серьёзный, пусть даже и один. Пока один...
Счастливый бухгалтер
 
Цитата
nordk пишет:
В свое время Александр Гершанов обращался с вопросом, что у него в базе было около миллиона проводок и мне доводлилось доказывать что харбор умеет работать с таким массивом очень быстро. Так что 300 тысяч для харбора это не размер :)

В функциях которые Вы критикуете, применяется именно скоб и работают они не медленно, а если использовать банк данных, то практически моментально.


Да, Харбор штука шустрая, мне и удивительно, что в базе всего 350000 проводок и такое "проседание" по скорости.
Счастливый бухгалтер
 
Цитата
nordk пишет:
Обычно при такой ситуации мы давали системную администратору задачу, чтобы скорость работы по сети не уступала локальной существенно. Не знаю над чем он там колдовал, но в итоге скорость работы что локально, что по сети были примерно одинаковые.


Можно поподробнее, над чем он там колдовал?
И сколько одновременно работающих пользователей было?
Счастливый бухгалтер
 
Цитата
Александр Батищев пишет:
Да, Харбор штука шустрая, мне и удивительно, что в базе всего 350000 проводок и такое "проседание" по скорости.


Мне тоже когда-то было удидивительно и я был таким же.
Также не понимал Сан Саныча.
Я сегодня специально еще раз пробежался по исходникам CR и DR.
У меня после псевдобейсика БЭСТ-4 есть некий осадок, но я там вижу скоб Сан Саныча причем сходу.И сразу понимаю что подход неграмотным назвать нельзя.

Тут Вопрос оптимизации анализа множества условий.
Причем каждый пункт расчета нельзя сказать, что Плохо продуман....
Да, в примитивном случае можно наложить скоб и будет все быстро, но потом у кого то высняется что в 1 случае из 1000 бывает вот такая ситуация, у другого другая и универсальность бывает расплатой за скорость. Оптимизация кода вещь непростая и не всегда понятно:
- то ли код не оптимизирован, то ли тот кто просит упростить - не все свои варианты просчитал....
Таким образом порой действительно именно плагин под Заказчика бывает,что это правильное решение, потому что общее решение трогать нельзя под кого-то индивидуально.
Вот такие тонкости приходится КБ постоянно учитывать

Я даже пытался найти кусок кода который можно дополнительно выложить, к тому, что есть в общей поставке и понял, что и этого не смогу предоставить - потому что это не одна функция - это сразу целая библиотека функций увязанных друг с другом....
Казалось бы примитивная задача внутри представляет достаточно сложный механизм.

Поэтому вывод один - если будете делать свой скоб, просто постарайтесь все предусмотреть, применительно к Заказчику, но Ваш плагин может оказаться очень шустрым применительно к конкретной задаче. Если добавляете строки - используйте ADDREC() - эта штатная функция невидимо от Вас сама заполняет ключевые гуиды.
Никаких append из клиппера - там именно уже продумано.
Но гуидов как оказалось бывает много и их иногда надо создавать, как написал Сан Саныч, я сходу не написал - потому что сомневался: а надо ли....

P.S. Прошу все мои ответы принимать за желание помочь. У меня не всегда как у Сан Саныча получается сходу видеть ответ и сходу понять суть Вопроса,но тем не менее моя задача разгрузить шефа от повседневных вопросов, поэтому на мои глупые Вопросы просьба не обижаться.К тому же тут очень сильно помогают Алексей Новиков и Евгений Ильин, иногда помогает Денис. Ответы грамотные, профессиональные.
За это ребятам пользуясь случаем мой низкий поклон.
Если что,Сан Саныч сам впишет правильный ответ.
 
Цитата
Александр Батищев пишет:
Можно поподробнее, над чем он там колдовал?
И сколько одновременно работающих пользователей было?

Одновременно работающих пользователей было в среднем 180.
Вообще пользователей около 300 человек, но одновременно около 180 получалось.

Поговорил с системщиком - времени много прошло, он уже не помнит, но примерные направления озвучил:
- сетевые карты
(у нас тут в офисе тоже была веселуха. Поставили карту гигабит Alied Telecyne
и с определенными чипсета скорость упала причем резко, вернули старую стомегабитную и скорость резко возросла...
Причина была в большом количестве битых пакетов на запись на сервер.
Чтение с сервера шло на ура - летело)
- при работе по сети бывает что сервак сначала кеширует все что к нему летит, потом только начинает записывать и вот это кеширование может приводить к замедлениям.

Но еще раз повторю - я не системщик, подобные Вопросы лучше бы обсудить на соответствующем форуме, но большого разбега по времени между локальной работой и работой по сети быть не должно....
 
Цитата
nordk пишет:
Да, в примитивном случае можно наложить скоб и будет все быстро, но потом у кого то высняется что в 1 случае из 1000 бывает вот такая ситуация, у другого другая и универсальность бывает расплатой за скорость.


Плагин буден уникальным - только для этого клиента.

Цитата
nordk пишет:
Если добавляете строки - используйте ADDREC() - эта штатная функция невидимо от Вас сама заполняет ключевые гуиды.


Эту функцию и используем..., но idmain не заполняется? Может AddRec вызывать с какими-то параметрами, чтобы idmain заполнялся? Но в описании функции не написано, что у AddRec вообще есть параметры.

Цитата
nordk пишет:
Но еще раз повторю - я не системщик, подобные Вопросы лучше бы обсудить на соответствующем форуме, но большого разбега по времени между локальной работой и работой по сети быть не должно....


Спасибо за разъяснения, я тоже не системщик... По крайней мере понятно, где и как можно проводить оптимизацию.
Счастливый бухгалтер
 
Цитата
Александр Батищев пишет:

Цитата
nordk пишет:

Если добавляете строки - используйте ADDREC() - эта штатная функция невидимо от Вас сама заполняет ключевые гуиды.


Эту функцию и используем..., но idmain не заполняется? Может AddRec вызывать с какими-то параметрами, чтобы idmain заполнялся? Но в описании функции не написано, что у AddRec вообще есть параметры.

Автоматически заполняется поле ROWID, если оно есть в таблице, оно часто используется в качестве ключевого гуида. В данном конкретном случае IDMAIN надо заполнить REPLACE IDMAIN WITH XGUID()
 
Цитата
Александр Батищев пишет:
Заметили ещё одну особенность: в случае использования DR и CR на сервере отчёт отчёт формировался за 5-7 минут, а на клиенте более 40 и выключили не дождавшись... Такое ощущение, что алгоритм расчёта функций не использует технологии SQL или использует как-то не полностью.

Дело в том, что эти функции могут производить расчет по двум разным веткам:
- первая ветка - по main.dbf - расчет довольно медленный, так как алгоритмы расчитаны на применение различных масок (типа "6?2*") в счетах и аналитиках и поэтому не всегда можно ставить scope;
- вторая ветка - на основе банка данных (мы рекомендуем этот путь) - если один раз рассчитан банк данных, то все дальнейшие расчеты производятся по накопленной информации довольно быстро.
Согласен, что для конкретных случаев можно ускорить расчет в первой ветке, также есть в плане и ускорение расчета банка данных. Работы в этом направлении ведутся.
Страницы: 1
Читают тему (гостей: 1)