Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Срез БД  (Прочитано 16069 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dest
Опытный

ru
Offline Offline

« : 11-12-2009 04:33 » 

Здравствуйте. (Sel вам персональный привет)
1с 8.0. УТ.Режим серверный
Подскажите, наверняка кто-то из вас, программистов 1с, делает «срез» базы . Поделитесь опытом.
Как выделаете - так:

    1.  Вы формируете остатки в той же базе на определенную дату
    2.  Удаляете старые документы в той же базе
   А. сначала установка пометки на удаление, потом удаление стандартными средствами
   Б.  или может без пометки на удаление, а используете непосредственное удаление

или, может, вы делаете «срез» вот так:

   1.  Вы формируете остатки в той же базе на определенную дату
   2.   В новую базу переносите документы, справочники, независимые регистры накопления …
« Последнее редактирование: 11-12-2009 05:29 от Sel » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 11-12-2009 12:16 » 

В 8 еще не делал, в 7.7 по варианту близкому 1А:
1. Формирую остатки
2. создаю и провожу документы (операции если остатки по счетам) с остатками
3. помечаю на удаление все остальные объекты БД, кроме сформированнымх (ну еще в зависимости от задачи - некоторые справочники не помечаю: товары, контрагенты, ...)
4. удаляю стандартными средствами
При этом объекты, фигурирующие в аналитиках остатков, остаются, но помеченными на удаление (например - договора, партии)

Также можно попробовать вариант в новую базу, используя 1С:Конвертация данных 2.0. Статью смотри здесь. Там правда для 7.7->8.X, но суть остается та же для 8->8 или 7->7
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #2 : 11-12-2009 12:39 » 

Сколько времени вам дается на срез?
А если удалять документы без пометки на удаление на что, интересно, это может повлиять. Это же не элементы справочника, на документы ссылок нет
Устанавливать пометку слишком долго
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 11-12-2009 13:25 » 

Что значит "Сколько времени ... на срез" ?
Могут быть и документы (аналитика по заказам в расчетах с контрагентами), могут быть внутренние ссылки (партия - элемент справочника со ссылкой на создавший его документ, контрагент имеет ссылку на базовый договор) - так что удалять непосредственно крайне не рекомендую!
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #4 : 17-12-2009 06:05 » 

Все-таки было решено сделать новую базу и перенести туда документы, справочники, независимые регистры накопления …
На диске ИТС, за ноябрь, я взял обработку по обмену - ВыгрузкаЗагрузкаДанныхXML.epf
Единственное, что я добавил это чтобы если загружается документ то он сразу проводился

Код:
...
Попытка
Если Метаданные.Документы.Содержит(Метаданные.НайтиПоТипу(ТипЗнч(ЗаписанноеЗначение))) тогда //если документ то проводим
ЗаписанноеЗначение.Записать(РежимЗаписиДокумента.Проведение);
Иначе
ЗаписанноеЗначение.Записать();
КонецЕсли;
Исключение
...

Но при проведении вылетает интересная ошибка.

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML(94)}: Ошибка при вызове метода контекста (Записать): Действие не может выполняться в режиме загрузки данных
            ЗаписанноеЗначение.Записать(РежимЗаписиДокумента.Проведение);


В чем может быть дело?

Вот полный код процедуры:

Код:
Процедура ВыполнитьЗагрузку(ИмяФайла) Экспорт
Если СтрДлина(ИмяФайла) = 0 Тогда
Предупреждение("Не задано имя файла выгрузки");
Возврат;
КонецЕсли;

ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайла);
// проверка формата файла обмена
Если Не ЧтениеXML.Прочитать() Или
ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента Или
ЧтениеXML.ЛокальноеИмя <> "_1CV8DtUD" Или
ЧтениеXML.URIПространстваИмен <> "http://www.1c.ru/V8/1CV8DtUD/" Тогда
Предупреждение("Неверный формат файла выгрузки", 10, "Ошибка загрузки!!!");
Возврат;
КонецЕсли;
Если Не ЧтениеXML.Прочитать() Или
ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента Или
ЧтениеXML.ЛокальноеИмя <> "Data" Или
ЧтениеXML.URIПространстваИмен <> "http://www.1c.ru/V8/1CV8DtUD/" Тогда
Предупреждение("Неверный формат файла выгрузки", 10, "Ошибка загрузки!!!");
Возврат;
КонецЕсли;
// чтение и запись в ИБ записанных в выгрузке объектов
Если Не ЧтениеXML.Прочитать() Тогда
Предупреждение("Неверный формат файла выгрузки", 10, "Ошибка загрузки!!!");
Возврат;
КонецЕсли;
Загружено = 0;
УстановитьИспользованиеИтогов();
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
ЗаписанноеЗначение = ПрочитатьXML(ЧтениеXML);
Попытка // Планы обмена свойства ОбменДанными не имеют
ЗаписанноеЗначение.ОбменДанными.Загрузка = Истина;
Исключение
КонецПопытки;

        Попытка
Если Метаданные.Документы.Содержит(Метаданные.НайтиПоТипу(ТипЗнч(ЗаписанноеЗначение))) тогда
ЗаписанноеЗначение.Записать(РежимЗаписиДокумента.Проведение);                                  //если документ то проводим
Иначе
ЗаписанноеЗначение.Записать();
КонецЕсли;
Исключение
Если Вопрос("При записи произошла ошибка:" + Символы.ПС + ОписаниеОшибки() + Символы.ПС + "Продолжит загрузку?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
ВызватьИсключение;
КонецЕсли;
Загружено = Загружено - 1;
КонецПопытки;
Загружено = Загружено + 1;
Состояние("Загружено объектов - " + Загружено);
ОбработкаПрерыванияПользователя();
КонецЦикла;
СнятьИспользованиеИтогов();
Состояние();

// проверка формата файла обмена
Если ЧтениеXML.ТипУзла <> ТипУзлаXML.КонецЭлемента Или
ЧтениеXML.ЛокальноеИмя <> "Data" Или
ЧтениеXML.URIПространстваИмен <> "http://www.1c.ru/V8/1CV8DtUD/" Тогда
Предупреждение("Неверный формат файла выгрузки", 10, "Ошибка загрузки!!!");
Возврат;
КонецЕсли;
Если Не ЧтениеXML.Прочитать() Или
ЧтениеXML.ТипУзла <> ТипУзлаXML.КонецЭлемента Или
ЧтениеXML.ЛокальноеИмя <> "_1CV8DtUD" Или
ЧтениеXML.URIПространстваИмен <> "http://www.1c.ru/V8/1CV8DtUD/" Тогда
Предупреждение("Неверный формат файла выгрузки", 10, "Ошибка загрузки!!!");
Возврат;
КонецЕсли;

ЧтениеXML.Закрыть();
КонецПроцедуры
« Последнее редактирование: 17-12-2009 06:33 от Sel » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 17-12-2009 13:33 » 

Проведи документы лучше потом, т.к. в таком виде чревато ошибками: у тебя порядок загрузки может отличаться от хронологического порядка, например сначала грузятся вся расходные накладные, потом - все приходные и т.д.
С режимом загрузки не работал, но аналогии с 7.7 при загрузке данных вместе с данными грузятся и их движения, т.е. если документ проведен - то все его движения по регистрам будут загружены...
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #6 : 22-12-2009 00:01 » 

В новую базу необходимо еще перекинуть список пользователей, но не из справочника пользователей, а из конфигуратора, т.е. тот список который отображается при аутентификации. Это возможно сделать? Я вот думал, что мол перенесешь справочник пользователей и хоп аутентификационные данные тоже перенесутся, но нет.
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #7 : 22-12-2009 06:16 » 

Всё нашел
МенеджерПользователейИнформационнойБазы.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines