Принципы выполнения Выгрузки / Загрузки данных при обрезании базы данных удаленного магазина

27.05.09

База данных - Свертка базы

Тема данная была поднята в http://infostart.ru/projects/4207/
Там был пример формирования "правильного" BAT-файла (и сам он), который самостоятельно последовательно выполнит ряд действий приводящих к обрезанию БД удалённого магазина и кусок кода для 1С, чтобы она правильно и в нужной последовательности отрабатывала свои запуски в пакетном режиме из BAT-файла.
По просьбе трудящихся, там же выложены болванки (*.ert) выгрузки/загрузки данных.
Здесь же описывается то, как производятся эти действия.

Изначально данная тема была поднята в //infostart.ru/projects/4207/. Рекомендую начать оттуда, так как здесь только продолжение темы. Кроме того, там все исходники.

Краткое описание предыдущих серий:

1С 7.7 DBF, самописная конфигурация. Удалённый магазин (>100 шт). 1-2 кассы. 300 - 800 документов продажи в день. При достижении 500 Мб начинаются тормоза.

Надо обрезать БД. При этом:

  1. Оставить в БД документы за 1-2 последних месяца.
  2. Слить много мелких продаж за Один день в Один документ, кроме последних 1-2 дней - их оставляем как есть.
  3. Максимально почистить периодику, оставив Входные цены также за 1-2 последних месяца для отчетов, а Розничную цену на ТА.
  4. Выгрузить остаки на начало оставляемого периода.
  5. Выгрузить нумерацию не выгружаемых (не проведенных), но уже использованных документов, чтобы она не сбилась после чистки.
  6. Корректно загрузить всё это.

Вот как-то так.....

Порядок выгрузки:

  1. Выгрузим номер следующего за текущим перемещения в магазине.

    Для чего? Заявки магазинов в центр делаются как не проведённые перемещения, если выгружаем только проведённые документы (в последней версии выгружаем все), то после обрезания эти не проведенные магазинские перемещения теряются и номер нового (после обрезания) перемещения слетает в 000001, а такой документ в центре уже есть, поэтому и сохраняем следующий номер. При загрузки делаем пустое перемещение с этим номером и пометкой на удаление, чтоб восстановить нумерацию

  2. Выгружаем Остатки товаров из регистра на вечер ДатаНачалаБазы-1

  3. Выгружаем Цены - поскольку грохаем 1SCONST.DBF.

    Так как цены, особенно входные, которые рассчитываются у нас по среднему, меняются очень часто, изначально была написана обработка "ЧисткаПериодики", но отказались от неё, так как на конкретном магазине занимает 12-20 мин - долго!

    Поэтому - просто выгружаем цены. Причём, чтобы в магазине можно было делать отчёты по прибыли за оставленный период – Входную цену выгружаем с историей с ДатаНачалаБазы-1 по ТА (за весь оставляемый период). А розничную цену только на ТА, так как в заднем числе продажи не делаются.

  4. Выгружаем Константы - поскольку грохаем 1SCONST.DBF, а ручками их потом лениво ставить.

    При загрузке констант, если константа – это Дата – были проблемки с идентификацией века, поскольку мы отказались от выгрузки таких констант, а ставим их принудительно в модуле загрузки – то есть, забили на это. Вы проверьте у себя.

  5. Выгружаем документы.

    Зачем ? Обрезать "под ноль" - нельзя, так как в магазины периодически повторно перевыгружаются скорректированные документы закупа, корректирующие остатки. Поэтому оставляем в магазине все документы за 1-2 месяца. Остальное прибиваем.

    Нюансы:
    • При формировании DBF-ок для выгрузки документов, чтобы не размножать количество полей в DBF для различных реквизитов различных документов, время от времени используем ОДНО поле для хранения различных реквизитов различных документов.
    • Документы выгружаются в двух вариантах:
      1. отдельные накладные ПРОДАЖ объединяются в ОДИН большой документ за ОДИН день (для максимального уменьшения размеров БД) – это за период с ДатыНачалаБазы (новой) по ТА-1. Все остальные документы выгружаются по отдельности - ВыгрузкаСводныхДокументов
      2. С ТА-1 по ТА, то есть последние 1 или 2 дня ВСЕ документы выгружаем по отдельности. Сделано для того, чтобы, если последняя ночная выгрузка документов в офис «потерялась» по дороге, чтоб можно было перевыгрузить. – ВыгрузкаДокументовПоОтдельности

  6. Формируем «ОтчетОстаткиТоваровСуммой» по входным ценам на ТА, чтобы в дальнейшем сверить с тем, что получилось после обрезания.

При загрузке всё повторяется в том же порядке.

