Финансы без пpоблем: Пеpеговоpный Пункт II (http://hdru.com/cgi-bin/pp2/YaBB.cgi)
>> ФБП для начинающих >> Подскажите
(Message started by: nifs на 03.07.06 в 11:30:20)

Заголовок: Подскажите
Прислано пользователем nifs на 03.07.06 в 11:30:20
Сейчас  в Москве, возможно найти компанию которая сопровождает ФБП, а также смогла бы обучить пользователей работе с программой?

Заголовок: Re: Подскажите
Прислано пользователем Alexander,Kiev на 03.07.06 в 11:48:09

on 07/03/06 в 11:30:20, nifs wrote:
Сейчас  в Москве, возможно найти компанию которая сопровождает ФБП, а также смогла бы обучить пользователей работе с программой?

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

Заголовок: Re: Подскажите
Прислано пользователем Konstantin на 27.11.06 в 21:30:40
Подскажите пожалуйста-
В сообщении:
http://hdru.com/wwwboard/messages/552.htm
указано как индексируются поля в фактах, а именно:
"...Пpи постpоении "куста" индексиpующей cтpуктуpы, значения полей беpутся так:
если числовое значение укладывается в диапазон -2000000000..+2000000000, то
для индекса беpется число без дpобной части (т.е и 2.0, и 2.4, и 2.9 будут
пpедставлены в индексе как пpосто 2); числа, пpевышающие 2000000000, ассоцииpуются
с единственной стpокой индекса 'too big', а числа, меньшие чем -2000000000 -
со стpокой 'too low'. Что касается стpоковых значений, они индексиpуются
только по 10-ти пеpвым литеpам..."
Вопрос заключается в следующем, - "имена экстрапараметров(число или строка)" индексируются так же?
Это необходимо, для того, что бы понять как лучше задавать имена экстрапараметров, поскольку данные имена получаются достаточно длинными.
Спасибо.

Заголовок: Re: Подскажите
Прислано пользователем Arkady на 28.11.06 в 09:28:10

on 11/27/06 в 21:30:40, Konstantin wrote:
Подскажите пожалуйста-
В сообщении:
http://hdru.com/wwwboard/messages/552.htm
указано как индексируются поля в фактах, а именно:
"...Пpи постpоении "куста" индексиpующей cтpуктуpы, значения полей беpутся так:
если числовое значение укладывается в диапазон -2000000..+2000000, то
для индекса беpется число без дpобной части (т.е и 2.0, и 2.4, и 2.9 будут
пpедставлены в индексе как пpосто 2); числа, пpевышающие 2000000, ассоцииpуются
с единственной стpокой индекса 'too big', а числа, меньшие чем -2000000 -
со стpокой 'too low'. Что касается стpоковых значений, они индексиpуются
только по 10-ти пеpвым литеpам..."
Вопрос заключается в следующем, - "имена экстрапараметров(число или строка)" индексируются так же?
Это необходимо, для того, что бы понять как лучше задавать имена экстрапараметров, поскольку данные имена получаются достаточно длинными.
Спасибо.


Индексы экстрапараметров запоминaются на всю их длину, без ограничений.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 27.06.07 в 22:13:35
Подскажите плз как сделать чтобы при закрытии формы создающей с/сч собственными средствами (подмена клавиши F7) в родительской форме курсор оказался на вновь созданной позиции списка.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Alexander_Kiev на 28.06.07 в 12:24:26

on 06/27/07 в 22:13:35, VLV wrote:
Подскажите плз как сделать чтобы при закрытии формы создающей с/сч собственными средствами (подмена клавиши F7) в родительской форме курсор оказался на вновь созданной позиции списка.

С уважением, Владимир.


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

Заголовок: Re: Подскажите
Прислано пользователем VLV на 28.06.07 в 13:26:16
Почему тогда возврат из встроенной формы (f7) происходит с позиционированием на вновь созданный с/счет?

Подмена встроенной формы со всеми радостями контроля действий оператора на практике малопригодна!?!?!

Возможно ли соответствующее исправление в клиенте в будующем?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Alexander_Kiev на 29.06.07 в 09:12:01

on 06/28/07 в 13:26:16, VLV wrote:
Подмена встроенной формы со всеми радостями контроля действий оператора на практике малопригодна!?!?!

Возможно ли соответствующее исправление в клиенте в будующем?

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

Заголовок: Re: Подскажите
Прислано пользователем Arkady на 30.06.07 в 07:52:42

on 06/27/07 в 22:13:35, VLV wrote:
Подскажите плз как сделать чтобы при закрытии формы создающей с/сч собственными средствами (подмена клавиши F7) в родительской форме курсор оказался на вновь созданной позиции списка.


Пожалуйста, покажите конкретный пример. Как Вы создаете субсчет? Ведь для этого есть не один способ.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 30.06.07 в 21:12:31
Есть операция - приход товар...выбор из справочника @sp ...  сушествует форма sp.rpt вместо встроенного показа списка с\счетов в эту форму для перехвата вызова F7 добавлена  директива N:F7:... R SPF7....
в форме SPF7.RPT устроен диалог формирования обозначения и наименования с\сч и отправляется директива регистрации с\сч на сервер.  Ситуация возникает когда при регистрации операции при раскрытом справочнике товаров(sp.rpt) нажимается ф7 для создания нового с\сч... после автозакрытия spf7.rpt  курсор оказывается вверху, хотя новый с\сч после автообн формы в списке есть.

Заголовок: Re: Подскажите
Прислано пользователем aaa на 02.07.07 в 18:31:59
Если нельзя добиться, чтобы курсор в списке субсчетов встал на строку вновь созданного, потому что он упорно указывает первую строку, никто не мешает, чтобы этой первой строкой оказался только что созданный субсчет :).

Заголовок: Re: Подскажите
Прислано пользователем aaa на 02.07.07 в 18:34:34

on 07/03/06 в 11:30:20, nifs wrote:
Сейчас  в Москве, возможно найти компанию которая сопровождает ФБП, а также смогла бы обучить пользователей работе с программой?


Компании как будто нет, сопровождать и обучать - можно.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 04.07.07 в 12:08:11

on 07/02/07 в 18:31:59, aaa wrote:
Если нельзя добиться, чтобы курсор в списке субсчетов встал на строку вновь созданного, потому что он упорно указывает первую строку, никто не мешает, чтобы этой первой строкой оказался только что созданный субсчет :).


Это один из вариантов.

Здесь есть много вариантов.
В 2002-ом, как сейчас помню - это была проблема в одном из санаториев с бабушками.
Вновь созданные надо было искать.
Форма по F7 разворачивала сценарий создания с.с. по аналогии с выбранным селектором.
По возвращении в список новый с.с. следовал за только что выбранным с.с. в качестве аналога за счёт хитрой сортировки. Попробуйте, может быть такой вариант сейчас Вас устроит. Тогда - это был прорыв, а сейчас одни воспоминания.

То, что клиент сможет реагировать на пожелания в форме по начальному положению селектора - это очевидный супер.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 13.09.07 в 22:33:52
Подскажите, плз.

Существует ли клиент-CLW-аналог для Linux?
И возможна ли работа на клиентской машине с линуксом, а сервер с виндами?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем aaa на 13.09.07 в 22:53:13
Приветствую. clw аналог для линукс это вещь. У меня тут немножко времени появилось, если хотите, давайте объединяться - сделаем. И это намного проще, чем кажется. Проект называется ИДВГ. "И дольше века длится год". Лет 10 назад я о нем писал, были даже реализации, но все в прошлом.

Обсуждения - лучше всего у меня в ICQ 19662205 номер не изменился.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 14.09.07 в 10:10:09
Хотение, кАнешна, есть.
"Шастанье по ларькам" в защиту "малоимущих" режисеров и совсем голодающего автора форточек стало заметно...
Для небольшого производственного(торгового) предприятия за пределами садового кольца сервер под XP за 400 у.е. еще реально...а вот дальше...повергает в задумчивость...
Что касается моего програмистского потенциала ... ну так себе...полубуховский :-)..., впрочем, мож чем и сможем.
Еще интерестно мнение и перспективы на сей счет от авторов Клиента форм и Клиента FC, без них уже не живется.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 20.03.08 в 11:12:01
Можно ли сделать чтобы функция [vl str] фозвращала и флаг успешности преобразования?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 20.03.08 в 11:42:39
из руководства:
...
обращение [VL '1234'] выдает число 1234, а обращение [VL '1234f'] выдает эту же строку '1234f', так как преобразование невозможно.
...
что мешает после преобразования проверить тип переменной с помощью [type..]?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 20.03.08 в 12:47:02
Да вродь ничего :-)
Спасибо.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 22.05.08 в 10:51:53
*Файл-коэфф
*Предназначен для использования в двух ветвях дерева. В одной используется поле сумма, в другой - нет.
***
IF ВЕТВЬ А
 X=$
 ...
ENDIF
IF ВЕТВЬ B
 X=Y
 ...
 $=0
ENDIF
...
:END
****
Трюк с $=0 не проходит из-за строки X=$

Подскажите как быть, плз.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Konstantin на 22.05.08 в 11:14:12
У меня тоже есть такой Ф-К. Чего-то я тоже никак не смог придумать как обойти, - похоже никак. Выход - унифицировать и переносить ввод суммы в ветвь-вопрос, если конечно есть место.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 22.05.08 в 11:24:02
Мне кажется, что можно дождаться исправления этого недочета ....(Судя по настроению АГ :-))

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 22.05.08 в 12:33:17
Что-то я не пойму, в чем тонкость - раз есть две ветки дерева, что мешает сделать два файла-коэффициента?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 22.05.08 в 13:04:15
Ну да, в принципе не мешает, и вопрос не остро стоит, но файлы однотипные, с небольшими отличиями, и есть желание их унифицировать, что полезно с точки зрения внесения исправлений, и тем более что существует ограничение на количество ф-кфтов, с которым некоторые уже стали сталкиваться.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем aaa на 22.05.08 в 13:49:51

on 05/22/08 в 13:04:15, VLV wrote:
... и тем более что существует ограничение на количество ф-кфтов, с которым некоторые уже стали сталкиваться.


Радикальное лечение головной боли известным способом:

имеется один главный файл-коэффициент, называется first.rpt, в начале файла стоит re=[re]; if re=0 call fc;elseif re=1 call fm;elseif re=2 call pd;else
s='ого!!!';printstr s;endif

У него на входе есть переменные a1...a0 по числу ветвей вопросов, переменные, которые не задействованы в ветке, инициализируются нулем в файлах-сателлитах, сумма операции заглушена напрочь $=0 во всех файлах-коэффициентах, и в подпрограмме fc first.rpt

И все станет намного проще. В том числе и library можно сильно сократить. До нуля байт.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 22.05.08 в 14:02:50
printstr 'Это ОгоГо как радикально' :-)...всеж традиционный вид ЖО еще рановато отправлять на свалку истории.

Заголовок: Re: Подскажите
Прислано пользователем aaa на 22.05.08 в 14:41:07

on 05/22/08 в 14:02:50, VLV wrote:
printstr 'Это ОгоГо как радикально' :-)...всеж традиционный вид ЖО еще рановато отправлять на свалку истории.
Согласен 100%. ЖО имеет вид Д М 0(это ноль суммы) Текст операции "День прошел и слава богу", комментарий, подпись, печать, точнее, штамп. Штамп 3.

А заходите на    www.goel.ru/1 - (с) страшной сказки "туда приходишь, а там Я". По субботам работает школа яхтенных рулевых, пока 3 и 2 класса, а также школа умельцев шкурить и драить  

Заголовок: Re: Подскажите
Прислано пользователем Alexander_Kiev на 22.05.08 в 16:23:17

on 05/22/08 в 14:41:07, aaa wrote:
Согласен 100%. ЖО имеет вид Д М 0(это ноль суммы) Текст операции "День прошел и слава богу", комментарий, подпись, печать, точнее, штамп. Штамп 3.

Это намЬЁк, один день - одна операция? ;)
А как же в конце, в начале, в общем порядке?
И потом, помнится Аркадий говорил, что изначально отказался от индексирования временной последовательности. Не продуктивно это. Иначе не пришлось бы заниматься такой фичей как разрыхление файла операций.
Была у меня шальная мыслишка организовать 1день - 1файл. Заглавных букв в англицком алфавите до 31 не дотянуло, а внешность штампа портить не захотел...   :)

Заголовок: Re: Подскажите
Прислано пользователем aaa на 22.05.08 в 17:12:00

on 05/22/08 в 16:23:17, Alexander_Kiev wrote:
Это намЬЁк, один день - одна операция? ;)
...   :)


А что, нормально, а в ней есть хоть 3 хоть 256 хоть 1024 подсписка очередей операций, из любого подсписка операцию (это запись, хранимая в extrd.dat, чтобы ничего не менять нигде) можно выдернуть и вставить ее в конец другого подсписка, саму удаленную *перемещенную") операцию можно не чистить, флажок "это не играть" повесили и все. Ну и так далее. А штамп какой был такой и есть, проводки, если охота, тоже можно оставить, возможностей много. И прошлый год длится сколь угодно долго, если обеспечить инициирование персчета по этим 366 операциям в столько проходов, сколько лет в базе. Я много лет назад рассказывал все это.

Заголовок: Re: Подскажите
Прислано пользователем alushta на 24.05.08 в 05:16:59

Quote:
*Файл-коэфф
*Предназначен для использования в двух ветвях дерева. В одной используется поле сумма, в другой - нет.  
А если сделать условие по  функции [type] если =0 то один сценарий
если 1 другой через goto и все помещается в один файл

Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.07.08 в 12:35:26
Заколдованный суб/счет!
Помогите, плз, выявить причину глюка...
Существует счет(2002) с с\счетами(200201..200236)
В работе используются Э-пар(set 70,с/сч2002, знач), которые заполняются операциями.
Далее итоговая операция в ф-к проходит по сч 70 и читает значения(цикл по сч #70/2002 с извлечением значение=[get #70,c/cч2002]-[get #70,с/сч2002,mc-1])...Все прекрасно...
Но попытка использовать эту же процедуру в отчетной форме (цикл...значение=[get #70,с/сч,ml]-[get #70,с/сч,mf-1])..c удовольствием извлекает все значения Э-п с/счетов с 200201..по 200236 И КАТЕГОРИЧЕСКИ ВИДИТ НОЛЬ В СЛУЧАЕ [get #70,'200219',mf-1])!

Что интересно, если эти значения в операциях сохранить под другим с/сч...то их становится "видно"...

Вот такая заморочка, помогите кто чем может :-)

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Konstantin на 21.07.08 в 15:08:30

on 07/21/08 в 12:35:26, VLV wrote:
Заколдованный суб/счет!
...И КАТЕГОРИЧЕСКИ ВИДИТ НОЛЬ В СЛУЧАЕ [get #70,'200219',mf-1])! Что интересно, если эти значения в операциях сохранить под другим с/сч...то их становится "видно"...

Так сразу в голову ничего не приходит, но возник такой вопрос. Вот в сообщении этот субсчёт указан явно: '200219'. А в каком виде это значение подставляется в цикле? Наверное не в явном, а в виде переменной. Т.е. не может ли быть ошибка связанная с представлением в виде числа, а не строки этого значения. Или отчётный период.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.07.08 в 16:02:08
В цикле, конечно, неявно, но я пробовал и явно и неявно...и дело в том что в обрабатывающем ф-ке  это значение читается...сохраняется в факт и потом при чтении факта ОФ видится...на етом вся зарплатная кухня построена и за много лет проблем вычислительных не выявилось...а тут понадобилось из-за ограниченности кол-ва полей факта напрямую извлечь и вот-те-на...
Если в сохраняющих операциях A=[PLUS @70,'200219',PR] меняю на A=[PLUS @70,'200204',PR].. то форма ето извлекает правильно

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 21.07.08 в 17:32:59

on 07/21/08 в 16:02:08, VLV wrote:
В цикле, конечно, неявно, но я пробовал и явно и неявно...и дело в том что в обрабатывающем ф-ке  это значение читается...сохраняется в факт и потом при чтении факта ОФ видится...на етом вся зарплатная кухня построена и за много лет проблем вычислительных не выявилось...а тут понадобилось из-за ограниченности кол-ва полей факта напрямую извлечь и вот-те-на...
Если в сохраняющих операциях A=[PLUS @70,'200219',PR] меняю на A=[PLUS @70,'200204',PR].. то форма ето извлекает правильно


С параметрами были вопросы, так что не поленился проиграл Ваш вопрос, увы, всё работает как часы. Для того, чтобы убедиться в том, что проблемы у Вас, а не у HD, откройте чистый каталог создайте два свои счета 70 и 2002 и одну веточку и ф-к и сделайте формочку на 10 строчек и убедитесь, что предложенной Вами магии цифр 219 204 не существует.

Совет: контроллируйте свои ф-к, вероятно есть условие, по которому Ваш 219 обнуляется или для Вас актуально предположение Константина.

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


Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.07.08 в 18:23:52
На ФБП я и не грешил, удалив все лишнее перенабрав заново счета, убедился в Вашей, Борис, правоте....попробую искать В Ф-ке...

Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.07.08 в 19:37:18

Quote:
вероятно есть условие, по которому Ваш 219 обнуляется


Так оно и есть!
Вот спасибо то что вывели из оцепенения! :-)

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.07.08 в 19:46:39
Подскажите, плз .. можно ли _box_-сы спрятать в подкаталог...раньше вродь нельзя было...а время то идет и боксов этих в корневом каталоге уже очень много стало...может доработать ето дело?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Arkady на 22.07.08 в 08:17:50

on 07/21/08 в 19:46:39, VLV wrote:
Подскажите, плз .. можно ли _box_-сы спрятать в подкаталог...раньше вродь нельзя было...а время то идет и боксов этих в корневом каталоге уже очень много стало...может доработать ето дело?


Каталог обмена может быть вложенным. Единственное требование к его имени - подчеркивание в конце. Например:

c:\dir1\dir2\obmen_

Заголовок: Re: Подскажите
Прислано пользователем VLV на 05.02.09 в 16:04:28
Помогите разобраться плз.
ФК берет переменную числового типа (7.5) и преобразует ее [strip[sn x,5,2] и сохраняет в факте.
ОФ читая ленту фактов извлекает поле с этой переменной и печатает результат.
Если форма запущена в однопользов версии то результат 7.5, а если форму выполняет CLW то результат не 7.5, а 8

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 06.02.09 в 08:46:04
В ф/к перед [strip[sn x,5,2] поставьте
*.on
<звездочка><точка>on
(см. документацию)

Заголовок: Re:подскажите ПЛЗ
Прислано пользователем VLV на 20.12.09 в 14:38:07
***********************
PW='S'
F1=[DIR 1]+'NEWCT.REG'
OB=[STRIP[IS 'KOD','',9]
NA=[STRIP[IS 'KOD','',9]
SX=[User]+'·'+[strip(PW+'··A')]+' ·'+'SP'+'·'+OB+'·'+NA+'·'
PRINTSTR SX+[CH 13]+[CH 10] TO FILE F1
***
S1=[STRIP[IS 'KOD','',9]
S2=''
KX='·'
SX=[User]+'·'+[strip(PW+'··O')]+'  ·SET:·SP:·BAR·'+[STRIP('·:·'+S1+'··:·'+S2+'·'+KX+OB+'····')]
PRINTSTR SX+[CH 13]+[CH 10] TO FILE F1
***
GR=[STRIP[IS 'KOD','',9]
SX=[User]+'·'+[strip(PW+'··O')]+'  ·SET:·SP:·TGR·'+[STRIP('·:·'+GR+'·'+KX+OB+'····')]
PRINTSTR SX +[CH 13]+[CH 10] TO FILE F1
**************************
Расчитываю, что в файле F1 после выполнения формы с этим кодом соберутся строки директив:

Первая
Вторая
Третья

А получаю:

Первая
Первая
Вторая
Первая
Вторая
Третья

Что делаю не так?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 21.12.09 в 10:08:42
Какая версия ФБП:сервера - номер/дата?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.12.09 в 14:16:49
Сервер 4.21 (10p) от 30.11.2009, clw, в 2p такая же картина.
Ось WIN XP (SP3)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.12.09 в 17:11:25
Это полный текст.
За звездочками кроются звездочки...разделитель части кода...Если убрать третий блок...то будет двойная запись перврй директивы...и если сначала все собрать в строковую переменную и один раз применить printstr to file то все нормально.... т.е. именно повторный вызов  Printstr тащит за собой хвост(точнее голову :-)) из первого присваивания строковой переменной....а она ведь заново переприсваивается при подготовке второй директивы....

Заголовок: Re: Подскажите
Прислано пользователем Arkady на 21.12.09 в 17:44:47
Начал было отвечать, но не на то обратил внимание поначалу :)

Как Сервер обрабатывает [i ...]:

когда встречается такая команда виртуальной машины, (и на нее еще не передан Клиентом ответ) он останавливает выполнение и отвечает "Q-...". Увидев такой ответ, Клиент задает соотв. вопрос пользователю, и присоединяет к следующему своему запросу. Посмотрите в log.

Короче: все выводы в файл надо концентрировать после всех диалогов. Иначе досрочные запросы вызовут повторные записи в файл - то, что, и происходит у Вас.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 21.12.09 в 22:04:09
Вот что-то такое и подозревал:-)
Спасибо Аркадий Григорьевич

Заголовок: Re: Подскажите
Прислано пользователем VLV на 24.12.09 в 23:02:34
Сервер принимает директивы вида:
E [SED 'INDEX',X]
Но не выполняет команду выполнения подпрограммы, отвечая что не найдена метка...
E [:SUBR IX,X]

Так задумано или я что-то не так делаю?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Arkady на 28.12.09 в 17:32:15

on 12/24/09 в 23:02:34, VLV wrote:
Сервер принимает директивы вида:
E [SED 'INDEX',X]
Но не выполняет команду выполнения подпрограммы, отвечая что не найдена метка...
E [:SUBR IX,X]

Так задумано или я что-то не так делаю?

С уважением, Владимир.


Увaжаемый Владимир! Как Вы понимаете - это так не задумано, просто "так получилось" ;) В самом деле, библиотека не подключается к калькуляторной строке. Я, конечно, об этом знаю. Но такое грубое упрощение в значительной степени облегчило некоторые внутренние вещи в ФБП:Сервере.

Между прочим, у меня есть такой проект (оптический дизайн) http://linzik.com - с языком, аналогичным ФБП. Там я подключил библиотеку к калькулятору. Попробуйте. Сравните. Может, Ваши замечания будут полезны и там и там. Мне очень интересно Ваше мнение, и мнения всех наших пользователей.

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 04.01.10 в 17:34:20

on 09/14/07 в 10:10:09, VLV wrote:
Еще интерестно мнение и перспективы на сей счет от авторов Клиента форм и Клиента FC, без них уже не живется.


Приятно слышать.  :)  Работаем! Надеюсь выпустить версию с поддержкой многострочной операции в ближайшее время. По секрету (только вам!) на такой версии Клиента FC наше предприяте работает уже год, но для широкой аудитории еще сыровато.

Заголовок: Re: Подскажите
Прислано пользователем Alexander_Kiev на 05.01.10 в 11:50:27

on 01/04/10 в 17:34:20, Vladimir wrote:
Приятно слышать.  :)  Работаем! Надеюсь выпустить версию с поддержкой многострочной операции в ближайшее время. По секрету (только вам!) на такой версии Клиента FC наше предприяте работает уже год, но для широкой аудитории еще сыровато.


Ну ты Володя даеш, это в Канаде предприятие? А у нас кирзис, все останавливается, так что считать - уже и калькулятора достаточно. :)

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 06.01.10 в 17:44:57
Да, в Канаде. Работаем на ФБП уже 10 лет тут. Одним из серьезных достижений считаю то, что база данных товаров (6000 наименований) экспортируется из ФБП на веб сайт (магазин) и полностью формирует его контент.

А по поводу кризиса - помню была в России во времена перестройки галлопирующая инфляция, так что и калькулятора уже не хватало для подсчета миллиардов  ;) .  Аркадию тогда пришлось расширять разрядность чисел в программе.   :o

