Павел Chistov 1

Понякога, може да има толкова, че е много дълго време необходимост от промяна на операционната основа на вида на подпори, или да добавите индексирана поле, или просто да добавите подпори. Така че след това, ние ще имаме дълъг процес (ако базата е голяма), преструктуриране на масата. В тази статия ще разгледаме алгоритъма значително да намали времето на преструктуриране.

И така 80lvl програмисти вероятно знаят всичко и дори повече, отколкото тази, описана в статията, така че тази публикация е насочена основно към начинаещи. И тъй като начинаещ е вероятно не репутация и startmani - всички скриптове Аз няма да се прикрепят и да наредят в статията.

Да вървим. Да предположим, че във вашата конфигурация има документ с 5 маси на този. СУБД (в нашия пример PosgreSQL, но по-долу това е вярно и друго СУБД) такъв документ ще се появи под формата на таблици 6

Продължи, добавете подпори на частта маса в конфигуратора, аз е броят на 10 дълги, точността на 0 (по това време цялото му манипулация, не може да се затвори), се запазва, но не се актуализира. Преименуване на всички от масите в pgAdmin на документ или какво го използвате (имам чифт pgAdmin и EMS SQL Мениджър PostgreSQL), например в _document39 _document39_src

И създава копие на нашите преименувани маси (празни) с оригиналното име, в нашия пример, направете копие на празен _document39_src име _document39.

Павел Chistov 1

Ако се вгледате в предприятието, ние не разполагат с никакви документи.

Сега, 1C вярва, че ние нямаме документи в актуализацията на конфигуратор клик, незабавно преструктуриране се извършват (ако има грешки, кликнете актуализацията отново, докато кутията на приемането на промените ще се появи).

Независимо от името получи нова колона на таблицата, което е в съответствие с новите детайли.

Павел Chistov 1

Имам го _fld1097. Ние се върне към първоначалната ни маса, която преименува _document39_src, добавяне на нова колона, за да го

Павел Chistov 1

Ние събрахме стойността по подразбиране е 0, и кликнете OK. Целият процес се около 1 час (48 пъти по-бързо). След като бъде създаден колоната, по подразбиране изтриване и преименуване на масата обратно (в нашия _document39)

Ние управляваме компанията и да се провери. Ние се радваме или да плаче.

Така че това ще добавя подпори, смятат, сега е така, ако се наложи да промените вида на подпори, например, беше номер (5, 2), трябва да е число (10, 4), или да добавите индекси.

Има два варианта.

Първият вариант. Създаване на копие на масите и да попълните своите данни от главната таблица

След пречистване на първоначалната маса, т.е. стигаме до точката, в която 1C си мисли, че ние нямаме записи в документа за маса. Ние правим всички необходими промени в конфигуратора и актуализация. Сега ние трябва да се върне отново данните

Ние управляваме компанията и да се провери. Ние се радваме или да плаче.

Вариант две. Някой си мисли, че вмъкнете в е бавен, така че можете да използвате тези скриптове не работят с копия на таблицата и файла на диск

където "Е: / _ document39" е в основната директория на диск е.

Script обратно зареждането на данните

На тази, може би всички.

Както можете да видите, процесът е все още дълъг (около 18 часа за мен). Имаме около 19 часа, за да 48, с промени в типа на подпори и добавяне на индекси, и около 1 час до 48 часа, с добавянето на подпори.

PS. Имам подозрение, че други СУБД платформи средства за преструктуриране ще бъде по-бързо. Освен това, аз бях един стар PosgresSQL, дори 8.2.4-3.1