Есть нюансы:

  1. Константы грузятся «ПриОткрытии», чтобы к началу загрузки документов уже был определен ТекущийМагазин и склад.
  2. При загрузке остатков используем документ «ВводОстатков» их дробим по 500 строк в одном документе. Поскольку, если строк в одном документе более 3000, то начинаются тормоза (а 500 цифра красивая :-))) ).
  3. Перед загрузкой документов снимаем всякие контроли (отрицательные остатки, заднее число, продажа ниже входа) установкой нужного значения в константах. По завершению, возвращаем всё на место.
  4. По завершению Загрузки, выставляем Константу ДатаНачалаБазы, чтобы если придёт скорректированный документ закупа, ранее этой даты, его не загружать, чтобы он не сбил начальные остатки.
  5. Выставляем Константу ДатаНачалаВыгрузок, чтобы магазин не смог случайно повторить выгрузку за тот период, где есть Сводные документы и не испортил данные в офисе.

Замечание.

Мы объединяем отдельные накладные ПРОДАЖ в ОДИН большой документ за ОДИН день, для уменьшения объёма базы. В офисе они всегда так и хранятся. А в магазине делаем при обрезании, чтоб максимально уменьшить объем базы. Потому что при хранении кучи мелких документов база данных в РАЗЫ быстрее пухнет, чем при хранении одного большого.

См. также

Свертка базы Чистка данных Перенос данных 1C Системный администратор Программист Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Приводится порядок действий для создания новой информационной базы на основе имеющейся файл-серверной "Торговля и Склад" ред.9.2, для учёта с нуля. В новую базу выполняется перенос справочников и остатков номенклатуры. Журналы документов, данные регистров, долги контрагентов, партии очищаются.

1 стартмани

14.01.2022    6450    6    etmarket    3    

4

Свертка базы Программист Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 2.0 Россия Бухгалтерский учет Абонемент ($m)

Имеется база 7.7, которую хочется свернуть. Но в процессе свертки могут съехать остатки. Для проверки нужно сравнить остатки на дату свертки.

1 стартмани

20.06.2016    18498    2    pentanom    1    

2

Свертка базы Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Управленческий учет Абонемент ($m)

Хотя большинство пользователей перешло на 1С 8ХХ, но есть еще очень много торговых организаций до сих пор эксплуатирующих 1С 77 ТиС. И пока еще не собираются переходить на новую платформу, а свертку делать надо. Есть много решений, я решил поделиться своим. Основное отличие: 1. Универсальность 2. Быстрота 3. Свертку можно делать на любую дату (не обязательно на начало года)

1 стартмани

15.11.2014    31982    125    Marik    27    

3

Свертка базы Чистка данных Бухгалтер Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Бухгалтерский учет Абонемент ($m)

Удаляет проводки(корреспонденцию) по выбранным счетам за выбранный период. Работает с забалансовыми счетами. Выбор условия соответствия вхождения счетов в корреспонденцию (и / или).

1 стартмани

06.01.2014    19856    11    by_1Cnik    8    

3

Свертка базы Системный администратор Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

По статье "Зачем в 1С нужно периодически пересчитывать итоги по регистрам?" http://infostart.ru/public/177171/ Обработка для 7.7, файловая, только для специалистов. Никаких гарантий и возмещений. Работает только в разделенном режиме (прямой запрос VFP). После выполнения - в обязательном порядке ТиИ (только упаковка), После ТиИ в обязательном порядке - принудительно переиндексировать. Родственная разработка для SQL: http://infostart.ru/public/177579/

8 стартмани

28.03.2013    72622    101    CheBurator    14    

15

Свертка базы Чистка данных Системный администратор Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

Берем 2 базы старую и новую, новая это точная копия старой, только с подчищенными файлами d*.dbf, r*.dbf Запускаем в старой обработку, ждем 15 минут и радуемся! Только не забудьте в новой провести ручками документы (операции - проведение документов) Сворачивает остатки по фирмам и складам в усредненной себестоимости(считает по принципу отчета остатки ТМЦ), делает вводы остатков в базе к которой коннектимся И сворачивает всю дебиторскую и кредиторскую задолженность по Фирмам без детализации кредДокумент. Обновление от 12.02.13 появилась возможность сворачивать дебиторку в разрезе кред документа+переносит долги по комиссионерам. Не знаю как вам, а на мой взгляд более простого и работоспособного я тут просто не нашел!!!

1 стартмани

02.01.2013    23735    181    zoeh    8    

10

Свертка базы Перенос данных 1C Программист Платформа 1С v7.7 Конфигурации 1cv7 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Обработка предназначена для переноса данных из Рарус 2.5 магазина на платформе 7.7 в Розницу ред. 1 на платформе 8.2. Перенос осуществляется с помощью OLE. Переносимые данные: Номенклатура(ед., штрих-коды), Документ ввода остатков и цены номенклатуры (после закрытия торгового периода).

1 стартмани

08.10.2012    22433    48    pervanax    5    

1

Свертка базы Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Управленческий учет Абонемент ($m)

Свертка данных на определенную дату, без изменения в конфигурации.

1 стартмани

03.09.2012    20463    153    Tarlich    6    

16
Оставьте свое сообщение