Закрытие периода в 1с77

11.02.12

Задачи пользователя - Закрытие периода

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

Скачать файлы

Наименование Файл Версия Размер
1sclose.zip
.zip 257,47Kb
126
.zip 257,47Kb 126 Скачать

Размеры базы 1С постоянно увеличиваются, поэтому периодически возникает задача - удалить документы за старый период, перенеся при этом остатки. Удаленные документы можно оставить в копии базы. В 1С есть штатная обработка "Закрытие периода", но она настроена только на типовую конфигурацию и часто глючит (например, документ ВводОстатковТоваров не может принимать отрицательные остатки).
Поэтому если вы сторонник универсальности и простоты, или у вас нетиповая конфигурация, вам пригодятся мои рекомендации.
Надеюсь, после этого уже никто не будет изобретать велосипед, а будут использовать мои наработки.

Теоретические предпосылки

Сначала нужно определиться с датой закрытия периода - можно закрыть текущей датой, удалив все документы до нее, а можно оставить документы сроком 3 месяца - полгода. При выборе нужно руководствоваться тем, как часто вносятся изменения задним числом, как часто нужно смотреть движения по документам за прошлые периоды.
После закрытия периода уже нельзя будет внести изменения в перенесенные остатки, поэтому если работа задним числом ведется достаточно активно в интервале, например, полгода, дата закрытия периода будет полгода назад.

При закрытии периода переносятся:
1. Остатки по бухгалтерским счетам в разрезе аналитики по субконто.
2. Остатки по регистрам.
3. Значения периодических реквизитов, которые устанавливаются при проведении документов.

Изменения в конфигурацию для закрытия периода

Если вы планируете только перенести остатки по бухгалтерским счетам, достаточно только извлечь из пакета обработку wrap.ert
Иначе откройте в конфигураторе файл 1cv7.md из пакета и скопируйте в вашу конфигурацию через буфер обмена документы
ДвижениеРегистра - для переноса остатков и ФиксацияПериодических для переноса периодических реквизитов. Хотя возможно закрыть остатки по регистрам универсальной обработкой УниверсальноеЗакрытиеПериодаПоРегистрам.ert без вмешательства в конфигурацию.

<td >Состав пакета 1s_close.zip :<td >Конфигурация, в которой находятся документы ФиксацияРегистра и ФиксацияПериодических<td >Документация<td >Типовая обработка от 1С по свертке бухитогов<td >Закрытие регистров без вмешательства в конфигурацию<td >Файл настроек для обработки УниверсальноеЗакрытиеПериодаПоРегистрам.ert<td >Обработка для автоматизации закрытия регистров<td >Обработка для автоматизации переноса периодических<td >Обработка для удаления документов за период<td >Экспериментальное исследование скорости удаления

1cv7.md
1s_close.htm
wrap.ert
УниверсальноеЗакрытиеПериодаПоРегистрам.ert
НастройкаЗакрытияБазы.mxl
СформироватьДокументыЗакрытияПоРегистрам.ert
СформироватьДокументыЗакрытияПоПериодическим.ert
УдалитьВсеДокументыЗаПериод.ert
Протокол удаления.xls

Перенос остатков по счетам.

Для переноса остатков по бухгалтерским счетам лучше всего использовать штатную обработку от 1С wrap.ert. Она формирует на указанную дату несколько операций, которые устанавливают остатки дебета и кредита по указанным счетам в разных планах счетов с различными разделителями учета. Для внесения остатков нужно указать, с какого счета заносить остатки (обычно это счет 00).
Можно перенести также и остатки по забалансовым счетам.

Мною в обработку добавлена галочка "Не удалять проводки,только сформировать остатки". Ее нужно устанавливать, т.к. документы, которые формируют проводки, могут формировать движения по регистрам или устанавливать периодические реквизиты, следовательно их нельзя удалять после формирования остатков по счетам.

Перенос остатков по регистрам фиксацией регистров.

Остатки по регистрам можно перенести только путем проведения специального документа, т.к. движения по регистру делаются только при проведении документа и не могут быть скорректированы извне.
Используется документ ФиксацияРегистра.

Документ можно ввести вручную для нужного регистра, записав его на конец даты закрытия. Для внесения остатков на позицию документа нужно нажать кнопку "Загрузить остатки".

