Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Архивація обєктів 1С 2 страниц V   1 2 >          
Diana1c Подменю пользователя
сообщение 26.05.22, 11:55
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго дня, базою 1С користуються енна кількість співробітників, за багато років було створенно багато користувачів і обєктів в базі( база роздута), як можливо відслідкувати якими обєктами користуються, а які взагалі вже не актуальні і їх можна видалити. 1с 8.3 самописна.

Сообщение отредактировал Vofka - 27.05.22, 9:00

volodya1122 Подменю пользователя
сообщение 26.05.22, 20:44
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Diana1c @ Сегодня, 12:55 * ,
1. Енна кілкість співробітників. Думаю мається на увазі користувачів в 1С? На роздутість бази взагалі не впливає. (це 0,0000001% від обєму бази). А щоб непотрібних не показувати при вході в програму -то їх показ можна відключити в конфігураторі (Меню- Адміністрування-Користувачі. Випрати непотрібного користувача. в Зняти помітку "Показувати в списку вибору")
2. Багато обєктів в базі. Що тут мається на увазі? Багато різних видів документів, довідників, Регістрів.......? Чи багато в базі створено докумнентів, довідників.... (мається на увазі документи , які створюють користувачі в процесі роботи з програмою)?
2.1 Якщо перше, то тут практично неможливо щось викинути, так як одні обєкти зазвичай задіяні в різних місцях програми. І просто так їх не позбутись, не переписавши половину конфігурації.
2.2 Якщо друге, то тут також не все однозначно. Наприклад документ введення залишків. Його один раз використали на початку користування програмою -ввели залишки. Більше ним не користуються. Його можна видалити? Звичайно ні. Тут тільки аналізувати очима, розмовляти з працівниками., Якщо в програмі є різні підсистеми, які ніяк не повязані між собою.Тоді документи однієї підсистеми можно видалити.
3. База дуже роздулась? В цифрах це скільки (в Мегабайтах/ Гігабайтах) База файлова чи SQL? (Зменшення обєму допомагає в Конфігураторі "Тестування і виправлення інформаційної базі" - АЛЕ ОБОВЯЗКОВО ПОТРІБНО ТАКІ РЕЧІ РОБИТИ НА КОПІЇ І НЕ ЗАБУВАТИ ПЕРЕД ТИМ РОБИКИ АРХІВНУ КОПІЮ БАЗА!!!!ЦЕ ДУЖЕ ВАЖЛИВО)

Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 27.05.22, 8:36
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ Вчера, 21:44 * ,
Дякую за відповідь. В базі є велика кількість довідників, регістрів, видів документів з яких за 10 років стали неактуальні 50%, необхідно відслідкувати якими обєктами в базі користувачі дійсно користуються, а решту видалити оскільки це ускладнює роботу як користувачам 1с так і програмісту в конфігурації.

volodya1122 Подменю пользователя
сообщение 27.05.22, 9:48
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Diana1c @ Сегодня, 9:36 * ,

