Свертка БП 2.0 документами Ввод начальных остатков


Обработка свертки БП 2.0 по оригинальному алгоритму - рассчитываются остатки на выбранную дату, создаются документы "Ввод начальных остатков". Затем эти документы выгружаются в файл XML и загружаются в чистую базу. Обороты за период (документы и операции) после свертки также через XML переносятся в новую базу.
В отличие от "стандартного" алгоритма (которого для БП 2.0 на сегодняшний день нет, или я про него не знаю) требует гораздо меньшего времени на осуществление самой свертки - не надо помечать на удаление документы, ждать их окончательного удаления и нет необходимости упаковки базы через тестирование и исправление. Время, необходимое на обработку результатов свертки, зависит в первую очередь от корректности ведения учета в исходной базе.
Большая просьба ко всем, кто решится на её использование, описать возникшие проблемы, если они проявятся - постараюсь исправить.
Новая версия для свертки 2.0 или 3.0 в 3.0 - http://avprog.ru/public/509628/
Огромное спасибо всем откликнувшимся!!!

Свёртка БП 2.0. (история изменений в конце описания)

   Несколько слов о том, для чего, собственно, нужна сама процедура свертки:
   1. С течением времени в информационной базе  накапливается большой объем данных. Результат – снижается быстродействие, много времени занимает обновления (особенно связанные с рекструктуризацией базы), в совсем «запущенном» случае элементарно не хватает ресурсов системы по «железу» (нет места на жестких дисках, не хватает оперативной памяти при формировании объемных отчетов итп).
   2. Иногда проще свернуть базу и исправить входящие остатки, чем исправить ошибки учета за весь период его ведения в программе. Это могут быть расхождения в регистрах бухгалтерского учета и регистров накопления (например по учету НДС или ОС), связанные с использованием ручных операций по БУ и НУ, без соответствующих ситуации движений по регистрам и многое другое.
   3.  В информационной базе имеются данные по организациям, прекратившим свое существование, которые уже не будут изменяться и висят в базе «мертвым грузом».
   4. После длительного ведения учета база «замусорена» ненужными (дублированными) элементами  справочников. Есть соответствующие обработки для исправления ситуации, но воспользоваться ими не всегда имеется возможность из-за закрытого периода, в котором ссылки на них существуют, но перепроведение документов в этих периодах нежелательно, да и само исправление занимает много времени. Проще перенести справочники при свертке базы по ссылкам и исправить ошибки в документах ввода остатков.
   5. Есть множество помеченных на удаление объектов, которые невозможно удалить из-за большого числа ссылок. Их наличие нарастает как снежный ком, т.к. оперативно удалить только что некорректно введенный документ (элемент справочника) не получается, т.к. просто контроль возможности удаления занимает неоправданно большое количество времени.