Заголовок: Re: Подскажите
Прислано пользователем VLV на 07.01.10 в 15:05:34

Quote:
Одним из серьезных достижений считаю то, что база данных товаров (6000 наименований) экспортируется из ФБП на веб сайт (магазин) и полностью формирует его контент

Владимир, а не могли бы в скольких нибудь чертах обрисовать как это чудо организовано...какой движок...как взаимодействует с ФБП...можно ли ето место посетить??? :-)))

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Alexander_Kiev на 07.01.10 в 23:42:11

on 01/06/10 в 17:44:57, Vladimir wrote:
А по поводу кризиса - помню была в России во времена перестройки галлопирующая инфляция, так что и калькулятора уже не хватало для подсчета миллиардов  ;) .  Аркадию тогда пришлось расширять разрядность чисел в программе.   :o

Это в Европах и Америках кризис, а у нас кирзис - такое типично словянское действо. :)
Ну и китайцы тогда не подкачали. 12 разрядные калькуляторы до сих пор в ходу. :)


on 01/07/10 в 15:05:34, VLV wrote:
Владимир, а не могли бы в скольких нибудь чертах обрисовать как это чудо организовано...какой движок...как взаимодействует с ФБП...

Это чудо называется nullcga. Made in HD. Мне тоже довелось на этой спайке интернет магазин замутить. 2000 год был однако.

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 11.01.10 в 19:08:04
Не совсем NULLCGA, хотя это штука очень классная.

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

1. Запускается специальная ОФ, результатом которой является большой текстовый файл.
2. Он отправляется на веб-сайт с помощью FTP
3. PHP скрипт формирует весь контент сайта на основании содержимого этого файла.

При этом в загружемом файле находтся следующая (но не только) информация:
1. наименование продутка
2. цена
3. наличие на складе
4. категории для группирования продуктов
5. линки на другие, связанные продуты
6. служебная информация для организации поиска
7. сотояние склада
8. наименования картинок связанных с продуктом
9. описание продукта в формате  HTML

О последнем хочется сказать особо.

Описания продуктов хранятся не в EXTRD.DAT а в текстовых файлах, подгружемых ОФ с помощью новых операторов чтения из файла, что дает одновременно удобство редактирования и не загружает EXTRD.DAT (учитывайте, что его индексы и зеркало располагаются в ОЗУ).

В настоящий момент размер файла для формирования веб-сайта составляет 4 Мб и постоянно растет.  

Обновление сайта, начиная с запуска ОФ и до получения конечного результата  занимает не более 5-ти минут.

Вот пример странички
http://www.imte.ca/category.php?id=L20000046&name=CNC+Back+Locking+Collet+Holder

Заголовок: Re: Подскажите
Прислано пользователем VLV на 27.01.10 в 16:09:51
А есть ultra-h, поддерживающая расширение библиотеки *.LIB?

С уважением Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 28.01.10 в 09:15:57

on 01/27/10 в 16:09:51, VLV wrote:
А есть ultra-h, поддерживающая расширение библиотеки *.LIB?

С уважением Владимир.


Нет, в однопользовательских нет *.lib. Вы можете внести содержимое *.lib в library.rpt.

Заголовок: Re: Подскажите
Прислано пользователем Jhon на 14.02.10 в 20:56:37
Здравствуйте!

Подскажите, должен ли news в ф/к находить только что созданный факт?

например:

FACT 'A' 'AC-1',11.23
...
NEWS 'A' ?A,?S


Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 15.02.10 в 07:57:43

on 02/14/10 в 20:56:37, Jhon wrote:
Здравствуйте!

Подскажите, должен ли news в ф/к находить только что созданный факт?

например:

FACT 'A' 'AC-1',11.23
...
NEWS 'A' ?A,?S



Может находить, если перед NEWS указать принудительно rewind facts, то есть:

FACT 'A' 'AC-1',11.23
...
rewind facts
NEWS 'A' ?A,?S

Перед входом в ф-к rewind делается автоматически. Поэтому fact, зарегистрированный в ф-к, в следующем ф-к будет виден без усилий.

Заголовок: Re: Подскажите
Прислано пользователем Jhon на 15.02.10 в 09:08:31
Спасибо.
Надо добавить это в руководство.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 15.02.10 в 13:37:55
В руководство по однопользовательским версиям добавили, на сайте обновили. Правда остался вопрос: зачем пытаться извлекать данные если они в этом же ф-к рассчитываются?

Заголовок: Re: Подскажите
Прислано пользователем Jhon на 15.02.10 в 15:11:54
Так получилось что текущее значение остатка складской номенклатуры хранится в поле факта, а в операции первого оператора (одной единственной) обрабатывается групповая операция прихода другого оператора, а в этой групповой операции произошло повторение номенклатурного номера (по другой цене). Так вот в этой одной операции только что созданный факт по повторяющейся номенклатуре по NEWS найден не был и количество прихода первого факта в расчет остатка не взято.
О том что NEWS не найдет факт, созданный вот только что, даже как-то не предполагал.

Заголовок: Re: Подскажите
Прислано пользователем lytvyanela на 12.03.10 в 09:50:09

on 01/11/10 в 19:08:04, Vladimir wrote:
Описания продуктов хранятся не в EXTRD.DAT а в текстовых файлах, подгружемых ОФ с помощью новых операторов чтения из файла
[/url]


А что это за новые операторы, это я так понимаю Ваши собственные разработки?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 31.03.10 в 09:37:58
Подскажите как выявить ошибку.
Возникает нерегулярно, если в прошлом регистрируются операции и устраняется только перезапуском сервера(4.21,4.NY, dual, winxp)
Директива W on/off не помогает.
Проявляется в том что проводки по указанной операции исчезают. На мой взгляд связано с ошибкой в работе PD=[GET#,'ZPDR',M]
Но за хвост не поймать.

Дерево:...Выдача з/п подразделению..?P..?M..#70..ПРОВОДКИ:# 50 FileK
(P-номер подразделения-строка, M-номер месяца-число)
******
* FileK
******
$=0
OB=[N1#]
PD=[GET#,'ZPDR',M]
IF PD=P         Если подразделение работника соответствует выбранному
Z=[OK #,M,M]   начислено за текущий месяц
 IF Z>0.001 $=Z; ENDIF
ENDIF
*********
С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 31.03.10 в 10:53:36
Если работаете в режиме сервера DUAL, попробуйте перейти в OLD.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 31.03.10 в 16:22:19
Обратите внимание - что в конце формы написано, может там есть "Возможно устарело" или "Пересчет не завершен"?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 31.03.10 в 16:29:53
В режиме OLD ошибка воспроизводится.
Автообновление вкл "все"
Видно что формы обновляются и в оборотах по кассе появляется несписанная выдача денег.

Висяк устойчивый, и есть в формах(например баланс) запущенных заново. По F6 проводок операция не показывает...их нет.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 31.03.10 в 17:37:49
Ситуация похожа на ошибку, описанную мной в разделе "Get при пересбивке", там тоже причиной работа функции [get...]

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 31.03.10 в 19:14:53

on 03/31/10 в 09:37:58, VLV wrote:
Подскажите как выявить ошибку.
Возникает нерегулярно, если в прошлом регистрируются операции и устраняется только перезапуском сервера(4.21,4.NY, dual, winxp)
Директива W on/off не помогает.
Проявляется в том что проводки по указанной операции исчезают. На мой взгляд связано с ошибкой в работе PD=[GET#,'ZPDR',M]
Но за хвост не поймать.

Дерево:...Выдача з/п подразделению..?P..?M..#70..ПРОВОДКИ:# 50 FileK
(P-номер подразделения-строка, M-номер месяца-число)
******
* FileK
******
$=0
OB=[N1#]
PD=[GET#,'ZPDR',M]
IF PD=P         Если подразделение работника соответствует выбранному
Z=[OK #,M,M]   начислено за текущий месяц
 IF Z>0.001 $=Z; ENDIF
ENDIF
*********
С уважением, Владимир.



Читаем руководство:
--------------------------------------
функция [get]
Синтаксис:

[get A, S]

При использовании в листьях дерева и в файлах-коэффициентах выдает значение экстрапараметра S счета A к моменту выполнения текущей проводки; в отчетных формах - значение на конец отчетного периода.

[get A, S, M] - выдать значение экстрапараметра S счета A на конец месяца M
[get A, S, M, D] - выдать значение экстрапараметра S счета A в месяце M на
конец дня D

-----------------------------

Совет:

Пользуйтесь [get..]  согласно инструкции.


Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 01.04.10 в 05:56:14
В добавление к сообщению Бoриса:
прогоните в однопользовательской версии и отследите "Обращение в будущее".

Заголовок: Re: Подскажите
Прислано пользователем VLV на 02.04.10 в 10:54:35

Quote:
Совет:
Пользуйтесь [get..]  согласно инструкции.


Борис, поясните плз, в чем Вы видите несоответствие инструкции использование в файле-коэффициенте вызова
PD=[GET#,'ZPDR',M]
Он читает значение Экстра-параметра в момент вызова ФК, по состоянию на конец предыдущего месяца.

Или нужно использовать для ФК только вызов PD=[GET#,'ZPDR'], и обратиться к значению ЭП в прошлое нельзя?
Но фактически это работает при пересчете со старта, и перестает работать при пересчете от момента регистрации(перерегистрации) операции.

Как тогда обойти эту проблемму, если нельзя исправить FWP? Ведь меxанизм фактической выдачи ЗП в текущем месяце всегда должен обращаться к данны актуальным в месяце начисления. Такая логика изначально предлагалась разработчиками.

В однопользовательской версии все считает правильно, вызовов в будующее не выдает.
После регистрации операции в начале года пересчитывает все правильно, а при перерегистрации операции не пересчитывает состояние но обороты счетов выдает верно.

В сетевой ошибка устойчиво возникает, как в случае перерегистрации первой операции в январе(в прошлом), так и при регистрации новой операции.
И совершенно устойчиво исчезает после "горячей" перезагрузки сервера FWP.
Первое обращение к указанному файлу-коэффициенту встречается с февраля или в более поздние месяцы.

С уважением,  Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 02.04.10 в 13:06:57
Проверьте, пожалуйста, инициализируется ли переменная M перед вызовом
PD=[GET#,'ZPDR',M] ?
Дело в том, что переменные в ф/к глобальные. Может быть следующая ситуация (гипотетически): При начальном пересчете переменная M  получает нужное значение где-то в январе, а при пересчете с текущего мясяца (скажем, март)- не получает этого значения.

Заголовок: Re: Подскажите
Прислано пользователем Konstantin на 02.04.10 в 15:43:27

on 04/02/10 в 10:54:35, VLV wrote:
....в чем Вы видите несоответствие инструкции использование в файле-коэффициенте вызова
PD=[GET#,'ZPDR',M]
Он читает значение Экстра-параметра в момент вызова ФК, по состоянию на конец предыдущего месяца......

Если читает чётко на конец предыдущего месяца, то возможно стоит попытаться уйти от возможных коллизий с переменной M таким образм:
PD=[GET#,'ZPDR',mc-1]
Уж mc-то чётко самим сервером и инициализируется, и считается.



Заголовок: Re: Подскажите
Прислано пользователем VLV на 02.04.10 в 16:00:37

Quote:
Проверьте, пожалуйста, инициализируется ли переменная M перед вызовом
PD=[GET#,'ZPDR',M] ?
Дело в том, что переменные в ф/к глобальные. Может быть следующая ситуация (гипотетически): При начальном пересчете переменная M  получает нужное значение где-то в январе, а при пересчете с текущего мясяца (скажем, март)- не получает этого значения.


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

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

Заголовок: Re: Подскажите
Прислано пользователем VLV на 02.04.10 в 16:09:52

Quote:
Если читает чётко на конец предыдущего месяца, то возможно стоит попытаться уйти от возможных коллизий с переменной M таким образм:
PD=[GET#,'ZPDR',mc-1]
Уж mc-то чётко самим сервером и инициализируется, и считается.


Читает четко на конец любого предшествующего месяца. Опробую Ваше предложение.
Но остается вопрос действительно ли запись [get cnt,'name',m] является "документированной" возможностью  FWP для использования в ФК? Тогда и мой вариант должен работать корректно.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 02.04.10 в 16:19:02

on 04/02/10 в 10:54:35, VLV wrote:
Борис, поясните плз, в чем Вы видите несоответствие инструкции использование в файле-коэффициенте вызова
PD=[GET#,'ZPDR',M]
Он читает значение Экстра-параметра в момент вызова ФК, по состоянию на конец предыдущего месяца.

Или нужно использовать для ФК только вызов PD=[GET#,'ZPDR'], и обратиться к значению ЭП в прошлое нельзя?
Но фактически это работает при пересчете со старта, и перестает работать при пересчете от момента регистрации(перерегистрации) операции.

Как тогда обойти эту проблемму, если нельзя исправить FWP? Ведь меxанизм фактической выдачи ЗП в текущем месяце всегда должен обращаться к данны актуальным в месяце начисления. Такая логика изначально предлагалась разработчиками.

В однопользовательской версии все считает правильно, вызовов в будующее не выдает.
После регистрации операции в начале года пересчитывает все правильно, а при перерегистрации операции не пересчитывает состояние но обороты счетов выдает верно.

В сетевой ошибка устойчиво возникает, как в случае перерегистрации первой операции в январе(в прошлом), так и при регистрации новой операции.
И совершенно устойчиво исчезает после "горячей" перезагрузки сервера FWP.
Первое обращение к указанному файлу-коэффициенту встречается с февраля или в более поздние месяцы.

С уважением,  Владимир.

Вы всё правильно поняли, не буду углубляться в своё видение работы экстра  и примеры от разработчика, дам простой совет:
рожайте индекс эстрапараметра

[set #,'ZPDR'+[intsn M],ZN]
, а ещё лучше
[set #,'ZPDR*'+[intsn YY]+[cp [intsn(100+MM)],2,2],ZN]

где YY - ГОД НАЧИСЛЕНИЯ
MM- М-Ц

к тому же в следующих годах будет легко и просто выдать справки за прошлые.

Заголовок: Re: Подскажите
Прислано пользователем Konstantin на 02.04.10 в 16:24:06

on 04/02/10 в 16:09:52, VLV wrote:
Читает четко на конец любого предшествующего месяца. Опробую Ваше предложение.
Но остается вопрос действительно ли запись [get cnt,'name',m] является "документированной" возможностью  FWP для использования в ФК? Тогда и мой вариант должен работать корректно.

На мой взгляд вполне корректная запись. Однако требует повышенного внимания к переменной m и её инициализации. Я проверял бы, что бы:
1. Переменная была чётко инициализирована в ФК перед обращением к экстрапараметру, а не несколько лет назад :).
2.чтобы переменная m была <=mc. А может даже и строго <mc. Сейчас не могу сообразить на скорую руку. Строго <mc безопасней, а <=mc - надо проверить.

Вообще этот вопрос лучше снять - mc-1, это железно работает, тогда и можно дальше продолжить поиски ошибки, если она останется конечно:)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 02.04.10 в 16:26:12
Борис, Вы неожиданно конкретны :-)

Спасибо Вам, такой подход тоже попробую.
А если напишете о своем видении экстра, с интересом почитаю :-)

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 02.04.10 в 17:46:50

on 04/02/10 в 16:26:12, VLV wrote:
Борис, Вы неожиданно конкретны :-)

Спасибо Вам, такой подход тоже попробую.
А если напишете о своем видении экстра, с интересом почитаю :-)

С уважением, Владимир.


Неужели это моя первая помощь здесь.(
Может спромагнётесь почитать последние мои "псевдоконкретности".
Насчёт экстра - "время деньги", мои извинения.
Доживу до пенсии - напишу.
Надо поискать на старом ПП - своё определение ФБП. Сейчас и не воспроизведу.
;)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 02.04.10 в 18:10:52
Борис, ну там же смайлик :-)
Мне Вы не единожды подсказывали...
Так что спасибо самое натуральное...без смайлика.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 24.04.10 в 14:35:14
Скажите ПЛЗ, существует исходник CLW в открытом доступе?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 26.04.10 в 12:48:12
Владимир,

такие вопросы лучше задать в привате.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 16.11.10 в 13:58:19
Здравствуйте!
Подскажите плз, есть ли ограничение по кол-ву передаваемых параметров при вызове подпрограммы?
ПРИМЕР:
CALL NAME [P1,P2,......,P18]
У меня через P1  параметр не пролазит в тело подпрограммы...в отличие от остальных..P2...P18

С уважением, Владимир

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 22.11.10 в 14:13:19

on 11/16/10 в 13:58:19, VLV wrote:
Здравствуйте!
Подскажите плз, есть ли ограничение по кол-ву передаваемых параметров при вызове подпрограммы?
ПРИМЕР:
CALL NAME [P1,P2,......,P18]
У меня через P1  параметр не пролазит в тело подпрограммы...в отличие от остальных..P2...P18

С уважением, Владимир


Владимир,

посмотрели исходники - ограничение 100 параметров.

Дайте пример кода и пример переменных.

Заголовок: Re: Подскажите
Прислано пользователем aaa на 22.11.10 в 15:28:36
Разве не хватит одной пары параметров, нгапример?
Скажем, имени группы парамтеров, и числа параметров?
Например, "params" - имя группы, params000 - параметр "число параметров", а params001..params999 - сами параметры.
Передавать можно через %, через extrd.dat, еще через много чего, можно паковать параметры, да все можно. Подумаешь, 100 параметров.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 17.12.10 в 18:10:33
Здравствуйте.

Возможно ли сделать чтобы окно сервера сворачивалось в системный трей, или сразу запускалось в свернутом виде?

С уважением Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Arkady на 18.12.10 в 11:18:52

on 12/17/10 в 18:10:33, VLV wrote:
Здравствуйте.

Возможно ли сделать чтобы окно сервера сворачивалось в системный трей, или сразу запускалось в свернутом виде?

С уважением Владимир.


У Вас какая OS?

Тут выявилось, что минимизация окна сервера в Win x64 приводит к ~90% свопингу и к такой же деградации скорости. Пока это ничем не лечится.

В своё время делали версии сервера как сервисы, но ни у кого это никакой радости не вызвало :)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 18.12.10 в 13:13:16

Quote:
У Вас какая OS?

Тут выявилось, что минимизация окна сервера в Win x64 приводит к ~90% свопингу и к такой же деградации скорости. Пока это ничем не лечится.

В своё время делали версии сервера как сервисы, но ни у кого это никакой радости не вызвало


Ось WINXP(x32), СЕРВЕР  4.21, потребности в x64 не видать вроде пока...

Наличие версии как сервиса (ну или хотябы упомянутого сворачивания в трей) меня бы лично порадовало несмотря на сопутствующие заморочки с настройками:-)
Многие СУБД сегодня это умеют.

Отлаживая взаимодействие ФБП и РМ Кассира на базе Атола остановился на врианте когда на машине товароведа работает и ФБПсервер и клиенты (clw, klff)... вот сильно окошко сервера тут путается под ногами. Что только юзеры с этим окошком не вытворяют...и часто незачем ползователю(во...без мягкого знака точнее слово получилось :-)) знать обо всем что у них на машине вертится

И в других ситуациях возникала потребность в таком варианте...

ЗЫ: Может еще сервер научить с другим сервером по  IP разговаривать? :-)
А что,  пока одноэсы пытаются свои консоли с тонким сервером помирить может мы превратим наши серверы в консоли? :-)

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 18.12.10 в 13:30:57
Дополнительный материал отправили Вам на e-mail.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 28.12.10 в 21:29:11
Подскажите плз, можно ли из CLW отправить на принтер Файл.prn

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 12.01.11 в 11:17:48
Не совсем понятна задача - почему нельзя использовать printstr для подготовки файла, почему именно *.prn?

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 13.01.11 в 21:34:15

on 12/28/10 в 21:29:11, VLV wrote:
Подскажите плз, можно ли из CLW отправить на принтер Файл.prn

С уважением, Владимир.

Когда открываем сценарий вывода на печать в CLW есть возможность поставить галочку "Печать в файл".
Это значит, что клиент создаст файл в формате prn, независимо от того, пропишите это расширение или нет.(можно считать, что это легкий недочет клиента)
При этом указанный файл будет просто создан в рабочей директории клиента.
Здесь:

http://forum.windowsfaq.ru/archive/index.php/t-20545.html

можете почитать, что можно сделать с этим файлом дальше.

Но зачем Вам это, пока даже не догадываюсь...

Заголовок: Re: Подскажите
Прислано пользователем VLV на 19.01.11 в 09:39:49

Quote:
Не совсем понятна задача - почему нельзя использовать printstr для подготовки файла, почему именно *.prn?



Quote:
Но зачем Вам это, пока даже не догадываюсь...


В момент написания сообщения я и сам слабенько понимал задачу, сейчас уже получше:-)

Задача такая.

Раскрыл справочник товаров...навел курсор на нужную позицию...нажал кнопочку "печатать штрихкод" и увидел результат на принтере zebra 2824 plus.

Решение получилось такое.

1) Клиент форм (KLFF) разлистывает справочник товаров и рисует кнопочку "печать штрихкода"
2) Нажатие кнопочки запускает ОФ, которая операторами printstr s to > file 'zebra.txt' создает в каталоге обмена файл в формате управляющих команд принтера на языке ZPL.
3) ОФ, закончив формирование файла, запускает на выполнение файл zebra.bat с содержимым

COPY Диск:\Путь\ZEBRA.txt \\СетевоеИмяКомпаСПринтером\СетевоеИмяРасшаренногоПритера

4) Результат...Этикетка со штрихкодом(ценником) на любом принтере в локальной сети.....

В общем много хорошего заложено в FWP...

С уважением и надеждой что адепты не пустят в забвение этот проект :-).

И всех с новым годом, желаю не терять интерес к жизни, какие бы сюрпризы она не преподносила!
Смаил.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 19.01.11 в 15:29:35

on 01/19/11 в 09:39:49, VLV wrote:
2) Нажатие кнопочки запускает ОФ, которая операторами printstr s to > file 'zebra.txt' создает в каталоге обмена файл в формате управляющих команд принтера на языке ZPL.


Наверное, морочливо изучать ZPL, может он и прост и все принтеры его понимают.

Решение этих вопросов уже обсуждалось здесь.
Было и у меня в практике.
Решение через Word и имеющиеся ttf-шрифты баркодов было простым и надёжным.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 19.01.11 в 16:42:28

Quote:
Решение через Word и имеющиеся ttf-шрифты баркодов было простым и надёжным.


Пожалуй Вы правы, Борис, особенно учитывая что к мороке с zpl добавляется морока с заливкой зебры рускими шрифтами.

Но через ворд я так понимаю придется документ вручную на принтер посылать?
(Или тоже через ком строку можно? Тогда со шрифтами простора заметно побольше.)

У работников розничного магазина лишние нажатия клавиш вызывают серьезное противодействие внедрению новых технологий :-)

Заголовок: Не придёться..
Прислано пользователем Boris, Kiev. на 19.01.11 в 17:43:26

on 01/19/11 в 16:42:28, VLV wrote:
Пожалуй Вы правы, Борис, особенно учитывая что к мороке с zpl добавляется морока с заливкой зебры рускими шрифтами.