Ось нашвидкоруч накинув код, щоб визначити які документи які зараз використовуються.
Але повторюю, потрібно добре подумати чи видалення документів, які не використовуються не вплинуть на правильність обліку по інших документах


    ДатаНач=НачалоГода(ДобавитьМесяц(ТекущаяДата(),-30)); // за 2 роки
    ДатаКонечн=ТекущаяДата();
    Кав="""";
    Запрос = Новый Запрос;
    Текст = " ";
    Для Каждого Документ Из Метаданные.Документы Цикл
        Текст = Текст + "ВЫБРАТЬ Ссылка.Дата Как Дата, "+
        Кав+ Документ.Имя+Кав+" Как Имя, "+
        " 1 Как Повторов"+
        " ИЗ Документ." + Документ.Имя;
        Текст = Текст +
        " ГДЕ Ссылка.Дата МЕЖДУ &д1 И &д2 ОБЪЕДИНИТЬ ";
    КонецЦикла;
    
    Запрос.Текст = Лев(Текст, СтрДлина(Текст) - СтрДлина(" ОБЪЕДИНИТЬ "));
    Запрос.Текст = Запрос.Текст + "
    |    УПОРЯДОЧИТЬ ПО
    |Имя, Дата";
    
    Запрос.УстановитьПараметр("д1", ДатаНач);
    Запрос.УстановитьПараметр("д2", ДатаКонечн);
    Выборка = Запрос.Выполнить().Выгрузить();
    
    КопияТЗ = Выборка.Скопировать(,"Имя,Повторов");
    КопияТЗ.Свернуть("Имя","Повторов");
    
    //    Пока Выборка.Следующий() Цикл
    //        Сообщить(""+Выборка.Дата+" "+Выборка.Имя+" "+Выборка.Повторов );
    //    КонецЦикла;
    
    Сообщить("Кількість документів за період з  "+ДатаНач+"  по  "+ДатаКонечн);
    Для Каждого Стр Из КопияТЗ Цикл
        Сообщить(Стр.Имя + " " + Стр.Повторов);
    КонецЦикла;
    Для Каждого Документ Из Метаданные.Документы Цикл
        СтрокаПоиска = КопияТЗ.Найти(Документ.Имя,  "Имя");
        Если СтрокаПоиска = Неопределено Тогда
            Сообщить(Документ.Имя + " пусто");
        КонецЕсли;
    КонецЦикла;



Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 27.05.22, 10:10
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ Сегодня, 10:48 * ,
Дуже вдячна, Ви супер, це по суті одноразова акція необхідно подивитись хто і якими обєктами(це не лише документи, а і звіти, довідники) в базі користується, якщо за останніх 1-2 роки ніхто його не відкривав то прибрати(якщо не повязаний з іншими), якщо користується лише один користувач то обєкт прибрати з різних відділів і лишити лише йому. Таким чином, якщо в обєкт є в відділі Маркетинг, Продажі, Бухгалтерія, Адміністрація, а ним користуються лише в Маркетингу то лишити його там а всюди прибрати щоб було просторніше. А якщо ним взагалі не користуються і він не повязаний з іншими то прибрати всюди. Вибачаюсь я програмістка ще та....., в консолі запитів цей код мені видав купу помилок (((((

volodya1122 Подменю пользователя
сообщение 27.05.22, 10:20
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Diana1c @ Сегодня, 11:10 * ,
Так це не в консолі запитів писати. А оформити зовнішнім звітом

Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 27.05.22, 10:40
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ Сегодня, 11:20 * ,
пробую, записую параметри, всеодно помилки....я не розумію.... це частинка коду чи весь? що куди писати.(((((( help.gif 09000000.gif 32000000.gif

volodya1122 Подменю пользователя
сообщение 27.05.22, 10:50
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Diana1c @ Сегодня, 11:40 * ,
Які параметри? Звичайний звіт (на формі звіту кнопка Сформировать. В обработчику кнопки Процедура: Процедура Сформировать()...... КонецПроцедури
Ось туди вставити код

Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 27.05.22, 11:06
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ Сегодня, 11:50 * , Я створила зовнішній звіт, на ньому форму, в формі кномку Сформировать, і до кнопки Действие: прописую Процедура Сформировать...?

Diana1c Подменю пользователя
сообщение 27.05.22, 12:22
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ Сегодня, 11:50 * ,
Дуже велике дякую, розібралась, все працює, показало скільки разів за два роки відкривали документи, і якими не користувались взагалі, Дякую, Ви молодець))))))) icon_beer17.gif

vbi Подменю пользователя
сообщение 27.05.22, 14:44
Сообщение #11

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

А ще така ідея - зробити виборку типів обєктів з журналу регістрації за останні кілька місяців - це будуть ті об'єкти якими користуються. Відповідно ті що не користуються - всі інші. тоді їх можна видалити, знайти всі посилання на них в коді і починати "здувати" базу smile.gif


Signature
Впроваджую, супроводжую

Спасибо сказали: Diana1c,

volodya1122 Подменю пользователя
сообщение 27.05.22, 15:49
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

vbi @ Сегодня, 15:44 * ,
Далеко не всі події записуються в журнал реєстрації (наприклад "Справочники" - якщо не створювати нові елементи/редагувати існуючі, - а тільки використовувати їх в документах, то в в журналі реєстрації небуде згадки про те, що цей довідник використовували. Інший приклад. Документи рухають регістри. Але по них також немає запису в журналі реєстрації)

Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 30.05.22, 8:57
Сообщение #13

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ 27.05.22, 16:49 * ,
Дякую, чи можливо вставити в кожен обєкт (довідник і звіт) шматок коду щоб при відкритті в регістр писалась дата і користувач який відкрив, а вже на основі цих данних створити звіт через пів року . Пройде декілька місяців регістр наповниться, обєктів по яких записів не буде прибирати?

andreydv87 Подменю пользователя
сообщение 05.06.22, 18:31
Сообщение #14

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 108
Спасибо сказали: 24 раз
Рейтинг: 22.3

Diana1c @ 30.05.22, 9:57 * ,
Может проще и более правильно сделать свертку базы.

Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 08.06.22, 9:54
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ 27.05.22, 10:48 * ,Перемпрошую, а можливо щоб не сумувало кількість, а видало окремо дату та час і користувача. тобто: Документ, дата і час, користувач. Я розумію що це буде величезне полотно данних, але якщо можна в цьому коді поправити то буду дуже вдячна )

zay Подменю пользователя
сообщение 08.06.22, 11:02
Сообщение #16

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 162
Из: Киев
Спасибо сказали: 130 раз
Рейтинг: 135.8

Доброго дня
Ось дуже класна стаття про міф о пришвидшенні роботи 1С за допомогою видалення частини даних
Раніше я підозрював що "обрєзка" бази - це маячня. Коли мені трапилася ця стаття, остаточно переконався в цьому
Давайте забудем о свертке БД? Файловые группы и секции таблиц SQL, сжатие таблиц SQL

По моєму досвіду пришвидшенню роботи 1С:
  1. Самий поширений випадок - оптимізації потребує конкретний об'єкт. Запит чи фрагмент програмного коду
  2. Якщо "тормозить" просто все, дивимось монітором ресурсів в чому проблема, який ресурс (процесор, пам'ять, диск чи мережа) зайнятий близько до 100%. В моєму досвіді найпоширеніше це була мережа


Якщо ж ви все ж таки прийняли рішення архівувати базу, то зробити це можна так:
  1. Створюємо нову базу с такою самою конфігурацією
  2. Використовуємо "Конвертації даних". Налаштовуємо правила перенесення об'єктів
  3. За допомогою "Конвертації даних" переносимо в нову базу документи та регістри відомостей після обраної дати (наприклад 01.01.2022)
  4. При перенесені за допомогою конвертації будуть також перенесені елементи довідників, які використовуються у документах та регістрах відомостей що переносятся
  5. "Старі" елементи довідників (включно із "старими" користувачами) перенесені не будуть

Так ми отримаємо дві бази. Одну архівну і одну "нову" в якій продовжуємо працювати

Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 08.06.22, 12:44
Сообщение #17

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

zay @ Сегодня, 12:02 * ,
Дякую, такий механізм чудовий, але є документи які на використовуються раз в рік, відповідно довідники до них теж. Якщо обрубати по даті то можливі втрати рідковикористовуваних обєктів. А якщо відслідкувати хто коли і як часто користується базою, то нехай на це піде багато часу, можна буде зібрати звіт з якого буде видно звіти, довідники і документи які не використовуються в тих чи інших відділах - значить їх прибрати (збільшиться на екрані простір для розгону), а якщо не використовується взагалі то прибирати. Якщо використовується 1 чи 2 рази на рік поставиться питання актуальності документа чи звіту, можливо необхідно щось змінити для поліпшення функціоналу. Користувачі вже блукають в базі і не використовують той функціонал 1С для чого вона робилась роками.

zay Подменю пользователя
сообщение 08.06.22, 15:15
Сообщение #18

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 162
Из: Киев
Спасибо сказали: 130 раз
Рейтинг: 135.8

Цитата(Diana1c @ 08.06.22, 13:44) *
Якщо обрубати по даті то можливі втрати рідковикористовуваних обєктів

У "Конвертації даних" можна створити декілька наборів правил. Наприклад для об'єктів які використовуються часто, для об'єктів які використовуються з середньою частотою і для для об'єктів які використовуються рідко. І вивантажувати кожну групу окремо на різні дати

При цьому створюється проблема переноса залишків. Залишки ми можемо переносити тільки на найбільшу дату. А об'єкти, що йдуть до цієї дати, переносити без рухів. І добавляти у модуль документа заглушку, яка блокує рухи документа до певної дати. Щоб користувачі випадково не перепровели старий документ
Але те що ви пропонуєте, також зіткнеться із цією проблемою

Спасибо сказали: Diana1c,

volodya1122 Подменю пользователя
сообщение 09.06.22, 17:29
Сообщение #19

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(Diana1c @ 08.06.22, 10:54) *
volodya1122 @ 27.05.22, 10:48 * ,Перемпрошую, а можливо щоб не сумувало кількість, а видало окремо дату та час і користувача. тобто: Документ, дата і час, користувач. Я розумію що це буде величезне полотно данних, але якщо можна в цьому коді поправити то буду дуже вдячна )


" Ссылка.Створив Как Автор "+ спрацює в тому виадку, якщо в кожного із документів є реквізит "Створив". Якщо у вас по інщому називається то виправити Ссылка.Створив= на Ссылка.Автор (ябо як там називається у вас в кожнім документі)

ДатаНач=НачалоГода(ДобавитьМесяц(ТекущаяДата(),-30)); // за 2 роки
    ДатаКонечн=ТекущаяДата();
    Кав="""";
    Запрос = Новый Запрос;
    Текст = " ";
    Для Каждого Документ Из Метаданные.Документы Цикл
        Текст = Текст + "ВЫБРАТЬ Ссылка.Дата Как Дата, "+
        Кав+ Документ.Имя+Кав+" Как Имя, "+
        " Ссылка.Створив Как Автор "+   //  ось тут поправити
        " ИЗ Документ." + Документ.Имя;
        Текст = Текст +
        " ГДЕ Ссылка.Дата МЕЖДУ &д1 И &д2 ОБЪЕДИНИТЬ ";
    КонецЦикла;
    
    Запрос.Текст = Лев(Текст, СтрДлина(Текст) - СтрДлина(" ОБЪЕДИНИТЬ "));
    Запрос.Текст = Запрос.Текст + "
    |    УПОРЯДОЧИТЬ ПО
    |Имя, Автор, Дата";
    
    Запрос.УстановитьПараметр("д1", ДатаНач);
    Запрос.УстановитьПараметр("д2", ДатаКонечн);
    Выборка = Запрос.Выполнить().Выгрузить();
    
    
    Построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Выборка);
    Построитель.Макет = Неопределено;
    Макет = Построитель.Макет;
    Область = Макет.Область();
    Область.ШиринаКолонки = 20;
    Построитель.Макет = Макет;
    Построитель.Выполнить();
    Построитель.Вывести();
    
Сообщить(Запрос.Текст);

Звіт буде формуватись набагато довше попереднього

Сообщение отредактировал volodya1122 - 09.06.22, 17:35

Спасибо сказали: Diana1c,

Diana1c Подменю пользователя
сообщение 10.06.22, 9:04
Сообщение #20

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

volodya1122 @ Вчера, 18:29 * ,
Дуже вам вдячна icon_beer17.gif , в базі "ПАПЄРЄДНІКІ" писали іАвтор, і Ответственный два варіанта(в різних документах по різному)

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 12:36
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!