Имя: Пароль:
1C
1С v8
Превышен максимально допустимый размер внутреннего файла 1Cv8.1CD
0 ALEX7519
 
17.02.22
08:55
Тут да днях случилась такая штука - перестала работать синхронизация Бухгалтерии 30 с ЗУП 30 , т.е из зупа выгрузка проходит, в бух не грузится. Посмотрел по журналу пишет в ошибках Ошибка СУБД Превышен максимально допустимый размер внутреннего файла 1Cv8.1CD. ( синхронизация настроена не через файл а обращением к базе )

посмотрел размер бух базы - около 20 гигов. (базы файловые ).

я так понимаю дело в этом (хотя сама база работает без ошибок, не совсем ясно почему толькро при синхронизации ??? )

надо уменьшать размер базы ?
правильно ли я понимаю последовательность действии : ??
1. Прогнать cd c помощью chdbfl.exe с галкой испралять
2. В конфигуратере через тестирование и исправление с галками сжатие и реструкторизация

если не уменьшится перенести файлы в тома на диске ?
(тут тоже не совсем понял, в настройках работы с файлами надо поставить Хранить файлы "в томах на диске" или "в инф базе и в томах на диске" ? , потом создаю том и через гиперссылку "перенос файло" переношу туда файлы ? после этого они будут открываться у пользователей ?)

посмотрел с помощью CNVDBFL.EXE -i G:\1Cv8.1CD структуру файла
формат : 8.3.8
размер страницы : 8192 - это норм ?
1 Волшебник
 
модератор
17.02.22
08:58
Надо перейти на серверную базу
2 Chai Nic
 
17.02.22
09:04
С учетом "размер страницы : 8192" у вас уже был использован "последний шанс" увеличения размера внутреннего файла с 4 до 6 Гб. Это прибитое гвоздями ограничение, при использовании файловой базы с увеличенным размером страницы. Чтобы покупали серверную лицензию. Вот и покупайте..
3 ALEX7519
 
17.02.22
09:15
я там понимаю тема с хранением файлов на диске связана с тем, что на диске будут храниться внешние файлы, пдфники всякие там из отчетности и прочая дрянь,
разве она может влиять на синхронизацию с зуп ?  т.е. уменьшу я сдшник за счет них, но не факт что это поможет ? да?
4 Guk
 
17.02.22
09:20
(3) да...
5 Winnie Buh
 
гуру
17.02.22
09:27
(0) 100% вариант - это только переход на SQL
все остальные 50/50
6 mistеr
 
17.02.22
09:33
(1) Или почистить лишнее
7 mistеr
 
17.02.22
09:35
(3) Посмотри с помощью Tool1CD какой файл подошел к 6 Гб. И можно ли его уменьшить.
8 ALEX7519
 
17.02.22
09:54
а как узнать что это за таблица, через тулс1с посмотрел вот эта к примеру : INFORG24411 - что это ?
9 Ёпрст
 
гуру
17.02.22
09:55
(8) табличка регистра сведения
10 Ёпрст
 
гуру
17.02.22
09:55
11 Ёпрст
 
гуру
17.02.22
09:56
Что за рс, можео посмотреть через получитьструктурутаблицхранения блатбла бла, в сп найдешь метод, ну или поделками, коих как грязи на нимфостарте
12 mistеr
 
17.02.22
09:57
(8) Инструменты Разработчика, Структура хранения БД.
13 Winnie Buh
 
гуру
17.02.22
10:45
Сервер МИНИ до 5-ти сеансов - 14400 руб.
14 ALEX7519
 
17.02.22
10:56
посмотрел самая большая таблица "РегистрСведений.ВерсииОбъектов"
что это за ? его можно почистить ? 6.5 гигов занял
15 rozer76
 
17.02.22
11:00
(14) конечно, это версионирование БСП. Хотя давно в платформе это нативно есть
16 Ёпрст
 
гуру
17.02.22
11:03
(14) да. Просто грохаешь все записи в нём и привет. Оно тебе не нужно.
И в свойствах конфы отключи версионирование совсем. Ну можешь только на значимые доки/справочники оставить
17 ALEX7519
 
17.02.22
11:09
по инету покопался народ пишет обработки оставляет только последние записи и т.п. ... это для чего то или можно все сразу грохнуть ?
18 Ёпрст
 
гуру
17.02.22
11:10
(17) ну. кто-то видать хоть иногда смотрит версии объектов, и оставляют последние, для истории.
19 mistеr
 
17.02.22
11:11
(17) Если до сих пор не понадобилось, значит можно грохнуть. Если вдруг понадобится, есть же бэкапы. (Они же есть, да?)
20 Ёпрст
 
гуру
17.02.22
11:16
И..лучше насовсем версионирование отключи в константах. Быстрее будут доки проводится/записываться.
Один хрен, не используете
21 Dmitrii
 
гуру
17.02.22
11:31
Забавно. А с чего все взяли, что версионирование не используется? Может там бухи регулярно проверяют - кто, что и когда поменял в базе.
Сначала надо у пользователей спросить. Если опрос покажет, что никто не знает о чём идёт речь (такое вполне возможно), то можно смело грохать.
Но если выяснится, что всё таки кому-то нужно версионирование, то придётся настроить регулярную очистку старых версий объектов. И возможно отключить версионирование у некоторых объектов, оставив только у самых важных.
22 ALEX7519
 
