Хорошо, надеюсь, что Вы в курсе, что кода в программном коде Вы обращаетесь к реквизиту справочника Номенклатура через точку, то считывается весь объект, вместе с основным изображением.
В курсе не только лишь я, а и разработчики типовых конфигураций, которые еще 100 лет назад вынесли картинки из основных справочников в отдельные справочники.
Цитата(xlmel @ 29.05.25, 15:10)
На сервере 1с папка которую все могут читать, но не все могут записывать. Путь к папке зашит в константе, при переезде только поменяли константу. У топик-стартера обычные формы, судя по коду, поэтому тонкого клиента нет
И разве ж это "легче работать и обслуживать"?
Цитата(xlmel @ 29.05.25, 15:10)
а кроме того, все конфигурации на БСП как-то справляются с хранением на диске
А как БСП справляется, например, с доступом к внешнему каталогу файлов, в зависимости от RLS или каких-то настроек, типа "Васе можно редактировать картинки из группы Крупы, а Пете из группы Овощи"? Ответ
Никак. БСП может контролировать что-то для доступка к справочнику с номенклатурой, но никак не к внешней папке на диске
Цитата(xlmel @ 29.05.25, 15:10)
ну в MS SQL важным файлом является файл транзакций, если в него напихать картинок, то он увеличится размерах, при этом для всех версий будет храниться это изображение.
Если что, то файл транзакций не всегда как бы есть. Точнее говоря, он может быть есть всегда, но при правильной модели восстановления его размер не растет. В мире 1С (та и не в мире 1С) это очень редкие случаи, когда действительно надо иметь файл транзакций. Это штука, про которую кто-то где-то слышал, но мало кто понимает что это, зачем и как этим пользоваться. Но на всякий случай "хай буде". Если у вас БД на 10-20 Гб, я очень сильно сомневаюсь, что вам это надо. И последнее. Бинарные данные в лог не пишутся как есть, там они пишутся в специальном каком-то формате, что означает, что картинка на 1 Мб это не +1 Мб в лог транзакций.
Со своего опыта вы можете сказать зачем вам БД с пишушимся файлом транзакций? Чтобы что? Только не из теоретической плоскости, а из практической, желательно с примером того, какую проблему вы решили этим.
Цитата(xlmel @ 29.05.25, 15:10)
база тупо стала тормозить. После того как просто убрал картинки и файлы, ситуация существенно улучшилась
Т.е. проведение документов тупило, отчеты тупили, а потом после удаления картинок, перестали тупить? Вам самому это не странно звучит?
Цитата(TohaMonster @ 29.05.25, 15:19)
Если прикрепленных файлов уже 5-10 Гб и они хранятся в Базе, то на эти же 5-10 Гб увеличиваются все архивы Базы и копии Базы.
Это один из немногих сценариев, когда вынесение файлов отдельно можно рассматривать как то, что надо. Но только при условии, что файлы не страшно потерять. Если файлы - это важная часть данных (например, договора), то я бы лучше мирился с бОльшими архивами и бОльшим временем на обработку бекапов, чем отдельно думать о бекапах и разных прочих штуках с папкой.
Мне всегда казалось, что чем меньше база, тем легче с ней работать и ее обслуживать, особенно это касается MS SQL.
Что вы вкладываете в понятие "легче с ней работать и ее обслуживать"? И не надо ли вам как-то обслуживать каталог с картинками: настроить доступ с разных устройств (если вы работаете через тонкий клиент в браузере с разных регионов, как папку нормально пошарить между всеми?), настроить какие-никакие права (чтобы кто-то не зашел и не поудалял там все), бекапить и т.п.?
Цитата(xlmel @ 29.05.25, 10:10)
С одной стороны, вроде как, идет борьба, чтобы не дублировать сущности в базе данных, а с другой кладем кирпич в несколько Гб.
Какая связь между "дублированием сущностей" и "несколько ГБ" места в БД? Картинки в БД это дубли чего?
Вы выше писали:
Цитата(xlmel @ 28.05.25, 11:46)
в свое время пришлось вычищать людям базу, когда таких картинок стало под 10Гб в ней
А какие проблемы с этим были?
Я не докапываюсь, мне дейсвительно интересно послушать мнения на этот счет.
ЗТ = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI); ЗТ.Закрыть(); ЗТ = Новый ЗаписьТекста(ИмяФайла,,, Истина, Символы.ПС); ЗТ.Записать(Данные); ЗТ.Закрыть();
Тут человек сначала записывает пустой файл в кодировке ANSI, потом туда дописывает что надо в кодировке UTF-8. Это может не совсем прям то, что вам надо (т.к. тут создается файл на диске), но если другого варианта не найдете, можете попробовать это прогонять таким образом через временный файл и потом файл удалять.
В последних типовых конфигурациях, если мне не изменяет память, сотни ролей. Технически оно работает. Но управлять этим всем - это ад. На мой взгляд, такого вида решение не жизнеспособно по другим причинам. Когда мы говорим про чтение или запись, обычно это означает чтение или запись не только одного объекта, а и других связанных объектов, например, регистров. И надо держать в голове, что "если давать доступ на справочник А, то надо дать доступ на регистр сведений Б". С документами, какими-то отчетами и обработками будет еще сложнее.
В 8 есть метод ПодключитьОбработчикОжидания() или что-то типа этого. Там, кажется, указывается процедура которую надо вызвать, интервал через когда вызвать, и еще что-то. Короче точно не помню, но суть должна быть понятна. В 7.7 я вообще ничего уже не помню, но быстренько загуглил, вроде как там тоже есть метод ОбработкаОжидания(). Я бы смотрел в эту сторону. Т.е. открыть форму, а в ПриОткрытии вконце добавить обработчик ожидания, который выведет лог.
Добрый день. В конфигурации BASКомплексноеУправлениеПредприятием не мгу найти где устаноавливается Условное оформление для списка докумнтеа заказ клиента. Законетировал процедуру УстановитьУсловноеОформление() формы списка документов все равно срабатывает. Подскажите где искать?
Напоминает какой-то тест, когда надо прочитать что-то, где в словах перепутаны местами или пропущены буквы. Я тест вроде прошел, но с "Законетировал" пришлось напрячься.
Просто у меня ощущение, что на самом деле они хотят что-то другое, т.к. 2 позиции с полностью одинаковыми атрибутами в документе (характеристика, серия, цена, заказ и т.п.) с точки зрения учета всеравно "схлопнутся" в одну в итоге.
|И Дата >= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + " |И Дата <= " + Формат(ТекДата, "ДФ='yyyy-MM-dd'") + "
Формат yyyy-MM-dd - это дата вида год-месяц-день, начало дня. Вы выбираете данные из регистра на момент времени условно 20.02.2025 00:00:00. Но другой момент еще в том, что если вам нужен остаток, то выбирайте данные из виртуальной таблицы Остатков регистра. Ну и на конец дня, а не на начало.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!