С помощью обработки СформироватьДокументыЗакрытияПоРегистрам можно автоматизировать этот процесс. Она позволяет выбрать регистры, которые нужно перенести и автоматически сформировать документы ФиксацияРегистра. Лучше формировать регистры по нескольку(3-5) за раз, т.к. эти документы имеют большой размер и при формировании сразу 3-5 больших документов программа предъявляет большие запросы к памяти, т.к. окна документов закрываются только после завершения обработки.

Несколько слов о самом документе:

Документ состоит из 20 колонок неопределенного вида. В документ последовательно заносятся значения измерений и ресурсов по каждому итогу регистра. Т.е. если у регистра 5 измерений и 2 ресурса, при этом в наличии 1000 итогов, то в документе будет записано (5+2)*1000 / 20 = 350 строк, и в нем будет храниться 7000 значений.

Документ достаточно большой, но в результате использования 20 колонок требования к памяти, используемой 1С для отображения и манипулирования документом снижаются. Был испробован вариант, когда в документе была только 1 колонка, но 1С явно не справлялась с отображением документов в 40-50 тысяч строк.

Дальнейшее разбиение лишается универсальности, хотя и возможно - нужно делать документ в разрезе отдельных измерений. Для этого нужно производить анализ итогов, чтобы выяснить, какие измерения дадут оптимальные по размерам документы (ведь много маленьких документов это тоже плохо). Но в целом, даже большие регистры переносятся с достаточной скоростью, чтобы говорить о том, что разработка может применяться на практике. Может!

Перенос остатков по регистрам имеющимися документами.

Перенос остатков через фиксацию регистров прост и удобен. Но работать с документом фиксация регистра пользователи не смогут. Кроме того, если в течении года структура регистра изменится, возможно документ фиксация регистра уже не перепроведется. Поэтому желательно вносить начальные остатки имеющимися в конфигурации документами.

Например, в типовых конфигурациях имеются документы "ВводОстатковТоваров", "ВводОстатковКредита" и другие. Такие документы понятны пользователю и он может вносить в них изменения. При изменениях в регистрах меняется модуль документа, но нет нужды менять данные документа. В крайнем случае можно вносить начальные остатки документами "ПриходнаяНакладная", "ПриходныйОрдер" и т.п.

Вашему вниманию предлагается универсальная обработка для закрытия периода с помощью имеющихся в конфигурации документов УниверсальноеЗакрытиеПериодаПоРегистрам.ert. Она не требует вмешательства в конфигурацию и не требует внесения изменений в свой код. Достаточно описать настройки в таблице настроек НастройкаЗакрытияБазы.mxl, чтобы правильно закрыть все регистры.

Структура mxl-таблицы настроек очень проста. Каждая строка соответствует регистру. В колонке Регистр указывается название документа, в колонке Документ указывается название вида документа, который будет создан.

В поле Измерения записывается список измерений и ресурсов регистра, который используется для вычисления остатков. Остатки вычисляются на конец даты закрытия и помещаются в таблицу значений Итоги. Значения списка заключаются в кавычки и разделяются запятыми, смотрите пример.

В поле Фильтр содержится выражение на встроенном языке 1С для отбора остатков из таблицы Итоги. Можно оперировать с текущей строкой таблицы Итоги. Если выражение не указано, фильтр не применяется. Выражение должно возвращать не-ноль, чтобы быть истинным и попадать в результирующий набор итогов. Рекомендуется использовать оператор ? из языка 1С.

Примеры:
- Отобрать только по упр.учету: Итоги.ТипУчета=1 или ПустоеЗначение(Итоги.Фирма)=1
- Отобрать только по складу готовой продукции: Итоги.Склад=ИмяВСпр("Склад готовой продукции","МестаХранения")

Используя фильтр, можно по одному регистру, например, сделать два разных вида документа закрытия.

В поле Преобразование записывается выражение, которое преобразует атрибуты таблицы итогов по регистрам в значения атрибутов шапки или табличной части нужного документа, т.к. обычно они называются по-разному. Система применяет достаточно грамотную схему, определяет, какие атрибуты используются в шапке документа, группирует по этим атрибутам и если значения атрибутов шапки одинаковые, то просто добавляет строки итогов в табличную часть.