17.02.22
11:39
В базе в администрировании не стоит галки хранить историю изменений,
залез в этот регистр и обнаружил, что в нем записываются данные только по документу "Отражение зарплаты в бухучете", причем каждый день по несколько записей
( видимо так как настроена автоматическая синхронизация с зуп то он при каждом обращении к базе зуп туда фигачит записи )
т.е. если я его почищу он при очередной синхронизации не перезапишет мне в бух базе эти документы по отражению зарплаты с начала работы
23 Обработка
 
17.02.22
11:46
(22) Очень странно что именно обмен влияет на версии.
Хотя ад у меня те ведь при обмене если изменился объектов автоматом регит.
Просто надо выяснить нужно это кому или нет.
И удалить. На крайняк можно оставить последний месяц или два.
Я недавно у себя чистил версии и база сильно уменьшился.
24 Ёпрст
 
гуру
17.02.22
11:52
(22) это не история изменений, это старый механизм версионирование
25 Жан Пердежон
 
17.02.22
11:53
(0)
https://v8.1c.ru/price/

1С:Предприятие 8.3. Сервер МИНИ на 5 подключений
14 400 руб.
26 ALEX7519
 
17.02.22
12:03
(24) ну т.е. если почикать вот так

НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Записать();    

то ничего плохого не случится ? :))
27 ALEX7519
 
17.02.22
12:05
(25) 1С:Предприятие 8.3. Сервер МИНИ на 5 подключений
14 400 руб.
это дешовая версия для перехода на SQL ? еще что-ниб локупать надо будет ?
28 Dmitrii
 
гуру
17.02.22
12:05
(22) >> В базе в администрировании не стоит галки хранить историю изменений.

Тогда включи эту галку. Перейди в диалог настройки. оставь у всех объектов "Когда сохранять версии" = "Никогда". У документа "Отражение зарплаты в бухучете" установи "Когда сохранять версии" = "При проведении" и "Срок хранения версий" = "Неделя".
Внизу формы есть галочка "Автоматически удалять устаревшие версии". Установи её и настрой расписание этого регламента. Например, раз в неделю. При первом выполнении это регламент заодно удалит все старые имеющиеся записи.
29 Dmitrii
 
гуру
17.02.22
12:11
(27) >> это дешёвая версия для перехода на SQL?

В некотором роде. Если у вас действительно не больше пяти одновременно работающих с 1С пользователей. Больше 5 подключений сервер МИНИ сделать не даст.

>> еще что-нибудь докупать надо будет?

СУБД. Но есть бесплатные версии. Например.
MS-SQL Express (имеет ряд ограничений на размер базы, объём используемой памяти, что-то ещё - подробнее надо смотреть на сайте MS). Для вас должен подойти.
PostgreSQL. Полностью бесплатен. Есть версии для Windows и Linuх.
30 Ёпрст
 
гуру
17.02.22
12:12
(26) делай.
31 Повелитель
 
17.02.22
12:27
(29) MS-SQL Express (имеет ряд ограничений на размер базы, объём используемой памяти, что-то ещё - подробнее надо смотреть на сайте MS). Для вас должен подойти.

Там ограничение на 2 Гб база )))
Бесплатная только PostgreSQL будет
32 1Сергей
 
17.02.22
12:32
(31) 2 гб? Ничо не путаете? Вроде, 10 было
33 acht
 
17.02.22
12:32
34 Winnie Buh
 
гуру
17.02.22
12:33
(31) у MS SQL Express ограничение на размер базы до 10Гб, но ТС в любом случае не подойдет,
PostgreSQL или платная MS SQL
35 Dmitrii
 
гуру
17.02.22
13:02
(34) >> у MS SQL Express ограничение на размер базы до 10Гб.

Странно. Действительно только 10Гб. Мне почему-т оказалось, что больше.
Ну значит только PostgreSQL.
36 ALEX7519
 
17.02.22
15:55
А ЕЩЕ ВОПРОС :
НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Записать();    не сработало, вернее работало работало потом выдало что не хватает памяти и вылетело.

переписал вот так, но тоже медленно работает ( удаляю по частям ): может как-ниб по другому можно написать чтобы быстрее работало ?
ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Док");
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ВерсииОбъектов.Объект КАК Объект
    |ИЗ
    |    РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
    |ГДЕ
    |    ВерсииОбъектов.ДатаВерсии МЕЖДУ &Дата1 И &Дата2
    |
    |СГРУППИРОВАТЬ ПО
    |    ВерсииОбъектов.Объект";
    
    Запрос.УстановитьПараметр("Дата1",ДатаН );
    Запрос.УстановитьПараметр("Дата2",ДатаК );
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Пока Выборка.Следующий() Цикл
    
        стр = ТЗ.Добавить();
        стр.Док = Выборка.объект;
    
    КонецЦикла;
    
    ТЗ.Свернуть("Док");
    
    для Каждого стр из ТЗ Цикл
        
        Если  стр.Док.Метаданные().Имя = "ОтражениеЗарплатыВБухучете" или стр.Док.Метаданные().Имя = "ВедомостьНаВыплатуЗарплаты"  Тогда
        
        НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Объект.Установить(стр.Док);
        НаборЗаписей.Записать();
        
        КонецЕсли;
        
    КонецЦикла;
37 Ёпрст
 
гуру
17.02.22
15:56
(36) через менеджер можно удалять еще
38 Ёпрст
 
гуру
17.02.22
15:56
чуток удалить, и потом записать пустой набор
39 johnnik
 
17.02.22
17:26
Дважды в "карьере" сталкивался с подобной ошибкой и оба раза причиной был распухший регистр сведений "Замеры производительности". Очищается легко (есть обработка на инфостарте)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший