При переходе с конфигурации 1С:Комплексная автоматизация 2.4 на версию 2.5 (особенно на релизы 2.5.7 и выше) многие пользователи и администраторы сталкиваются с неприятной ситуацией: документы ввода начальных остатков, созданные в старой версии, становятся недоступны для редактирования. При попытке открытия система выдает системное сообщение: "Документ ввод остатков необходимо создавать из рабочего места Начальное заполнение". При этом в самом рабочем месте эти документы отсутствуют.
В этой статье мы подробно разберем, почему это происходит, проанализируем архитектурные изменения в системе и рассмотрим несколько способов решения данной проблемы — от методологически верных до технических «хаков».
Рассмотрим ситуацию с точки зрения архитектуры метаданных. В версии КА 2.4 подсистема ввода остатков строилась на базе одного универсального документа Документ.ВводНачальныхОстатков. Этот документ имел множество типов операций: от ввода остатков по собственным товарам до расчетов с подотчетными лицами и задолженности клиентам.
Начиная с версии 2.5, фирма «1С» полностью пересмотрела этот подход. Теперь для каждого раздела учета существует отдельный специализированный документ. Например:
ВводОстатковТоваров — для учета ТМЦ;ВводОстатковДенежныхСредств — для банковских счетов и касс;ВводОстатковВзаиморасчетов — для долгов контрагентов.Старый документ ВводНачальныхОстатков в новых версиях считается архивным. Логика проведения в версии 2.5 существенно изменилась: используются новые регистры, изменились наборы измерений и ресурсов. Чтобы пользователь случайно не нарушил целостность данных, перепроведя старый документ по новым правилам (которые для него могут не подходить), система программно блокирует интерактивное редактирование форм старых документов.
Проанализируем работу рабочего места «Начальное заполнение». В КА 2.5 оно настроено на динамическое отображение только актуальных типов документов. Поскольку старые документы из КА 2.4 физически относятся к другому объекту метаданных (старому универсальному документу), фильтры рабочего места их просто «не видят».
Более того, в старых документах могут отсутствовать новые обязательные реквизиты, такие как НаправлениеДеятельности (в обновленной логике) или специфические ключи аналитики, которые необходимы для корректного отображения в современных интерфейсах КА 2.5.
Это наиболее безопасный и рекомендуемый путь, если вам необходимо внести правки в остатки трехлетней давности. Разберем по шагам, почему это лучший вариант:
РегистрНакопления.ТоварыНаСкладах или РегистрНакопления.РасчетыСПоставщиками) и внести исправление только в него.КорректировкаРегистров (КЗР) предназначен именно для таких случаев, когда типовые формы не позволяют внести изменения.Для реализации этого метода необходимо включить возможность использования корректировок в настройках (если они не выведены в интерфейс) и вручную заполнить движения по нужным регистрам, зеркально отражая изменения в бухгалтерском и оперативном учете.
Если бухгалтер категорически настаивает на редактировании именно «того самого» документа, нам придется заглянуть в конфигуратор. Посмотрим на типовую логику проверки.
Как правило, запрет на редактирование прописан в модуле формы документа в процедуре ПриСозданииНаСервере. Система проверяет версию документа или режим запуска и выводит сообщение через ТекстСообщения с последующим Отказ = Истина.
Чтобы обойти это ограничение без изменения конфигурации (используя расширение), мы можем проанализировать следующий код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверка, является ли документ архивным
Если Объект.Ссылка.Пустая() Тогда
// Разрешаем создание только новых документов через рабочее место
ИначеЕсли ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "ВерсияДанных24") Тогда
// Здесь срабатывает типовой запрет
// Для обхода в расширении можно установить Отказ = Ложь
КонецЕсли;
КонецПроцедуры
Рассмотрим вариант открытия документа через внешнюю обработку. Мы можем программно вызвать форму, передав ей специальные параметры, которые «обманут» проверку, или напрямую изменить реквизиты объекта и вызвать Объект.Записать(РежимЗаписиДокумента.Проведение).
Важно: Помните, что при программной записи старого документа в среде КА 2.5 могут не заполниться новые обязательные регистры, что приведет к «дырам» в учете и ошибкам при закрытии месяца.
Иногда причина кроется не только в программном коде, но и в обновленной системе прав. В КА 2.5 появились специализированные роли для работы с переходными периодами. Проанализируем список ролей пользователя:
ДобавлениеИзменениеДокументовВводаНачальныхОстатков.(устарело) или (для перехода с 2.4). В некоторых случаях чтение старых данных ограничено именно на уровне RLS (Record Level Security) или обычных прав на объект метаданных.Вместо того чтобы править документы трехлетней давности и рисковать необходимостью перепроведения всех периодов с момента ввода остатков, рассмотрим методически правильный подход в 1С:КА 2.5:
Выясним разницу между ошибочным остатком и правильным. Затем создадим новый документ ввода остатков актуального типа (например, Ввод остатков собственных товаров) датой начала текущего открытого периода. В документе укажем только дельту (разницу). Если нужно уменьшить остаток — вводим отрицательное число (сторно) или используем соответствующие хозяйственные операции.
Преимущества этого метода:
Если вы все же решили отредактировать старый документ через «Групповое изменение реквизитов» или программный обход, приготовьтесь к следующим последствиям:
1. Перезакрытие периодов: Любое изменение документа ввода остатков делает неактуальными расчеты себестоимости и партионного учета за все последующие месяцы. Система потребует выполнить операцию «Закрытие месяца» за огромный период.
2. Расхождение регистров: В КА 2.5 данные хранятся в регистрах накопления ВыручкаИСебестоимостьПродаж, ДетализацияСебестоимостиТоваров и других. Старый документ может просто не уметь делать в них записи по новым правилам «из коробки» без обновления алгоритмов проведения.
Подводя итог, можно сказать: техническая возможность открыть старые документы существует (через Функции для технического специалиста или программно), но методологически это тупиковый путь. Рекомендуем использовать Корректировку записей регистров для исправления ошибок в старых периодах или новые документы ввода остатков для исправления данных «здесь и сейчас».