Сайт Антона Гусева. | |||||
|
Особенности открытия периода бухгалтерских итогов в 1С-Предприятие 8.3 в режиме работы «Управляемое приложение»В настоящее время значительная часть баз данных на основе 1С-Предприятие 8.3 используется в режиме «Управляемое приложение». В том числе в этом режиме происходит и процесс регламентного обслуживания, такой, например, как открытие следующего периода. Рассмотрим процесс открытия очередного периода подробнее. Как всем известно регистры накопления и регистру бухгалтерии построены из нескольких таблиц. Для простоты понимания мы будем рассматривать только основные две:
Итоги необходимо иметь по всем регистрам за все периоды, которые могут быть востребованы пользователями для отчетов. Исходя из специфики работы базы данных - необходимый период итогов может различаться. Например, для регистров накопления, используемых в торговле требуется одни параметры, которые могут сильно различаться в зависимости от специфики работы предприятия. В то же время для бухгалтерии намного более стандартизированные требования для хранения итогов. В частности типичная ситуация, когда идет в текущем году построение отчета ОСВ или ОСВ по счету поквартально, по полугодиям, либо целиком за прошедший год. А теперь рассмотрим такую часто встречающуюся ситуацию. Прошел месяц, требуется провести открытие следующего периода. Идем в меню управления итогами. По умолчанию открывается форма «Управление итогами - часто используемые возможности». На самом деле будет открываться форма в том режиме, в каком мы ее закрыли последний раз, это либо краткий, либо полный режим. Но нас интересует именно «Управление итогами - часто используемые возможности». Это очень простая форма. Нам тут нужна кнопка «Установить период рассчитанных итогов». Если прочитать текст, то можно понять, что система все автоматически определила и предлагает открыть правильные периоды для регистров накопления и регистров бухгалтерии: ![]() Нажимаем кнопку «Установить период рассчитанных итогов;», пребывая в полной уверенности, что мы открыли следующий месяц, без ущерба для уже существующих итогов. По состоянию до нажатия кнопки итоги были рассчитаны за 2016 год с января по декабрь. То что хотелось бы видеть - это расчет итогов по текущий момент включительно, собственно, как и предлагалось в описании к кнопке. Посмотрим, так ли это. Для этого нам необходимо переключиться в режим полных возможностей. ![]() А теперь смотрим на скриншот с результатом и попытаемся интерпретировать его: ![]() Мы видим, что регистры накопления рассчитаны не так как ожидалось, с 01.01.2016 по 30.04.2017, а за совершенно другой период: с 01.04.2016 по 30.04.2016. Аналогично бухгалтерский регистр рассчитан не с 01.01.2016 по 31.05.2017, а с 01.05.2016 по 31.05.2017. Неизвестно, подойдет ли такой период для функционирования торговли, но вот насчет бухгалтерии абсолютно точно будет потенциально очень серьезная проблема производительности при построении отчетов за 2016 год по следующим периодам: первый квартал, первое полугодие, год. Причем проблема производительности будет прямо пропорционально количеству проводок, проводимых базой в месяц, так как при отсутствии рассчитанных итого данные в запросе будут получаться из таблицы движений за данный период. Почему это получается? Неизвестно с какого момента это началось, с какого релиза платформы, но, по всей видимости 1С решила прибегнуть к такому решению с точки зрения оптимизации размеров базы данных. Типовые конфигурации достаточно большие, в том числе структура регистров содержит много измерений, видимо в какой-то момент было принято решение, что итоги нужны за текущий месяц и плюс за предыдущий год. Ведь именно так и рассчитываются итоги в «простом» режиме, если администратор базы данных вручную не указывает правильный период, пользуясь «полным» режимом. Для исправления ситуации мы воспользуемся кнопкой «Установить период итогов...». ![]() В открывшемся диалоге введем требуемые начальные даты отдельно для итогов регистров накопления и отдельно для бухгалтерии. У меня дата начала года подставилась туда автоматически. Нажмем кнопку «ОК». Смотрим, что получилось: ![]() Как видно, теперь мы получили то, на что рассчитывали изначально. Какой из этого можно сделать вывод? Только тот, что процедуру открытия периода в управляемых формах следует проводит с использованием режима «Управление итогами - полные возможности» и никак иначе, в противном случае возможно получить серьезную проблему производительности. Соответственно нужно понимать, какие даты следует ставить в поле для начальной и конечной даты и контролировать корректность этих дат. Тогда ошибки и связанной с ней проблемы производительности можно будет избежать! |
||||