Форум OlegON > Ресурсы OlegON > Вопросы сервера > Архив > Домино

Как уменьшить размер базы Домино? : Домино

28.03.2024 23:38


15.11.2019 13:36
KirillHome
 
Цитата:
Odessit Сорри, пустые только приходные и расходные документы. Весь товар а месте.
Не понял.
Остались только шапки?
Смотри, что с файлом DOCUMENT\D_ORDER.DAT
15.11.2019 13:59
Odessit
 
Получилось что-то подобное быстрой обрезки базы без ввода начальных остатков, с пустыми документами, но с остатками товара. Хитро.
15.11.2019 16:50
KirillHome
 
Если честно - не понял, что произошло.

Скрипт просто "очищает" в базе удалённые объекты (для каждого файла делается "клон" файла (пустой), из текущего файла - выгружается в текстовик, из текстовика - загружается в "клон").

Всё!
Больше никакого изменения он делать не должен.

Если движение было - то оно должно было остаться!
18.11.2019 07:15
Odessit
 
Приветствую!
Вроде всех запустил. Но желание обрезать базу остается. Выходные потратил на то, чтобы выгрузить остатки. как-то все криво выгружается. Три раза и всегда разный результат :(
еще нашел проблему D_ORDER.dat dutil _ка его не может прочитать. Не подскажешь чем его можно пересобать?
18.11.2019 09:40
KirillHome
 
Цитата:
Odessit Приветствую!
Вроде всех запустил. Но желание обрезать базу остается. Выходные потратил на то, чтобы выгрузить остатки. как-то все криво выгружается. Три раза и всегда разный результат :(
еще нашел проблему D_ORDER.dat dutil _ка его не может прочитать. Не подскажешь чем его можно пересобать?
По поводу "выгрузить остатки" - кидай сюда скрипт выгрузки и как проверяешь.

По поводу D_ORDER.DAT - выложи в облако, дай здесь ссылку. Попробую сам посмотреть...
07.12.2019 07:00
Odessit
 
Добрый день!
Наконец-то база обрезана, остатки все перенесены, сальдо и аналитики тоже. Есть проблема с изменение кода подразделения, на котором куча документов. В Домино нашел обработку, которая должна менять код (выполнять слияние) внутренних подразделений. но увы, ей не хватает процедуры d74buh:changesklad.
07.12.2019 11:33
KirillHome
 
А почему не написать, к примеру, такой скрипт
Много текста:

Код:
ВЕРСИЯ=3
NAME= Изменить подразделение

integer tr, cr,
        tr1, cr1,
        ДокументАкцептован;

String СтарыйСкладКод,
       НовыйСкладКод,
       СтарыйДокументНомер,
       НовыйДокументНомер;

long ДокументДата;

Table ДокументыКИзменению
      (ДокументыКИзменению
        поля
        +СтарыйСкладКод,
        +СтарыйДокументНомер,
        +ДокументДата,
        ДокументТип);

Table ДокументыКАкцепту
      (ДокументыКАкцепту
        поля
        +НовыйСкладКод,
        +НовыйДокументНомер,
        +ДокументДата,
        ДокументТип);


ВЫБОР.ИНИЦИАЛИЗАЦИЯ(1);

Select Склады
{
       after Склады.Склад:
             Cancel (СКЛАД.ПАРАМЕТР.КОД('1')<>2);
             ВЫБОР.ДОБАВИТЬ_СТРОКУ(СКЛАД.ИМЯ,СКЛАД.КОД);
};

СтарыйСкладКод=ВЫБОР.ВЫБРАТЬ(2,'Выберите Откуда');
if СтарыйСкладКод=NULL Halt;

НовыйСкладКод=ВЫБОР.ВЫБРАТЬ(2,'Выберите Куда');
if НовыйСкладКод=NULL Halt;

if СтарыйСкладКод==НовыйСкладКод Halt;

СКЛАД.КОД = СтарыйСкладКод;

Select Документы.ПоПодразделению()
{
       after Документы.ПоПодразделению.Документ:
             СтарыйСкладКод = СКЛАД.КОД;
             ДокументТип = ДОКУМЕНТ.ТИП;
             ДокументДата = ДОКУМЕНТ.ДАТА;
             СтарыйДокументНомер = ДОКУМЕНТ.НОМЕР;
             add ДокументыКИзменению;
             tr = tr + 1;
             
};


OpenIndicator('Изменяем склад (и номер документа)','Пожалуйста, подождите...');
Select ДокументыКИзменению
{
       after ДокументыКИзменению:
             СКЛАД.КОД = СтарыйСкладКод;
             ДОКУМЕНТ.ТИП = ДокументТип;
             ДОКУМЕНТ.НОМЕР = СтарыйДокументНомер;
             ДокументАкцептован = 0;
             if Документ.Акцептован
                ДокументАкцептован = 1;
             if ДокументАкцептован = 1
                ДОКУМЕНТ.ДЕАКЦЕПТОВАТЬ(АКЦЕПТ.РЕЖИМ.КОРОТКИЙ);
             ДОКУМЕНТ.НАЧАТЬ_ИЗМЕНЕНИЯ(ChangeRecord);

             НовыйДокументНомер = НУМЕРАТОР.СЛЕДУЮЩАЯ_СТРОКА('ДОК.'&ДокументТип&'|'&НовыйСкладКод);
             //Возможно, нумератор по годам?
             //Тогда надо поменять правило формирования номера
             //ДОКУМЕНТ.РЕДАКТОР.НОМЕР(SUB(YEAR(CurrentDate),3,2)&'.'&НУМЕРАТОР.СЛЕДУЮЩАЯ_СТРОКА('ДОК.'&ДокументТип&'|'&НовыйСкладКод&'|'&SUB(YEAR(CurrentDate),3,2)));
             ДОКУМЕНТ.РЕДАКТОР.НОМЕР(НовыйДокументНомер);
             ДОКУМЕНТ.РЕДАКТОР.СКЛАД(НовыйСкладКод);

             ДОКУМЕНТ.ЗАВЕРШИТЬ_ИЗМЕНЕНИЯ;
             if ДокументАкцептован = 1
             {
                add ДокументыКАкцепту;
                tr1 = tr1 + 1;
             }
             cr=cr+1;
             RunIndicator(cr,tr);

};
CloseIndicator;


OpenIndicator('Акцептуем','Пожалуйста, подождите...');
Select ДокументыКАкцепту
{
       after ДокументыКАкцепту:
             СКЛАД.КОД = НовыйСкладКод;
             ДОКУМЕНТ.ТИП = ДокументТип;
             ДОКУМЕНТ.НОМЕР = НовыйДокументНомер;
             ДОКУМЕНТ.АКЦЕПТОВАТЬ(АКЦЕПТ.РЕЖИМ.КОРОТКИЙ);
             //Возможно, нужен полный акцепт
             cr1=cr1+1;
             RunIndicator(cr1,tr1);

};
CloseIndicator;
13.12.2019 05:39
Odessit
 
Добрый день! Я видимо уже окончательно туплю, но не могу понять как выполнить этот скрипт.
13.12.2019 08:27
KirillHome
 
Цитата:
Odessit Добрый день! Я видимо уже окончательно туплю, но не могу понять как выполнить этот скрипт.
Я, если честно, исходил из предыдущего сообщения.
Цитата:
Odessit Лет 8 назад я с доминошкой делал, все что угодно.


Создаем где-то в проекте файл с расширением prg, в меню делаем вызов этого файла через
Код:
ВЫПОЛНИТЬ ПРОГРАММА=
Но если описанное выше вызывает недоумение - то, на мой взгляд, лучше не связываться
Часовой пояс GMT +3, время: 23:38.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.