Но через ворд я так понимаю придется документ вручную на принтер посылать?
(Или тоже через ком строку можно? Тогда со шрифтами простора заметно побольше.)

У работников розничного магазина лишние нажатия клавиш вызывают серьезное противодействие внедрению новых технологий :-)


Да, сталкивались с такими..
Word - это Word.
Во время решения "крутых" задач по выводу, уяснил, что Word уже вряд ли кто-нибудь и когда-нибудь переплюнет. Мои извинения за "политпропаганду".
Сейчас, приделал ещё на одну функциональную клавишу - вывод текущей отчетной формы CLW через Word c безвопросным выводом. Сработало без проблем.

В свой *.DOT в конце пришлось добавить вызов аж такой сложной Sub:

Public Sub PRINT_BEZ_VOPROSOV()
'
' Макрос2 Макрос
' Макрос записан 19.01.2011 Admin
'
   ActiveDocument.PrintOut
End Sub


Заголовок: Re: Подскажите
Прислано пользователем VLV на 25.01.11 в 20:02:15
Подскажите ПЛЗ!

Новогодний адаптер 4.ny(2,10) WinXP
В январе нового года порядка 10 500 однотипных операций, каждая создает (внутри ФК) один факт. Начиная приблизительно с 10000-ной факт перестает создаваться, хотя операции регистрируются и ошибок в них нет.

Я столкнулся с ограничением по кол-ву создаваемых фактов? Совсем маловато будет...

Для сервера 4.21 (32) тоже самое.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 26.01.11 в 09:21:43

on 01/25/11 в 20:02:15, VLV wrote:
Подскажите ПЛЗ!

Новогодний адаптер 4.ny(2,10) WinXP
В январе нового года порядка 10 500 однотипных операций, каждая создает (внутри ФК) один факт. Начиная приблизительно с 10000-ной факт перестает создаваться, хотя операции регистрируются и ошибок в них нет.


Было и больше.
Попробуйте сделать чистый эксперимент и выяснить точно, а не приблизительно это критическое, пока  для Вас, число.
До сих пор подобные заявления забирались обратно, интересно посмотреть в этот раз.
Ждём...

Заголовок: Re: Подскажите
Прислано пользователем VLV на 26.01.11 в 09:57:46
Делал другой эксперимент...

Удалял операции в середине месяца...и наблюдал как появлялись поштучно невидимые до сих пор факты от существующих уже в конце операций.

"Видимость" фактов определяю простой формочкой на операторе search {1, NameFact}

Точное кол-во...определю...напишу.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 26.01.11 в 10:39:37
КОЛИЧЕСТВО фактов 10000....
+/- несколько штук, может не доглядел что....

Заголовок: Re: Подскажите
Прислано пользователем VLV на 26.01.11 в 11:29:43
Если в форме, разлистывающей факты

search {1, NameFact}

Задать верхний предел не с начала месяца то она начинает видеть факты , ранее невидимые...

Значит что-то в работе search(селект, ревинд)?

У меня в ОФ используется код:
Он не видит больше 10 000 фактов.

REWIND FACTS RANGE 1.01,31.01
SELECT {1,NameF}
REWIND BUFFER
   IF [FOUND]>0 WF=1;ENDIF
 WHILE WF=1
  SEARCH {1,NameF}
    IF [SUCCESS]=1
      ОбработкаФакта
    ELSE
      WF=0
    ENDIF
 ENDWHILE

А этот код и ВИДИТ больше 10 000 фактов.

REWIND FACTS RANGE 1.01,31.01
***SELECT {1,NameF}
***REWIND BUFFER
***IF [FOUND]>0 WF=1;ENDIF
WHILE WF=1
 SEARCH {1,NameF}
   IF [SUCCESS]=1
     ОбработкаФакта
   ELSE
    WF=0
   ENDIF
ENDWHILE

Что я не так понимаю?

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 26.01.11 в 12:08:52
Владимир,

нет ограничений по количеству содаваемых фактов.

В документации по однопользовательской написано: "...Факты pазмещаются в ОЗУ и воссоздаются заново пpи каждом стаpте пpогpаммы..."
В документации по сетевой в разделе о количественных ограничениях есть еще:
...
3. об extra.b и facts.b
Здесь нет огpаничений. Пpосто лента и индексы фактов, а также все экстpапаpаметpы должны поместиться в отведенное пpостpанство ОЗУ.
...

Обратите внимание на мнемосхему ФБП:серверов при старте и после построения оборотки по ALT-F3, там ведь видно, сколько занимают факты -  может надо внести изменения в строку запуска серверов, дать больше памяти?
Сколько ОЗУ на машине?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 26.01.11 в 12:12:40
Светлана, посмотрите предыдущее сообщение...


Заголовок: Re: Подскажите
Прислано пользователем VLV на 26.01.11 в 12:17:00
Правильно я понимаю что парочка

SELECT {1,NameF}
REWIND BUFFER

Позволяют ускорить работу ОФ с лентой фактов?

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 26.01.11 в 12:23:10
А оценить - все факты или не все создаются можно и так: постройте оборотку за весь январь (Alt+F3) и нажмите F2 - как год закрываем, должен образоваться facts.e - вот и посмотрите, все ли там есть?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 26.01.11 в 12:26:48
С памятью все впорядке и факты создаются все.

У меня в ОФ используется код:
Он не видит больше 10 000 фактов.

REWIND FACTS RANGE 1.01,31.01
SELECT {1,NameF}
REWIND BUFFER
   IF [FOUND]>0 WF=1;ENDIF
 WHILE WF=1
  SEARCH {1,NameF}
    IF [SUCCESS]=1
      ОбработкаФакта
    ELSE
      WF=0
    ENDIF
 ENDWHILE

А этот код (без SELECT,REWIND BUFFER) ВИДИТ больше 10 000 фактов.

REWIND FACTS RANGE 1.01,31.01
***SELECT {1,NameF}
***REWIND BUFFER
***IF [FOUND]>0 WF=1;ENDIF
WHILE WF=1
 SEARCH {1,NameF}
   IF [SUCCESS]=1
     ОбработкаФакта
   ELSE
    WF=0
   ENDIF
ENDWHILE

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 26.01.11 в 12:41:18
BUFFER имеет ограничение - быстро ответить не смогу конкретнее.

Заголовок: Re: Подскажите
Прислано пользователем Konstantin на 26.01.11 в 12:43:54

on 01/26/11 в 12:41:18, Svetlana wrote:
BUFFER имеет ограничение - быстро ответить не смогу конкретнее.

Вот конкретнее: http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=news;action=display;num=1186657169

Заголовок: Re: Подскажите
Прислано пользователем VLV на 26.01.11 в 14:54:04
Ого какая давняя история...

Как раз повод Аркадию Григорьевичу напомнить об этом:-)

Спасибо.
С уважением, Владимир.

Заголовок: Буфер есть буфер
Прислано пользователем Boris, Kiev. на 26.01.11 в 17:06:42

on 01/26/11 в 14:54:04, VLV wrote:
Ого какая давняя история...

Как раз повод Аркадию Григорьевичу напомнить об этом:-)

Спасибо.
С уважением, Владимир.


Вот и очередной случай почил...
Буфер есть буфер.
Если резервирование под буфер проводится безусловно, то прошу дать возможность управлять константой, т.к. балласт даже в 10000 не оправдан, т.к. есть контингент настройщиков, которые про [select] прочитали и забыли, а ресурс возможно отдают.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 23.02.11 в 10:25:52
Собираемся перейти на win2008 R2.
У кого уже есть опыт - есть ли проблемы с запуском ФБП:сервера?

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 23.03.11 в 14:19:31
У меня под WIN2008 R2    клиент clw не запускается. Это нужно специальный  clw искать или с системным  администратором, который винду устанавливал  разговаривать??

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 23.03.11 в 16:16:49
Попробуйте может Клиент-FCM запустится?

http://www.imte.ca/fcm/

Сам не проверял, Win2008R2 нету. Будет интересно услышать о результате.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 04.04.11 в 19:33:59

on 03/23/11 в 14:19:31, Denis, Dnepropetrovsk wrote:
У меня под WIN2008 R2    клиент clw не запускается. Это нужно специальный  clw искать или с системным  администратором, который винду устанавливал  разговаривать??


Под MS Win2003Server сталкивался.
Есть такая штука DEP.
Легко отключается после перезагрузки.

DEP (Data Execution Prevention) – предотвращение выполнения данных (ПВД) – это набор программных и аппаратных технологий, позволяющих выполнять дополнительные проверки содержимого оперативной памяти и предотвращать запуск вредоносного кода.
Функция DEP позволяет отразить целый класс атак. В частности, DEP позволяет блокировать вирусы и другие вредоносные программы, пытающихся выполнить свой код из областей системной памяти, резервированных для Windows и других авторизованных программ. Обнаружив, что программа использует системную память неправильно, средство DEP принудительно закрывает программу и выдает соответствующее сообщение.

Возможно у Вас тоже DEP контролит наши EXE.

Заголовок: Re:Подскажите
Прислано пользователем VLV на 08.06.11 в 14:56:11
Помогите плз свежим взглядом...
Столкнулся с ошибками при передаче параметров в подпрограммы.
***************************************
*ФК
**********************************
SP=[N1 @SP]
IF [:FLAPER PZ]=1
 CALL MAKTMGPE_ (SP,DP,PR,[:CU],[:AQ])
ENDIF
GOTO END
***********************************
:MAKTMGPE_ (SP,PZ,CN,CO,Q)
***********************************
IF CN<CO
 ...
 SI=Q*(CO-CN)
 CALL MNSQCS (SP,PZ,0,SI) В library
 CALL FACT_TMC (SP,'отзатр',...,...,) В library
ENDIF
RETURN
*************************************
Если так то Значение SP Не передается в Библиотечные подпрограммы MNSQCS,FACT_TMC
(Вместо SP оказывается PZ)

А если вместо
CALL MAKTMGPE_...
Разместить сам код подпрограммы то все работает правильно

***************************************
*Такой файл-К работает
**********************************
SP=[N1 @SP]
IF [:FLAPER PZ]=1
 IF CN<CO
   ...
   SI=Q*(CO-CN)
   CALL MNSQCS (SP,PZ,0,SI) В library
   CALL FACT_TMC (SP,'отзатр',...,...,) В library
 ENDIF
ENDIF
***********************************
В библиотеке...
**************************************
:MNSQCS (SP,PZ,DQ,DS)
**************************************
LOCAL Q1,W1,S1
IF DQ=0
 S1=[:AS]-DS
 CALL SAS (S1)
 C1=S1/[:AQX SP,PZ] В library
 CALL SCU (C1)
ENDIF
RETURN
**************************************
:FACT_TMC (P1,P2,P3,P4,P5,P6,P7,P8,P9,PA,PB,PC,PD,PE,PF,PG,PH,PL)
*****************************
P1=SP Странная ошибка...SP не передается через параметр...только неявно
CALL FACTMC
RETURN
*******************************
:FACTMC
*********
FACT поле P1 поле2 P2 поле3 P3 ........
RETURN
*********

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 09.06.11 в 12:55:37
Складывается впечатление, что козябра именно в последовательной передаче значения(у меня текстовое - обозначение с/счета) вглубь процедур именно через первый параметр...

И именно в момент первого вызова подпрограммы из ФК, независимо от того ближний это вызов в пределах ФК, или "дальний" из library.rpt...и дальше колич-во вложенных вызовов процедур вродь как не играет роли...

Если делаю обходной маневр, и передаю через другой (не первый) параметр, то все вродь работает правильно....

Заголовок: Re: Подскажите
Прислано пользователем VLV на 09.06.11 в 14:16:04
Если от предыдущего кода отсечь все лишнее...
И запустить как отчетную форму...
************************
*FORMA
************************
SP='S01081697'
 CALL MAKTMGPE_ (SP,0,0,0,0)
 CALL MAKTMGPE_ (SP,0,0,0,SP)
 CALL MAKTMGPE_ (0,0,0,0,SP)
GOTO END
************************
:MAKTMGPE_ (SP,PZ,CN,CO,SP)
************************
^SP^^^^^^^^^^^^^^^^^^^
RETURN
*************************
:END
*************************
Эта отчетная форма выдаст...

0.00000000000
S01081697
S01081697

Сервер 4.21 10 юзер, WinXP

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 09.06.11 в 16:20:48
Обратите внимание на определение процедуры
:MAKTMGPE_ (SP,PZ,CN,CO,SP)
Здесь параметр SP определен дважды: на первом месте и на последнем. По логике передачи параметров при вызове процедуры передается первый параметр под именем SP, затем второй... и наконец последний, значение которого замещает предыдущее значение SP.
Поставьте вызов
 CALL MAKTMGPE_ (SP,1,2,3,4)
и будет распечатано значение
4.0000000000000000000

Заголовок: Re: Подскажите
Прислано пользователем VLV на 09.06.11 в 18:06:58

Quote:
По логике передачи параметров при вызове процедуры передается первый параметр под именем SP, затем второй... и наконец последний, значение которого замещает предыдущее значение SP.


Согласен, вообщемто для проверки этого факта строка и появилась.
Без нее суть вопроса остается..пока  не могу понять что я не так делаю...

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 09.06.11 в 20:39:01
А в функциях [:CU] и [:AQ] переменной  SP значение нигде не присваивается?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 09.06.11 в 20:56:28
:CU;         LOCAL CU,AD;  AD=[:ACNT PZ]; CU=[GET *SP,AD+'C'];             RETURN (CU)
***********
:ACNT (PZ)
***********
IF [GET *PZ,'ACNT']=0
CT='10-00'  
ELSE    
CT=[GET *PZ,'ACNT']                     ENDIF
RETURN (CT)
*************
:FLAPER (PZ)
*************
LOCAL FM
IF [EX *PZ]=1
FM=[GET *PZ,'FLAPER']
ELSE
FM=0
ENDIF
RETURN (FM)
*************
На предмет переопределения где-то значения SP просматривал...пока не вижу

Вообщемто весь код написал
Ошибку выдает при делении на ноль, когда из-за неправильного SP функция [:AQX SP,PZ] возвращает 0 (АНАЛОГ [:AQ] с явной передачей SP, PZ)

SP у меня типа зарезервироанного имени...используется только для присваивания значений с/сч справочника товаров и даже если переопределяется....то в корректное значение....
В нее попадает значение PZ1002 это значение переменной PZ...

Я так понимаю что нужно искать переопределение...и других гипотез нет...

Кстати в моем коде есть второе место где таже петрушка...(вызов call fact_tmc)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 10.06.11 в 14:20:00

Quote:
А в функциях [:CU] и [:AQ] переменной  SP значение нигде не присваивается?


Причина действительно кроется здесь...
НО ВНУТРИ ЭТИХ ВЫЗОВОВ НЕТ ПЕРЕОПРЕДЕЛЕНИЯ ПЕРЕМЕННОЙ SP.
Там только [GET *SP....]
Передается SP внутрь неявно.

Причина в самой конструкции

Если вместо
CALL MAKTMGPE_ (SP,DP,PR,[:CU],[:AQ])
Сделать
Z1=[:CU]
Z2=[:AQ]
CALL MAKTMGPE_ (SP,DP,PR,Z1,Z2)
То параметр передается корректно.

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

Что делать?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 10.06.11 в 15:10:56
Ищите и обрящете!
Я бы делал так (варианты):
1)
а)
Z2=[:AQ]
CALL MAKTMGPE_ (SP,DP,PR,[:CU],Z2)  
б)
Z1=[:CU]
CALL MAKTMGPE_ (SP,DP,PR,Z1,[:AQ])  
И смотреть, где будет ошибка. Диапазон поиска снижается вдвое.
2)В FARe найти все файлы со строкой SP=. И все просмотреть. Может быть, где-то есть несколько уровней вложенности вызовов процедур.


Заголовок: Re: Подскажите
Прислано пользователем VLV на 14.06.11 в 16:49:33

Quote:
Я бы делал так (варианты):
1)
а)
Z2=[:AQ]
CALL MAKTMGPE_ (SP,DP,PR,[:CU],Z2)  
б)
Z1=[:CU]
CALL MAKTMGPE_ (SP,DP,PR,Z1,[:AQ])  
И смотреть, где будет ошибка. Диапазон поиска снижается вдвое.


Обрадовался я вначале, что Дмитрий Дмитриевич про метод такой хороший напомнил:-)

И в первом случае и во втором ошибка...
И общая процедура для этих вызовов отискалась...
И содержание у нее прозрачное...
И SP  она НЕ переопределяет
И если вместо ее вызова разместить ее содержимое то НЕТ ошибки...
***********
:ACNT (PZ)
***********
IF [GET *PZ,'ACNT']=0  
CT='10-00'  
ELSE    
CT=[GET *PZ,'ACNT']
ENDIF
RETURN (CT)
************
Но интересно что эта процедура в только в конкретном случае "крайней" оказалась...
Сделал "трассировку" переменной SP на фактах...
При возврате из второго вызова (если передача параметра явная) SP оказывается переопределенной.

Т.е. возврат из вызвавшей эту процедуру процедуры переопределяет SP.
После выхода из [:acnt pz] значение SP еще целехонькое...

А если вместо call acnt (pz) использовать call acnt
То нет ошибки...

Да и вообще acnt (pz) можно совершенно пустую сделать...ошибка останется...


Заголовок: Re: Подскажите
Прислано пользователем VLV на 14.06.11 в 18:21:12
Вот...явил кажись внятную формулировку проблеммы...давайте уж помогать :-)

Такая форма
***************************************
*FORMA
***************************************
SP='S01081697'
PZ='PZ1002'
 CALL Z_ (SP,PZ,0,0,[:X SP,PZ])
333
SP ^SP^^^^^^^^^
PZ ^PZ^^^^^^^^^
GOTO END
***************************************
:Z_ (SP,PZ,CN,CO,Q)
***************************************
Z INP
SP ^SP^^^^^^^^^
PZ ^PZ^^^^^^^^^
--------------------
CALL SSS_ (SP,PZ,0,DS)
RETURN
***************************************
:SSS_ (SP,PZ,DQ,DS)
***************************************
SSS
SP ^SP^^^^^^^^^
PZ ^PZ^^^^^^^^^
---------------------
RETURN
***************************************
:X (SP,PZ)
***************************************
CALL Y (PZ)
X
SP ^SP^^^^^^^^^
PZ ^PZ^^^^^^^^^
------------
RETURN
***************************************
:Y (PZ)
***************************************
Y
SP ^SP^^^^^^^^^
PZ ^PZ^^^^^^^^^
------------
RETURN
***************************************
:END
******

Результат работы ФОРМЫ

Y
SP S01081697
PZ PZ1002
------------
X
SP S01081697
PZ PZ1002
------------
Z INP
SP PZ1002  ??? ДОЛЖНО ТАК БЫТЬ ????
PZ PZ1002
--------------------
SSS
SP PZ1002
PZ PZ1002
---------------------
333
SP S01081697
PZ PZ1002
*****
А если вместо
CALL Y(PZ)
Написать
CALL Y(SP,PZ) (С соотв исправлением процедуры)
Работает как задумано


С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 20.06.11 в 17:45:09

on 06/14/11 в 18:21:12, VLV wrote:
Вот...явил кажись внятную формулировку проблеммы...давайте уж помогать :-)

Такая форма
***************************************
*FORMA
***************************************
SP='S01081697'
PZ='PZ1002'
 CALL Z_ (SP,PZ,0,0,[:X SP,PZ])

......



В руководстве есть такое:
В опеpатоpе CALL можно указывать фактические паpаметpы подпpогpаммы - выpажение (или выpажения, pазделенные запятыми) в кpуглых скобках. Соответственно после опpеделения метки могут следовать фоpмальные паpаметpы подпpогpаммы - пеpеменная (или пеpеменные, pазделенные запятыми) в кpуглых скобках. Пpи входе в подпpогpамму фоpмальные паpаметpы получают значения фактических. Фоpмальные паpаметpы - это локальные пеpеменные подпpогpаммы, их экземпляpы автоматически уничтожаются пpи выполнении опеpатоpа RETURN. Паpаметpы пеpедаются "по значению", т.e. изменение значения фоpмального паpаметpа внутpи подпpогpаммы не влечет изменения значения фактического паpаметpа в вызывающей пpогpамме.

Похоже, что запись
 CALL Z_ (SP,PZ,0,0,[:X SP,PZ])
синтаксически не предусмотрена именно при использовании CALL, т.к.
переписав в 2 строчки так:
X=[:X SP,PZ]
 CALL Z_ (SP,PZ,0,0,X)
ситуация нормализуется.

Возможно следующие версии клиента будут сигналить о недопустимости подобных выражений.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 23.06.11 в 13:59:43
Ну вот на 100% , Борис, не охота с этим соглашаться.

Ошибка возникает в ситуации когда внутри подпрограммы, получившей параметры явно, вызывается другая подпрограмма с другим кол-вом параметров и другими именами параметров...
все по букве мануала...

pr1 (sp,pz)
...
call pr2 (pz)
...
return

call pr2 (pz) не имея внутри себя кода, модифицируещего переменную sp, при окончании работы являет запорченной эту переменную.

Где здесь нарушение буквы мануала?

Иметь ввиду что мог накосячить в каком нить другом вызове..при том что сам этот вызов корректно отработал....а где гарантии что и других неочевидных влияний нет?


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

CALL Z_ (SP,PZ,0,0,[:X SP,PZ])

Это очень сильно сокращает количество кода и повышает читабельность, что полезно для здоровья ФБП :-)

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 24.06.11 в 09:14:36
Я согласен с Владимиром. Формально такая запись абсолютно корректна. Более того она работает. Но не всегда. Попробуйте в программке, присланной Владимиром, заменить определение (и, соответственно, вызов)
Y (PZ) на
Y (SP,PZ)
Ошибка исчезнет.
Попробуйте закрыть вызов Y
*CALL Y (PZ)
ошибка исчезнет.
Хотя в обоих случаях вызов Z_ останется тем же.
Вообще-то это уже вопрос к Аркадию.
Надо править либо сервер, либо описание, где надо точно описать исключения из правил вызова вложенных процедур.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 24.06.11 в 09:40:04
Согласен, но поупражняйтесь с кол-ом параметров в вызовах подпрограмм из функций, которые параметрами в первом вызове, не забудьте про return(..) - там ещё "чудеснее" будет.

На сегодня, исключив запись вызова функции в параметрах call всё должно работать "как договорено".

Если есть пример глюка без этой записи пропишите пожалуйста, ещё поупражняюсь.

P.S.
local - это сила, пользую и всем рекомендую, а
[:SUB ..]  и call SUB () до сих пор у меня в стороне.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 10.08.11 в 15:10:32
Подскажите плз...

Существует ли возможность зарегистрировать операцию в нужном месте ЖО в соответствии с конкретной датой и временем?

С уважением Владимир.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 11.08.11 в 14:34:17
Не совсем понятно - надо вносить в прошлое, в текущий месяц или в будущее, это должно произойти при каких-то условиях или еще как?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 11.08.11 в 16:45:35
Вносить нужно в прошлое.

Есть файл с транзакциями продаж от ККМ. В транзакциях есть дата и время. При загрузке этого файла в ФБП сервер регит операции в указанный день, но размещает их в дополнение к существующим операциям. А интересно разместить их не только в нужную дату, но и в нужное время.

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 12.08.11 в 09:24:31
Когда-то, лет 5 назад, у меня было предложение к Аркадию сделать возможность вводить операцию ПЕРЕД (или ПОСЛЕ, или то и другое) операции с заданным кодом.  Такое добавление  решило бы многие проблемы. К сожалению, предложение не нашло поддержки. Конечно, вручную можно проделать такой финт, но это ОЧЕНЬ трудоемко. И уж точно не средствами сервера.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 12.08.11 в 09:54:07

