Уважаемый читатель, свертка - это не самое удачное решение в оптимизации базы данных 1С, гораздо быстрее и менее трудоемко перейти на SQL. В результате перехода на SQL вы сохраните доступ ко всем документам, увеличите скорость БД в несколько раз, и не потребуется ежегодно сворачивать базу и переживать о корректности переноса данных. 1С v7.7 считается устаревшей на данный момент, но есть компании которые до сих пор ей пользуются. Так как прогресс не стоит на месте, то большинство 1С-специалистов давно переквалифицировались на платформу 1С:v8 и забыли 'семерку', следовательно и заниматься ей не хотят. В этой статье я расскажу вам о том, как свернуть базу (выполнить архивацию периода). Свертку базы я выбрал не случайно, дело в том, что у тех, кто сейчас пользуется 'семеркой' конфигурации баз очень сильно изменены и стандартными средствами воспользоваться не получится. Данная статья будет написана опираясь на конфигурацию основанную на 1С: Торговля и Склад 9.2.
Пустая база - база содержащая только константы и справочники.База без документов - база содержащая в себе остатки, но не содержащая. По вашим подсказкам хотела создать пустую копию имеющейся базы в 1С 7.7.
Лирическое отступление: Все обработки представленные здесь принадлежат своим авторам и я ни в коей мере не претендую на их авторство. Введем обозначения:. Полная база - наша рабочая база, которую будем сворачивать.
Пустая база - база содержащая только константы и справочники. База без документов - база содержащая в себе остатки, но не содержащая документы движения за период. Свернутая база - база содержащая остатки и документы движения за период. Итак, разработаем небольшой алгоритм для выполнения свертки базы:. Проверка информационной базы на ошибки;. Добавление в конфигурацию документа для работы с регистрами;.
Взлома одноклассников программу без регистрации и смс. В наше время к соц. Сетям присоединены миллионы людей по всему миру, и иногда появляется желание взломать чей-нибудь пароль от странички.
Создание копии информационной базы;. Удаление всех документов и периодических реквизитов из базы;.
Формирование и перенос остатков из 'Полной базы' в 'Пустую';. Перенос документов осуществляющих движение за период свертки из 'Полной базы' в 'Базу без документов';. Проведение документов и восстановление последовательностей в 'Свернутой базе'. А теперь каждый шаг по порядку с картинками и разъяснениями: 1. Проверка информационной базы на ошибки - данный шаг осуществляется в конфигураторе. (Администрирование - Тестирование и исправление).
Теперь нужно настроить процесс тестирования и исправления, для этого нажмем кнопку 'Настройка': Ставим все галочки как на картинках нажимаем 'OK' и 'Выполнить'. Процесс тестирования и исправления достаточно долгий, особенно при большом размере базы. Будет казаться что всё зависло, но на самом деле все работает. Добавление в конфигурацию документа для работы с регистрами - данный документ позволяет нам создать документ содержащий данные нужного нам регистра. Скачать документ можно. Внутри архива есть пояснение как добавить документ в базу, но я продублирую это здесь.
Открываем конфигуратор и вызываем мастера объединений конфигураций (Конфигурация-Объединение конфигураций), откроется окно выбора файла конфигурации. Укажем путь к месту куда распаковали и выберем файл 1Cv7.MD. Нам нужен только один документ, поэтому убираем все галочки кроме 'Документы', проверяем что бы переключатели внизу окна стояли как на скриншоте и нажимаем 'OK'.
Программа добавит документ и откроет конфигурацию. Теперь необходимо сохранить изменения, для этого нужно нажать кнопку 'Сохранить' и принять изменения. О возможных проблемах с документом написано в самом конце статьи, вот.
Создание копии информационной базы - здесь все банально, просто копируем каталог информационной базы (той, которую мы проверили и в которую добавили документ) в новый каталог и указываем к ней путь в окне выбора конфигурации 1С. Удаление всех документов и периодических реквизитов из базы - для выполнения этой процедуры нам потребуется.bat-файл. Скачиваем, копируем в папку с копией информационной базы и запускаем - данное действие позволит удалить все документы из базы. Следующим шагом необходимо запустить 1С в монопольном режиме в режиме 1С:Предприятие (Запустить нужно копию без документов), произойдет переиндексация базы. Теперь необходимо очистить базу от периодических реквизитов - для этого запустим тестирование и исправление базы в конфигураторе (аналогично пункту 1).
Формирование и перенос остатков из 'Полной базы' в 'Пустую' - что бы выполнить этот шаг, открываем 'Полную базу' и формируем документ 'ОстаткиПоРегистру' который мы интегрировали в конфигурацию. Документы нужно формировать на предыдущий за днем свертки день, например, если мы сворачиваем базу на то документы должны быть сформированы. Чтобы создать документ нам необходимо открыть общий журнал документов, нажать кнопку 'Insert' на клавиатуре или 'Ввод новой строки' в окне общего журнала.
Затем нужно выбрать документ 'ОстаткиПоРегистру' и нажать 'OK'. Должна открыться форма документа, как показано ниже: Теперь нам нужно сформировать остатки по каждому регистру нашей базы.
Для этого выбираем нужный нам регистр в выпадающем списке и нажимаем кнопку 'Заполнить', главное не забыть на какую дату формируем остатки. Если свертка базы выполняется на 01.01.11 то остатки формируем на 31.12.10. После заполнения документа нажимаем кнопку 'Записать' и 'Закрыть', документ проводить нельзя. Данную операцию необходимо проделать для каждого регистра вашей базы (нужный регистр выбираем из выпадающего списка, не забываем про дату). Все документы 'ОстаткиПоРегистру' должны быть сформированы одним днем. После формирования всех документов 'ОстаткиПоРегистру' нам необходимо перенести их в 'Пустую Базу'.
Для переноса нам потребуется вот обработка. Скачиваем, распаковываем и в 'Полной Базе' открываем файл 'Universal.ert' (Файл-Открыть-Universal.ert). Откроется окно как на рисунку внизу: Теперь необходимо настроить обработку, для этого пошагово (как на скрине внизу) выполните все требования обработки: Помните, что в обработке вы указываете путь к 'Пустой Базе'. После того, как вы выполнили все требования обработки на первой вкладке, переходим непосредственно к переносу остатков. Для этого переходим на вкладку 'Документы', отмечаем единственный документ 'ОстаткиПоРегистру' и устанавливаем дату на которую были сформированы документы. Проверяем соответствия со скрином сверху, если все сходится, то нажимаем 'OK' - 'Перенос документов'. Начнется перенос остатков в 'Пустую Базу', после окончания переноса необходимо открыть нашу 'Пустую базу' в которую были перенесены остатки и провести все документы 'ОстаткиПоРегистру'.
Для этого открываем общий журнал документов, переходим на дату переноса (в нашем случае 31.12.10) и проводим все документы 'ОстаткиПоРегистру'. Карта города кохма с улицами. Перенос документов осуществляющих движение за период свертки из 'Полной базы' в 'Базу без документов' - данный шаг выполняется как и предыдущий, с использованием обработки. Пользоваться мы ей уже умеем, поэтому делаем все как на скрине из пункта 6: Переходим на вкладку 'Документы', выбираем абсолютно все документы и устанавливаем диапазон дат с начала периода до текущего момента, в нашем случае с 01.01.11 до 13.10.11. Также устанавливаем переключатели 'Вкл.
Помеченные на удаление' и 'Вкл. Проведенные' соответственно скриншота. Следующим шагом будет переход на вкладку 'Доп.
На ней необходимо поставить галочки как на скриншоте, диапазон дат указываете свой: После установки всех галочек и переключателей нажимаем 'OK'-'Перенос документов' (скрин из пункта 6): 7. Проведение документов и восстановление последовательностей в 'Свернутой базе' - по окончании переноса документов необходимо будет перепровести всю 'свернутую' базу с начала периода по текущую дату (в нашем случаем 01.01.11-13.10.11). 'Операции'-'Проведение документов': По окончании проведения базы можно считать свою базу свернутой! P.S.: Решение проблем с документом 'ОстаткиПоРегистру': После публикации статьи мне на почту пришло очень много просьб с вопросами, почему же не заполняется документ 'ОстаткиПоРегистру' и выдает ошибку. Что бы решить данную проблему и ответить на вопрос всем, оставлю здесь руководство по доработке документа.
Откройте конфигуратор и выберите документ 'ОстаткиПоРегистру'. Откройте форму документа: 3. Нажмите кнопку 'Новый' и добавьте нужное количество Ресурсов и Измерений. А) Для ресурса настройки вот такие: б) Для измерения настройки вот такие: Для своей базы я создавал порядка 10 измерений и 9 ресурсов.
Откройте форму документа в конфигураторе и нажмите кнопку 'Форма': 5. В открывшейся форме выделите табличную часть и нажмите кнопку показанную на рисунке 'Добавить реквизиты': 6. В нижней части выделите все новые ресурсы и измерения и вставьте в документ: 7.
После вставки сохраните документ. P.S.: Если что-то непонятно, почта всегда открыта для вас! P.P.S.: Процесс свертки периода, описанный в этой статье, не подходит для свертки бухгалтерских итогов. Для свертки бухгалтерских итогов следует использовать стандартную обработку wrap.ert, либо разрабатывать новую методику. Нас таки спросили, хотя я не очень-то понял суть вопроса: «Запрос в 1с 7.7 не принимает больше 9 группировок! А в этой обработке количество измерений=количество группировок в запросе. А в этой обработке количество измерений=количество группировок в запросе.» Так что я хочу тут добавить, хотя и не являюсь специалистом именно по 77, но логично предположить, что если измерения рассматриваются как уникальный индекс (иными словами именно совокупность всех измерений является составным ключом реляционной таблицы), то логично предположить, что группировка по всем атрибутам составного ключа в итоге вернет таблицу идентичную исходной, потому как каждый такой ключ уникален, следовательно группироваться ни с какой другой записью, запись определенная данным ключом не будет.
Так данная проблема крайне сомнительна, ЕСЛИ она заключается именно в группировке. Для тех, чей мозг поражен творением господина Нуралиева в терминальной стадии мы поясним 3 (ТРИ вещи): 1) Разуйте глаза и прочитайте второй абзац, автор статьи только описывает только методику применения обработок, которые он и НЕ разрабатывал 2) В описанной кое-кем задаче группировки не нужны как таковые так что при руках растущих из нужного места запросы можно было бы и переписать 3) Для особо одаренных и не желающих знать формата dbf (ну таки поясню что файловая семерочка работает с ним, следовательно под сервером БД таких проблем наблюдаться не должно). Ограничение типа «8 (9,00) группировок» — это ограничение не 1с 7.7, а ограничение формата dbf (ну и некоторых личностей ) вызванное вот чем (цитирую раздел ИТС): «При выполнении Запроса формируется временный файл для хранения данных в формате dbf.
Сортировка и группировка данных осуществляются посредством создания соответствующих индексов в формате cdx. Вместе с документом остатки по регистру в «Пустую базу» перенесутся все документы прошлых периодов, на которые имеются ссылки, это необходимо для корректного проведения документов «Остатки по регистру».
Эти документы проводить не нужно, они будут лежать просто мертвым грузом в базе. В любом случае база будет меньше и работать быстрее, поскольку эти документы не совершают никаких движений. Один из читателей блога отписывался мне, что он ограничил перенос этих документов в обработке и у него все работало, вы тоже можете проверить это утверждение.
Отвечу вам также, как и Андрею: Вместе с документом остатки по регистру в «Пустую базу» перенесутся все документы прошлых периодов, на которые имеются ссылки, это необходимо для корректного проведения документов «Остатки по регистру». Эти документы проводить не нужно, они будут лежать просто мертвым грузом в базе. В любом случае база будет меньше и работать быстрее, поскольку эти документы не совершают никаких движений. Один из читателей блога отписывался мне, что он ограничил перенос этих документов в обработке и у него все работало, вы тоже можете проверить это утверждение. Формирую документ ОстаткиПоРегистру в самописной конфигурации 1с7.7, база.dbf распределенная. Одно из измерений сжимаемого регистра ОстаткиТоваров имеет формат числовой N12.2. Военные костюмы для фотошоп.
При приведении его к формату документа ОстаткиПоРегистру типа Неопределенный теряются знаки после точки. Подскажите, как с этим бороться? И еще вопрос, насколько Ваща обработка применима для баз с УРБД? Если сделать сжатие центральной базы, можно ли корректно перенести эти изменения в периферийные базы при стандартном обмене?
Не совсем понятно с переносом остатков. Перенес документы «Остатки по регистру», провел их в новой базе — оборотка пустая, т.е. Остатков нет. Хотя сами регистры перенеслись — при создании нового документа «Остатки по регистру» с последующим заполнением документа выборка производится.
В то же время файл 1SBKTTL.DBF фактически пустой (насчитал 81 строчку с нулевыми суммами). И насколько я понимаю, документ «Остатки по регистру» проводки не дает. В связи с этим вопрос: каким образом производится перенос остатков в новую конфигурацию? Доброго, всем, времени суток. Первый и последний раз обрезал свою 1с7 тис в 2007 году.
Занимались программисты. Как сейчас видно резали неумело. Ознакомился с данным алгоритмом. Все очень логично.
Хороший и понятный алгоритм. Даже пользователю. Но что бы красиво обрезать, и получить базу, которую после можно тестировать и исправлять стандартными инструментами, нужно учесть ограничение платформы. А именно, количество записей в табличной части любого документа не должно превышать 9999 шт. Это же относится и к документам Остатки По Регистру. В моем случае, некоторые из документов Остатки По Регистру, переваливают за это число в 2-3 раза.
Документы, превышающие размер 9999, создаются и проводятся. На первый взгляд все хорошо. Но, в таком документе сбивается нумерация, и дальнейшее тестирование и исправление этого документа выдает ошибку.
Если с ним что то не так, исправить его будет невозможно. Нужна помощь. Может у кого есть в наличии, или может кто знает где взять обработку, которая дробит информацию из регистра и создает несколько документов в соответствии с ограничением платформы (9999 шт). Заранее благодарен. Первым делом хочу поблагодарить Алексея за обстоятельную инструкцию, которую он нам подарил! Прошу прощение за многобукав, но может кто, увидя большое количество строк в документе, не будет терять времени на их обработку, а уберёт их методологически.
Я тоже столкнулся с 95000 записей сальдо по одному регистру (лет пять несвязанных отгрузок и оплат) и сперва сделал на автопилоте: на морду документа вывел цифровое поле, куда ставил по очереди цифры. Допустим первый документ регистра Взаиморасчётов (по которому такое безумное сальдо) получал цифру 1 и сформировывал в себе с (1-1).9990 + 1 по 1.9990 строки запроса. Второй получал 2 и выводил в себя из запроса с (2-1).9990 + 1 по 2.9990 записей. С (N-1).9990 + 1 По N.9990. Получилось десяток документов.
Но на том-же рамдиске прошло более 10 часов, пока всё это перенеслось в пустую базу. И тут я наконец подумал:))) И понял что зачем плодить неаккуратность операторов и тащить незакрытое сальдо по отгрузкам/ поступлению средств а не свернуть ли мне их по ходу переноса. Так и сделал — сортировку на уровне документов сделал обратную и, суммируя сальдо по документам в процедуре «ТелоЦикла», следил пока сумма по ним не наберётся равной или большей сальдо по всему контрагенту. И получилось у меня 104 строки вместо 95000. Доброго времени суток. Может быть не в тему но вопрос такой.
В конфигураторе путем объединения конфигураций (пробовал и копирование) добавлен документ(пусть будет как у вас «ОстаткиПоРегистру» не принципиально) конфигуратор говорит что изменения внесены док добавлен. Закрываю конфигуратор открываю «эску» в монопольке но в общем журнале при попытке создать добавленный документ ни чего не получается нет его в списке документов которые я могу создать. «Эска» 7,7 комплексная редакция 4,5. Может что подскажите а тоже надо свертку проводить а в результате этого глюка не могу. Может чего не правильно делаю. Код ниже, достаточно запустить в Querry Analyzer, исправить название базы и дату — до которой удалять. USE MyTestBase Go CREATE TABLE ##ID (IDDOC char(9) primary key clustered) Go INSERT INTO ##ID SELECT DISTINCT IDDOC FROM 1SJOURN WHERE (DATETIMEIDDOC.
Спасибо за статью. Возможно, не самый лучший вариант разделения баз, но очень хорошо описан. Тем не менее я умудрился походить по «граблям». 1)Как и Инесса 28.02.12г я столкнулся с округлением цены до целого. Где цена- измерение регистра «Остатки». На форме документа «ОстаткиПоРегистру» есть две скрытые кнопки F11 и F12, но кода(процедуры, функции) для них нет. Код добавил отсюда И еще одни грабли.
После того, как переформировал документ «ОстаткиПоРегистру» в базе-источнике с копейками в измерении «Цена» и перенес его с помощью Universal.ert в базу-приемник, в документе «ОстаткиПоРегистру» в базе-приемнике установился в измерении «Документ» установился абсолютно непонятный документ с датой процесса переноса, который был создан обработкой в количестве равном количеству строк в документе «ОстаткиПоРегистру». Прежде подобной проблемы у меня не наблюдалось. Соответственно, хоть эти документы и пустые, но удалить их невозможно. Сейчас думаю, почему это произошло и как выйти из положения. Всем успехов.
С уважением, 123ksn.