Вопрос восстановления последовательности документов является одним из самых критичных для поддержания актуальности данных в бухгалтерском учете. В конфигурации 1С:Бухгалтерия предприятия 2.0 КОРП, работающей на платформе 8.2, пользователи часто сталкиваются с проблемой: штатный механизм восстановления последовательности работает глобально по всей базе данных. Если в одной базе ведется учет по десяткам организаций, перепроведение всех документов может занять колоссальное количество времени и затронуть закрытые периоды других компаний. Рассмотрим, как решить эту задачу точечно для одной организации.
Давайте проанализируем ситуацию. В меню Операции — Проведение документов на вкладке Восстановление последовательностей представлен системный интерфейс. Его главная особенность в редакции 2.0 заключается в том, что он не поддерживает фильтрацию по реквизиту Организация. Система видит "общую очередь" документов. Если в этой очереди встречается документ организации "А" с ошибкой, граница последовательности останавливается для всех остальных организаций (Б, В, Г и т.д.), даже если по ним учет ведется идеально.
Посмотрим, какие инструменты позволяют обойти это ограничение и выполнить работу избирательно.
Это основной и наиболее доступный способ для бухгалтера и технического специалиста. Разберем по шагам, как правильно настроить этот инструмент:
Сервис — Групповая обработка справочников и документов.Документы.Выполнять в транзакции и Разрешить изменение проверенных документов.Организация Равно [Ваша Организация]. Также рекомендуется установить фильтр по периоду и по состоянию Проведен Равно Да.Провести.Важно понимать разницу: этот метод выполняет физическое перепроведение документов, что обновляет их движения (проводки) в регистрах. Однако, с точки зрения системы 1С, техническая граница последовательности может остаться на месте, если в базе есть "проблемные" документы других организаций, созданные ранее.
Если ваша конфигурация дополнена модулем БИТ.ФИНАНС, обычного перепроведения бухгалтерских документов может быть недостаточно. Выясним причину: БИТ.ФИНАНС часто использует собственные механизмы формирования движений по управленческим и бюджетным регистрам.
При восстановлении данных в такой связке нужно учитывать следующее:
Формирование проводок по бюджету. В ней также доступен фильтр по конкретной организации и сценарию.Объект.Записать(РежимЗаписиДокумента.Проведение) должны обновиться обе системы.Рассмотрим ситуацию, упомянутую в обсуждении: бухгалтер ввел Реализацию в 10:00, а затем Поступление того же товара в 17:00 (задним числом). Даже если вы запустите групповое перепроведение, 1С будет проводить документы в строгом хронологическом порядке их записи. Если время документа реализации меньше времени поступления, система выдаст ошибку "Товара недостаточно на складе", так как на 10:00 его еще официально не было.
Для исправления таких логических цепочек рекомендуется перед перепроведением использовать обработки по автоматическому исправлению времени документов. Например, можно программно установить время всех поступлений на начало дня (00:00:01), а реализаций — на конец дня или в порядке их следования.
Для программистов существует возможность принудительно "сдвинуть" границу последовательности для конкретной организации, не перепроведя всю базу. Однако стоит помнить, что в типовой БП 2.0 последовательность Основная не имеет измерения Организация. Это означает, что граница одна на всю базу.
Если вам все же требуется программно перепровести документы в правильном порядке, можно использовать следующий фрагмент кода для вызова проведения:
// Пример перепроведения документов конкретной организации в цикле
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг
|ГДЕ
| Организация = &Организация
| И Проведен = ИСТИНА
| И Дата МЕЖДУ &ДатаНач И &ДатаКон
|УПОРЯДОЧИТЬ ПО
| Дата ВОЗР";
Запрос.УстановитьПараметр("Организация", ВыбраннаяОрганизация);
Запрос.УстановитьПараметр("ДатаНач", НачалоПериода);
Запрос.УстановитьПараметр("ДатаКон", КонецПериода);
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
ОбъектДок = Результат.Ссылка.ПолучитьОбъект();
Попытка
ОбъектДок.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
Сообщить("Документ " + Результат.Ссылка + " перепроведен успешно.");
Исключение
Сообщить("Ошибка при проведении " + Результат.Ссылка + ": " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Подведем итог нашего анализа. Восстановить последовательность именно как системный объект по одной организации в 1С 8.2 БП 2.0 невозможно из-за архитектуры самой последовательности (отсутствие измерения "Организация"). Однако, цель восстановления последовательности — актуализация остатков и проводок — полностью достижима через Групповую обработку справочников и документов с настроенным фильтром.
Важные советы перед началом работы:
Таким образом, мы выяснили, что хотя "кнопки" для восстановления последовательности одной организации не существует, использование штатных обработок фильтрации позволяет добиться необходимого результата с минимальными рисками для учета других компаний в базе.