on 08/12/11 в 09:24:31, Tupitsin wrote:
Когда-то, лет 5 назад, у меня было предложение к Аркадию сделать возможность вводить операцию ПЕРЕД (или ПОСЛЕ, или то и другое) операции с заданным кодом.  Такое добавление  решило бы многие проблемы. К сожалению, предложение не нашло поддержки. Конечно, вручную можно проделать такой финт, но это ОЧЕНЬ трудоемко. И уж точно не средствами сервера.

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

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 12.08.11 в 10:02:44

on 08/11/11 в 16:45:35, VLV wrote:
Вносить нужно в прошлое.

Есть файл с транзакциями продаж от ККМ. В транзакциях есть дата и время. При загрузке этого файла в ФБП сервер регит операции в указанный день, но размещает их в дополнение к существующим операциям. А интересно разместить их не только в нужную дату, но и в нужное время.

Если эти действия Вы планируете делать эпизодически, т.е. раз  от разу при необходимости, то решение может быть таким:
- поднимаете за требуемый день операции;
- добавляете операции от ККМ;
- делаете сорт по времени;
- удаляете старые, а лучше перерегистрируете на имеющиеся и добавляете оставшийся хвост.

Почему ККМ не может сразу бомбить в ЖО?

P.S. Вам ещё надо будет выставить синхронно время на севрере и ККМ
;D

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 15.08.11 в 10:35:48

on 08/12/11 в 09:54:07, Boris, Kiev. wrote:
Не помню, кто делал это предложение первым, но был ответ, что здесь может быть накладка, т.к. возможна ситуация запроса от более одного клиента на регистрацию операции за выбранным штампом и потом гарантировать неизменность желаемого состояния относительного положения операций будет проблематично в общем случае.

Если придет запрос на регистрацию от 2-х, 3-х... клиентов, то они будут разбираться только между собой, кто раньше, а кто позже. Однако, ВСЕ эти операции лягут ПЕРЕД (ПОСЛЕ) заданной. Не вижу конфликтов.  

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 15.08.11 в 14:03:02

on 08/15/11 в 10:35:48, Tupitsin wrote:
Если придет запрос на регистрацию от 2-х, 3-х... клиентов, то они будут разбираться только между собой, кто раньше, а кто позже. Однако, ВСЕ эти операции лягут ПЕРЕД (ПОСЛЕ) заданной. Не вижу конфликтов.  

Тонкость этого вопроса в том, что пользователь получив возможность зарегистрировать операцию «ЗА ТЕКУЩИМ ШТАМПОМ» по умолчанию считает, что это состояние относительного положения двух операций незыблемо, также как оно незыблемо в первых уже имеющихся трех ранжирах(«в начале дня», «в общем порядке» и «в конце дня»).
Ведь предоставив такую возможность может запросто нарушиться хронология(про простую перебивку операций не говорю) в каждом из ранжиров, а посему эта возможность не аналогична первым трем, потому ей и не место здесь, хотя также долго не мог с этим согласиться, но окончательно успокоился, когда сделал формочку по перестановке двух операций местами(ведь в локале живет и  часто востребована эта встроенная возможность).
Согласен, что если  упротребить «ПОСЛЕ ТЕКУЩЕГО ШТАМПА», то конфликта нет, но тогда зачем это делать, если, пожалуйста, сегодня регистрируй операцию в нужном ранжире и получишь тоже самое, просто представь, что коллеги наплодят(пользуясь этой же возможностью) за выбранным Вами штампом тот же самый массив, который якобы Вам сейчас мешает.

Добавлю, что следующий шаг в этом направлении – копирование операций в конец или начало ОП, заставил забыть и не вспоминать об этой просьбе.

Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 16.08.11 в 09:15:35
Ввод операций "В общем порядке" меняет последовательность для операций "В конце дня". Ввод "В начале дня" меняет последовательность для операций "В общем порядке" и "В конце дня". Т.о. смена последовательности уже заложена в нынешнем варианте. Ввод "перед штампом" или "после штампа" лишь детализирует эту возможность.
Кроме того, вовсе не обязательно давать эту возможность оператору напрямую из клиента. А вот дать такую возможность администратору просто необходимо.
Пример 1: оператор "A E ·счет· BA=число " не может быть использован напрямую из клиента. Только через форму. Представляете себе, заменить вручную начальное значение счета! Это Вам не операции переставить. Однако, такая возможность есть.
Пример 2 В однопользовательской версии определена клавиша:
F9 - переставить две соседние операции одной даты;
(Или уже нет? Давно не пользовался однопользовательской версией)
Это разве не то же, что ввести операцию перед заданной? Последовательное применение этой клавиши перенесет операцию куда угодно. Почему бы не дать такую же возможность в сетевой версии?

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 16.08.11 в 09:43:01

on 08/16/11 в 09:15:35, Tupitsin wrote:
Ввод операций "В общем порядке" меняет последовательность для операций "В конце дня". Ввод "В начале дня" меняет последовательность для операций "В общем порядке" и "В конце дня". Т.о. смена последовательности уже заложена в нынешнем варианте.

Похоже Вы не вникаете.
Ещё раз, сегодня есть три ранжира, последовательность операций в каждом из них незыблема, т.е. например введя 10 операций в "начале дня", Вам не удасться изменить эту последовательность, например, введя между 2-ой и 3 -ей, только есть возможность добавлять в хвост каждого ранжира. Да согласен, что сервер вставляя операцию в конец каждого ранжира знает штамп, за которым он внедряет новую операцию, но давать возможность это делать свободно пользователю не целесообразно по вышеизложенным мотивам, а также с учетом не простых вопросов тельных операций многострочников и резервирования пространства для каждой операции( а не для трех ранжиров в дне) в общем случае для быстрого выполнения таких вставок.


Заголовок: Re: Подскажите
Прислано пользователем Tupitsin на 16.08.11 в 10:27:02
Ну нет, так нет. Как всегда, будем ездить из Москвы в Петербург через Владивосток. Нам не привыкать. (Хотя аргументы не убедили).

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 22.08.11 в 17:06:46
Может, подскажет кто сразу или даст толковую ссылку: нужен управляющий код для лазерного принтера с usb-портом для выталкивания листа в нужный момент (для отчетной формы).

Заголовок: Re: Подскажите
Прислано пользователем VLV на 29.08.11 в 14:06:47

Quote:
Почему ККМ не может сразу бомбить в ЖО?


Чтобы ККМ бомбила в ЖО логично сделать РМ ККМ на основе ФБП-Сервер+ФБП-Клиент.

Изначально я реализовал подобную штуку на основе Сервер+КлиентФорм. Но отсутствие у СервераФБП и КлиентаФорм возможности запустить их в в режиме приложения, или хотя бы свернуть в тулбар (я уж не говорю вместо Эксплорера) (плюс еще некоторые недочеты в этих программах) не позволяют их эксплуатировать в реальных условиях.

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

В итоге РМ товароведа получилось на основе ФБПСервер+КлиентФорм, РМК пришлось приобретать у стороннего производителя. В моем случае им оказался Фонтол.
Фронтол - это софт, опирающийся на ФаерБест, и взаимодействие с ним возможно только в виде получения файла транзакций по запросу со стороны ФБП.
Такая вот петрушка вышла.

Если кто в этой области что делал...поделитесь, плз, хотя бы общими подходами к решению.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 22.09.11 в 14:42:31
Поясните для общего понимания ПЛЗ!

*ОФ
*Отправка директивы DR на сервер посредством
PRINTSTR DR+[CH 13]+[CH 10] TO > FILE F.rq
RENAMEFILE F.rq TO F.in
Ожидание события появления в каталоге обмена ответа от сервера для последующей обработки
loadtxt F.out
...

Дождаться события появления файла не удается.
После таймаута форма заканчивает работу и только после этого появляется в каталоге обмена долгожданный файл...

Должно так быть? И по каким соображениям?

Понятно что ФК, или многострочный запрос должен выполняться за одну транзакцию, но для ОФ возможноли обойти эту проблемму?

Кстати  возникает ситуация когда форма надолго зависает, возможно ли ее выполнение прервать чем нибуть кроме выключения сервера?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 24.09.11 в 12:21:37

on 09/22/11 в 14:42:31, VLV wrote:
Поясните для общего понимания ПЛЗ!

*ОФ
*Отправка директивы DR на сервер посредством
PRINTSTR DR+[CH 13]+[CH 10] TO > FILE F.rq
RENAMEFILE F.rq TO F.in
Ожидание события появления в каталоге обмена ответа от сервера для последующей обработки
loadtxt F.out
...

Дождаться события появления файла не удается.
После таймаута форма заканчивает работу и только после этого появляется в каталоге обмена долгожданный файл...

Должно так быть? И по каким соображениям?

Понятно что ФК, или многострочный запрос должен выполняться за одну транзакцию, но для ОФ возможноли обойти эту проблемму?

Кстати  возникает ситуация когда форма надолго зависает, возможно ли ее выполнение прервать чем нибуть кроме выключения сервера?

С уважением, Владимир.

[b][/b]


а каким образом организуется "Ожидание события появления в каталоге обмена ответа от сервера для последующей обработки loadtxt F.out"??? (пока сервер не ответит на эту форму никакие другие формы не обслуживаются, поэтому и нет ответа F.out)
Для Вашего случая в CLW нужно после
"PRINTSTR DR+[CH 13]+[CH 10] TO > FILE F.rq
RENAMEFILE F.rq TO F.in "
делать что-то вроде
N:AUTO:R OTVET ·F.out·
N:AUTO:#CLOSE

А Форма OTVET должна содержать программу:
F=[is 'Файл ответа','',80]
if [fe F]=-1  это для случая, если сервер первым обработает текущую форму а не F.in
printstr 'N:AUTO:R OTVET ·'+f+'·'+[ch 10]
N:AUTO:#CLOSE
else
***обработка loadtxt F.out
endif

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 25.09.11 в 14:26:41

on 09/24/11 в 12:21:37, Denis, Dnepropetrovsk wrote:
Для Вашего случая в CLW нужно после
"PRINTSTR DR+[CH 13]+[CH 10] TO > FILE F.rq
RENAMEFILE F.rq TO F.in "

делать что-то вроде
N:AUTO:R OTVET ·F.out·
N:AUTO:#CLOSE

А Форма OTVET должна содержать программу:
F=[is 'Файл ответа','',80]
if [fe F]=-1  это для случая, если сервер первым обработает текущую форму а не F.in
printstr 'N:AUTO:R OTVET ·'+f+'·'+[ch 10]
N:AUTO:#CLOSE
else
***обработка loadtxt F.out
endif


Ай,я,яй, Денис на Вас это не похоже.
Интересно, Вы предлагаете код, проверяли ли Вы его и на каких версиях?
Раскладывать по полочкам не буду, просто есть желание учредить правило подобных публикаций:

- Предлагаемый код должен отрабатывать решаемую задачу на указанных версиях сервера и клиента.


Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 27.09.11 в 12:19:50
Код я не проверял (цель поста была не дать рабочий пример, а объяснить почему бессмысленно ожидать ответ от сервера в форме, которая делает запрос в файл). А по поводу кода:
Ну во-первых я же написал что-то вроде :)
А во-вторых я очень часто использую подобные конструкции в своих настройках и на 99% уверен что код рабочий для CLW в связке с сервером 4.11 и выше.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 28.09.11 в 07:41:07

on 09/27/11 в 12:19:50, Denis, Dnepropetrovsk wrote:
Код я не проверял (цель поста была не дать рабочий пример, а объяснить почему бессмысленно ожидать ответ от сервера в форме, которая делает запрос в файл). А по поводу кода:
Ну во-первых я же написал что-то вроде :)
А во-вторых я очень часто использую подобные конструкции в своих настройках и на 99% уверен что код рабочий для CLW в связке с сервером 4.11 и выше.

Объяснений или оправданий не нужно, давайте по сути.

Интересно, всё-таки проверили свой код или нет?
Больше «нет», чем «да», иначе про «бессмысленность» не написали бы, а дошли до своего решения, может быть нового для меня.


Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 28.09.11 в 15:29:32
Вот рабочий пример для получения ответа:
Клиент CLW   сервер 4.14 x64


3 формы:
testz.rpt     делает запрос "R testo" записью в файл
testo.rpt    форма для выполнения
testp.rpt    ожидает ответ и выводит то что ответил сервер
Запускаем testz
-------------------------------------
Код testz.rpt:
-------------------------------------
*Тест запроса директивой
*.on
*,off
US='***'      имя пользователя
KS='***'      пароль пользователя
call FR
printstr [strip US+'·'+KS]+'··R testo' to file v
call FZ
renamefile v to v1
****файл ответа
vo=[cp v1,1,[length v1]-2]+'out'
printstr 'N:AUTO:R testp ·'+vo+'·'+[ch 10]
printstr 'N:AUTO:#CLOSE'+[ch 10]
stop
**********
:FR   поиск свободного канала для записи директив
f=[dir 1]  каталог обмена
i=1
v=f+[intsn i]+'.req'
while ([fe v]<>-1)&(i<1000)
     i=i+1
     v=f+[intsn i]+'.req'
endwhile
if i>1000

  Каталог обмена не обслуживается!!!!!
  stop
endif
\>file v
return
**********
:FZ   поиск свободного файла для записи директив
f=[dir 1]  каталог обмена
i=1
v1=f+[intsn i]+'.in'
v2=f+[intsn i]+'.out'
while ([fe v1]<>-1)&(i<1000)
     i=i+1
     v1=f+[intsn i]+'.in'
     v2=f+[intsn i]+'.out'
endwhile
if [fe v2]<>-1
  deletefile v2
endif
if i>1000

  Каталог обмена не обслуживается!!!!!
  stop
endif
return


-------------------------------------
Код testo.rpt:
-------------------------------------
*Ответ сервера
*.on
*,off
printstr 'Время выполнения: '+[tm]
stop



-------------------------------------
Код testp.rpt:
-------------------------------------
*Ожидаем ответ от сервера
*.on
*,off
F=[is 'Файл ответа','',80]
if [fe F]=-1  это для случая, если сервер первым обработает текущую форму а не F.in
printstr 'N:AUTO:R testp ·'+f+'·'+[ch 10]
else
***обработка loadtxt F.out
  Сервер ответил:
  loadtxt F
  LX=[ged 'lt.N']+0.1
  for i=1 to LX
      ST=[ged 'lt.'+[intsn i]
      if ST<>'' if ST=0 ST=' пустая строка';endif;else ST=' пустая строка';endif
      printstr ST+[ch 10]
  endfor
endif
stop


Буду рад если кому-нибудь это поможет:))

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 29.09.11 в 08:06:25

on 09/28/11 в 15:29:32, Denis, Dnepropetrovsk wrote:
F=[is 'Файл ответа','',80]
if [fe F]=-1  это для случая, если сервер первым обработает текущую форму а не F.in
printstr 'N:AUTO:R testp ·'+f+'·'+[ch 10]
else
***обработка loadtxt F.out
endif
stop

Суть в этом и она не изменилась. Что будет, если сюда всё-таки состоится заход? Проверьте. Мягко говоря, алгоритм окажется несостоятельным.



Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 29.09.11 в 12:22:21
Проверил. За 2 мин. настроил что-бы работало как надо:)

дописал в testp.rpt пару строчек
---------------
*Ожидаем ответ от сервера
*.on
*,off
F=[is 'Файл ответа','',80]
F1=[ir '',0,0]
if F1=20  stop;endif

if [fe F]=-1  это для случая, если сервер первым обработает текущую форму а не F.in
printstr 'N:AUTO:R testp ·'+f+'·'+[intsn F1+1]+'·'+[ch 10]
printstr 'N:AUTO:#CLOSE'+[ch 10]

else
***обработка loadtxt F.out
  Сервер ответил:
  loadtxt F
  LX=[ged 'lt.N']+0.1
  for i=1 to LX
      ST=[ged 'lt.'+[intsn i]
      if ST<>'' if ST=0 ST=' пустая строка';endif;else ST=' пустая строка';endif
      printstr ST+[ch 10]
  endfor
endif
stop


и в тестz.rpt  пару символов:)
вместо
printstr 'N:AUTO:R testp ·'+vo+'·'+[ch 10]
добавил "1·"
printstr 'N:AUTO:R testp ·'+vo+'·1·'+[ch 10]

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 29.09.11 в 13:26:42
Проверяли "до 20" или нет?
Но задача же не решена, принципиально, даже если организуете бесконечную инверсию параметра, без которой форма "отлетает".

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 29.09.11 в 14:17:00

on 09/29/11 в 13:26:42, Boris, Kiev. wrote:
Проверяли "до 20" или нет?
Но задача же не решена, принципиально, даже если организуете бесконечную инверсию параметра, без которой форма "отлетает".


Проверял:)  а Вы проверяли?
Ограничение поставил чтобы перезапуск формы остановился, так как проверял заведомо несуществующий файл. Покажите пример, чтобы *.out  не появился хотя бы после 2-го перезапуска, тогда будем говорить о том что задача не решена...

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 29.09.11 в 20:32:00

on 09/29/11 в 14:17:00, Denis, Dnepropetrovsk wrote:
Проверял:)  а Вы проверяли?
Ограничение поставил чтобы перезапуск формы остановился, так как проверял заведомо несуществующий файл. Покажите пример, чтобы *.out  не появился хотя бы после 2-го перезапуска, тогда будем говорить о том что задача не решена...



Можете показать log в котором раскрытие *.out не с первого раза?


Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 30.09.11 в 12:32:58
Показать log не могу.

А Вы, наверное можете:

on 09/29/11 в 08:06:25, Boris, Kiev. wrote:
Суть в этом и она не изменилась. Что будет, если сюда всё-таки состоится заход? Проверьте. Мягко говоря, алгоритм окажется несостоятельным.


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

Исходя из моего опыта, иногда (не всегда, но довольно часто) форма запущенная через N:AUTO  не может прочитать данные которые должны были бы быть, если бы форма выполнилась после определенного запроса.Поэтому я и предполагаю, что сервер исполняет *.in запросы не в порядке их появления в каталоге, а скорее всего сортирует их по наименованию *.in файла. Моя проблема решилась именно перезапуском формы, вот я и вставил проверку существования ответа сервера.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 02.10.11 в 11:34:59

on 09/30/11 в 12:32:58, Denis, Dnepropetrovsk wrote:
Показать log не могу.

А Вы, наверное можете:

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

Исходя из моего опыта, иногда (не всегда, но довольно часто) форма запущенная через N:AUTO  не может прочитать данные которые должны были бы быть, если бы форма выполнилась после определенного запроса.Поэтому я и предполагаю, что сервер исполняет *.in запросы не в порядке их появления в каталоге, а скорее всего сортирует их по наименованию *.in файла. Моя проблема решилась именно перезапуском формы, вот я и вставил проверку существования ответа сервера.

Мои извинения, если заставил ждать. Переместился на 2 тыс.км.

Вопрос о порядке обработки сервером запросов уже стоял. Помню, что ответ был не прямолинейный, т.е. алгоритм этого порядка не прост, т.е. там масса всяких условий.
Приведу пример: Торговый робот периодически «сыплет» массу *.in с высокой частотой, можно сказать, что одномоментно, их имена – их нормализованные(одной длины) порядковые номера которые также и хронологичны. При этом сервер может отработать эти директивы не в хронологическом порядке.
Исходя из этого можно сказать, что возможна ситуация, когда конечный цикл, который Вы устраиваете для ожидания нужного ответа не решит вопрос, а бесконечный цикл возможно просто «завесит» всех, т.к. порядок обработки запросов сервером не очевиден.

Заголовок: Re: Подскажите (по рандомизации)
Прислано пользователем Guest на 15.10.11 в 12:49:14
Здравствуйте, подскажите пожалуйста как сгенерировать длинную строку случайных символов. Путь последовательного исполнения в цикле функции [unicfile] с последующим копированием трех последних символов и суммированием их в строку плохо подходит т.к. эта функция, повторенная многократно, резко снижает производительность программы (иными словами - заметно тормозит).

Заголовок: Re: Подскажите (по рандомизации)
Прислано пользователем Denis, Dnepropetrovsk на 17.10.11 в 13:04:54

on 10/15/11 в 12:49:14, Guest wrote:
Здравствуйте, подскажите пожалуйста как сгенерировать длинную строку случайных символов. Путь последовательного исполнения в цикле функции [unicfile] с последующим копированием трех последних символов и суммированием их в строку плохо подходит т.к. эта функция, повторенная многократно, резко снижает производительность программы (иными словами - заметно тормозит).


А можете сказать для каких целей нужна такая строка и насколько длинную строку хотелось бы Вам получить?

Заголовок: Re: Подскажите (по рандомизации)
Прислано пользователем mine-R на 17.10.11 в 15:50:25

on 10/17/11 в 13:04:54, Denis, Dnepropetrovsk wrote:
А можете сказать для каких целей нужна такая строка и насколько длинную строку хотелось бы Вам получить?


Сгенерить guid встроенными средствами ФБП. Длина - как минимум 16 символов. После [unicfile] уже и от [tm] попробовал раскрутить. Сейчас пристально присматриваюсь к функции [sf 0,9]. Есть подозрение, что она эмулирует микросекунды процессора. А это как раз то, что нужно.

Заголовок: Re: Подскажите (по рандомизации)
Прислано пользователем Denis, Dnepropetrovsk на 17.10.11 в 16:46:11

on 10/17/11 в 15:50:25, mine-R wrote:
Сгенерить guid встроенными средствами ФБП. Длина - как минимум 16 символов. После [unicfile] уже и от [tm] попробовал раскрутить. Сейчас пристально присматриваюсь к функции [sf 0,9]. Есть подозрение, что она эмулирует микросекунды процессора. А это как раз то, что нужно.


Именно ее и хотел предложить.
Сам [sf 0,9] использую в файле-коэффициенте, чтобы определять последнее время копирования контекста.
А в форме  можно использовать что угодно, вряд-ли  задержка будет слишком большой....

Заголовок: Re: Подскажите (по рандомизации)
Прислано пользователем mine-R на 17.10.11 в 17:23:29

on 10/17/11 в 16:46:11, Denis, Dnepropetrovsk wrote:
А в форме  можно использовать что угодно, вряд-ли  задержка будет слишком большой....


При многократном пользовании [unicfile] она достаточно большая. Возможно, эта функция еще и с box'ом "общается" (хотя задержка и в локальной тоже...). Первым делом почему-то пришло в голову попользовать не по назначению именно эту функцию.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 08.12.11 в 10:24:56
ПОДСКАЖИТЕ ПЛЗ.

Предопределнная переменная DL если пределы в CLW заданы на последний день месяца возвращает 0. Остальные дни возвращает правильно. Так должно быть? В свете оператора range и типового подхода из мануала...
L=ML+DL/100...
...RANGE F,L ... НЕ ВИДИТ факты...

Еще довольно регулярно возникает проблемма когда факт от только что зарегистрированной операции невиден пока следующая операция не введена. Может кто сталкивался?


С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 08.12.11 в 11:25:32

on 12/08/11 в 10:24:56, VLV wrote:
ПОДСКАЖИТЕ ПЛЗ.

Предопределнная переменная DL если пределы в CLW заданы на последний день месяца возвращает 0. Остальные дни возвращает правильно. Так должно быть? В свете оператора range и типового подхода из мануала...
L=ML+DL/100...
...RANGE F,L ... НЕ ВИДИТ факты...


