Автор |
Тема: Большая строковая переменная (Прочитано 1994 раз) |
|
Seroga
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
Как, желательно в операции, ввести большую строковую переменную (например 200 или 300 символов) с сохранением в факте (желательно в факте) с дальнейшей возможностью ее редактирования, а не вводом заново? Речь идет о вводе данных договора. В факте предположительно 9 – 10 полей. Благодарю.
|
|
Зарегистрирован |
|
|
|
Valery
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 153
|
|
Re: Большая строковая переменная
« Ответить #1 В: 24.05.19 в 23:51:46 » |
Цитировать | Править
|
Видимо речь идет о регистрации с помощью одной операции нового поставщика/покупателя с одновременным вводом его реквизитов (ИНН, адрес, договор и т.д.). У нас это делается, как один из вариантов, ч-з отчётную форму, Операция регистрируется с числовыми данными и передаётся на сервер, но реквизиты все же хранятся на sed ged. Всё надёжно и давно применяется. Может в Ваших настройках есть особенности и именно хранение строковых данных предпочтительнее в фактах. Если такая опция появится, то добавится как вариант к уже имеющимся возможностям хранения строковых данных. Я ЗА
|
|
Зарегистрирован |
С уважением, Валерий.
|
|
|
Boris, Kiev.
Адепт ФБП с 1996г.
Просмотреть Профиль | E-мэйл
Сообщений: 875
|
|
Re: Большая строковая переменная
« Ответить #2 В: 26.05.19 в 13:47:48 » |
Цитировать | Править
|
on 24.05.19 в 22:16:03, Seroga wrote:Как, желательно в операции, ввести большую строковую переменную (например 200 или 300 символов) с сохранением в факте (желательно в факте) с дальнейшей возможностью ее редактирования, а не вводом заново? Речь идет о вводе данных договора. В факте предположительно 9 – 10 полей. Благодарю. |
| 1. Факты творятся исключительно в файлах-коэффициентах(ф-к). 2. Нормальными переменными считаем те, которые вводятся в ветвях-вопросах, следовательно их длина ограничена 11 символами и максимум до 33 символов(при двухсимвольном имени клиента) в комментарии через функцию [co]. Делаем вывод: Пользоваться строковой переменной более 33 символов в ф-к без «выковыривания» её из extrd.dat возможности не вижу. Хотя может кто-нибудь поспорит со мной, ведь ФБП – серьёзный аппарат. Критика: «Выковыривать» поле из extrd.dat в ф-к и садить в факт не вижу смысла. При «выковыривании» и посадке в факт вы делаете системе зло два раза. Первый – утрата быстродействия при вынимании данного из extrd.dat Второй – память под факты «пухнет» дублями данных. Совет: Достаточно родить переменную(реперный индекс) в ветви-вопросе и дальше крутить всё, что ваша душа пожелает хоть в форме, которая откроется в следующей ветви или в форме, которая откроется автоматом после регистрации операции(это, правда, только на профессиональном клиенте, или при использовании первичного документа, который не прижился на «диких» базах) или любой другой формы, которую привяжете для анализа и редакции этих полей. Также практиковал при работе с массой клиентов получение всех реквизитных полей, вплоть до ссылок на картинные файлы импортированием *.dbf или всяких по сути *.txt файлов с требуемыми полями. Замечание: Как правило, все реквизитные данные меняются во времени. На заре своих систем реализовывал историю реквизитных частей на операциях, т.е. можно было в одном дне оформить два документа с одним контрагентом с разными значениями одного и того же поля. Практика показала, что такой подход оказался избыточным, т.к. реальной необходимости практически не возникало. Сейчас рЫкомендую всю историю реквизитов хранить в extrd.dat с дневным шагом, т.е. реквизит может меняться не более, чем один раз в день. Это практичное и сильное решение, т.к. операции не участвуют в построении истории.
|
|
Зарегистрирован |
|
|
|
BBBB
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 89
|
|
Re: Большая строковая переменная
« Ответить #3 В: 26.05.19 в 13:56:17 » |
Цитировать | Править
|
Соглашусь с boris. Мой взгляд: В самой операции никак не ввести такую длинну строковую переменную (если смотреть лог, то директива серверу длиной всего 240 символов). А лента фактов создается из данных в операции - есть операция - значит есть данные у сервера, удалили ее - значит, сервер тоже "забывает". Видится такое решение - через отчетную форму вводить нужные данные и из нее сохранять их в [sed], одновременно посылать директиву серверу на регистрацию какой-то операции в которой формировать какой-то индекс в fact что-ли, который бы указывал на запомненный [sed]. Тогда когда по ленте фактов будет строится отчет или список - по закодированному индексу находить в [sed] эту длинную строковую переменную и извлекать ее.
|
|
Зарегистрирован |
|
|
|
mine-R
compact & flexible rulezzz
Просмотреть Профиль |
Сообщений: 150
|
|
Re: Большая строковая переменная
« Ответить #4 В: 27.05.19 в 21:32:08 » |
Цитировать | Править
|
Добавлю вариант от кэпа Завести пару "мусорных" счетов, с такими же "мусорными" субсчетами. Можно и одним обойтись, но повторно разворачивать список субсчетов в операции придется через r или x В факте можно хранить коды пары этих субсчетов с текстовыми данными в полях наименования субсчета, и по этим кодам, вытаскивать где нужно наименования и производить конкатенацию с наименованиями. Около 200 символов и будет. Как побочка - "пухлый" по объёму план счетов, ибо храниться текстовая масса будет в основном там.
|
« Изменён в : 27.05.19 в 21:36:54 пользователем: mine-R » |
Зарегистрирован |
|
|
|
Seroga
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
|
Re: Большая строковая переменная
« Ответить #5 В: 28.05.19 в 15:58:37 » |
Цитировать | Править
|
Благодарю за ответы. Немного прояснилось после 15 летнего перерыва в программировании. В моей задаче не предполагается изпользовать ФбП, как бухгалтерскую программу, она будет изпользоваться, как записная книжка с не более чем 5 расчетами. Вопрос касался сохранения предмета договора. Самый длинный в моем случае (из практики) 371 символ. Было бы поменьше символов, я бы стал «выковыривать». Вопрос. Какая длина может быть в случае с sed? Хочется «чисто» работать. Данные по сделкам хранятся какое-то время (например 10 лет), потом их удаляем. Вопрос. Факты удалим на автомате, а sed можно удалить на автомате? Можно увидеть небольшую отчетную форму, через которую вводят операции? Ни разу их не видел, что бы иметь под рукой образец и меньше было вопросов. Благодарю.
|
|
Зарегистрирован |
|
|
|
BBBB
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 89
|
|
Re: Большая строковая переменная
« Ответить #6 В: 29.05.19 в 12:03:25 » |
Цитировать | Править
|
Длина [sed] - 240 символов. Если в индекс использовать дату создания такого [sed] и знать что он хранится 10 лет, то раз в год можно же запускать отчетную форму - проверять [sed] и если по дате уже устарело - обнулять.
|
« Изменён в : 29.05.19 в 12:07:05 пользователем: BBBB » |
Зарегистрирован |
|
|
|
Svetlana
Moderator
Просмотреть Профиль |
Сообщений: 409
|
|
Re: Большая строковая переменная
« Ответить #7 В: 31.05.19 в 13:49:53 » |
Цитировать | Править
|
Предположим, есть ветка c проводками: --Пример --------пример --------X @48 Показываю очень схематично, чтоб попроще (допустим, предварительно был выбран из списка субсчет 48.2): BI=[dir 1]+'aaeyui3' U=[user] a='48.2' * AA=U+'···O PD=0 DC=31 MC=5 500 ·Пример·пример·■'+a+'·' * printstr AA to file BI+'.in' N:AUTO:#CLOSE Создается отчетная форма с таким содержанием, потом цепляете ее на клавишу в Опциях или запускаете из меню "Документы-формы на сервере". Кликаете по файлу или по кнопке и смотрите в журнал - должна зарегистрироваться операция. P.S. Кто захочет свой пример дать: можно обрамлять текст тэгами [pre][/pre], для italic: [i][/i].
|
« Изменён в : 31.05.19 в 13:50:22 пользователем: Svetlana » |
Зарегистрирован |
|
|
|
|
|