Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
Доброго дня, базою 1С користуються енна кількість співробітників, за багато років було створенно багато користувачів і обєктів в базі( база роздута), як можливо відслідкувати якими обєктами користуються, а які взагалі вже не актуальні і їх можна видалити. 1с 8.3 самописна.
Diana1c @ Сегодня, 12:55
, 1. Енна кілкість співробітників. Думаю мається на увазі користувачів в 1С? На роздутість бази взагалі не впливає. (це 0,0000001% від обєму бази). А щоб непотрібних не показувати при вході в програму -то їх показ можна відключити в конфігураторі (Меню- Адміністрування-Користувачі. Випрати непотрібного користувача. в Зняти помітку "Показувати в списку вибору") 2. Багато обєктів в базі. Що тут мається на увазі? Багато різних видів документів, довідників, Регістрів.......? Чи багато в базі створено докумнентів, довідників.... (мається на увазі документи , які створюють користувачі в процесі роботи з програмою)? 2.1 Якщо перше, то тут практично неможливо щось викинути, так як одні обєкти зазвичай задіяні в різних місцях програми. І просто так їх не позбутись, не переписавши половину конфігурації. 2.2 Якщо друге, то тут також не все однозначно. Наприклад документ введення залишків. Його один раз використали на початку користування програмою -ввели залишки. Більше ним не користуються. Його можна видалити? Звичайно ні. Тут тільки аналізувати очима, розмовляти з працівниками., Якщо в програмі є різні підсистеми, які ніяк не повязані між собою.Тоді документи однієї підсистеми можно видалити. 3. База дуже роздулась? В цифрах це скільки (в Мегабайтах/ Гігабайтах) База файлова чи SQL? (Зменшення обєму допомагає в Конфігураторі "Тестування і виправлення інформаційної базі" - АЛЕ ОБОВЯЗКОВО ПОТРІБНО ТАКІ РЕЧІ РОБИТИ НА КОПІЇ І НЕ ЗАБУВАТИ ПЕРЕД ТИМ РОБИКИ АРХІВНУ КОПІЮ БАЗА!!!!ЦЕ ДУЖЕ ВАЖЛИВО)
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ Вчера, 21:44
, Дякую за відповідь. В базі є велика кількість довідників, регістрів, видів документів з яких за 10 років стали неактуальні 50%, необхідно відслідкувати якими обєктами в базі користувачі дійсно користуються, а решту видалити оскільки це ускладнює роботу як користувачам 1с так і програмісту в конфігурації.
Ось нашвидкоруч накинув код, щоб визначити які документи які зараз використовуються. Але повторюю, потрібно добре подумати чи видалення документів, які не використовуються не вплинуть на правильність обліку по інших документах
ДатаНач=НачалоГода(ДобавитьМесяц(ТекущаяДата(),-30)); // за 2 роки ДатаКонечн=ТекущаяДата(); Кав=""""; Запрос = Новый Запрос; Текст = " "; Для Каждого Документ Из Метаданные.Документы Цикл Текст = Текст + "ВЫБРАТЬ Ссылка.Дата Как Дата, "+ Кав+ Документ.Имя+Кав+" Как Имя, "+ " 1 Как Повторов"+ " ИЗ Документ." + Документ.Имя; Текст = Текст + " ГДЕ Ссылка.Дата МЕЖДУ &д1 И &д2 ОБЪЕДИНИТЬ "; КонецЦикла;
// Пока Выборка.Следующий() Цикл // Сообщить(""+Выборка.Дата+" "+Выборка.Имя+" "+Выборка.Повторов ); // КонецЦикла;
Сообщить("Кількість документів за період з "+ДатаНач+" по "+ДатаКонечн); Для Каждого Стр Из КопияТЗ Цикл Сообщить(Стр.Имя + " " + Стр.Повторов); КонецЦикла; Для Каждого Документ Из Метаданные.Документы Цикл СтрокаПоиска = КопияТЗ.Найти(Документ.Имя, "Имя"); Если СтрокаПоиска = Неопределено Тогда Сообщить(Документ.Имя + " пусто"); КонецЕсли; КонецЦикла;
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ Сегодня, 10:48
, Дуже вдячна, Ви супер, це по суті одноразова акція необхідно подивитись хто і якими обєктами(це не лише документи, а і звіти, довідники) в базі користується, якщо за останніх 1-2 роки ніхто його не відкривав то прибрати(якщо не повязаний з іншими), якщо користується лише один користувач то обєкт прибрати з різних відділів і лишити лише йому. Таким чином, якщо в обєкт є в відділі Маркетинг, Продажі, Бухгалтерія, Адміністрація, а ним користуються лише в Маркетингу то лишити його там а всюди прибрати щоб було просторніше. А якщо ним взагалі не користуються і він не повязаний з іншими то прибрати всюди. Вибачаюсь я програмістка ще та....., в консолі запитів цей код мені видав купу помилок (((((
Diana1c @ Сегодня, 11:40
, Які параметри? Звичайний звіт (на формі звіту кнопка Сформировать. В обработчику кнопки Процедура: Процедура Сформировать()...... КонецПроцедури Ось туди вставити код
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ Сегодня, 11:50
, Я створила зовнішній звіт, на ньому форму, в формі кномку Сформировать, і до кнопки Действие: прописую Процедура Сформировать...?
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ Сегодня, 11:50
, Дуже велике дякую, розібралась, все працює, показало скільки разів за два роки відкривали документи, і якими не користувались взагалі, Дякую, Ви молодець)))))))
А ще така ідея - зробити виборку типів обєктів з журналу регістрації за останні кілька місяців - це будуть ті об'єкти якими користуються. Відповідно ті що не користуються - всі інші. тоді їх можна видалити, знайти всі посилання на них в коді і починати "здувати" базу
vbi @ Сегодня, 15:44
, Далеко не всі події записуються в журнал реєстрації (наприклад "Справочники" - якщо не створювати нові елементи/редагувати існуючі, - а тільки використовувати їх в документах, то в в журналі реєстрації небуде згадки про те, що цей довідник використовували. Інший приклад. Документи рухають регістри. Але по них також немає запису в журналі реєстрації)
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ 27.05.22, 16:49
, Дякую, чи можливо вставити в кожен обєкт (довідник і звіт) шматок коду щоб при відкритті в регістр писалась дата і користувач який відкрив, а вже на основі цих данних створити звіт через пів року . Пройде декілька місяців регістр наповниться, обєктів по яких записів не буде прибирати?
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ 27.05.22, 10:48
,Перемпрошую, а можливо щоб не сумувало кількість, а видало окремо дату та час і користувача. тобто: Документ, дата і час, користувач. Я розумію що це буде величезне полотно данних, але якщо можна в цьому коді поправити то буду дуже вдячна )
Самий поширений випадок - оптимізації потребує конкретний об'єкт. Запит чи фрагмент програмного коду
Якщо "тормозить" просто все, дивимось монітором ресурсів в чому проблема, який ресурс (процесор, пам'ять, диск чи мережа) зайнятий близько до 100%. В моєму досвіді найпоширеніше це була мережа
Якщо ж ви все ж таки прийняли рішення архівувати базу, то зробити це можна так:
Створюємо нову базу с такою самою конфігурацією
Використовуємо "Конвертації даних". Налаштовуємо правила перенесення об'єктів
За допомогою "Конвертації даних" переносимо в нову базу документи та регістри відомостей після обраної дати (наприклад 01.01.2022)
При перенесені за допомогою конвертації будуть також перенесені елементи довідників, які використовуються у документах та регістрах відомостей що переносятся
"Старі" елементи довідників (включно із "старими" користувачами) перенесені не будуть
Так ми отримаємо дві бази. Одну архівну і одну "нову" в якій продовжуємо працювати
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0
zay @ Сегодня, 12:02
, Дякую, такий механізм чудовий, але є документи які на використовуються раз в рік, відповідно довідники до них теж. Якщо обрубати по даті то можливі втрати рідковикористовуваних обєктів. А якщо відслідкувати хто коли і як часто користується базою, то нехай на це піде багато часу, можна буде зібрати звіт з якого буде видно звіти, довідники і документи які не використовуються в тих чи інших відділах - значить їх прибрати (збільшиться на екрані простір для розгону), а якщо не використовується взагалі то прибирати. Якщо використовується 1 чи 2 рази на рік поставиться питання актуальності документа чи звіту, можливо необхідно щось змінити для поліпшення функціоналу. Користувачі вже блукають в базі і не використовують той функціонал 1С для чого вона робилась роками.
Якщо обрубати по даті то можливі втрати рідковикористовуваних обєктів
У "Конвертації даних" можна створити декілька наборів правил. Наприклад для об'єктів які використовуються часто, для об'єктів які використовуються з середньою частотою і для для об'єктів які використовуються рідко. І вивантажувати кожну групу окремо на різні дати
При цьому створюється проблема переноса залишків. Залишки ми можемо переносити тільки на найбільшу дату. А об'єкти, що йдуть до цієї дати, переносити без рухів. І добавляти у модуль документа заглушку, яка блокує рухи документа до певної дати. Щоб користувачі випадково не перепровели старий документ Але те що ви пропонуєте, також зіткнеться із цією проблемою
volodya1122 @ 27.05.22, 10:48 * ,Перемпрошую, а можливо щоб не сумувало кількість, а видало окремо дату та час і користувача. тобто: Документ, дата і час, користувач. Я розумію що це буде величезне полотно данних, але якщо можна в цьому коді поправити то буду дуже вдячна )
" Ссылка.Створив Как Автор "+ спрацює в тому виадку, якщо в кожного із документів є реквізит "Створив". Якщо у вас по інщому називається то виправити Ссылка.Створив= на Ссылка.Автор (ябо як там називається у вас в кожнім документі)
ДатаНач=НачалоГода(ДобавитьМесяц(ТекущаяДата(),-30)); // за 2 роки ДатаКонечн=ТекущаяДата(); Кав=""""; Запрос = Новый Запрос; Текст = " "; Для Каждого Документ Из Метаданные.Документы Цикл Текст = Текст + "ВЫБРАТЬ Ссылка.Дата Как Дата, "+ Кав+ Документ.Имя+Кав+" Как Имя, "+ " Ссылка.Створив Как Автор "+ // ось тут поправити " ИЗ Документ." + Документ.Имя; Текст = Текст + " ГДЕ Ссылка.Дата МЕЖДУ &д1 И &д2 ОБЪЕДИНИТЬ "; КонецЦикла;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!