Имя: Пароль:
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
Дважды в "карьере" сталкивался с подобной ошибкой и оба раза причиной был распухший регистр сведений "Замеры производительности". Очищается легко (есть обработка на инфостарте)