Реквизит, текст неограниченной длины? #495344


#0 by ЗЫ5
Конфа 7.7. Есть задача занести доп информацию по контрагентам их около 1000, возникает вопрос либо сделать текстовый реквизит неограниченной длины либо ссылку на текстовый файл. Описание контрагента может занимать до 3 листов машинописного текста. Первая мысль ближе к телу, но может ли это отразиться на производительности 1С(проведение, распроведение), какие есть грабли? База уже 20 гигов SQL.
#1 by ДенисЧ
а как свзязаны допинформация по контрам и проведение? А отразиться - может, ибо база растёт, а неограниченные строки хранятся вместе с константами и периодикой...
#2 by ЗЫ5
т.е. ссылка на текстовые файлы это лучшее решение?
#3 by aka AMIGO
я (по хотелке гендира, который тоже заботится о пузе базы) сделал строковый реквизит в карточке и константу с адресом папки на сервере, где хранится всё о данном товаре: рисунки, описания, серитификаты и др.пр.. на сервере папка с именем, хранящемся в константе, а вложены папки с наименованием, равным коду товара. по кнопке "открыть техинфо" открывается проводник.. вроде всё..
#4 by aka AMIGO
* "в карточке" Товара..
#5 by ЗЫ5
понял, спасибо за инфу
#6 by SnarkHunter
>> неограниченные строки хранятся вместе с константами и периодикой В данном случае это не так...
#7 by НП
1sblob - вот где они хранятся.
#8 by Ковычки
хранить в другой базе и спрашивать
#9 by Mikeware
нет. Вроде русским языком написано - База уже 20 гигов SQL.
#10 by Mikeware
Ну и что, что 20? тебе места жалко? :-) я б хранил в подчиненном справочнике, чтоб в кэше место не занималось, да с выборками полегче было.
#11 by Эмбеддер
А в подчиненном справочнике что? Каждая строка текста - отдельным элементом или элемент один, в нем реквизит неограниченной длины?
#12 by Mikeware
элемент, в нем строка неограниченной длины. (ну, или еще и остальные допреквизвиты). А визуально они размещены на отдельной закладке - и заполняются из подчиненного только при переключении на эту закладку. в качестве дополнительного бонуса - это изрядно облегчает задачу обновления с помощью типовой, если таковое делается.
#13 by Эмбеддер
Насчет обновления согласен. Фактически же данные будут лежать в той же таблице (где все реквизиты неограниченной длины). По кэш я не понял. Имеется в виду, что если данные лежат во внешнем файле, это снижает скорость?
#14 by Эмбеддер
(13+) (про кэш) или если в элементе справочника "контрагенты" будет поле неограниченной длины, то при работе с ним как Спр.НайтиЭлемент(ВыбЭлемент); будет прочитана также и эта строка неограниченной длины?
#15 by ДенисЧ
обязательно...
#16 by Mikeware
Естественно, если данные во внешнем файле - то ты пользуешься механизмами файловой системы. Если уж ты взял такой ник - прикинь, что тебе надо сделать, чтоб загрузить в регистр контроллера 20-й байт из файла, лежащего на SDшке :-))) Ну а все считаные данные попадают в кэш сервера - "на всякий случай", вытесняя при этом старые. Это тоже время. и вытеснение этих ненужных в будущем  - тоже время. Да.
#17 by aka AMIGO
Вот такой код в форме списка справочника Товары: В процедуре: Константа.ПутьКИнформации - примерный вид текста в константе "I:RTFM" к ней прилепляется справа код товара, например: "11131VRT" получается путь к папке "I:RTFM11131VRT", где валяется вся инфа, от описания, рисунка, картинки, файла сертификата, и до кинофильма об этом товаре. У нас для такой информации выделен отдельный хард на сервере. Для наполнения информацией написал отдельную Обработку, в ней можно - создавать папки с именами = коду товара - копировать файлы - удалить ненужные и пр. вручную, из проводника, или в TCMD, это делать довольно муторно, гендир сразу заявил о своем несогласии :) вот такой диалог в обработке: вроде менеждеры довольны..
#18 by Эмбеддер
Так и так кэш используется - что SQL сервером, что файловой системой. Единственная разница ИМХО в том, что при обращении к файлу антивирус может его проверить. В частности, при работе в 8-ке если включить 1С в список исключений, она работает гораздо быстрее
#19 by Эмбеддер
Вместо кода лучше ID использовать, т.к. для корректной работы придется запретить менять код
#20 by Chai Nic
"неограниченные строки хранятся вместе с константами и периодикой" Неправда. Для них введен специальный файл 1sblob.dbf в файловой версии. Маразм конечно, что мешало использовать стандартные мемо-поля формата dbase? А в sql-версии длинные строки хранятся прямо в таблицах с данными..
#21 by Эмбеддер
Помнится, с dbf мемо-полями были ужасные глюки, когда с BDE работал. После аварийного закрытия программы и последующего открытия такого файла BDE зависала. Лечилось очисткой мемо-полей. Это не касается самого фокса, но возможно, что сам формат хранения мемо-полей такой, что 1С от него отказалась по соображениям надежности
#22 by Эмбеддер
В SQL-версии так как написал
#23 by SnarkHunter
В SQL-версии строки неограниченной длины хранятся в тех таблицах, в которых они определены...
#24 by SnarkHunter
(+23)В приведена неверная информация...
#25 by Mikeware
БДЕ - не самый лучший инструмент для этого...
#26 by Эмбеддер
Это было в 2000 году, прога на Delphi. Да и если с SQL работал, выполняя запросы из утилит, которые шли с BDE, тоже зависало. Можно вообще сказать что BDE - не самый лучший инструмент
#27 by Эмбеддер
+ в то же время поддерживал работоспособность пульта в охране. программа на фоксе была написана (уже забыл как называется, НИЦ Охрана - автор). раз в 2 недели стабильно портилась какая-нибудь таблица, реиндексация не помогала. открыть таблицу удавалось только борландовским Datase Desktop'ом. после сохранения таблицы уже можно было открыть из фокса
#28 by Storm911
В SQL версии 1С есть какой то глюк при работе с общими реквизитами - строками неограниченой длинны. Какой уже не помню, но точно есть.
#29 by Cthulhu
относительные пути к файлам досье. носитель с досье монтируется отдельно, с паролем, лимитом времени доступности и ограничением списков доступа. логирование доступа к досье. рядовой доступ - строго только просмотр с заблоченным клипбордом.
#30 by Эмбеддер
То, что они должны быть последними в списке?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С