да, если DL=0, то это означает конец месяца; DF=0 - соответственно начало месяца. Следует добавлять в алгоритм корректировку (посмотрите в документации примеры, там есть):
...
if DF=0 DF=1
if DL=0 DL=31
rewind facts range MF+DF/100, ML+DL/100
...

А второй вопрос - факт не виден - это связано тоже с первым или последним днем месяца?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 09.12.11 в 16:35:47

Quote:
А второй вопрос - факт не виден - это связано тоже с первым или последним днем месяца?


Не готов утверждать с каким днем. Внес исправление...посмотрим будут ли жаловаться на проблемму пользователи.. Вылезет попробую повнимательнее посмотреть.

Пока помню что какие то непонятности были с заданием параметров range ... если в пределах месяца, и если пределы не ровно по месяцу..... стоит наприм range *, 5.31 не видит, ставлю 5.32 начинает видеть...но 5.32 не понимает если пределы не ровно по месяцу....

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 22.12.11 в 12:26:37
Подскажите пожалуйста, чего нужно избегать, чтобы не появлялись операции с неуникальным ключом?

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 22.12.11 в 12:36:08

on 12/22/11 в 12:26:37, mine-R wrote:
Подскажите пожалуйста, чего нужно избегать, чтобы не появлялись операции с неуникальным ключом?


При  штатной работе - ничего.
Будете тасовать журналы операций - возможны проблемы.
В локале не правьте штампы и руками в *.F3P не трогайте.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 22.12.11 в 12:39:53

on 12/22/11 в 12:36:08, Boris, Kiev. wrote:
В локале не правьте штампы и руками в *.F3P не трогайте.


Правкой вручную как раз таки проблема была решена. Хотелось бы понять причину возникновения таких операций.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 22.12.11 в 12:42:48

on 12/22/11 в 12:39:53, mine-R wrote:
Правкой вручную как раз таки проблема была решена. Хотелось бы понять причину возникновения таких операций.

Это Ваша база или клиентская?

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 22.12.11 в 12:47:00

on 12/22/11 в 12:42:48, Boris, Kiev. wrote:
Это Ваша база или клиентская?

Клиентская. И клиент достаточно удаленный. Потому и причину хочется выяснить. Уже не в первый раз такое. Хотя очень-очень редко случается (раз в неск. лет). Вот интересуюсь, может кто успел засечь ситуацию, при которой такое возникает. В log'е сервера ничего подозрительного.   Вернул NOSTAMP в локальную. Думаю, так надежней.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 22.12.11 в 14:37:33

on 12/22/11 в 12:39:53, mine-R wrote:
Правкой вручную как раз таки проблема была решена. Хотелось бы понять причину возникновения таких операций.


А почему вручную? А есть ведь утилита restamp: http://hdru.com/russian/restamp.htm

Такая ситуация встречалась - операции архивировали, а потом как-то подгрузили не тот архив и успели ввести новые.
A что Вы в log'e хотели увидеть - сервер не стартует и сообщает об неуникальности штампов.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 22.12.11 в 14:37:45

on 12/22/11 в 12:47:00, mine-R wrote:
Клиентская. ...

Пытайте своего клиента, очень часто наши друзья полюбляют переставить даты, сделать операции в будущем месяце, потом ставят дату обратно, грузятся, не грузится, ругается, "есть будущие месяца", переименовывают или уносят *.f3p, потом работают, потом опять подключают и жалуются..

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 22.12.11 в 15:53:34

on 12/22/11 в 14:37:33, BBBB wrote:
А почему вручную? А есть ведь утилита restamp: http://hdru.com/russian/restamp.htm

Эта утилита не затрагивает операции, уже имеющие штамп. Она вроде использовалась когда-то, при миграции с локальной на сетевую версию. К тому же, разово найти и исправить один штамп (с рыхлитетем два) быстрее. Вернул в локальную безштамповый режим. Нет альтернативного источника штампов - нет проблемы уникальности.

on 12/22/11 в 14:37:45, Boris, Kiev. wrote:
Пытайте своего клиента, очень часто наши друзья полюбляют переставить даты, сделать операции в будущем месяце, потом ставят дату обратно, грузятся, не грузится, ругается, "есть будущие месяца", переименовывают или уносят *.f3p, потом работают, потом опять подключают и жалуются..

Не тот вариант   ;) не настолько продвинутые. И не станут рисковать своим же трудом. Т.к. крайний вариант - возврат к архиву на начало дня и регистрация всех операций за день по новой.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 08.01.12 в 20:34:32
Если я правильно понимаю из DR, MR реальную дату можно плучить если сервер был в этом дне перегружен.
Как перегрузть сервер из командой строки?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 09.01.12 в 07:31:02
Не совсем понятен вопрос.
Ведь есть директива W ON, W OFF (посылается из клиентской части) для перезагрузки ФБП:сервера.
Или Вы имели ввиду что-то другое?

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 09.01.12 в 10:22:50
В принципе, если сделать bat или cmd файл, который создаст в box'e файл req с нужными директивами, а затем переименует этот файл в in...
Только вот проконтролировать такими bat'никами перезагрузился ли сервер в штатном режиме довольно сложновато.

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 09.01.12 в 15:27:40

on 01/08/12 в 20:34:32, VLV wrote:
Если я правильно понимаю из DR, MR реальную дату можно плучить если сервер был в этом дне перегружен.
Как перегрузть сервер из командой строки?

С уважением, Владимир.


У нас сервер перегружается раз в месяц, чтобы операции можно было регистрировать в новом месяце. А DR и MR  в отчетах выдает всегда текущую дату на сервере (перегружать сервер каждый день необязательно)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 11.01.12 в 08:34:57

Quote:
DR и MR  в отчетах выдает всегда текущую дату на сервере


Да все правильно, ет я перемудрил в ОФ...


Quote:
Не совсем понятен вопрос.
Ведь есть директива W ON, W OFF (посылается из клиентской части) для перезагрузки ФБП:сервера.
Или Вы имели ввиду что-то другое?


Всвязи с вышесказанным не так актуально...НО
интересно...

Задача автоматически выгрузить сервер и загрузить снова.

Через *.bat c использованием W DOWN понятно.

(Кстати перегруз сервера и W ON, W OFF  не равноценны. Так и не нашел причину возникновения ошибки извлечения Экстрапараметра когда в прошлое регистрируется операция в момент когда не досчитано состояние после предыдущей регистрации опер в прошлом. Так вот эта ошибка не исчезает от W ON, W OFF )

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 11.01.12 в 10:52:16

on 01/11/12 в 08:34:57, VLV wrote:
(Кстати перегруз сервера и W ON, W OFF  не равноценны...


мне думается, что примерно так:

W ON  меняет в upti цифры времени в первой строке, отключает данные, но оставляет сервер "на связи" в ожидании запроса с конкретной директивой (w off)

W OFF - это всё-равно что W DOWN плюс автоматический запуск по новой


on 01/11/12 в 08:34:57, VLV wrote:
Задача автоматически выгрузить сервер и загрузить снова.

Через *.bat c использованием W DOWN понятно.


Либо писать собственного демона, отслеживающего системную смену суток и посылающего запросы в box, либо стандартный планировщик заданий и всё те же *.bat или *.cmd (не обязательно через DOWN, можно через ON и OFF)


Заголовок: Re: Подскажите
Прислано пользователем VLV на 01.03.12 в 13:41:28
Подскажите как найти ошибку.
***************
* Отчетная форма
Заголовок ОФ
*
Тело формы
***************
Результат - кривой вывод заголовка в непрокручиваемую первую строку.
Обычно это кусок от "Заголовок ОФ", например
"овок ОФ"

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 01.03.12 в 14:11:06

on 03/01/12 в 13:41:28, VLV wrote:
Подскажите как найти ошибку.
***************
* Отчетная форма
Заголовок ОФ
*
Тело формы
***************
Результат - кривой вывод заголовка в непрокручиваемую первую строку.
Обычно это кусок от "Заголовок ОФ", например
"овок ОФ"

С уважением, Владимир.


В случаях, когда это принципиально, я оставляю пустой  первую строку тела формы (Ваш т.н. "Заголовок").

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 01.03.12 в 14:21:46
А у меня назрел такой вот вопрос:
Как полностью запретить пользователю удалять свои же операции в базе прошлого года? То есть сделать базу типа read-only? С помощью права P можно перекрыть 11 из 12 месяцев. Право D, даже если оно полностью удалено, оставляет пользователю возможность удалять свои операции в неперекрытом месяце. В настоящее время приходится создавать в старой базе специальный _rights_ , с именами, от которых не вводились операции вообще. Иначе создать read-only не выходит. Подскажите, может что-то упустил и всё делается намного проще??

Заголовок: Re: Подскажите
Прислано пользователем VLV на 01.03.12 в 18:07:12

Quote:
оставляю пустой  первую строку тела формы


Строку в непрокручиваемой области очень удобно использовать.  Активно этим пользуюсь.
Ошибка вылазит почему-то только в одной из нескольких типовых баз. Понятно что гдето что-то переопределяется...но каккой подход для поиска пока не понимаю.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 01.03.12 в 19:17:31

on 03/01/12 в 18:07:12, VLV wrote:
Понятно что гдето что-то переопределяется...но каккой подход для поиска пока не понимаю.

Сложно о таком рассуждать абстрактно  :)
Если у Вас там жесткий статический текст, то переопределиться ему сложновато. Если же
^^^^^^^^^^^^^^^^^переменная^^^^ или printstr [переменная] ,
то тут уж и к гадалке не ходи.. Возможно, наткнулись на строковой лимит в какой-нибудь [is ..]. Равно как и возможны тысячи других причин. Скрупулезно отслеживать отладочными форматными вставками все метаморфозы данных на пути к конечной переменной. Универсального метода поиска подобных ошибок вероятней всего не существует.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 02.03.12 в 12:13:53

Quote:
Сложно о таком рассуждать абстрактно  
Если у Вас там жесткий статический текст, то переопределиться ему сложновато.


Именно жесткий текст...и явление не только в моих формах а вообще во всех, в том числе и во встроенных системных. Например обороты счетов..не вся строка"н.ост обордеб обороткред Кюостаток", а часть, иногда даже символы абракадабрические.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 02.03.12 в 12:57:47

on 03/02/12 в 12:13:53, VLV wrote:
Именно жесткий текст...и явление не только в моих формах а вообще во всех, в том числе и во встроенных системных.

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

Заголовок: Re: Подскажите
Прислано пользователем VLV на 02.03.12 в 13:43:15
ОШИБКА CLW

РУШИТСЯ заголовок формы в непрокручиваемой строке

Есть зависимость от размера окна.

В небольшом окне открываешь нормально, растягиваешь окно...строка рушится.

И ПЕТРУШКА ЭТА ЕСЛИ ШРИФТ КУРЬЕР НЬЮ 11

Со встроенным фиксдеем нормально при любых перерисовках окна.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 02.03.12 в 14:33:16
Когда-то экспериментировал с кнопками и наделал их громадное количество, но на подобную ошибку наткнуться не довелось  :)
Редактировать можно, но шансы испортить выше шансов настроить как надо  :)

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 05.03.12 в 05:43:07

on 03/01/12 в 14:21:46, mine-R wrote:
А у меня назрел такой вот вопрос:
Как полностью запретить пользователю удалять свои же операции в базе прошлого года? То есть сделать базу типа read-only? С помощью права P можно перекрыть 11 из 12 месяцев. Право D, даже если оно полностью удалено, оставляет пользователю возможность удалять свои операции в неперекрытом месяце. В настоящее время приходится создавать в старой базе специальный _rights_ , с именами, от которых не вводились операции вообще. Иначе создать read-only не выходит. Подскажите, может что-то упустил и всё делается намного проще??


//BK 120302
Вторая публикация (Бетта): http://hdru.com/russian/Clw32_030312.zip

Если в файле прав прописано до двух клиентов, то программа не будет требовать авторизации.

Изменения связаны с установкой такой зависимости:
- если в правах клиента нет права T, то ему будет закрыт доступ к вводу, удалению и редактированию любых операций.
также запрещен доступ к окну директив и формам на клиенте.
Об остальном, настройщик должен заботиться сам.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 05.03.12 в 15:51:33

on 03/05/12 в 05:43:07, Svetlana wrote:
Вторая публикация (Бетта): http://hdru.com/russian/Clw32_030312.zip
...


Спасибо! Все работает исправно. Дружественные сообщения о запрете изменения ЖО  :)

Что замечено: не следует указывать рабочий каталог, в котором есть ow3 от другого клиента. Удалите старый файл и создайте опции по новой.

Пожелание: Если есть возможность, то на сколько возможно, расширить поле пути к каталогу при регистрации. При указании сетевого пути к box это некритично, а при указании полного локального пути (при том, что дописывание подкаталога с именем пользователя теперь обязательно) увеличение поля было бы нелишним. ( ну не люблю я subst   :)  )

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 05.03.12 в 17:33:58
С *.ow3 где-то предупреждал, конечно добьём.
Просто не очень критично, а по хорошему есть желание сделать все опции через открытые ini-структуры .

С длиной пути:

Длина полного пути к каталогу обмена с учетом длины имени файла с 3-х символьным расширением должна не превышать 44 символов.
Это ограничение наложено сервером. Это можно легко проверить без запуска клиента, а просто копируя файл с запросом разной длины в каталог обмена.
Модифицированный клиент предупреждает об недопустимости длины более 31-го символа, это без учета 12 символов и плюс 1 на «\» перед именем, итого - те же 44 символа.

Вывод: При организации размещения каталогов обмена необходимо контроллировать это условие, не забывая о том, что при работе новогоднего адаптера  - этот путь будет увеличен.


Заголовок: Re: Подскажите
Прислано пользователем mine-R на 06.03.12 в 00:44:09

on 03/05/12 в 17:33:58, Boris, Kiev. wrote:
поэтому пока отложим с Вашего разрешения.
Ни в коем случае не тороплю  :) Спешка при доработках - плохой союзник. Просто хочется, чтобы когда, после череды бетта-версий, выйдет стабильный релиз, чтобы он содержал в себе и некритичные доработки. Кстати, ещё из самых некритичных пожеланий - сделать "enabled" кнопку "Определить цвет"  :) (когда опции будут уже храниться в ini)

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 24.04.12 в 19:23:12
Пробую оценить расходуемую ОЗУ до старта ФБП:сервера, чтобы потом прикинуть сколь же ему останется и какие ключи можно задействовать. Правильно понимаю - что на моей картинке уже после старта компьютера занято 323 Мб?:

http://pixhost.ru/uploads/12/4/25/147075a4ee.png (http://pixhost.ru)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 27.04.12 в 14:43:36

Quote:
уже после старта компьютера занято 323 Мб?:


Операционка место занимает. Если у Вас WinXP то смело можете считать что ей нужно для нормального дыхания не меньше 500-700М.
А дальше можно методом "научного тыка" если сервер ФБП запросит память и не получит то в окне своем он пишет фактически полученное количество, а не то которое указано в его строке запуска.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 25.01.13 в 11:18:05
Новогодний адаптер 3.01(Win32).

В январе нового года в ОФ оператор Rewind facts работает намного медленнее чем в прошлогодние месяцы.

А Rewind facts range... как ни странно и того больше.
При этом форма, которая его использует в другие месяца (прошлого года) отрабатывает за несколько секунд.

Вообще За этой формой замечается долгая работа (в месяце где больше обычного операций) если пределы выборки фактов на весь месяц, если , например с 1 по 10 число то еще болеме.

В чем может быть причина?
Попал на какое либо ограничение?
*********
*ОФ
# СПРАВОЧНИК СОРТ
F=1.01
L=1.03
rewind  facts range F,L (До 1 мин в прошлом году, больше 10 мин в январе нового)
( если просто rewind  facts (1-3- мин в январе )нового)
..
SEARCH ...
..
#
*********
Понятно что циклы вложенные...но rewind дольше чем SEARCH вродь не должен работать в принципе.
Операций по местным меркам очень не много...порядка 15-25 тысяч в месяц.
С уважением Владимир.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 25.01.13 в 12:08:13
Ну вы же не дали никакой вспомогательной информации: насколько долго? можно ведь долго считать 3 минуты, а можно - 1 час; что показывает Stat (по директиве S); сколько операций в месяце,.. ну еще там что-нибудь...
Как выписать рецепт - не зная, что ж там мучает пациента?

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 25.01.13 в 12:34:43
сделайте:

>% ОФ

тогда и поговорим.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 25.01.13 в 14:14:48
Спасибо, Борис, что на профиллер истинный наставили:-)
Вpеменной пpофиль фоpмы MPZOB2
ГОД 2012
  ## 11.3%       30?0094 FX=0; Y=''; OB=[N1#]; NA=[CP[N2#],1,35]; P1=OB; BR=[:BAR OB];
  ## 10.5%       28?0096 N3=[STRIP [N2 #]+IF
   #  5.6%       15?0099 W=[EP *OB,9,ML]
   #  9.0%       24?0101 NX=[N2 #]
   #  5.3%       14?0143 ^^^NS ^^^^^^^^OB ^^^^^^^^^^^^^^^^NA^^^^^^^^^^^^^^^^^ ^W ^EI^^
         ~        ~?0218 F=1.01
         ~        ~?0219 L=1.03
  ## 12.0%       32?0220 rewind facts range F,L
         ~        ~?0224 I=0; NF=0; OF=0
         ~        ~?0225 :LOPF6
##### 26.7%       71?0226 SEARCH тмцта P1 видоп ?P2 док ?NN десч ?P5 крсч ?P6 депз ?P7 крпз...
         ~        3?0228 IF [success] = 1
         ~        ~?0231 ENDIF

Вpеменной пpофиль фоpмы MPZOB2
ГОД 2013 На это количество выполнений потpебовалось 2180164 мс = 100%
                     0.0%       90?0094 FX=0; Y=''; OB=[N1#]; NA=[CP[N2#],1,35]; P1=OB; BR=[:BAR OB];
                     0.0%       53?0096 N3=[STRIP [N2 #]+IF
                     0.0%       33?0099 W=[EP *OB,9,ML]
                     0.0%       48?0101 NX=[N2 #]
                     0.0%       29?0143 ^^^NS ^^^^^^^^OB ^^^^^^^^^^^^^^^^NA^^^^^^^^^^^^^^^^^..
                        ~        ~?0218 F=1.01
                        ~        ~?0219 L=1.03
####################100.0%  2179175?0220 rewind facts range F,L
                     0.0%       29?0224 I=0; NF=0; OF=0
                        ~        ~?0225 :LOPF6
                     0.0%      450?0226 SEARCH тмцта P1 видоп ?P2 док ?NN десч ?P5 ..
                     0.0%       24?0228 IF [success] = 1
                        ~        ~?0231 ENDIF
                     0.0%       19?0234 RETURN

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 25.01.13 в 15:38:06
попробуйте F и L задать полно, т.е. укажите


F=yc*100+1.01
L=yc*100+1.03
ПРОВЕРИМ:
F:^^^^^^^^^F^^^  L:^^^^^^^^^L^^^
REWIND ...
...

Заголовок: Re: Подскажите
Прислано пользователем VLV на 25.01.13 в 15:49:53
Этот трюк пробовал, ничего не меняло, в старом году также работало нормально в новом глюк.

**ОФ для проверки
YC=2013.00
ПРОВЕРИМ:
F:   201301.010  L:   201301.030

Вроде нормально выдает

Цикл на FOR взял...

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 25.01.13 в 16:01:41
fastfact пользуете?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 25.01.13 в 16:16:19
Да, все включено:-)

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 25.01.13 в 16:22:51
отключать не пробовали ???

Заголовок: Re: Подскажите
Прислано пользователем VLV на 25.01.13 в 16:44:32
Без fastfact Работает!
Но без быстрых фактов жить не очень.
Сказал бы...совсем не очень...

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 25.01.13 в 16:49:12

on 01/25/13 в 16:44:32, VLV wrote:
Без fastfact Работает!

Тогда, плз. быстро потерпите, может тихо починят в этом году, надеюсь.
:)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 25.01.13 в 17:01:36
Спасибо огромное.
Надеюсь сочтут эту ошибку критичной и ждать придется не долго:-)
Есть база, где нет возможности ускорить разделение годов.
И еще прошу учесть, что и в обычной программе за весь месяц бывает очень долго считает, не разбиралься, но думаю причина эта же.

А с НЕ быстрыми фактами тоже очень долго эта форма считает, и с ней уже масса не таких зацикленных...вынесет мозг
Когда не касалось торговли как-то не сильно это мучало...А вот с розницей вылезло...и наименований то у меня всего тыс. 10-15.

С уважением,  Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 25.01.13 в 17:23:25

on 01/25/13 в 17:01:36, VLV wrote:
..
И еще прошу учесть, что и в обычной программе за весь месяц бывает очень долго считает, не разбиралься, но думаю причина эта же.
..


Ведь есть %  !!!

С этой штукой грех не "вылизать" алгоритмы.

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

Заголовок: Re: Подскажите
Прислано пользователем VLV на 28.01.13 в 09:41:22

Quote:
Может потрудитесь, да выложите к разбору?

Ну сила, брат, в скорости:-)
Раз есть механизм фактов, то и их быстрота будет востребована.
Если серьезно, то нет особо мудреных подходов.   А у полубухов всегда проблемы со временем на дополнительное «вылизывание» алгоритмов. По-этому что вырастает то вырастает.
На данный момент у бухов по участкам прижились формы со списком приходных и расходных документов по подразделению, по заказчикам, по поставщикам. Построено на фактах. Подход такой, например, для формы «Заказчики»:
*******
* ОФ
*******
Начало
Подключить переходы по энтер и функциональным клавишам к документам в различных форматах (CLW(для Dos-качества), KLFF(для Win-качества))
Почесть в sed-массив ленту фактов отгрузок
Свернуть ленту в массиве по номеру документа
Прочесть в sed-массив ленту фактов поступления оплат
Сортировать  sed-массив по дате
Вывести содержимое sed-массива на экран(далее печатные формы через функциональные клавиши).
Конец.
*******
По-моему подобный подход напрашивается прям из спецификации языка ФБП и Америки не открывает.
Пользователям понравилось «висеть» в этих формах. C включенными быстрыми фактами разница в скорости почти на порядок (1-2 сек, против 10 сек) особенно заметно, если пределы ставят больше месяца.
Если для мест учета ТМЦ помогает принудительный запрет на работу с периодом больше месяца, то для работы с заказчиками этого мало.
Кстати тут существует проблема. Не знаю…может у меня и не так что-то сделано, но пока выполняется(обновляется) такая форма другие формы в это время ждут даже если режим «дуал».  И те кто работает, например, на участке путевых листов(Рабочее место на KLFF, ввод в реальном времени и нет медленных Оф-скриптов) жалуются на скорость. Причина в том что они ждут очереди перерасчета других форм.  Эти жалобы более частые при работе с переходной программой. Как оказывается во многом из-за обнаруженной проблемы с rewind facts.
А если форма совсем подвисла минут на 30, пусть и по ошибке оператора, то вообще нет способа кроме перезагрузки сервера FWP ее остановить. Здесь не помешала бы какая нибудь директивка серверу. Или я чот в мануале не дочитал?
Еще один момент обсуждался лет несколько назад. Периоды обновления в клиенте (1, 2, 5 сек) желательно бы иметь с шагом поменьше в этом диапазоне. Можно заметно улучшить ситуацию настройкой этих параметров.
Ну вот так в общих чертах.

С уважением,  Владимир.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 28.01.13 в 09:52:31

on 01/28/13 в 09:41:22, VLV wrote:
Ну сила, брат, в скорости:-)
...
А если форма совсем подвисла минут на 30, пусть и по ошибке оператора, то вообще нет способа кроме перезагрузки сервера FWP ее остановить. Здесь не помешала бы какая нибудь директивка серверу. Или я чот в мануале не дочитал? ...


