При попытке изменить КПП организации или внести новую регистрацию в налоговом органе с текущей даты пользователи часто сталкиваются с ошибкой подсистемы дат запрета изменения: «История регистрации в налоговом органе с полем период = "31.12.1899" в запрещенном периоде невозможно изменить». Разберем подробно, почему программа обращается к 1899 году и какими способами можно успешно сохранить новые реквизиты.
Проанализируем внутреннее устройство хранения данных в 1С. В типовых конфигурациях (включая 1С:Бухгалтерию 3.0) история изменения КПП и налоговых инспекций хранится в периодическом регистре сведений История регистраций в налоговом органе (или Регистрации в налоговом органе).
Ошибочная ситуация складывается из двух факторов:
31.12.1899 (или 01.01.0001) соответствует незаполненному (пустому) значению даты. Если при создании организации начальная запись истории создавалась без указания даты, система хранит её как минимально возможную дату.Организации платформа перезаписывает весь набор записей регистра целиком. Подсистема «Даты запрета изменения» (БСП) анализирует каждую строку записываемого набора. Обнаружив первую историческую запись с датой 31.12.1899, система видит, что она попадает в закрытый период, и полностью блокирует операцию, даже если добавляется новая строка с актуальной датой.Рассмотрим стандартный пользовательский вариант решения без открытия закрытого периода для всех сотрудников организации. Разберем по шагам, как локально настроить права:
15.06.2017), после чего запишем изменения.Если нет возможности временно изменять настройки даты запрета, рассмотрим вариант добавления новой строки напрямую в регистр сведений без перезаписи всего набора карточки организации:
История регистраций в налоговом органе.Регистрации в налоговом органе с новым КПП.Чтобы ошибка не повторялась при последующих закрытиях периодов и редактировании карточки предприятия, устраним первопричину — пустую дату в регистре:
История регистраций в налоговом органе через карточку организации (гиперссылка истории регистрации) или через Функции для технического специалиста.31.12.1899).Посмотрим на технические варианты решения задачи, если требуется автоматизировать процесс или исключить ручные манипуляции с датами запрета:
Вариант с внешней обработкой: Сформируем запись набора программно с отключением стандартных проверок БСП с помощью свойства ОбменДанными.Загрузка:
НаборЗаписей = РегистрыСведений.ИсторияРегистрацийВНалоговомОргане.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Организация.Установить(ВыбраннаяОрганизация);
НаборЗаписей.Прочитать();
НоваяСтрока = НаборЗаписей.Добавить();
НоваяСтрока.Организация = ВыбраннаяОрганизация;
НоваяСтрока.Период = Дата("20170615");
НоваяСтрока.РегистрацияВНалоговомОргане = НоваяРегистрация;
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НаборЗаписей.Записать();
Вариант через расширение конфигурации: В общем модуле ДатыЗапретаИзменения можно переопределить логику проверки наборов записей при помощи аннотации &Вместо или &Перед, добавив исключение проверки для пустых дат (31.12.1899) в наборах регистра истории регистраций.