Краткое описание обработки.
   Данная обработка не подразумевает стандартный механизм – ввод остатков с удалением документов до даты свёртки. На копии базы (или непосредственно в рабочей, если нет необходимости предварительной подготовки базы перед сверткой, о которых будет написано ниже) создаются документы Ввод начальных остатков. Эти документы выгружаются в файл XML универсальной обработкой обмена и загружаются в чистую базу ей же. Правила переноса остатков созданы в конфигурации «Конвертация». Обороты с даты свертки переносятся обработкой ВыгрузкаЗагрузкаXML82_MY.epf (обработка с диска ИТС чуть доработанная для исправления ошибки, возникающей при её вызове из обработки свёртки). Если документы ввода остатков создавались в рабочей базе, их можно непосредственно удалить из этой же обработки.
   Обработка тестовая – сложно предусмотреть все варианты формирования документов «Ввод начальных остатков» для разных настроек ведения учета, разных организаций и разных учетных политик. Необходимо тестирование на разных базах, чем убедительно прошу вас заняться. Могу сказать, что свернул несколько баз – иногда возникали заморочки, связанные или с некорректным учетом или изменением типовой конфигурации в части настройки Плана счетов! Результат получился во всех случаях положительный, но хотелось бы максимально оптимизировать алгоритм для разных ситуаций.
   Описание предлагаемого алгоритма свертки.
   Для создания документов «Ввод начальных остатков», выгрузки их в XML файл и выгрузки оборотов используется внешняя обработка «СверткаБазы_ВводОстатков.epf». Написано на базе стандартной обработки с диска ИТС «СверткаБазы.epf», предназначенной для БП 1.6, УПП, УТ, но не работающая в БП 2.0 из-за отсутствия в конфигурации документов «Корректировка записей регистров» и наличия двух Планов счетов БУ и НУ.
   Первой попыткой сворачивать БП 2.0 у меня была эта же свертка, переделанная под ручные операции (http://avprog.ru/public/116098/), но не нравится время, необходимое для такой свертки (слишком долго) и исправление результатов такой свертки – связанные данные (напр. по ОС) находятся в разных документах, разобраться с которыми достаточно сложная задача. Аналогичная ситуация была с переходом с 1.6 на 2.0 – те же операции  по остаткам – очень неудобно при необходимости их корректировки.
 
  Описание обработки «СверткаБазы_ВводОстатков» (запускается в копии исходной базы или непосредственно в рабочей, что нежелательно):

   Закладка «Общие настройки»:
   
* Дата свертки – дата, предшествующая началу ведения учета в новой информационной базе. Этой датой формируются документы «Ввод начальных остатков» в исходной базе (документы создаются непроведенными, служат для переноса информации в чистую базу);
* Организация – фильтр выгрузки остатков по выбранной организации. В исходной свертке остатки формировались по всем организациям, сделал этот отбор ещё по одной причине – иногда надо «разбить» учет по нескольким организациям в одной базе  на несколько отдельных баз;
* Ограничивать количество строк в документах ввода остатков – можно не устанавливать для свертки небольших баз, если же остатков предполагается много, рекомендуется установить. Документов будет больше, но с ними проще будет работать;
* При установленном флаге Ограничивать….. необходимо указать количество строк, например 50 или 100;
* Таблица «Разделы учета» - возможность разбить формирование остатков (или ограничить формирование) по разделам учета. Остатки можно сформировать по отдельным разделам учета, выгрузить и проверить в новой базе. Затем удалить из исходной документы по этому разделу и сформировать по следующему итд;
* Кнопка «Проверить» - анализирует состояние учета и выдает ошибки в окно сообщений (анализ сейчас в стадии разработки, но грубые ошибки показывает). Если есть ошибки, их можно попытаться исправить перед формированием документов, а можно отложить исправление и исправить ошибки уже в новой базе.

Закладка «Документы ввода остатков»:

* Кнопка «Сформировать документы» - создает документы по выбранным на закладке «Общие настройки» разделам учета. Созданные документы отображаются в таблице.
* Кнопка «Восстановить список» - заполняет таблицу ранее введенными документами ввода остатков (выводятся ВСЕ документы на выбранную дату свертки по выбранной организации) .
* Кнопка «Удалить» - непосредственно удаляет документы, для которых в колонке «Пометка» таблицы установлено «Да».

Закладка «Выгрузка данных»:

* Имя файла остатков – полное имя файла для выгрузки документов начальных остатков.
* Имя файла обработки – полное имя файла внешней обработки «ВыгрузкаЗагрузкаXML82_MY.epf» или, после регистрации обработки кнопкой «Зарегистрировать», заполняется именем «Выгрузка и загрузка данных XML», как оно заполнено в справочнике «Внешние обработки».
* Имя файла оборотов – полное имя файла для выгрузки оборотов за период после свертки.
* Кнопка Выгрузить документы ввода остатков – выгружает ВСЕ не помеченные на удаление документы «Ввод начальных остатков» на выбранную дату. Правила выгрузки программа берет из встроенного макета. Для выгрузки используется встроенная в конфигурацию обработка «Универсальный обмен данными XML» из меню «Сервис» - «Прочие обмены данными». Можно использовать непосредственно эту обработку для выгрузки (правила для обмена в файле ПравилаОбменаДанными_ВводНачальныхОстатков.xml). Используются «свои» правила, т.к. в созданных документах ввода остатков все ссылки на документы содержат все  реквизиты, не нужные для ввода остатков. Выгружаются только даты и номера документов и элементы справочников по ссылкам. Так же выгружаются константы и учетная политика организаций. Если есть необходимость с остатками выгружать информацию по другим правилам их можно создать (изменить прилагаемые) в конвертации. Прилагаемые правила создавались для релиза 2.0.32.4.
* Кнопка Выгрузить обороты – выгружает документы за период после свертки. Выгрузка происходит автоматически с помощью выбранной обработки в два этапа – выгрузка всех документов без их движений, затем выгрузка операций с движениями т.к. по другому их выгрузить невозможно. Для обоих этапов выгрузки создаются два файла выгрузки – первый с документами в указанный файл , второй создается по тому же пути только к имени файла добавляется постфикс «_Операции». Можно воспользоваться ИТСовской обработкой ВыгрузкаЗагрузкаXML82, настроив выгрузку по своему усмотрению.
Вообще закладка «Выгрузка данных» сделана для «облегчения жизни» - не надо настраивать выгрузку в стандартных обработках – параметры в них передаются автоматом, но можно пользоваться типовыми, настраивая их по своим потребностям.

Обработка «СверткаБазы_ЗагрузкаРезультатов». Запускается в пустой информационной базе, созданной для продолжения ведения учета – создается база с последним релизом БП и своими изменениями (при их наличии и их необходимости, что не всегда одно и то же):

* Реквизиты выбора файлов повторяют описанные выше для закладки «Выгрузка данных».
* Кнопка «Остатки» - загрузка документов «Ввод начальных остатков» из выбранного файла.
* Кнопка «Документы» - загрузка документов из выбранного файла.
* Кнопка «Операции» - соответственно загрузка операций.
* Кнопка «Провести остатки» - проведение непроведенных и не помеченных на удаление документов ввода остатков, если документ не проводится – он открывается для исправления. Перед использованием проведения документов ввода остатков необходимо проверить настройку параметров учета, учетную политику, сравнить с исходной базой и, при необходимости скорректировать. Особое внимание уделить настройке ведения учета по партиям, способов списания МПЗ. По большому счету, если перенос осуществляется на начало года, лучше ввести для него новую учетную политику, как рекомендует 1С.
* Кнопка «Провести обороты» - открывает обработку «Групповое проведение документов», с помощью которой перенесенные документы должны быть проведены (после загрузки они только «числятся» проведенными, на самом деле движения документов не переносятся – необходимо их провести).
   Обработку «СверткаБазы_ЗагрузкаРезультатов» опять же можно не использовать – все операции можно осуществить «штатными» обработками.

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

1. План счетов:
1.1 Если вносились изменения – необходимо убедиться, что не были введены субсчета к существующим в типовой настройке по «ключевым» счетам. Например, при вводе субсчетов к счету 01.01 документы сформируются только по остаткам на добавленных субсчетах. Например: для одной организации балансовая стоимость учитывается ОС на счете 01.01.1, а для второй на 01.01. Для второй организации документы по счету 01.01 сформированы не будут – остаток  рассчитывается по субсчету самого последнего уровня. Для свертки по таким счетам необходимо все остатки «привести» к одному субсчету, к которому не открыты дополнительные субсчета.
1.2 Ввод новых субсчетов к некоторым счетам, например к 76 скорее всего приведет к созданию документов по разделу ввода остатков – «Прочие счета учета». Эти документы практически не отличаются от операций вручную – нет коррсчета в строках таблицы.
1.3 Если свёртка производится не на начало года, в ней будут остатки по субсчетам счетов 90 и 91. Для ОСНО, при корректировке таких остатков, по счету 90.01.1 например, строку из документа надо будет удалять и ввести остаток операцией, т.к. документ не позволяет вводить разные суммы по БУ и НУ без образования временных или постоянных разниц, что в этом случае неправильно – по БУ кредитовый оборот 9..01.1 с НДС а по НУ без НДС (НДС по БУ вычитается по дебету 90.03, НУ там, на 90.03, нет вообще).
2. Ввод остатков по 41 счету для предпринимателя – документ надо обработать вручную – пока нет алгоритма расчета оплаченных товаров итп.
3. Если имеются остатки по субсчетам 19 счета – документы ввода остатков надо проверить и, при необходимости отредактировать вручную. Вообще следует разобраться, должны ли они быть вообще.
4. По счету 76.АВ остатки не переносятся, при правильном ведении учета они (в общем случае) соответствуют остаткам по счету 62.02 и могут быть введены с помощью обработки Регистрация счетов – фактур на аванс на дату свертки, с соответствующей корректировкой остатка по счету 68.02. Сделал так, потому что если учет в базе велся некорректно, не тащить в свернутую базу «левые» документы.

Изменения:

24.01.12 - Исправил ошибку при вводе НДС по МПЗ - было в сумме - сделал сверху.

10.03.12 - Добавил возможность выбора внешнего файла правил переноса начальных остатков. Выложил два варианта правил для использования или доработки под себя.  На закладке "Выгрузка данных" можно выбрать правила выгрузки данных. Правила созданы с помощью конфигурации конвертация для БП 2.0.32.4 (тестировались и на 2.0.33.7). Варианты с переносом регистров сведений по счетам учета (НА, ОС расчетов с контрагентами и т.д.) и с регистрами и выгрузкой Плана счетов. Можно использовать непосредственно эти правила или дораобтать их "под себя". Для подключения не нужно использовать конфигуратор. Если не выбирать файл правил - будут использованы исходные, встроенные в обработку.
11.03.12 - Исправил заполнения документов по счетам 10.07, 10.11
24.04.12 - Исправлено - в остатках по 03 счету ошибку исправил PloAl.
- Изменен порядок ввода аналитики субконто "Документы расчетов с контрагентами" - при пустых субконто в итогах создаются или находятся уже созданные документы "Документ расчетов с контрагентами (ручной учет)", выложен ещё один вариант правил обмена - использовал код от FreeArcher.
- Добавлено в строках ввода остатков по счету 10.11 аналитика "Назначение использования" и "СпецМатериалПервоначальнаяСтоимость " - использовал код от unknown181538.
- исправлены др. замеченные ошибки.
26.04.12 - Исправлена ошибка поиска документа расчетов
06.0612 - Исправлен раздел учета для счета 76.41
13.06.12 - Исправлена ошибка, замеченная xavi - убрал повторяющееся условие.
12.02.13 - Исправлена ошибка формирования ВНО по 60.02. и 62.02, проставлена валюта регламентированного учета в ВНО, там, где поле не заполнялось.
14.02.13 - Исправлена ошибка при формирование ВНО по счету 76, доработан механизм ввода документа расчетов с контрагентами при их отсутствии в исходной базе.
08.04.13 - Исправлены ошибки, внесены изменения по замечаниям Alister, CnupT, francisco (открытие документа при ошибке записи, режим загрузка при записи, аналитика по счету 19.07)
08.08.13 - Исправлены замеченные ошибки по Документам расчетов с контрагентами
22.03.14 - Включены изменения от mr_jpa, исправлены некоторые моменты при заполнении ВНО по 19 счету, включил возможность ввода ВНО по 76.АВ (но это "от лукавого", ИМХО предпочтительней ввести остатки после исправления счета 62.02).
Новая версия - файл СверткаБазы_ВводОстатков_v2.0.epf 
14.03.15 - Изменён алгоритм получения документов расчетов с контрагентами при создании ВНО - сначала попытка найти документ, если не найден - то создаётся новый, исправлено что-то ещё :-)
Новая версия - файл СверткаБазы_ВводОстатков_v2.2.epf

Файлы обработки:

-