А директива В - не помогает?

(Диpектива B позволяет пpеpвать выполнение зациклившейся или долго pаботающей фоpмы. Особенно полезна эта диpектива пpи отладке новых фоpм из Клиента.)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 28.01.13 в 10:21:08

Quote:
А директива В - не помогает?


Вот, кстати, помогает!
Не все дочитал в мануале:-)

А еще, кстати, что пока форма висит клиент не регится...так что если пользователь запаниковал и отключился...то  снова крестик...

А еще...если сервер подвис на ошибке то клиент не загрузить и в журнал с ошибкой не войти....через однопользователя? или Как?
Ну ет , канешна, мелочи...вот бы с rewind дело поправить...а то разговоры про многозадачность внутри сервера для выполнения форм...представляю что дело не быстрое...

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 28.01.13 в 17:24:12
//BK 20130107
     Формы, которые долго выполняются.

     Часто сталкиваемся с ситуацией, когда кем-либо опрометчиво запускается форма(F_VISIT.RPT),
     которая выполняется долго, или вдруг зациклилась, опрометчиво, конечно в том плане, что чаще
     пользователь знает, что эту форму лучше запустить в монополе или просто в обед и т.к.д и т.п., але..
     форма "висит" на мнемосхеме и держит запросы от остальных.
     Пользователь досадно нажимает "Esc" или "крестик", окно закрывается и по логике все ждут отбоя,
     а форма продолжает "висеть" и никто не может работать.
     Вызывают админа или сами дают директиву >B F_VISIT и сервер наконец разгружается.

     Теперь клиент следит за ситуацией и в таких случаях вместе с нажатием "Esc" или "крестик"
     шлет автоматом ту же директиву >B и всё быстро нормализуется и даже в случае запуска форм
     по директиве G не очень аккуратным админом или настройщиком клиент также выручит без проблем.
     Автозакрытие по #CLOSE следом за запущенной формой также обыграно, т.е. запущенную форму выше
     "отбивать" не будем, т.к. в сценариях с автозакрытием предполагается обязательное ожидание
     выполнения формы.

     Рекомендую взять на вооружение всем альтернативным клиентам, конечно,
       если у Вас, это - ещё не реализовано.

-------------------------------
Это по поводу >B
Планируется в скором времнени свежий релиз клиента.
Если есть вопросы или пожелания, то плз.
Постараюсь учесть.

По поводу фактов и быстрых, то на ПП было много сказано об однопроходности ленты фактов, вот если у Вас такое в форме выдерживается и Вы все равно идете на быстрые, то мои извинения.

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 28.01.13 в 17:41:05

on 01/28/13 в 09:41:22, VLV wrote:
Ну сила, брат, в скорости:-)
Раз есть механизм фактов, то и их быстрота будет востребована.
Если серьезно, то нет особо мудреных подходов.   А у полубухов всегда проблемы со временем на дополнительное «вылизывание» алгоритмов. По-этому что вырастает то вырастает.
На данный момент у бухов по участкам прижились формы со списком приходных и расходных документов по подразделению, по заказчикам, по поставщикам. Построено на фактах. Подход такой, например, для формы «Заказчики»:
*******
* ОФ
*******
Начало
Подключить переходы по энтер и функциональным клавишам к документам в различных форматах (CLW(для Dos-качества), KLFF(для Win-качества))
Почесть в sed-массив ленту фактов отгрузок
Свернуть ленту в массиве по номеру документа
Прочесть в sed-массив ленту фактов поступления оплат
Сортировать  sed-массив по дате
Вывести содержимое sed-массива на экран(далее печатные формы через функциональные клавиши).
Конец.
*******


Подобный подход не оптимальный в плане скорости выполнения формы. Вы используете тут самые  медленные функции в ФБП..;D
Попробуйте сначала читая ленту фактов создать в [set %,... [plus %,...   массиве  сразу  все что вам нужно для вывода на экран...
Потом подключите переходы по энтер и функциональным клавишам (максимум 10 строк типа N:ENTER:R OBRABOTCHIK ·#1·#2·#3·#4·#5·#6·#7·#8·#9·)
Затем выводите все на экран  ;D

При таком подходе опция быстрые факты не нужна, а скорость выполнения формы вряд ли превысит 0,1 сек.
Я думаю, что ускорение выполнения форм на порядок, стоит затрат времени на вылизывание алгоритмов  ;)

PS. Готов переделать любую Вашу форму по такому подходу, чтобы Вы смогли ее протестировать :)

PSS. По поводу автообновления: Если у Вас все клиенты работают в режиме "автообновление списков: все"  советую переключить в режим "автообновление списков: списки". Тогда висящие формы не будут пересчитываться при каждом изменении upti в каталоге обмена, что ощутимо ускорит общую работу ;D

Заголовок: Re: Подскажите
Прислано пользователем VLV на 28.01.13 в 19:38:11

Quote:
Подобный подход не оптимальный в плане скорости выполнения формы. Вы используете тут самые  медленные функции в ФБП..
Попробуйте сначала читая ленту фактов создать в [set %,... [plus %,...  


Вся кухня у меня опирается на двумерный массив, запись/чтение(а также ряд операций типа сортировки, форматрования и тп) в который реализовано библиотечными функциями. Перейти к set мне дело быстрое, переименую функции и готово...Изначально по этому пути и шел.

Однако...
1) К подходу на sed пришел после обсуждения в разделе "CLW и Первичные документы" от 15.12.05...и далее.  

2) Из-за описанных проблем(ссылка в первом пункте) строил на sed работу от документа в учете в розничном магазине (ФБП+КлиентФорм). И если бы несколько мелочей в Сервере и КлиентеФорм, которые не позволили АРМ кассира реализовать, был бы вообще доволен.
Вообщем меня направили и я пошел по sed пути. А однообразие в подходах для меня еще и существенная экономия времени...ибо не программист.
3) Никакой подход не избежит использования rewind. Ошибка имеет место быть и, надеюсь, будет устранена. С нормально работающим оператором в моем размерчике все приемлемо работает и на sed. (Разве что оборотку переделаю где в цикл по счетам вложен цикл по ленте, и то если посоветуете как с сортировкой решить...Кажется  В.Секретев готовое для этого решение раньше на сайте выкладывал за немножко ФБП денежек:-) И будет ли оно быстрее еще вопрос.)

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 29.01.13 в 11:32:24
Ну если Вас устраивает 2 сек. на выполнение формы за месяц и Вам не нужно знать как можно сделать менее 1 сек. за любой отчетный период, то это Ваше право.
Могу предложить еще вариант переименуйте Ваши долгоиграющие формы так, чтобы они начинались на "H". Такие формы не автообновляются после каждого изменения в базе даже если в клиенте стоит обновлять все.

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

Я Вам предлагаю на примере показать как можно сделать отчетную форму в один проход по ленте фактов (1 rewind на всю форму) и используя быстрый массив для хранения и обработки данных, которая будет выполняться на порядок быстрее и мало зависеть от выбранного отчетного периода.

От использования первичных документов я лично отказался давно и Вам советую (не могу понять зачем хранить документ на диске, если его можно формировать на лету???).

Если клиент форм разрушает мозг, тогда зачем его использовать, есть Excel и браузеры для получения презентабельного вида документов.

Если у Вас есть формы, завешивающие сервер, то в них скорее всего есть ошибки, которые необходимо определить и устранить (на 99.9% уверен что там ошибка программиста).

Заголовок: Re: Подскажите
Прислано пользователем VLV на 29.01.13 в 12:05:33

Quote:
Если клиент форм разрушает мозг, тогда зачем его использовать


Приношу извинения...не удачную фразу  в адрес KLFF поправил...фраза была про моменты и в клиенте и сервере..а не клиент в целом (Ё-мае, Денис, нельзя так перефразировать)
Активно его использую и без него не смог бы реализовать учет путевых листов и  РМ товароведа в рознице. А в рамках заявленного назначения(Отчетные формы Win - качества) Клфф вообще вопросов нет. И очень благодарен Александру, благодаря активной его помощи АРМ кассира с подключением фискального регистратора(и Др) тоже возможно. И мелочи относятся именно к последнему применению(они касаются и сервера, я уже описывал здесь чего мне не хватило). Причем пока не выяснено, виноват ли в этом клиент. Проблема связана с размножением файлов ответа от сервера. Здесь обсуждалось...пока не во все моменты удалось вникнуть.
Очень бы хотелось чтобы и клиент форм тоже развивался.


Quote:
Судя по примерам в Ваших постах в ваших формах Rewind запускается в циклах


В первом случае ДА. (Время выполн в январе старого года адаптера: 5сек) (в январе нового года адаптера 30 мин)
Второй алгоритм однопроходовый, но не на set а на sed-массиве. И строит документ налету, а не хранит на диске. Время выполнения меньше 1 сек.


Quote:
Я Вам предлагаю на примере

Денис, идея использования быстрого массива и однопроходовости мне понятна и сегодня использую этот подход для "Несвязанных ОФ". Буду еще переосмысливать ваши советы.
Вот покажите на примере сортировку по наименованию как у вас сделана, оч интересно.


Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 29.01.13 в 15:55:15
Сортировка по наименованию стандартная:
# СЧЕТ sort [n2 #]
#
но если перебирать все субсчета не нужно тогда сортировка массива:
sort array a


А чем у Вас отличаются связанные и несвязанные ОФ ??

Если хотите разобраться, как сделать быструю форму, предлагаю совершенно бесплатно переделать Вашу форму так, чтобы она выполнялась в 1 проход по ленте (Скорость выполнения будет зависеть только от количества фактов в выбранном периоде, а не от количества субсчетов как у Вас) время выполнения будет меньше 1сек на любом периоде 8).
Если интересно, присылайте Вашу *.rpt  на мой e-mail  в профиле ;D

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 29.01.13 в 16:02:53
а так:

#*AC sort [get %,[strip([n1#]+SF)]

не делаете?

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 29.01.13 в 16:16:29

on 01/29/13 в 16:02:53, Boris, Kiev. wrote:
а так:

#*AC sort [get %,[strip([n1#]+SF)]

не делаете?



Если нужна более сложная сортировка то и сложнее условие можно наворотить
Тут скобки лишние по-моему: ;D
#*AC sort [get %,[strip [n1#]+SF]
так тоже должно работать, только  SF должно содержать строковое значение  8)

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 29.01.13 в 17:10:48
всё так, в SF и отражаем всю нашу сложность. :)

Заголовок: Re: Подскажите
Прислано пользователем VLV на 30.01.13 в 17:26:17

Quote:
А чем у Вас отличаются связанные и несвязанные ОФ ??


Несвязанная, одинокая...Запустилась отработала без переходов...закрылась и забылась...

Иные одна из другой выплывают и рушатся если на Set%, по поводу них и отсылал в прошлое, объясняя почему активно использую Sed.


Quote:
Скорость выполнения будет зависеть только от количества фактов в выбранном периоде, а не от количества субсчетов


Если речь, например, про оборотку где в Экстра остатки, то от количества субсчетов зависеть будет.

Вообщем уговорили Вы меня переделать форму на один проход. Ну и спасибо:-)
Правад в set% разместил только индексы строк  по позициям товаров, а остальное посредством привычного sed-массива...за 500mS отрабатывает и в январе НГ адаптера не глючит, этого уже для меня вполне...

Кстати постоянно натыкаюсь на проблемму с передачей параметров в подпрограмму, Жаль что пока не исправлена.

По сортировке интересно как маленькие и большие буквы вместе собрать.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 30.01.13 в 17:31:57
* ОФ Оборотная ведомость ПО ПОДРАЗДЕЛЕНИЮ(ВЫВОДИТ ТОЛЬКО ПОЗ С ОБОРОТАМИ. ДЛЯ ДР ВАРИАНТОВ КОЕ ЧТО ДОБАВИТЬ НУЖНО)
ARRAY %
IX='OB'                                          Дополнительный индекс массива
QS=0
NS=0                                             pointer
F=YC*100+MF+[VLDH]/100; L=YC*100+ML+[VLLD]/100
REWIND FACTS RANGE F,L
:LOOPID
SEARCH {1, 'тмцта'}
IF [success] = 1                                 Перебор фактов в пределах периода
 SP=[FACT_F 2]
 NA=[CP[N2 *SP],1,20]
   IF [GET%,SP]=0                               ЕСЛИ Обознач не встречалось
     QS=QS+1                                    Счетчик строк
     NS=NS+1                                    Указатель на новую строку
     A=[SET%,SP,NS]                             Сохраняем новый указатель на строку в индексе обозначения
       CALL SEDX (IX,NS,1,NS)                  Номер строки
       CALL SEDX (IX,NS,2,SP)                  Счет, субсчет
       CALL SEDX (IX,NS,3,[N2 *SP])            Намен, хар-ка, вид, сорт
        EI=[:EIOB SP,1]
       CALL SEDX (IX,NS,4,EI)                  Наименов единицы измерения
        QB=[:QB]
       CALL SEDX (IX,NS,5,[:QB])               ОстНач
       CALL READ_F                              ВЕРНЕТ QP,QR ИЗ ПРОЧИТАННОГО ФАКТА
       CALL SEDX (IX,NS,6,QP)                  Приход
       CALL SEDX (IX,NS,7,QR)                  Расход
*         QE=[:QE]
       CALL SEDX (IX,NS,8,[:QE])               Остаток А ЗДЕСЬ ПРОХОДИТ ВЫЗОВ ТК ВЛОЖЕННОСТЬ ПОДПРОГРАММ ДРУГАЯ
         Y=''; IF (QB+QP-QR)<-0.00001 Y='*';ENDIF
       CALL SEDX (IX,NS,9,Y)                   * Звездочка-минусовой остаток(можно минусовое кол-во еще здесь писать)
*        CALL SEDDX (IX,NS,10,[:CUE])    ЖАЛЬ ЧТО НЕ ПРОХОДИТ ИЗ-ЗА ОШИБКИ ФБП
         CU=[:CUE]                                   учетная
       CALL SEDX (IX,NS,10,CU)              Цена учетная
         SU=QE*CU
       CALL SEDX (IX,NS,11,SU)                 Сумма учетная
   ELSE                                                Позиция уже есть в массиве
       HS=[GET%,SP]                             Читаем указатель на строку товара
       CALL READ_F                              ВЕРНЕТ QP,QR ИЗ ПРОЧИТАННОГО ФАКТА
        QP=[:GEDX IX,HS,6]+QP
       CALL SEDX (IX,HS,6,QP)                  Приход
        QR=[:GEDX IX,HS,7]+QR
       CALL SEDDX (IX,HS,7,QR)                  Расход
Остаток он из ЭхПар
        QB=[:QB]
         Y=''; IF (QB+QP-QR)<-0.00001 Y='*';ENDIF
       CALL SEDX (IX,HS,9,Y)                   * Звездочка
   ENDIF
GOTO LOOPID
ENDIF
************************************************
CALL SEDQS (QS)
CALL SEDQC (11)
* Форматируем колонки
CALL SEDFL (1,5,0)
CALL SEDFL (2,9,0)
CALL SEDFL (3,35,0)
CALL SEDFL (4,9,2)
CALL SEDFL (5,9,2)
CALL SEDFL (6,9,2)
CALL SEDFL (7,9,2)
CALL SEDFL (8,9,2)
CALL SEDFL (9,9,2)
CALL SEDFL (10,9,2)
CALL SEDFL (11,9,2)
* Сортировка
CALL SORDXTBL (IX,3)
CALL RENUMDX (IX,1)
* Печатаем
CALL PRNTBLDX (IX)

Заголовок: Re: Подскажите
Прислано пользователем Denis, Dnepropetrovsk на 31.01.13 в 11:41:17
Ну вот видите, 500 мс уже лучше 5 сек.
И это только устранение лишних проходов по ленте фактов дало 10-кратное ускорение.

По поводу Вашего стиля программирования имхо излишнее использование подпрограмм, как в вашем примере, сильно затрудняет поиск узких мест и, как следствие, оптимизацию кода, а так же практически не влияет на скорость разработки приложения;)

Например у Вас для накопления QP 2 вызова подпрограммы
"
QP=[:GEDX IX,HS,6]+QP
CALL SEDX (IX,HS,6,QP)
"
А можно записать одной строкой, не используя подпрограмм:
[sed IX+HS+'6',[ged IX+HS+'6']+QP]

Зачем писать подпрограмму размером в 1 строчку кода ???