Для добавления/установки атрибутов в таблицу итоги используется функция Установить(Атрибут, Выражение), которая возвращает 1. Если атрибута в таблице нет, он добавляется. Если нужно установить несколько атрибутов, нужно несколько раз вызвать функцию Установить, сложив ее результаты, т.е.: Установить(Атрибут1, Выражение1)+Установить(Атрибут2, Выражение2).

Пример:
- Установить Коэффициент: Установить("Коэффициент",1)
- Установить Количество из ОстаткаТоваров: Установить("Количество",Итоги.ОстаткиТоваров)
- Установить Валюту в Доллары: Установить("Валюта",Доллары)
- Сбросить поле Контрагент, чтобы не разворачивать остатки по контрагенту: Установить("Контрагент",ПолучитьПустоеЗначение())

В поле максимальное количество строк указывается максимальное количество строк, содержащееся в документе. Это нужно, чтобы не формировать очень больших и долго проводящихся документов. Большие документы будут дробиться согласно указанному количеству строк.

Для запуска обработки нужно сначала открыть файл настроек, выбрать регистры, которые будут закрываться и нажать "Сформировать". Будут сформированы документы закрытия. Они не будут проведены и документы закрытого периода не будут удалены. Все это нужно сделать отдельно.

Данный способ закрытия требует некоторой настройки, зато усилия окупаются сторицей. Зато у вас в руках мощный отлаженный инструмент и вам не надо писать обработку, достаточно написать только ее настройку.

Кстати, один полезный совет - в типовых конфигурациях в документах по вводу остатков не допускается отрицательное количество товара. Поэтому или делайте из таких документов расходные накладные (это можно этой обработкой с помощью фильтра и преобразования) или разрешайте использование отрицательные количества.

Перенос значений периодических реквизитов.

Если удалить документы закрытого периода, то те значения периодических реквизитов, которые они устанавливали будут утеряны (например, цены актом переоценки). Следует заметить, что значения, которые были установлены вручную, останутся. Поэтому перенос значений касается только тех реквизитов, которые устанавливаются при проведении документов. Т.к. некоторые реквизиты могут устанавливаться только при проведении документов, используется не внешняя обработка, а документ.

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

Для сохранения реквизитов нужно нажать кнопку "Все" (означает загрузку всех реквизитов), а затем кнопку "Добавить значения на дату документа".

При загрузке значений рекомендуется устанавливать галочку "Пропускать помеченные на удаление". При этом значения реквизитов, принадлежащие помеченным на удаление элементам пропускаются. Если это не соблюдать, то такие элементы не смогут быть удалены, т.к. на них будет ссылка в этом документе.

С помощью обработки СформироватьДокументыЗакрытияПоПериодическим можно автоматизировать этот процесс. Она позволяет выбрать регистры, которые нужно перенести и автоматически сформировать документы ФиксацияПериодических.
Для очистки ссылок из помеченных на удаление элементов служит кнопка "Удалить пом. на уд. элементы".
После закрытия периода можно периодически производить такие чистки.

Удаление документов закрытого периода.

Сформированные документы при проведении сформируют новые остатки по счетам и регистрам. Однако эти остатки будут в два раза больше реальных, т.к. они складываются с остатками, сформированными документами закрытого периода. Поэтому эти документы нужно удалить.

Рекомендую воспользоваться входящей в пакет обработкой УдалитьВсеДокументыЗаПериод. Практика показывает, что документы удаляются быстрее, если перенести точку актуальности на начало периода (на самый первый проведенный документ). По идее то же можно сделать и с бухитогами, но лучше их не трогать - их пересчет может быть достаточно длинным. Обработка сначала помечает на удаление операции, а затем выбирает только проведенные документы и помечает их на удаление.

В режиме транзакции удаление идет в некоторой степени быстрее, но в таком случае лучше запускать обработку удаления документов по небольшим периодам (2 месяца), т.к. в случае любой ошибки (или если вы прервете обработку) изменения не зафиксируются.

Естественно, удаление должно запускаться в монопольном режиме и на сервере.

