что увидел, подбор забивает оперативу до 1.5 гига а потом освобождается ОЗУ
- т.е при подборе формируется какой-то большой тяжелый и неоптимальный запрос, так?
У тебя случайно не включены ограничения доступа на уровне записей (RSL)? Сложные ограничения могут пожирать ресурсы немеряно
Я перенес эту же базу полностью на ноут.
У меня более 1,5 гига не занимается памяти.
Сделайте ноутбук - сервером, подключите пользователей к нему, и у вас будет заниматься оперативки еще больше.
(8) IgorArhangel,
Так а разве изображения тут не причем?
Еще как причем, они подгружаются вместе с подбором, т.к. являются содержимым реквизитов.
Выделите картинки в отдельную базу, в реквизите - дайте ссылки. А больше нормально работающих вариантов на 1С нет.
Вот здесь Количество символов в текстовом описании товара все тоже самое и о том же.
это просто файлы лежащие на диске и гоняемые по сети туда-сюда
Где бы они не "лежали", в первую очередь все зависит от того, как они подцеплены.
Если напрямую в реквизите - то будут грузиться, если по ссылке на диск - то не будут. Но во втором случае они не будут работать и в веб-клиенте. Только в толстом или тонком.
или у вас тоже вся сетевая шара в оперативу грузиться ?))
У него нет никакой "сетевой шары", оно и понятно - файлы в базе, проблема эта множество раз встает всегда как первый случай на чьей-то практике.
Вот же, даже явно написано:
(15) IgorArhangel,
(5) IgorArhangel, ну какая у вас платформа озвучьте для начала.. а вообще 16гб для файловой это предел наверное ) я бы взял на вашем месте что нибудь типа Tool 1CD и посмотрел бы размеры самых жирных таблиц, покопался что там у вас за таблицы больше всего кушают, и попытался бы их оптимизировать
ПС: может у вас там табличка _systemsettings все скушала )))
(6) AllexSoft,
Читайте мат. часть: предел 4Гб на одну таблицу, а таких таблиц может быть немеряно. Я встречал файловые БД в десятки ГБ - и ничего. работали.
(92) FractonKireyev, откройте глаза и ткните мне где я написал про "4гб" ... я написал только что 16Гб это ПРАКТИЧЕСКИЙ предел файловых баз которые МНЕ встречались и хоть как то могли работать. Если у вас есть примеры файловых баз большего объема чем 16гб - то я этого не отрицаю, просто говорю что в сетевом режиме работа с такими бд будет адом
просто говорю что в сетевом режиме работа с такими бд будет адом
Работа с сетевыми файловыми Бд определяется в первую очередь не размером базы, а количеством одновременно подключенных пользователей.
База может быть 1 Гб, а пять пользователей будут вешать её напрочь.
С ростом баз - да, еще и проблема объема тоже становится актуальной. Но не главной.
(5) IgorArhangel, Возможно серверная система не так оперативно очищает память.
Может поиграться с тем местом котрое в подборе переписанное. Я бы показывал картинки при активизации строки справочника.
вполне вероятно что может ваши картинки это последний гвоздь в гроб вашей конфы просто, а там и без картинок проблем куча) давайте посмотрите какие таблицы у вас самые жирные
ПС: а как вы картинки показываете кстати ?) я например предпросмотр делал на HTML поле.. у меня работает отлично и без глюков
(13) IgorArhangel, это не много.. фортки показываются по одной, то есть все равно сколько у вас прикреплено к номенклатуре.. хотя если у вас они в базе хранятся разве что ?... не знаю в вашей конфе можно делать внешние тома хранения файлов или только внутри базы ?
(15) IgorArhangel, судя по всему у вас 50% это как раз ваши картинки )) посмотрите можно ли настроить у вас тома хранения файлов.. и переведите на тома хранения из хранения в базе.. я бы сказал в вашем случае это проблема #1
Все, что вы решите с помощью Tool1CD - это выявите таблицу, превышающую 4ГБ, когда у вас база больше не будет выгружаться в файл. И все.
С подбором она вам никак не поможет.
Я бы все-таки посоветовал посмотреть (или показать сюда) запрос, который формирует подбор.
У меня появилось подозрение на то, что все картинки выбираются сразу в результат запроса. В то время как оптимальнее было бы выбирать в запросе только ссылку на картинку, а сами двоичные данные получать только в момент наведения на товар
Я бы все-таки посоветовал посмотреть (или показать сюда) запрос, который формирует подбор.
У меня появилось подозрение на то, что все картинки выбираются сразу в результат запроса. В то время как оптимальнее было бы выбирать в запросе только ссылку на картинку, а сами двоичные данные получать только в момент наведения на товар
Вроде вот этот код
Процедура ОбновитьИзображение()
Если ПодборПоСправочнику Тогда
Если ЭлементыФормы.КоманднаяПанельИзображения.Кнопки.Изображение.Пометка Тогда
Если ЭлементыФормы.СправочникНоменклатура.ТекущиеДанные <> Неопределено Тогда
Номенклатура = ЭлементыФормы.СправочникНоменклатура.ТекущиеДанные.Ссылка;
Если НЕ ЭлементыФормы.СправочникНоменклатура.ТекущиеДанные.ЭтоГруппа Тогда
Если ЗначениеЗаполнено(Номенклатура.ОсновноеИзображение) Тогда
ЭлементыФормы.ОсновноеИзображение.Картинка = Номенклатура.ОсновноеИзображение.Хранилище.Получить();
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ЭлементыФормы.ОсновноеИзображение.Картинка = мПустаяКартинка;
КонецЕсли;
Иначе
Если ЭлементыФормы.КоманднаяПанельИзображения.Кнопки.Изображение.Пометка Тогда
Если ЭлементыФормы.НоменклатураДляПодбора.ТекущиеДанные <> Неопределено Тогда
Номенклатура = ЭлементыФормы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
Если НЕ ЭлементыФормы.НоменклатураДляПодбора.ТекущиеДанные.ЭтоГруппа Тогда
Если ЗначениеЗаполнено(Номенклатура.ОсновноеИзображение) Тогда
ЭлементыФормы.ОсновноеИзображение.Картинка = Номенклатура.ОсновноеИзображение.Хранилище.Получить();
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ЭлементыФормы.ОсновноеИзображение.Картинка = мПустаяКартинка;
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ОбновитьИзображение()
что есть параметр который устанавливает выделяемое количество оперативной памяти для приложений
Называется он increaseuserva и по имолчанию для х32 он равен 2 гига, а для х64 - 4 гига.
установить на 2 гига можно командой
bcdedit /set increaseuserva 2048
Но мне как-то стремновато это делать...
Просто интересно как это так что ни у кого никогда такого не было.
судя по всему у вас 50% это как раз ваши картинки )) посмотрите можно ли настроить у вас тома хранения файлов.. и переведите на тома хранения из хранения в базе.. я бы сказал в вашем случае это проблема #1
К огромному сожалению хранить файлы на диске в редакции УТП (управление торговым предприятием) невозможно.
Блин вот не задача.
Если такой функционал не реализован значит придется реализовывать самому, или искать на просторах интернета что-то похожее, чтоб не изобретать велосипед.
(20) IgorArhangel, благо подобный функционал внедряется довольно легко.. зато база похудеет значительно.. что увеличит общую производительность системы
(22) IgorArhangel, в УПП есть все готовое и для ОФ.. вырезаются оттуда и внедряются в свою за пол дня.. я так сам и делал + попутно переписав немного под себя
(24) IgorArhangel, ссори, дезинформировал.. из УПП я вырезал версионирование, про тома не знаю, но если они готовые для ОФ и есть, то в УПП )
а тома для себя я же из БСП достал, но там УФ, вам не подойдет...
Сегодня сделал обработку и проставил всей номенклатуре одно пиксельную картинку. И что оказалось, оператива совершенно не грузится.
Мне просто интересно если картинки брать из этого тома хранения, они не будут снова же лезть в оперативу?
Может мне можно просто переписать мой подбор, чтоб при активизации строки картинка подгружалась, а при переходе на другую строку автоматом выгружалась из оперативы?
(26) IgorArhangel, может попробовать вам сделать на HTML-поле как у меня сделано?
делаем реквизит строковый ПредпросомтрКартинки кладем на форму, назначаем ему Вид - Поле HTML документа, при активизации строки в ТЧ пишем что то типа
ссори, дезинформировал.. из УПП я вырезал версионирование, про тома не знаю, но если они готовые для ОФ и есть, то в УПП )
а тома для себя я же из БСП достал, но там УФ, вам не подойдет...
Сейчас скачал УПП буду разбирать.
Может и действительно получится перенести.
Так все равно придется переделывать форму добавления картинок, чтоб при добавлении они сразу в шару записывались.
это даа
Или вообще можно сделать обработку чтоб сканировала папку на появление новых картинок и автоматом добавляла.
только надо будет следить чтобы юзеры барахло в эту папку обмена не кидали и чтобы файлы картинок праивльно называли, что есть огромная проблема как правило
только надо будет следить чтобы юзеры барахло в эту папку обмена не кидали и чтобы файлы картинок праивльно называли, что есть огромная проблема как правило
Так в чем прикол юзеры картинки не добавляют, все это делаю я.
Я фотаю, подгоняю размер, накладываю логотип и загружаю в 5 баз.
Как-то так.
Сделаю все-таки как написано в статье.
Оно там довольно таки ясно расписано.
Поставил себе УПП
И не нашел где включаются тома хранения.
точно нет, у меня файловая база на основе БСП и там тома хранения есть
Та и установилась она не с новым интерфейсом.
Как-то странно
ну потому что "с новым интерфейсом" она называется не УПП вовсе) а 1С ERP 2.0, это другая конфа.. в УПП только со старым и переписывать ее под УФ по всей видимости не будут
в УПП только со старым и переписывать ее под УФ по всей видимости не будут
УПП уже наполовину переписана под УФ.
А ERP - это совершенно другая конфигурация, ничего общего с УПП не имеющая. Не потомок УПП, а "БП3+ЗУП3+УТ11" и чуть от КА.
у меня файловая база на основе БСП и там тома хранения есть
Если бы вы потрудились посмотреть более подробно, то тома реализованы как ссылка в реквизите на элемент справочника (или другой объект), содержащий непосредственно файлы/картинки. А не напрямую хранятся в реквизитах той же Номенклатуры.
Именно из-за той самой проблемы, озвучиваемой невероятное количество раз.
И еще раз озвученной в 39)
ну потому что "с новым интерфейсом" она называется не УПП вовсе) а 1С ERP 2.0, это другая конфа.. в УПП только со старым и переписывать ее под УФ по всей видимости не будут
Если бы вы потрудились посмотреть более подробно, то тома реализованы как ссылка в реквизите на элемент справочника (или другой объект), содержащий непосредственно файлы/картинки. А не напрямую хранятся в реквизитах той же Номенклатуры.
Именно из-за той самой проблемы, озвучиваемой невероятное количество раз.
И еще раз озвученной в 39)
Так что если в подборе поменять чтоб передавалась ссылка на изображение, разве изображение не будет грузится в оперативную память?
разве изображение не будет грузится в оперативную память?
Цель - чтобы изображение грузилось "по требованию", а не все, какие есть в справочнике.
Нет, не будет, т.к. 1С получит ссылку, а не сразу сам файл весь целиком, сохраненный в реквизите, как, я понимаю, происходит в вашем случае.
Где бы они не "лежали", в первую очередь все зависит от того, как они подцеплены.
Если напрямую в реквизите - то будут грузиться, если по ссылке на диск - то не будут. Но во втором случае они не будут работать и в веб-клиенте. Только в толстом или тонком.
На данный момент используется только толстые клиенты и все.
Просто мне интересно в подборе за отображение изображения отвечает строка
Цель - чтобы изображение грузилось "по требованию", а не все, какие есть в справочнике.
Нет. Цель - чтоб в подборе, при переходе на другую строку справочника изображение очищалось из оперативной памяти.
На данный момент все изображения из справочника не грузятся.
Грузятся при подборе. Есть процедура ПриАктивизацииСтроки и она как раз подгружает изображение.
При переходе на другую строку подгружается другое изображение и снова таки остается в оперативе.
Нужно чтоб при переходе на другую строку в оперативу подгружалось новое изображение, а старое, которое было в оперативной памяти очищалось.
Цель - чтоб в подборе, при переходе на другую строку справочника изображение очищалось из оперативной памяти.
1С не работает с оперативной памятью напрямую. И не предоставляет абсолютно никаких средств для управления/очистки ОП.
Используйте возможности, какие есть.
Да. Загрузил однопиксельные картинки для всей номенклатуры и все стало нормально
А ничего, что вы прсото уменьшили объем подгружаемой информации? И никак не обосновали для себя вывод "На данный момент все изображения из справочника не грузятся."
А ничего, что вы прсото уменьшили объем подгружаемой информации? И никак не обосновали для себя вывод "На данный момент все изображения из справочника не грузятся."
Вывод сделал - изображения нужно хранить в расшареном каталоге. Таким образом оперативная память забиваться не будет, так как отображение изображения будет происходить непосредственно по ссылке и отображаться на прямую из расшареного каталога.
Начал делать все по статье но у меня вылезла вот такая ошибка
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(56)}: Ошибка при установке значения атрибута контекста (Картинка)
ЭлементыФормы.ОсновноеИзображение.Картинка = Добавленные.ПоказатьКартинкуИзРегистра(ЭтотОбъект.Ссылка);
по причине:
Несоответствие типов
Сейчас пишу обработку для проставления картинок.
Не могу понять как правильней написать цикл для добавления изображений в базу.
Суть. Есть все фото номенклатуры в сетевой папке, нужно будет по нажатию на кнопку проставлять только фото которые появились.
Так вот вопрос, что мне сначала перебирать? Папку на наличие изображений, или по номенклатуре проверять?
Все фото в сетевой папке. Мне нужно их как-то поставить в регистр сведений. Так как я не хочу это делать вручную.
Я пишу обработку, чтоб добавить автоматом все фото.
Потом в месяц будет добавляться по 10-20 новых.
Как мне написать в обработке чтоб добавлялись только новые?
Потом в месяц будет добавляться по 10-20 новых.
Как мне написать в обработке чтоб добавлялись только новые?
Никак. В рамках существующих условий.
а) все фото равноценны
б) у номенклатуры нет поле "Дата".
Поэтому нужно менять условия:
а) либо брать фото после определенной даты
б) добавить и вести поле "Дата" у номенклатуры.
Я не могу дописать обработку для проставления фото в регистр сведений. Не получается именно вставить запить объект. Он задан в регистре сведений с типом СправочникСсылка.Номенклатура.
Вот код
Процедура ДействияФормыПроставитьФото(Кнопка)
// Вставить содержимое обработчика.
ПутьКСерверу = Константы.ПутьККартинкамНаСервере.Получить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| Номенклатура.Наименование,
| Номенклатура.ЭтоГруппа,
| Номенклатура.ВидНоменклатуры,
| Номенклатура.Представление
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Результат = Запрос.Выполнить();
ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
Если НЕ ВыборкаНоменклатура.ЭтоГруппа Тогда
Если ВыборкаНоменклатура.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар") Тогда
Если НайтиФайлы(ПутьКСерверу, СокрЛП(ВыборкаНоменклатура.Код)+".jpg").Количество() > 0 Тогда
Набор = РегистрыСведений.ИзображенияНоменклатуры.СоздатьНаборЗаписей();
Набор.Прочитать();
НовЗапись = Набор.Добавить();
НовЗапись.Объект = ВыборкаНоменклатура.Ссылка.ПолучитьОбъект();
НовЗапись.Путь = СокрЛП(ВыборкаНоменклатура.Код)+".jpg";
НовЗапись.Основное = Истина;
Набор.Записать();
Сообщить (СокрЛП(ВыборкаНоменклатура.Код)+".jpg" + " обновлено");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Пробовал уже по разному. Вот эта строка не отрабатывает
А если хранить превьюхи (уменьшенные варианты картинок) в отдельном справочнике? И при показе картинки в форме списка читать и показывать его, а при нажатии на картинку - открывать полный вариант.
А если хранить превьюхи (уменьшенные варианты картинок) в отдельном справочнике? И при показе картинки в форме списка читать и показывать его, а при нажатии на картинку - открывать полный вариант.
Картинки сами по себе не большие порядка 100 - 200 килобайт.
Та и загружать изображения и в папку и в справочник, как-то не очень впечетляюще.
Просто на данном этапе я стараюсь как можно больше автоматизировать данный процесс.
У вас два варианта решения:
1. разобраться в коде, который не обдуманно жрет данные в память.
2. попытаться научить 1с использовать положенные ей 4 гб в 64-битной ОС. Для этого надо поменять один флаг в exe-файле. Но и в этом случае ей может не хватить 4 ГБ, т.к. смотри пункт 1.
(82) sergling, ерунда какая-то.
Ваш патч дезассемблит exe, встраивается в код, компиллируется обратно? Какое отношение некий патч (причем на Дельфи) для TES - имеет к 1С?
Вы совсем заигрались.
1. разобраться в коде, который не обдуманно жрет данные в память.
2. попытаться научить 1с использовать положенные ей 4 гб в 64-битной ОС. Для этого надо поменять один флаг в exe-файле. Но и в этом случае ей может не хватить 4 ГБ, т.к. смотри пункт 1.
1.Код как код. Там толку-то разбираться, я уже его вдоль и поперек перекопал.
Суть такова что изображения из хранилища жрут оперативную память.
2. У меня 1С и так хавает до 4-х гиг. Так а толку, на всех оперативы не наберешься. Вот и стукнул вариант хранения фото не в базе а на диске.
И о беда, изображения все равно забивают оперативу.
Только что все доделал, прошелся по номенклатуре с показом изображений и оператива забилась снова до 3.7 гига и меня выкинуло из 1с.
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(154)}: Поле объекта не обнаружено (ПолеHTML)
ЭлементыФормы.ОсновноеИзображение.ПолеHTML = мПустаяКартинка;
Хотя элемент основное изображение имеет тип Поле HTML.
Работа с сетевыми файловыми Бд определяется в первую очередь не размером базы, а количеством одновременно подключенных пользователей.
База может быть 1 Гб, а пять пользователей будут вешать её напрочь.
Вот именно.
Я не писал что база весит 16ГИГ. База весит 6ГИГ.
Одновременно работает 8-10 пользователей. База тупит невероятно.
Как я понял это из-за того, что одновременно, например с одной таблицей работают 5 пользователей. Как же базе не тупить.
А что с этим делать не знаю.
Перейти на SQL на данный момент нет возможности, так как это нужно покупать лицуху на сервак. А денег не много.
Та даже если и перейти то базу нужно будет реально перерабатывать, сразу уже на управляемые формы. А это для меня еще сложновато, так как с 1С работаю 4 месяца.
Как я понял это из-за того, что одновременно, например с одной таблицей работают 5 пользователей
Не совсем. Главная причина - это то, что 1С не СУБД, и не может следить и обрабатывать множественный доступ к таблицам. А также много еще чего не делает (резервирование, оптимизация, контроль записи) - можно сказать, что не делает ничего из области СУБД.
(96) tarassov,
А если разложить одну базу на несколько, например с помощью РИб, и обмениваться между ними информацией?
Будет еще больше проблем. К файловому варианту - добавятся проблемы обмена и синхронизации баз, которые в 1С тоже решены чуть более, чем никак.