Теперь чтобы убедить Вас использовать [set %,.. вместо [sed ... привожу профиль:
Тут тестируем накопление суммы чисел от 1 до 100000,  используя get массив  и ged массив

~        ~|0001 *Тест
~        ~|0002 *.on
~        ~|0003 *,off
~        1|0004 array %
~        ~|0005 [sed 'Индекс',0]
~        2|0006 for i=1 to 100000
#  6.3%       44|0007     [plus %,'Индекс',i]
################## 93.2%      655|0008     [sed 'Индекс',[ged 'Индекс']+i]
~        1|0009 endfor
~        ~|0010 stop

Как видите использование [plus %,..  быстрее [sed ..    примерно 15-кратное (при включенном fastged  - без fastged все еще печальней для [sed), так что 500 мс превращается в 30-40 мс  :D

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 08.02.13 в 17:09:11
Что-то не получается запустить clw под системoй Windows Server 2003 64-х битной. Может подскажет кто? При этом ФБП:сервер 32-х битный запускается.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 08.02.13 в 20:31:29

on 02/08/13 в 17:09:11, BBBB wrote:
Что-то не получается запустить clw под системoй Windows Server 2003 64-х битной. Может подскажет кто? При этом ФБП:сервер 32-х битный запускается.

DEP отключили для clw.exe?

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 09.02.13 в 09:10:46
Да, там где это делается стоит птичка напротив Включить DEP только для основных программ и служб Windows.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 09.02.13 в 11:50:58

on 02/09/13 в 09:10:46, BBBB wrote:
Да, там где это делается стоит птичка напротив Включить DEP только для основных программ и служб Windows.

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

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 11.02.13 в 10:24:24
А так все запустилось, спасибо.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 09.12.13 в 14:36:19
Подскажите, пожалуйста, как средствами clw запретить на определенном рабочем месте реакцию на раздел Формы на клиенте и возможность редактирования? То есть, разрешается только запускать Формы на сервере.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 09.12.13 в 18:54:07

on 12/09/13 в 14:36:19, BBBB wrote:
Подскажите, пожалуйста, как средствами clw запретить на определенном рабочем месте реакцию на раздел Формы на клиенте и возможность редактирования? То есть, разрешается только запускать Формы на сервере.

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

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 10.12.13 в 09:00:55

on 12/09/13 в 14:36:19, BBBB wrote:
Подскажите, пожалуйста, как средствами clw запретить на определенном рабочем месте реакцию на раздел Формы на клиенте и возможность редактирования? То есть, разрешается только запускать Формы на сервере.


Без уточнений Ваших желаний, возможно это:


//BK 120302
     Вторая публикация.(Бетта)
       Если в файле прав прописано до двух клиентов, то программа
       не будет требовать авторизации.

     Изменения связаны с установкой такой зависимости:
     - если в правах клиента нет права T, то ему будет закрыт доступ к вводу, удалению и редактированию любых операций.
       также запрещен доступ к окну директив и формам на клиенте.
       Об остальном, настройщик должен заботиться сам.

     Авторизация будет требоваться при кол-ве пользователей более 2.


Вас устроит.

Для чистой реализации Вашего пожелания, скорее всего, потребуется дополнение по обработке нового пункта в файле прав, например - G , по аналогии с R.


Заголовок: Re: Подскажите
Прислано пользователем BBBB на 29.12.15 в 14:07:34
Подскажите, пожалуйста:

Создается отчетная форма. Одновременно данные выгружаются в *.html и готовится *.bat.
Этот отчет имеет кнопку Печать:

N:NAME:Печать
N:R EXAMPLE


По клику по кнопке отрабатывает форма EXAMPLE c запуском *.bat:

N:AUTO:#CLOSE
kk=[dir 0]+'1111.bat'
printstr 'N:AUTO:>'+kk+[ch 13]+[ch 10]
ll=[dir 0]+'2222.html'
printstr 'start/B c:\chrome.exe '+ll to > file kk


Все отрабатывает, но между нажатием кнопки Печать и стартом браузера с отчетом мелькает черное окно. Вопрос - как от него избавиться?

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 29.12.15 в 18:33:23
Зачем Вам bat? и зачем явно вызывать Chrome без особых параметров таким макаром?

И ещё раз обратите внимание на последовательность своих действий-записей.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 29.12.15 в 19:18:13

on 12/29/15 в 18:33:23, Boris, Kiev. wrote:
Зачем Вам bat? и зачем явно вызывать Chrome без особых параметров таким макаром?
...


Chrom подхватывает 2222.html для показа большой красивой таблицы с шрифтами, возможно картинкой.. и последующей распечаткой из того же хрома (таким вот образом решается вопрос печати красивого отчета при необходимости).
На свои действия вот смотрю - подтолкните пожалуйста :) что-то плохо высматривается, может опыта не хватает.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 29.12.15 в 20:23:58
Подталкиваю.)

Так будет проще и без мерцаний:
---------------
* EXAMPLE
LL=[dir 1]+'2222.html'
DI='N:AUTO:>"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" '+LL
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^DI
N:AUTO:#CLOSE
Выходим
---------------




Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 30.12.15 в 08:34:17
также замечу, что этот вариант хромает, т.к. требуется единообразие размещения *.exe на всех клиентских машинах.
Здесь можно порекомендовать написать батничек, который будет отыскивать приложение и путь. Лучше это сделать на старте клиента и переписывать в Extrd.dat либо грузить клиента батником с предварительной работой по определению всего чего надо и переносить либо сразу в Extrd.dat либо результат в тестовый файл, а клиент на старте уже подхватит. Здесь дело ваших предпочтений.

Это конечно, всё из предыдущей моей истории ФБП, потому как на модном клиенте есть лобовое решение с Wexa и всё новое потихоньку подтягиваю к этой "кнопочке" или [Alt]+[W].

И почему Вы выбрали браузер в качестве "хорошего" принтера? Мы на эту  тему здесь неоднократно разглагольствовали.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 30.12.15 в 10:38:24
Спасибо, *.bat убрался и переход в браузер - плавный, можно сказать незаметный. Понравилась и подсказка отчет выгружать в _box_, сервер стартует - автоматом все чистится.

Пробую выбрасывать отчеты в браузер - чисто пока как опыт и интерес, думается одно рабочее место оформить в nullcg, ну и это - своего рода подготовка. Как редактор отчета браузер не годится, ну а распечатать из меню "Печать" - все что надо в принципе есть (по минимуму).

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 30.12.15 в 13:56:42

on 12/30/15 в 10:38:24, BBBB wrote:
Понравилась и подсказка отчет выгружать в _box_, сервер стартует - автоматом все чистится.

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


on 12/30/15 в 10:38:24, BBBB wrote:
Пробую выбрасывать отчеты в браузер - чисто пока как опыт и интерес, думается одно рабочее место оформить в nullcg, ну и это - своего рода подготовка. Как редактор отчета браузер не годится, ну а распечатать из меню "Печать" - все что надо в принципе есть (по минимуму).

Вы вероятно не всё читаете на ПП. Искать в наших анналах дольше, чем повторить, поэтому напомню, что мы давненько определились с приоритетностью приложений для красоты отчетов.
Это Word, Excel как универсальные «принтеры» и самые распространенные на наших просторах, а также AdobeReader, который стал стандартом для отчетов от ленивых, имеется ввиду, что бесплатная OPZ подтягивает бухгалтерские шаблоны (*.fo) и открытые текстовые форматы *.xml позволяют нам не мудрствуя лукаво, пользуясь инструментами OPZ без её загрузки, быстро догонять наших летописцев в раде со сворой борзописцев связанных с флагманом автоматизированного учета на Украине дабы свести конкуренцию на этом поле к нулю.
Вас устраивают возможности браузеров, в частности Chrome, по интерактивному форматированию отчетов?
В сранении с Excel(«безразмерные»  таблицы) или Word(«кучерявые» счета или договора)? Подскажите, где Вам удобнее?

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 30.12.15 в 23:05:55
Попробуйте установить моего клиента и воспользоваться встроенной системой печати непосредственно из-под клиента (с функцией предосмотра) или вывести в Word или браузер с последующей печатью уже их средствами.
Вставки на HTML поддерживаются и позволяют придавать необходимую "красивость".

http://www.fwp-client.com/pixforhdsite/buttons.JPG

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 07.01.16 в 12:24:44

on 12/30/15 в 13:56:42, Boris, Kiev. wrote:
...

Вы вероятно не всё читаете на ПП. Искать в наших анналах дольше, чем повторить, поэтому напомню, что мы давненько определились с приоритетностью приложений для красоты отчетов.
Это Word, Excel как универсальные «принтеры» и самые распространенные на наших просторах, а также AdobeReader, который стал стандартом для отчетов от ленивых, имеется ввиду, что бесплатная OPZ подтягивает бухгалтерские шаблоны (*.fo) и открытые текстовые форматы *.xml позволяют нам не мудрствуя лукаво, пользуясь инструментами OPZ без её загрузки, быстро догонять наших летописцев в раде со сворой борзописцев связанных с флагманом автоматизированного учета на Украине дабы свести конкуренцию на этом поле к нулю.
Вас устраивают возможности браузеров, в частности Chrome, по интерактивному форматированию отчетов?
В сранении с Excel(«безразмерные»  таблицы) или Word(«кучерявые» счета или договора)? Подскажите, где Вам удобнее?


Почему же не читаю - читаю ПП, в процессе работы для nullcg так получилось - сделать наброски на html5. Из Word и Excel - предпочтение Excel. Пока здесь остановка.

Но появился новый вопрос, наверное, уже решенный, но на ПП не нашлось почему-то ничего: а как кто решает вопрос изменения у счетов/субсчетом  начальных остатков (по   [ ba ... - по моей логике нужен пересчет по директиве P MC=1, но если делать все из формы и вызывать эту директиву то остается незакрывающееся окно и никак не удается от него избавиться.
Сделал тестовую форму:

BI='N:AUTO: P MC=1'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^BI
N:AUTO:#CLOSE

При отработке - окно остается, как от него избавиться?  

(добавлю - сами остатки и наименование изменяются директивами А Е ....).

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 07.01.16 в 20:17:14

on 01/07/16 в 12:24:44, BBBB wrote:
Почему же не читаю - читаю ПП, в процессе работы для nullcg так получилось - сделать наброски на html5. Из Word и Excel - предпочтение Excel. Пока здесь остановка.

Здесь никакой остановки быть не должно, т.е. если подготовлен html-отчёт, то считайте, что он уже готов в Excel или Word, просто расширение укажите xls или doc, т.е. соответственно чем желаете его открыть.



on 01/07/16 в 12:24:44, BBBB wrote:
Но появился новый вопрос, наверное, уже
решенный, но на ПП не нашлось почему-то ничего: а как кто решает вопрос изменения у счетов/субсчетом  начальных остатков (по   [ ba ... - по моей логике нужен пересчет по директиве P MC=1, но если делать все из формы и вызывать эту директиву то остается незакрывающееся окно и никак не удается от него избавиться.
Сделал тестовую форму:

BI='N:AUTO: P MC=1'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^BI
N:AUTO:#CLOSE

При отработке - окно остается, как от него избавиться?  

(добавлю - сами остатки и наименование изменяются директивами А Е ....).

об этом уже было.
Просто организуйте .in с этой директивой. Желательно подпрограммой с параметром-строкой директивы серверу.
А структуру .in всегда можно подсмотреть в каталоге обмена выключив сервер перед последним нажатием на клиенте.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 09.01.16 в 18:16:55

on 01/07/16 в 20:17:14, Boris, Kiev. wrote:
Здесь никакой остановки быть не должно, т.е. если подготовлен html-отчёт, то считайте, что он уже готов в Excel или Word, просто расширение укажите xls или doc, т.е. соответственно чем желаете его открыть.


Спасибо за подсказку, очень неожидано - полученный отчет на html5 переименовал в *.doc - word подхватил сразу, из excel был под рукой только Microsoft Viwer из офис 2003 - простое переименование не подхватило - сообщение что не может открыть такой файл. Переименовывал в др разновидности - пока безуспешно. Но и с Word - уже возможность выбора для заказчика.


on 01/07/16 в 20:17:14, Boris, Kiev. wrote:
...
об этом уже было.
Просто организуйте .in с этой директивой. Желательно подпрограммой с параметром-строкой директивы серверу.
А структуру .in всегда можно подсмотреть в каталоге обмена выключив сервер перед последним нажатием на клиенте.


Да, спасибо, все получилось, *.in - с синтаксисом тоже разобрался (включаю logmode и веду лог для контроля структуры директивы), но в данной ситуации - почему-то забылось.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 09.01.16 в 18:54:16
также напомню, что на модном клиенте есть не плохое доп.решение, можно сказать "фишка" с Wexa
http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=Client;action=display;num=1337578233;start=42#42

Заголовок: Re: Подскажите
Прислано пользователем VF на 26.01.16 в 13:16:53
Здравствуйте!
Пользуемся однопользовательской  версией для Windows UltraH-II, под Windows XP. Решили обновить компьютер, установили Win 7 x64. Подскажите пожалуйста, где скачать инсталяционный пакет Ultra-H_x64_setup? Или что делать с файлом u2x64.exe? Хотелось бы такую же версию с графическим (не DOS-совским) интерфейсом как у нас сейчас, но под Win 7 x64...

p.s. Программу покупали в 2005 году. Украина.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 26.01.16 в 13:39:09

on 01/26/16 в 13:16:53, VF wrote:
что делать с файлом u2x64.exe? Хотелось бы такую же версию с графическим (не DOS-совским) интерфейсом как у нас сейчас, но под Win 7 x64...

Файл u2x64.exe скопируйте в свой рабочий каталог с данными и запустите просто.

Для удобства можете сделать ярлычок на раб.стол для запуска этого же файла со строкой в поле  "Рабочая папка" соответствующей вашему каталогу с данными.
...
Неплохо было бы услышать хотя бы область Украины, где Вы обитаете с такими претензиями.

Заголовок: Re: Подскажите
Прислано пользователем VF на 26.01.16 в 14:28:02
Спасибо, за столь быстрый ответ. Попробуем.
Мы находимся в Днепропетровской области. С нашего предприятия (ПАО "ДнепрАЗОТ") люди тоже воюют в зоне АТО, вот только недавно собирали вещи туда.


Заголовок: Re: Подскажите
Прислано пользователем VF на 27.01.16 в 17:41:06

on 01/26/16 в 13:39:09, Boris, Kiev. wrote:
Файл u2x64.exe скопируйте в свой рабочий каталог с данными и запустите просто.

Сделали, как Вы написали, программа запустилась в небольшом как бы в DOS-овском окне с не графическим DOS-оским интерфейсом... Девушка бухгалтер  не в восторге))))
Подскажите пожалуйста, есть ли возможность установить x64 версию для Windows с графическим интерфейсом, как у UltraH-II x32 для Windows, вот с таким?

http://bcazot.com/images/ultra-h-ii.jpg

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 27.01.16 в 21:27:34
Пока нет.

Некоторые фанаты этого локала устанавливают виртуальные машины типа Oracle VM VirtualBox и таким макаром выходят из этой ситуации на 64-х разрядных системах.

Лично рекомендую перейти на сетевую версию на 2 пользователя, а лучше на 5, чтобы не зависеть от смены компьютеров.


Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 28.01.16 в 06:10:37

on 01/27/16 в 17:41:06, VF wrote:
Девушка бухгалтер  не в восторге))))


Если перейдете на использование сервера, то появится возможность порадовать вашу девушку-бухгалтера вот таким интерфейсом.

http://www.fwp-client.com/

http://www.fwp-client.com/pixforhdsite/buttons.JPG

Заголовок: Re: Подскажите
Прислано пользователем TAM на 31.03.16 в 11:35:30
Возникла проблема. Необходимо создавать новые субсчета в процессе выполнения операции в автоматическом режиме. С помощью файла-коэффициента, выполняющего в цикле операции уценки целого списка товаров, возникают условия для создания новых субсчетов, которые будут иметь параметры уценки. Не исключаются вторичные уценки. Задача создания новых субсчетов решена. С помощью файла-коэффициента создаются новые субсчета.
Однако, наполнение их параметрами в этом же файле коэффициенте не удаётся выполнить. Новые субсчета недоступны пока не проведена новая операция. Предположение заключается в том, что субсчёт создан, но используется не обновлённая версия файла acnt.a3p.
Если у кого есть предложение, как обойти эту проблему, буду рад получить совет или поучаствовать в обсуждении.

Заголовок: Re: Подскажите
Прислано пользователем TAM на 31.03.16 в 19:37:10
Одно из решений заключается в том, что можно разнести по времени процесс создания субсчёта, заполнение параметрами и создание проводок.
Если невозможно сразу воспользоваться новым субсчетом, то дождёмся момента пересбивки и применим следующее:
     A  = [dir 1]+'S.in'
     U1 = [:TEXTADD G2,'У1',4]
     if ~[ex *U1]
       A2=[stamp 1]+'···a ·TOVARI·'+U1+'·'+[n2 *G2]+'·'
\>file A
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^A2>>file A
     endif
     if [ex *U1]
        .......................
     endif
Другими словами подождём пока субсчёт станет доступным и выполним всё необходимое.
В качестве обновления могут служить новые операции. перезагрузка сервера и другие процессы, влияющие на пересбивку.

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 31.03.16 в 20:08:47

on 03/31/16 в 11:35:30, TAM wrote:
С помощью файла-коэффициента создаются новые субсчета.


То есть вы в ФК формируете S.IN содержащий директиву создания субсчета.
Эта директива НЕ будет рассмотрена сервером до того момента, пока он не завершит выполнение оного ФК. Следрвательно, вы попытаетесь присвоить параметры не существующему счету.

Решение.

Положите в ваш S.IN сначала директиву создания счета, а потом директиву создания операции, этот счет использующую.

Рекомнедация.

НИКОГДА!!! Не делайте такого:
---------------------------------------

A  = [dir 1]+'S.in'
.....
пишем что-то в файл A
.......


Делайте ТОЛЬКО так:
----------------------------

UN = [unicfile]     уникальное имя
A  = [dir 1]+UN+'.req'
.....
пишем что-то в файл A
.......
renamefile A to [dir 1]+UN+'.in'  

Заголовок: Re: Подскажите
Прислано пользователем TAM на 01.04.16 в 04:47:01
Владимир, Ваше предложение было использовано мной, как начальный путь решения задачи. К сожалению, по неизвестным причинам, не выполняется у меня команда renamefile. Поэтому, временно, остановился на записи команды создания субсчёта прямо в файл in. Как вариант.
Задача выполнения ВСЕХ действий с новым субсчётом пока не просматривается в Вашем предложении. Я разделил только по времени выполнения действий, но в одном ФК. После перерасчёта сервером в моём случае всё выполняется.
Количество новых субсчетов может создаваться неограниченное количество. Это всё определяется в ФК
Надеюсь получить предложения по выходу из временной развязки.
Решение о создании или не создании нового субчёта и их количестве должно приниматься при анализе в самом ФК.

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 01.04.16 в 05:28:43

on 04/01/16 в 04:47:01, TAM wrote:
Задача выполнения ВСЕХ действий с новым субсчётом пока не просматривается в Вашем предложении.
Надеюсь получить предложения по выходу из временной развязки.


Создаете две ветки дерева (1 и 2) и, соотв. два ФК (ФК1 и ФК2).
ФК1 - отвечает за создание СС-ов и формировании команды О (зарегистрировать операцию) по ветви 2, именно той, в которой прописан ФК2.
ФК2 - отвечает за манипуляции с созданными СС-ми.

В результате, при регистрации ХО по ветке 1 будут созданы СС-та и автоматическая ХО 2, которая эти СС-та обработает.

Перезагрузка сервера не понадобиться.

Тонкость. Необходимо предусмотреть механизм препятствующий многократному созданию новых СС и регистрации автоматических ХО в ФК1 при пересчетах баланса.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 01.04.16 в 07:29:37
Есть гораздо проще способ инициализации таким макаром созданных объектов плана.

Просто представьте себя в потоке пересчёта и гляньте список директив.

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

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

Заголовок: Re: Подскажите
Прислано пользователем TAM на 02.04.16 в 04:00:49
Благодарю за подсказки. Очень ценные и своевременные.
У Владимира предложение очень конкретное. Создание операции из операции прежде никогда не применял. Возникают некоторые сопутствующие вопросы в осуществлении, но проверю на практике в самое ближайшее время.
Второе предложение от Бориса прекрасно. Оно соответствует моей философии при построении проекта в начальной стадии создания. В действующем проекте попробую им воспользоваться чуть позже. После запуска в работу. Для совершенствования проекта.
Ещё раз благодарю за ценные подсказки.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 02.04.16 в 07:36:57
Мне интересно, у Владимира живёт предложенное решение или это первый полёт мысли по этому вопросу.

Если это решение живёт до сих пор, то могу посоветовать уйти от сложностей с рождением связанной операции(опирающейся на ФК2) через отдачу директивы по модификации первой(ФК1) и уже единственной операции сразу вслед за директивой по созданию с.с., т.к. сервер сбрасывает состояние на начало месяца возмущений в ЖО и не важно, чем его «возмутили» созданием новой или редакцией существующей.
Замечу, что такое модифицированное решение даже в таком исполнении будет немного альпийским.

Этот способ Владимира мне напомнил мой ранний способ вызвать «Возможно устарело» при вводе данных в форме, в том способе было одназначно принято решение внесения или обновления пустой операции в самом конце всего ЖО с целью минимизации времени пересчета сервером и достаточно быстрым получением «Возможно устарело».
Если помните, то этот способ прожил недолго, т.к. просто дошло, как малой кровью заставить клиента увидеть «Возможно устарело» через трансформцию UPTI.
В конце концов, для полной разгрузки сервера модный клиент решает эту задачу уже самостоятельно, т.е. без обращения к серверу.
Интересно, что каждый вариант решения давал всплеск удовлетворения, т.к. оно реально работало. И конечно, по нарастающей. Жаль, что следующего шага по усовершенствованию этой задачи пока не вижу. Проще, наверное, уже просто некуда:)

Надеюсь и Вы, получите грамм удовольствия когда всплывёт самое простое решение своей задачи.  ;)

Заголовок: Re: Подскажите
Прислано пользователем Vladimir на 03.04.16 в 06:00:29

on 04/02/16 в 07:36:57, Boris, Kiev. wrote:
Мне интересно, у Владимира живёт предложенное решение или это первый полёт мысли по этому вопросу.


Нет, ни чего подобного я ни когда не делал. Это первое, что пришло в голову.
Полагаю, что рецепт вполне работоспособный, но, почитав новеллу Бориса о плавании в потоке пересчета баланса, а, главное, поразмыслив подольше, понял, что Борис - прав. Можно обойтись и одним ФК и одной операцией.

Нужно сделать так, чтобы в этом ФК был "переключатель" на 2 положения (вместо двух ФК).
Состояние 1: СС есть. -> производим манипуляции с СС.
Состояние 2: СС нет.  -> создадим их.

if [ex *CC]
* Производим манипуляции с СС
else
* Создаем СС
endif  

Решение простое, красивое и эффективное.


Заголовок: Re: Подскажите
Прислано пользователем TAM на 03.04.16 в 11:49:40
Решение найдено. В нём оказались верны и предложения Владимира, и особенно Бориса.
Я ставил вопросом проблему перерасчёта. Потому, что и без правильных предложений Бориса ФК работал, полностью либо после перезагрузки, либо после создания новой операции.
Создание второй операции, запускаемой из первого ФК решало такую задачу ещё эффективней.
Проверил. Всё идёт правильно.
Но предложение Бориса не давало покоя. И, вот, решение перезагрузки найдено:

   A2=[stamp 1]+'···p key='+[stamp 3]

Эту команду сервер выполняет сразу после окончания создания операции и ... сразу пересчитывает её!!!
Другими словами проблема использования в ФК новых субсчетов решена. И всё в одном ФК.

Благодарю участников за дискуссию, приведшую к прекрасному решению проблемы.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 03.04.16 в 16:11:37

on 04/03/16 в 11:49:40, TAM wrote:
Эту команду сервер выполняет сразу после окончания создания операции и ... сразу пересчитывает её!!!

Это не совсем так.
Особо придираться к словам не буду.
Знаю, что Вам под силу выяснить какие операции претерпевают перерасчёт и в каком порядке.

Также, добавлю, что при такой прямой генерации сервером  самому себе директив  желательно  обеспечивать одномоментость появления файла, т.к. автор декларировал открытие и закрытие файла по каждому оператору  записи и наблюдение за *.in(ами), то вероятна ситуация  забора «недописанного» такого сборного файла директив. Уйти от этой маленькой проблемы можно записью одним махом переменной с переводом строк если весь контекст менее 255, либо использовать  renamefile. Здесь должен сказать, что воспроизвести эту маловероятную ситуацию не старался, но логика и практика выдачи больших файлов директив серверу привела к этому решению.

TAM проработал директивы и предложил самое эффективную формулировку директивы P  через:

'P KEY='+[stamp3]

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

'P MC='+[intsn mc]

дабы не рисковать результатами с бородатыми ф-к.

Этой конструкции более 10 лет, поэтому рекомендую. Претензий не было.
Не скрою, KEY мне понравился и как отрадно, что ТАМа зацепила задача.
Исследование этих вопросов производил давненько, может быть у кого-нибудь возникнет интерес к внесению аргументированных уточнений в этот вопрос, будем рады.


Заголовок: Re: Подскажите
Прислано пользователем TAM на 04.04.16 в 19:33:59

Code:
автор декларировал открытие и закрытие файла по каждому оператору  записи и наблюдение за *.in(ами)

Эта часть моей информации не правильно воспринята.
При поиске решения основной проблемы приходилось отодвигать на потом всевозможные текущие технические неточности и упрощения, с которыми знакомились участники дискуссии. Даже делать прямую запись в in.

Реально ФК создавал достаточно большой набор директив, необходимых для создания новых СС. Всё записывалось в один файл с расширением TXT. Затем файл переименовывался в in.

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

В моих первых сообщениях приведены вырезки из ФК.
С учётом презагрузки сервера или создания новой операции всё уже работало полноценно.
Не хватало ПРИНУДИТЕЛЬНОГО перерасчёта.

За поиском такого решения я и обратился в ПП.
Сейчас всё позади.

Ещё раз благодарю за дискуссию и реальную помощь в поиске решения проблемы.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 04.04.16 в 20:03:20

on 04/04/16 в 19:33:59, TAM wrote:

Code:
автор декларировал открытие и закрытие файла по каждому оператору  записи и наблюдение за *.in(ами)

Эта часть моей информации не правильно воспринята.


Уточняю, что автор - это Водяник Аркадий.
Выписал этот пост для всех посетителей.



Заголовок: Re: Подскажите
Прислано пользователем VF на 14.04.16 в 17:07:56
Здравствуйте,
Подскажите пожалуйста, как зарегистрировать Uiltra-H:
Перейдя на новый ПК, подкинули в папку с данными скачанный с оф.сайта finw.exe, все подхватилось и работает, без установки, как раньше, но выскакивает окошко About... Код у нас есть - программу покупали в 2005, но она была с Setup и при установке можно было ввести код.
Еще вопрос, пользуясь случаем - получилось так, что на win XP у нас была UltraH-II, а теперь на 7ке в папку с данными от нее, подкинут finw.exe вроде как от UltraH... все конечно работает, бухгалтер не жалуется, разве что на окошко, которое появляется через несколько минут, но, может быть нельзя так было делать?))))
Прошу прощения, за возможно, дурацкие вопросы...

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 14.04.16 в 22:20:25

on 04/14/16 в 17:07:56, VF wrote:
...
Перейдя на новый ПК
...

Числовой ключ однопользовательских версий привязан к параметрам оборудования конкретного ПК. Если вы перешли на новый, то необходимо обновить и ключ.
Однако ключи от версий ultraH и ultraH-II действительно различные. Для win-ultraH ключ должен быть записан в файл finw.cod, для ultraH-II в файл fin.cod и файлы с ключами должны располагаться в той же директории, в которой расположены исполняемые файлы программы.

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 17.04.16 в 08:09:50

on 04/14/16 в 17:07:56, VF wrote:
Здравствуйте,
Подскажите пожалуйста, как зарегистрировать Uiltra-H:
Перейдя на новый ПК, подкинули в папку с данными скачанный с оф.сайта finw.exe, все подхватилось и работает, без установки, как раньше, но выскакивает окошко About... Код у нас есть - программу покупали в 2005, но она была с Setup и при установке можно было ввести код.


Если вас интересует именно сам Установщик, то взять можно здесь:
http://hdru.com/russian/finsetup.rar

Это - программа-Установщик, которая считывает условный номер компьютера и которая имеет поле для ввода числового ключа. В результате ее работы должен образоваться файл finw.cod - в него записывается числовой ключ.


on 04/14/16 в 17:07:56, VF wrote:
...
Еще вопрос, пользуясь случаем - получилось так, что на win XP у нас была UltraH-II, а теперь на 7ке в папку с данными от нее, подкинут finw.exe вроде как от UltraH... все конечно работает, бухгалтер не жалуется, разве что на окошко, которое появляется через несколько минут, но, может быть нельзя так было делать?))))
Прошу прощения, за возможно, дурацкие вопросы...


Почему нельзя было, копируйте - никаких счетчиков на количество копий нет, защита ФБП заключается в проверке наличия файла с числовым ключем и все.

Заголовок: Re: Подскажите
Прислано пользователем VF на 22.04.16 в 17:03:14

on 04/14/16 в 22:20:25, mine-R wrote:
Числовой ключ однопользовательских версий привязан к параметрам оборудования конкретного ПК. Если вы перешли на новый, то необходимо обновить и ключ.
Однако ключи от версий ultraH и ultraH-II действительно различные. Для win-ultraH ключ должен быть записан в файл finw.cod, для ultraH-II в файл fin.cod и файлы с ключами должны располагаться в той же директории, в которой расположены исполняемые файлы программы.

Правильно ли я Вас понял - чтобы обновить ключ на новый ПК нужно связаться с hd, сказать им код
ПК выдаваемый при установке, получить в ответ рег ключ и ввести? Тот который у нас есть судя по всему не подходит?
В целом вопрос такой:

У нас был UltraH... За эти годы образовалось с десяток папок с данными на каждый год. Исполнимый файл был в папке Windows. Перенеся папки с данными на новый ПК, мы добавили в каждую папку  finw.exe, как тут советовали, от Ultra-H. Запускается, работает, но потом окошко About.

Вопрос: имея 11 папок с данными от UltraH, как правильно все сделать на новом ПК, чтобы и зарегистрировать и сильно не заморачиваться?
Я так думаю нужно 1 раз запустить setup, ввести новый код и потом finw.cod  из папки windows расскопировать по всем папкам с данными плюс добавить в каждую папку finw.exe? Или может как то по другому?

Вопрос 2: Чем отличаются UltraH и UltraH-II... по дате UltraH-II вроде как самая свежая, можно ли ее использовать с данными от UltraH и есть ли вариант в граф.интерфейсе для Windows как и UltraH?  
Ну и напоследок - подскажите пожалуйста куда звонить, чтобы обновить ключ?

Заранее спасибо!

Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 22.04.16 в 17:36:38

on 04/22/16 в 17:03:14, VF wrote:
Правильно ли я Вас понял - чтобы обновить ключ на новый ПК нужно связаться с hd, сказать им код
ПК выдаваемый при установке, получить в ответ рег ключ и ввести? Тот который у нас есть судя по всему не подходит?...


Вы правильно поняли.


on 04/22/16 в 17:03:14, VF wrote:
...
Вопрос: имея 11 папок с данными от UltraH, как правильно все сделать на новом ПК, чтобы и зарегистрировать и сильно не заморачиваться?
Я так думаю нужно 1 раз запустить setup, ввести новый код и потом finw.cod  из папки windows расскопировать по всем папкам с данными плюс добавить в каждую папку finw.exe? Или может как то по другому?


да, можно и так, главное finw.cod и finw.exe должны быть вместе и на компьютере следует убрать все устаревшие finw.cod.



on 04/22/16 в 17:03:14, VF wrote:
Вопрос 2: Чем отличаются UltraH и UltraH-II... по дате UltraH-II вроде как самая свежая, можно ли ее использовать с данными от UltraH и есть ли вариант в граф.интерфейсе для Windows как и UltraH?  


Все различия модификаций ФБП описаны в документации, например, здесь: http://hdru.com/russian/manual1/manual1.htm

За прошедший месяц мы не выпускали обновлений и пока не планируем.


on 04/22/16 в 17:03:14, VF wrote:
Ну и напоследок - подскажите пожалуйста куда звонить, чтобы обновить ключ?


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

Заголовок: Re: Подскажите
Прислано пользователем VF на 25.04.16 в 12:55:56

on 04/22/16 в 17:36:38, Svetlana wrote:
Вы ведь звонили, телефон тот же, цены указаны на сайте, можете здесь же написать куда вам счет высылать и сюда написать условный номер компьютера. После оплаты я рассчитаю ключ и сюда же отвечу.


Погодите, мы же уже платили, пусть и давно... Мы просто поменяли ПК - старый отправили в библиотеку, предварительно удалив оттуда всю бухгалтерию, все перенесли на относительно новый т.е. у нас не будет 2х ПК с Ultra-H и бухгалтер у нас один. Счет, диск, конверт - все сохранилось...
P.S. При всем уважении к разработчику, по тому номеру, что мы звонили, после последнего разговора, никакого желания опять звонить не возникло, уж извините за прямоту, поэтому и пишем здесь)

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 26.09.16 в 14:43:21
Вопрос к тем, кто работает с Excel.

Создается некая форма в формате *.html, выгружается в каталог c:\_box_ в файл:
BB=[dir 1]+'f21.html'

При нажатии на Кнопку должна произойти выгрузка либо в браузер либо в Excel/

Вариант выгрузки в Chrom- работает:
*DI='N:AUTO:>"c:\Progra~1\Google\Chrome\Application\chrome.exe"'+BB

Вариант выгрузки с Excel - стартует только Excel без отчета:
DI='N:AUTO:>"c:\Progra~1\Micros~2\Office12\excel.exe"'+BB

При одном и том же виде директивы - не удается подхватить отчет в Excel, хотя он сам - запускается. Руками из командной строки - запускается, *.bat - запускается, а вот директивой из clw - не могу увидеть проблему.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 26.09.16 в 15:28:57
Вспомните, пожалуйста, в начале года был ответ:
"Здесь никакой остановки быть не должно, т.е. если подготовлен html-отчёт, то считайте, что он уже готов в Excel или Word, просто расширение укажите xls или doc, т.е. соответственно чем желаете его открыть. "

Это раз. И второе, то, что у Вас стоит ":AUTO:", это означает, что  директива будет выполнена однажды при запуске формы, в случае нажатия "Q", и или "R" для изменения параметров или обновления, соответственно, то эта директива уже выполняться не будет и к нажатию кнопки она не вяжется. Возможно, вы просто оговорились.

Также полезно почитать о последнем видении и наработке модифицированного клиента с выводом во внешние приложения в формате html.
http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=errors;action=display;num=1463636010;start=5#5

Не полинитесь, почитайте эту веточку, там ниже расписана подробно вся логика этого решения.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 27.09.16 в 06:43:02

on 09/26/16 в 14:43:21, BBBB wrote:
Вопрос к тем, кто работает с Excel.

Поэксперементировал с Вашим примером. Попробуйте двойные кавычки убрать, и чтобы между приложением и параметром был пробел:

BB=[ch 32]+[dir 1]+'f21.html'

DI='N:AUTO:>c:\Progra~1\Micros~2\Office12\excel.exe'+BB


У меня такой вариант отработал.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 27.09.16 в 09:39:04

on 09/27/16 в 06:43:02, mine-R wrote:
Поэксперементировал с Вашим примером. Попробуйте двойные кавычки убрать, и чтобы между приложением и параметром был пробел:

BB=[ch 32]+[dir 1]+'f21.html'

DI='N:AUTO:>c:\Progra~1\Micros~2\Office12\excel.exe'+BB


У меня такой вариант отработал.


Спасибо, этот вариант теперь и у меня заработал.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 27.09.16 в 09:44:26

on 09/26/16 в 15:28:57, Boris, Kiev. wrote:
Вспомните, пожалуйста, в начале года был ответ:
"Здесь никакой остановки быть не должно, т.е. если подготовлен html-отчёт, то считайте, что он уже готов в Excel или Word, просто расширение укажите xls или doc, т.е. соответственно чем желаете его открыть. "

Это раз. И второе, то, что у Вас стоит ":AUTO:", это означает, что  директива будет выполнена однажды при запуске формы, в случае нажатия "Q", и или "R" для изменения параметров или обновления, соответственно, то эта директива уже выполняться не будет и к нажатию кнопки она не вяжется. Возможно, вы просто оговорились.

Также полезно почитать о последнем видении и наработке модифицированного клиента с выводом во внешние приложения в формате html.
http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=errors;action=display;num=1463636010;start=5#5

Не полинитесь, почитайте эту веточку, там ниже расписана подробно вся логика этого решения.


Подменял расширения у файлов на doc и xls - да, Excel стартует и подхватывает форму, но при этом начинает рассказывать что внутри она не соответствует этим форматам и согласен ли я чтоб таки увидеть ее ...  то есть, нужен шаг по подтверждению.
В вашем Клиенте этого нет, но у меня наработки *.html - вот пытаюсь экспериментировать.
Что касается второго пункта - тут даже возражать не буду - вы правы.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 27.09.16 в 19:34:56

on 09/27/16 в 09:44:26, BBBB wrote:
Подменял расширения у файлов на doc и xls - да, Excel стартует и подхватывает форму, но при этом начинает рассказывать что внутри она не соответствует этим форматам и согласен ли я чтоб таки увидеть ее ...  то есть, нужен шаг по подтверждению.

Если не сложно, дайте скриншот по "начинает рассказывать", и версию Excel, т.к. до сих пор не сталкивался.


on 09/27/16 в 09:44:26, BBBB wrote:
В вашем Клиенте этого нет, но у меня наработки *.html - вот пытаюсь экспериментировать.

Уточните, пожалуйста, чего нет?

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 28.09.16 в 08:20:42

on 09/27/16 в 19:34:56, Boris, Kiev. wrote:
Если не сложно, дайте скриншот по "начинает рассказывать", и версию Excel, т.к. до сих пор не сталкивался.



http://hdru.com/russian/1111.JPG

http://hdru.com/russian/1112.JPG

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 28.09.16 в 12:01:59
Спасибо, с версией понятно.
Покажите пожалуйста первую строчку вашего html-ого файла.

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 28.09.16 в 12:54:36

on 09/28/16 в 12:01:59, Boris, Kiev. wrote:
Спасибо, с версией понятно.
Покажите пожалуйста первую строчку вашего html-ого файла.


Ну, начало файло обычное:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type='text/css'>
..


Но, кажется, теперь дошло - подменить не имя файла, а DOCTYPE ..:

<!DOCTYPE excel>...


Спасибо, теперь все отработало нормально.
Что тут скажешь ...

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 28.09.16 в 14:54:33

on 09/28/16 в 12:54:36, BBBB wrote:
Ну, начало файло обычное:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type='text/css'>
..


Но, кажется, теперь дошло - подменить не имя файла, а DOCTYPE ..:

<!DOCTYPE excel>...


Спасибо, теперь все отработало нормально.
Что тут скажешь ...


Интересное у Вас решение получилось.

Попробуйте  просто начать, типа:

<HTML>

и закончить, типа:

</HTML>

Что ваш Excel ответит?, интересно.

Вас не заинтересовал подход модифицированной версии клиента?
http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=errors;action=display;num=1463636010;start=5#5

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 28.09.16 в 17:36:12
Небольшая реплика по теме.

Когда я экспериментировал с ФБП+HTML, в шаблонах тоже прописывал для чего-то на первой строке теги:

<!DOCTYPE XLS:stylesheet []>
и
<!DOCTYPE DOC []>

Сейчас понял, что наверное тоже пытался запретить офисным приложениям что-то  "рассказать"  :)

Заголовок: Re: Подскажите
Прислано пользователем BBBB на 07.10.16 в 10:57:53

on 09/28/16 в 14:54:33, Boris, Kiev. wrote:
Интересное у Вас решение получилось.

Попробуйте  просто начать, типа:

<HTML>

и закончить, типа:

</HTML>

Что ваш Excel ответит?, интересно.

Вас не заинтересовал подход модифицированной версии клиента?
http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=errors;action=display;num=1463636010;start=5#5


Опыт такой:
форма начинается как <html>:
1.
BB=[dir 1]+'f21.html'  
DI='N:AUTO:>"c:\Progra~1\Micros~2\Office12\excel.exe"'+BB
форма f21.html создается, но excel запускается молча и без формы

2.
BB=[ch 32]+[dir 1]+'f21.html'  
DI='N:AUTO:>c:\Progra~1\Micros~2\Office12\excel.exe'+BB
стартует форма в excel - без  сообщений об ошибках.

Что касается модифицированного клиента - попытка выгрузить отчет нажатием  кнопки W,exa в office 2007 - просто стартует Word - без каких-либо сообщений, но и без выгрузки отчета.


Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 07.10.16 в 13:53:12

on 10/07/16 в 10:57:53, BBBB wrote:
Опыт такой:
форма начинается как <html>:
1.
BB=[dir 1]+'f21.html'  
DI='N:AUTO:>"c:\Progra~1\Micros~2\Office12\excel.exe"'+BB
форма f21.html создается, но excel запускается молча и без формы


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



on 10/07/16 в 10:57:53, BBBB wrote:
Что касается модифицированного клиента - попытка выгрузить отчет нажатием  кнопки W,exa в office 2007 - просто стартует Word - без каких-либо сообщений, но и без выгрузки отчета.

Похоже, что Вы даже не удосужились прочесть
http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=errors;action=display;num=1463636010;start=5#5

Что касается Wexa, то не понял, сообщение о cfwp.dot получили? Если не получали, то при открытии *.dot  Word спрашивает игнорировать или нет макросы,  в случае, если не устанавливали полное доверие к макросам.
Может подробнее опишите сценарий на своей машине?


Заголовок: Re: Подскажите
Прислано пользователем BBBB на 07.10.16 в 14:49:50
*.dot размещен в том же каталоге, где и clw32, если бы выпало сообщение - сказал бы, но не было. Подозреваю - да, я скорее всего чего-то недочитал. Чуть разгребусь с отчетом - сделаю начисто тесты и напишу сюда.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 03.03.17 в 11:09:51
Здравствуйте!

Посдкажите, пожалуйста, может ли сервер слушать два каталога обмена? Например во внутренней сети и на облачном диске. (Яндекс-диск и ТП). Можно-ли создать собственный облачный диск?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 03.03.17 в 15:33:30

Quote:
Посдкажите, пожалуйста, может ли сервер слушать два каталога обмена? Например во внутренней сети и на облачном диске. (Яндекс-диск и ТП). Можно-ли создать собственный облачный диск?

Разве что два и более подкаталога одного и того же каталога. Теоретически промаппить в Drive Letter'ы можно подкаталоги каталога, созданного на облачном диске, на всех компьютерах внутренней сети..

Если я правильно понял вопрос.

Хотя.. экзотика конечно.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 03.03.17 в 16:25:36

Quote:
Разве что два и более подкаталога одного и того же каталога. Теоретически промаппить в Drive Letter'ы можно подкаталоги каталога, созданного на облачном диске,..
Если я правильно понял вопрос.


Да, правильно, вполне подходит подкаталог в каталоге. А практически кто-нибудь сталкивался? Как связать _box_ и каталог в облаке?

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 03.03.17 в 16:57:25

Quote:
Как связать _box_ и каталог в облаке?

_box_ изначально создается в облаке. А как подключить.. Надо искать в поисковике "подключение сетевого диска по webdav". И выбирать конкретную инструкцию для конкретной версии Windows.
Затем букву, под которой подключится _box_ прописать в командной строке Сервера. Аналогично подключать и прописывать на компьютерах с Клиентами.
Эксперимент делал очень давно, тогда облака только появлялись. Скорость обмена Сервера и Клиента тогда не устроила. Как сейчас обстоят дела со скоростью не знаю.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 06.03.17 в 13:25:04

on 03/03/17 в 11:09:51, VLV wrote:
Посдкажите, пожалуйста, может ли сервер слушать два каталога обмена?

Официально до 50 каталогов сервер слушает.


on 03/03/17 в 11:09:51, VLV wrote:
Например во внутренней сети и на облачном диске. (Яндекс-диск и ТП).

Для всякого рода манипуляций в файловой системе пользуемся  SUBST и JUNCTION


on 03/03/17 в 11:09:51, VLV wrote:
Можно-ли создать собственный облачный диск?


Что вы понимаете под "собственный облачный диск"?

Приведу общепринятое из https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BB%D0%B0%D1%87%D0%BD%D0%BE%D0%B5_%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85

Облачное хранилище данных (англ. cloud storage) — модель онлайн-хранилища, в котором данные хранятся на многочисленных распределённых в сети серверах, предоставляемых в пользование клиентам, в основном, третьей стороной. В отличие от модели хранения данных на собственных выделенных серверах, приобретаемых или арендуемых специально для подобных целей, количество или какая-либо внутренняя структура серверов клиенту, в общем случае, не видна. Данные хранятся и обрабатываются в так называемом «облаке», которое представляет собой, с точки зрения клиента, один большой виртуальный сервер. Физически же такие серверы могут располагаться удалённо друг от друга географически.

Ещё конечно интересно, какая реально задача у вас встала.
Здесь когда-то давно обсуждался вопрос  эффективной удаленной работы на ФБП  и если мне не изменяет память, то тогда уже вопрос решился в пользу передачи картинки по сети, а не рельных файлов. На сегодня - включаете тимвьюер(или то, что вам нравится) и ни в чём не отказываете себе. ;)
Вопрос минимизации расходов на железо при этом каждый решает по разному от страховочных буков каждому клиенту до терминальных ос(правда, не копал тима на этот предмет) или arduino(это, правда только в мыслях, надо копать, не уверен, что будет намного дешевле, это так для затравки).  ;D

Заголовок: Re: Подскажите
Прислано пользователем VLV на 10.03.17 в 13:42:34

on 03/06/17 в 13:25:04, Boris, Kiev. wrote:
Официально до 50 каталогов сервер слушает.

Для всякого рода манипуляций в файловой системе пользуемся  SUBST и JUNCTION


Что вы понимаете под "собственный облачный диск"?

Ещё конечно интересно, какая реально задача у вас встала.
Здесь когда-то давно обсуждался вопрос  эффективной удаленной работы на ФБП  и если мне не изменяет память, то тогда уже вопрос решился в пользу передачи картинки по сети, а не реальных файлов..  ;D


Собственный облачный - это диск на собственном компе к которому доступ через интернет.

Задача. Сервер в точке С. В точке M клиент. Связь через интернет. На сервере база товаров. В точке М ККМ. На клиенте нужно редактировать общую базу товаров и выгружать цены в ККМ(АРМ ККМ).

Что касается передачи видео по сети вместо текстовых файлов, то это для сисадмина не плохо, но для оператора не идеальное решение.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 11.03.17 в 08:24:45

on 03/10/17 в 13:42:34, VLV wrote:
Что касается передачи видео по сети вместо текстовых файлов, то это для сисадмина не плохо, но для оператора не идеальное решение.


Аргументируйте пожалуйста.


Заголовок: Re: Подскажите
Прислано пользователем VLV на 13.03.17 в 09:02:06

on 03/11/17 в 08:24:45, Boris, Kiev. wrote:
Аргументируйте пожалуйста.


Эти программы видео  передают (уплотняют-разуплотняют), я так понимаю. Качество шрифта хуже исходного, иногда при несовпадении разрешений очень плохое(вероятно из-за маштабирования),  утомительно для глаз при долгой работе.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 14.03.17 в 19:19:02
Последние версии тимвьюера работают без проблем.
Качеству изображения уделено достаточно.
Если Вы не на GPRS, то пробуйте.

Маленькое неудобство с печатью, но как правило - всё реже этим вообще пользуются, а передать файл элементарно.


Заголовок: Re: Подскажите
Прислано пользователем VLV на 28.04.17 в 00:26:14
Здравствуйте!
Подскажите, что происходит с экстра-параметрами после удаления с/счета? Или если удалить с/счет, то после выгрузки состояния в extra.e останутся записи связанные с несуществующим с/счетом?
С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем mine-R на 28.04.17 в 18:14:58

Quote:
Здравствуйте!
Подскажите, что происходит с экстра-параметрами после удаления с/счета? Или если удалить с/счет, то после выгрузки состояния в extra.e останутся записи связанные с несуществующим с/счетом?
С уважением, Владимир.

Здравствуйте,
Если операции, связанные с этим счетом/субсчетом также были удалены, и рассматривается промежуток исключительно в год (т.е. если в extra.b  не было экстрапараметров, связанных с этим счетом/субсчетом), то никаких следов в extra.e не запишется. Все прошлые не подчищенные следы, присутствовавшие с прошлых лет в extra.b на начало года - останутся.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 01.05.17 в 13:02:14
mine-R, всё так с extra.b, только уточню по операциям.
Тонкость удаления объектов плана заключается в том, что сервер после получения директивы на удаление не производит пересчёт состояния с 1.01 и понятно, что в случае завершения работы очень вероятна ситуация с невозможностью загрузки базы при следующем старте, конечно же, если настройщик&|администратор не побеспокоится об удалении всех операций, связанных с [set .. и [plus ..  и "не только", такого удаляемого объекта плана или после удаления не заставит сервер провести пересчет и в пошаговом режиме навести порядок с ЖО.

Напомню, что сама директива на удаление объектов плана начиная с версии 2.0 была отменена и вернулась c 3.27 в более страховом варианте. Исчерпывающие подробности этого действа можете почитать в руководстве по сетевой (http://hdru.com/russian/manual/manual.htm), включив поиск «Kill».

Заголовок: Re: Подскажите
Прислано пользователем VLV на 12.05.17 в 13:39:56
Здравстсвуйте!
Подскажите, как из обозначения с/счета получить порядковый номер этого с/счета? (Кроме прямого перебора)
С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 14.05.17 в 11:10:56

on 05/12/17 в 13:39:56, VLV wrote:
Здравстсвуйте!
Подскажите, как из обозначения с/счета получить порядковый номер этого с/счета? (Кроме прямого перебора)
С уважением, Владимир.


Если без перебора, то делайте индексацию в extrd.dat. Будет быстро и удобно.
Правда вариантов исполнения предостаточно, от прямолинейных до суперэкономных.

Можно узнать о самой задаче?
Просто до сих пор не озадачивался таким, интересно для чего это понадобилось.


Заголовок: Re: Подскажите
Прислано пользователем Svetlana на 14.05.17 в 20:29:49
А можно индекс при создании субсчета дописывать в конец наименования. И потом зная обозначение вырезать из [n2 ...] этот индекс.
Но с такой задачей я тоже не сталкивалась, хотелось бы подробнее?

Заголовок: Re: Подскажите
Прислано пользователем VLV на 15.05.17 в 09:24:09

Quote:
Можно узнать о самой задаче.., интересно для чего это понадобилось?


Использую СПРАВОЧНИК (ТМЦ), построенный на КлиентеФорм. При добавлении новой записи в справочник курсор нужно позиционировать на новой записи. Клиентформ позволяет непосредственно указать курсору куда стать после обновления. Для этого ему нужно сообщить номер строки. Сделал перебором. Порядка 10 тыс. наименований. Вроде замедления заметного нет. Хотя такая функция у ФБП в данном случае не помешала бы.

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем VLV на 15.05.17 в 09:33:37
Подскажите, пожалуйста, возможен ли в ФБП конфликт при одновременном обращении к sed-ячейке? Например когда два запроса, один пишет в sed, другой читает эту же ячейку?

С уважением, Владимир.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 16.05.17 в 19:40:17

on 05/15/17 в 09:24:09, VLV wrote:
Хотя такая функция у ФБП в данном случае не помешала бы.


Модный клиент уже давненько решил этот вопрос:

02/04/2007
       1. По аналогии с N: допускается указание:

               S:контекст пои[ска.]
                 

       При этом клиент при открытии или обновлении формы проведёт поведение
       аналогичное последующему ручному заданию простой строки поиска.

       Контекст более 12 символов урезается до 12.
       Местоположение строки в отчёте не имеет значения, в случае
       многократного определения - берётся последнее.

       Т.е. стало абсолютно реальным управление начальным положением
       курсора-полосы в отчёте!!!
       Это решение позволяет автоматически ускорять выбор объектов из связанных
       списков, в частности, упростить алгоритм перехода к вновь созданному объекту
       списка при использовании собственных сценариев их создания.


Вам решать, что удобнее и универсальнее.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 17.05.17 в 08:04:18

on 05/15/17 в 09:33:37, VLV wrote:
Подскажите, пожалуйста, возможен ли в ФБП конфликт при одновременном обращении к sed-ячейке? Например когда два запроса, один пишет в sed, другой читает эту же ячейку?

Уточните свой вопрос.
Что подразумевается под запросами?
Это две строчки в одной форме? или в разных формах и от разных клиентов?
Припоминаю, что без режима fastged были нюансы использования sed ged, после - всё гладко до сих пор.


Заголовок: Re: Подскажите
Прислано пользователем VLV на 17.05.17 в 09:31:39

on 05/17/17 в 08:04:18, Boris, Kiev. wrote:
Уточните свой вопрос.
Что подразумевается под запросами?
Это две строчки в одной форме? или в разных формах и от разных клиентов?


Это два разных запроса от разных клиентов в разных файлах-запросах. Клиент разлистывает данные из sed-структуры. Одновременно программа чтения бар-кода отправляет запрос на запуск формы, которая по прочитанному баркоду пишет в эту-же sed-структуру. Точнее драйвер баркода собственно не клиент, программа, которая читает баркод и  отправляет директивы серверу.

Заголовок: Re: Подскажите
Прислано пользователем Boris, Kiev. на 17.05.17 в 13:36:47

on 05/17/17 в 09:31:39, VLV wrote:
Это два разных запроса от разных клиентов в разных файлах-запросах...


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



Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board