Исследования:
DBF база за год объемом 100 проведенных документов в день (30 тысяч проведенных документов в год)
Сервер - Win2K Workstation Celeron 1700, 256 RAM
показали, что скорость удаления - 80 документов в минуту, или примерно 2 месяца в час, т.е. год удаляется за 6-8 часов.
Однако вам лучше провести предварительное исследование, чтобы узнать, сколько времени будут удаляться документы. В базах крупных супермаркетов удаление может длиться порой до двух суток, тогда лучше произвести закрытие на уик-энд или некоторое время работать без реальных остатков.

В файле Протокол удаления.xls содержатся данные по реальному удалению документов в базе с производственной конфигурацией ИТР (среднего размера), когда точка актуальности была перенесена на началало периода. Исходя из этого графика видно, что скорость линейная, без разницы в скорости в начале и конце месяца и равна примерно 5000 документов в час или 2.5 месяца в час. Эту скорость и можно считать примерной для средних DBF баз. На этой же базе, если точка актуальности не менялась, скорость тоже остается линейной, но составляет уже 2580 документов в час или в два раза медленнее. Выводы очевидны - выигрыш в скорости в 2 раза.

Знающие люди посоветовали еще один способ - сделать выгрузку данных из базы, удалить из нее все документы до указанной даты (там все в текстовом виде) и загрузить обратно. Еще быстрее, еще производительней!

Последовательность действий

Пусть Д - это дата закрытия периода, закрытие периода мы делаем на конец даты Д, возможно за дату Д имеются документы (часто Д - это 31 декабря).

Сделайте архив базы, затем сформируйте и сохраните контрольные отчеты по остаткам, оборотно сальдовую ведомость с учетом валют и забалансовых счетов, прайс-лист и прочие важные отчеты.

Сделайте копию базы - это будет старая база.

Сформируйте операции по переносу остатков по бухгалтерским счетам с помощью wrap.ert, укажите дату Д. Поставьте галочку, запрещающую удаление документов.

Сформируйте документ ДвижениеРегистра по каждому регистру (вручную или обработкой), запишите его на конец даты Д, внесите остатки, не проводите.

Сформируйте документ ФиксацияПериодических по каждому справочнику, содержащему устанавливаемые документами периодические реквизиты, (вручную или обработкой) запишите его на конец даты Д, внесите значения реквизитов, не проводите.
С помощью обработки документов пометьте на удаление документы с начала периода (можно указать 01.01.1980) по дату Д-1 включительно. Документы за дату Д удалите вручную.

Установите точку актуальности на дату Д+1 и проведите документы ДвижениеРегистра и ФиксацияПериодических.

Сформируйте в закрытой базе контрольные отчеты и сравните их с отчетами в исходной базе.
В случае совпадения остатков по контрольным отчетам закрытие периода завершено.

Пропишите пользователям путь к закрытой базе.

Рекомендуется перед закрытием сделать контрольное закрытие на копии базы для того, чтобы оценить скорость удаления документов.

См. также

Книга доходов и расходов и кассовая книга для 1С 7.7 любой конфигурации для предприятий на УСН, ПСН, ЕСХН

Закрытие периода Кассовые операции Учет доходов и расходов Платформа 1С v7.7 Конфигурации 1cv7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет ИП, ПБОЮЛ, КФХ Платные (руб)

Комплекс внешних обработок для ведения в электронной форме КУДиР - книги учёта доходов и расходов для предприятий на УСН, ПСН, ЕСХН. Автоматическое заполнение раздела 1, 4, 5 из журнала документов вашей информационной базы. Формирование кассовой книги №КО-4, приходных кассовых ордеров №КО-1 и расходных кассовых ордеров №КО-2.

2400 руб.

20.10.2014    124218    222    129    

218

Закрытие отрицательных остатков на 41 счете (БП 3.0 и Бух. 7.7)

Закрытие периода Логистика, склад и ТМЦ Платформа 1С v8.3 Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Бухгалтерия 3.0 Бухгалтерский учет Абонемент ($m)

Предлагаемые обработки позволят сформировать документ "Поступление товаров и материалов" по отрицательным остаткам ТМЦ (счета 41 и 10) за выбранный период. Для БП 3.0 и Бух. 7.7

1 стартмани

01.07.2021    8191    41    Ant10    0    

4

Документ Закрытие регистров для 1С: 7.7 Торговля и Склад

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

Нужен для обнуления ненужных остатков по регистрам, для ускорения работы 1С. Ненужные остатки: если по ним не было движений следующие 90 дней

1 стартмани

04.07.2017    16192    12    ManyakRus    5    

0

У контрагента изменился КПП. Как это отразить в декларации НДС при формировании в 1С: Предприятии 7.7?

Регламентированный учет и отчетность Закрытие периода Оптовая торговля Бухгалтерский учет 7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Налоговый учет НДС Абонемент ($m)

В связи с отсутствием в типовых решениях 1С Предприятие 7.7 возможностей для хранения периодического КПП, предлагается обработка, реализующая альтернативное решение по отражению в Декларации НДС изменения КПП контрагента. С помощью данной обработки изменения с привязкой к дате можно вносить в уже сформированный комплект файлов электронной декларации.

1 стартмани

29.06.2017    24117    2    Sergey1CSpb    0    

0

Обнуление счета

Закрытие периода Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Украина Бухгалтерский учет Абонемент ($m)

В бухгалтерии накопилась масса непонятных остатков на счетах. Новая главбухша решила навести порядок в базе, я не стал ей перечить. В результате родилась эта обработка.

1 стартмани

21.03.2016    17722    5    uus    3    

0

Декларация по НДС. Раздел 8 и 9 - конвертация в xml-формат из Excel

Регламентированный учет и отчетность Загрузка и выгрузка в Excel Закрытие периода Файловый обмен (TXT, XML, DBF), FTP Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет НДС Абонемент ($m)

Обработка формирует xml-файлы декларации по НДС из книги покупок и книги продаж, сохраненных в Excel. Пригодится тем, кому нужно вручную подправить декларацию.

1 стартмани

26.02.2016    20067    25    sarpa82    4    

2

Автоматический перенос даты запрета редактирования документов для 1С: 7.7 ТиС

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

Внешняя обработка автоматического переноса даты запрета редактирования документов 1С: 7.7 ТиС. Запускается при входе в Систему.

1 стартмани

17.02.2016    17776    5    avers007    1    

1

Расчет прямых расходов помесячно нарастающим итогом для стр.010 пр.2 к листу 2 декларации по налогу на прибыль

Закрытие периода Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Налоговый учет Налог на прибыль Абонемент ($m)

В соответствии с НК РФ производственные предприятия должны производить ежемесячно нарастающим итогом расчет прямых расходов по специальному алгоритму. Это является трудоемким процессом из-за необходимости ввода большого количества исходных данных ежемесячно. Предлагаемая обработка позволяет резко упростить этот расчет, так как пользователю требуется ввести всего пару исходных значений на начало года. Все остальные данные будут взяты автоматически из бухгалтерских итогов.

1 стартмани

08.02.2016    14719    4    chkurs    3    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. TrinitronOTV 14 11.02.12 08:51 Сейчас в теме
большая работа проделана, по описанию думаю вещь хорошая, спасибо автору
2. fixin 4252 11.02.12 15:37 Сейчас в теме
(1) учитывая, что 1с7 пользуются все меньше буду рад, если кому еще пригодится.
3. NoGuru 11.10.12 23:24 Сейчас в теме
При формировании фиксации регистра по регистру оборотов косяк. Для регистров оборотов не работает функция ВыбратьИтоги, она перебирает оборот, а не дает остаток. Для частных случаев подойдет, где важна общая сумма, если минус то встряли.
4. lelusha 06.02.14 22:43 Сейчас в теме
по 1с7 ее есть пользователи. автору спасибо, пригодится!
5. Nikola178 7 10.08.14 12:05 Сейчас в теме
да согласен, хоть семерка уже и не поддерживается, еще есть пользователи, которые в ней работают. за проделанную работу автору большой респект и уважуха, как говорится!
6. пользователь 19.11.20 12:28
Сообщение было скрыто модератором.
...
7. balthasar 38 30.07.21 19:13 Сейчас в теме
Здравствуйте! Когда-то пользовался данной обработкой, но за давностью лет утерял. И вот опять появилась необходимость свернуть одну базу, а обработку не могу найти и стартманей нет((( Не могли бы кто-нибудь, у кого осталась обработка, или уважаемый автор выслать обработку на email. Заранее благодарю.
Оставьте свое сообщение