Məzmuna keç
Tez Base

"Регистрация в налоговом органе" не может быть пустым: почему не проводится начисление зарплаты

· Dərc edilib:

Типовые для Казахстана

Документ “Начисление зарплаты и взносов” не проводится, и 1С пишет:

Запись не верна! Значение поля "Регистрация в налоговом органе" не может быть пустым!
(Регистр накопления: Сведения о доходах физических лиц; Номер строки: 1)

Короткий ответ для тех, кто пришёл из поиска. Проведение берёт регистрацию из регистра сведений “История регистраций в налоговом органе” на конец месяца начисления, и берёт её по подразделению строки начисления. Если история этого подразделения начинается позже месяца, за который считается зарплата, значение пустое. Карточку организации проведение для этого поля не читает, поэтому заполненная карточка ошибку не снимает.

Ниже порядок проверки на пять минут, два способа исправления (руками и обработкой) и то, на чём спотыкаются программисты, когда пишут исправление сами. Всё проверено на 1С:ERP для Казахстана с зарплатной подсистемой, платформа 8.3.27.

Кому что читать

ВыЧто нужноРаздел
Бухгалтер, документ не проводитсяпонять, где смотреть, и кому передать”Проверка за пять минут”, “Исправление руками”
Программист на сопровождениимеханизм, код, ловушки”Три регистра”, “Если пишете исправление сами”
Руководитель учётариски перед запуском в рабочей базе”Когда исправление не подходит”

Проверка за пять минут

Регистры открываются через “Все функции”.

ШагГде смотретьЧто увидите при этой болезниВывод
1Текст ошибкирегистр “Сведения о доходах физических лиц”если там другой регистр, механизм может быть другим, дальше по этой статье не идите
2Карточка организации, поле регистрациизаполнено, код налогового органа стоитнормально, и именно это сбивает со следа
3Документ, месяц начисления и подразделения в строкахранний месяц: у нас один из первых месяцев после приёма сотрудниковзапомните месяц и список подразделений
4Регистр сведений “История регистраций в налоговом органе”, отбор по структурной единицеу подразделений из шага 3 самая ранняя запись позже месяца начисленияпричина найдена
5Регистр “История регистраций в налоговом органе вторичный”интервалы начинаются с той же поздней датыподтверждение, после исправления здесь должен появиться ранний интервал

Главное в шаге 4: смотреть надо подразделения из строк начисления. У организации история может быть в полном порядке, а срез по подразделению всё равно пустой.

Почему в карточке заполнено, а в движениях пусто

Карточка хранит текущую регистрацию, без даты начала. История хранит, с какого дня какая структурная единица стоит на учёте в каком налоговом органе. Проведение спрашивает историю: “какая регистрация была у этого подразделения на последний день месяца начисления”. Если первая запись истории датирована позже, ответ пустой.

Движения по доходам собирает процедура общего модуля УчетНалоговВзносовОтчислений.СформироватьСведенияОДоходахПоНачислениям. Модуль в выгрузке весит 3,1 МБ, так что читать его стоит по имени процедуры. Регистрацию процедура получает таким соединением (фрагмент типового запроса, лишние поля убраны):

// Параметр КонецМесяцаНачисления = КонецМесяца(МесяцНачисления)
ВЫБРАТЬ
	Начисления.Подразделение КАК Подразделение,
	ИсторияРегистрацийВНалоговомОрганеСрезПоследних.РегистрацияВНалоговомОргане КАК РегистрацияВНалоговомОргане
ИЗ
	ВТНачисления КАК Начисления
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияРегистрацийВНалоговомОргане.СрезПоследних(
				&КонецМесяцаНачисления,
				СтруктурнаяЕдиница В
					(ВЫБРАТЬ
						Начисления.Подразделение
					ИЗ
						ВТНачисления КАК Начисления)) КАК ИсторияРегистрацийВНалоговомОрганеСрезПоследних
		ПО Начисления.Подразделение = ИсторияРегистрацийВНалоговомОрганеСрезПоследних.СтруктурнаяЕдиница

Две детали решают всё. Организации нет ни в условии среза, ни в условии соединения, только подразделение. И соединение левое: строка без пары в истории остаётся и уходит в движения с пустой ссылкой. Дальше срабатывает запрет пустого значения у измерения регистра накопления, и платформа останавливает запись на первой же строке. Отсюда “Номер строки: 1” в тексте ошибки.

Три регистра, которые участвуют

РегистрВидУстройствоРоль в ошибке
Сведения о доходах физических лицнакопления7 измерений, запрет пустых у четырёх: Организация, ФизическоеЛицо, ПериодРегистрации, РегистрацияВНалоговомОргане; у Подразделения запрета нетотказывает в записи движений
История регистраций в налоговом органесведений, периодичность “день”одно измерение СтруктурнаяЕдиница (организация, территория или подразделение), один ресурс РегистрацияВНалоговомОрганеисточник значения, срез на конец месяца
История регистраций в налоговом органе вторичныйсведений, непериодическийСтруктурнаяЕдиница, ДатаНачала, ДатаОкончанията же история интервалами, пересчитывается сама при записи основного

Документ в этой цепочке только носитель. На его месте мог оказаться любой документ, который пишет в “Сведения о доходах физических лиц”.

Какую дату ставить в начало истории

Первое желание: дата регистрации организации. В нашем случае поле “Дата регистрации” было пустым у обеих организаций базы, и гадать не пришлось: мы посмотрели, что делает сама конфигурация. Начальную запись истории она пишет на дату отсчёта периодических сведений, которую возвращает ЗарплатаКадрыКлиентСервер.ДатаОтсчетаПериодическихСведенийСПериодомМесяц(). В типовой это 01.01.1900. Такая запись покрывает любой месяц начисления и не спорит с записями, которые бухгалтер завёл позже.

Регистрацию для новой записи берём из самой ранней существующей записи истории. Если истории у единицы нет совсем, берём из карточки.

Исправление руками

Подходит, когда организация одна и подразделений два-три.

  1. Регистр “История регистраций в налоговом органе”: у организации найти самую раннюю запись. Если она позже первого месяца начислений, добавить запись с периодом 01.01.1900, той же структурной единицей и той же регистрацией. Начинаем с организации, потому что с неё конфигурация разносит историю на необособленные подразделения.
  2. Повторить для каждого подразделения из строк начислений. Необособленному ставится регистрация организации. Обособленному своя: если истории у него нет, взять из карточки подразделения, поле “Регистрация в налоговом органе”.
  3. Открыть вторичный регистр и проверить, что у каждой единицы появился интервал с 01.01.1900.
  4. Перепровести упавший документ.

Честная оговорка: ручной путь на нашей базе не прогонялся, прогонялась обработка. Запись из формы регистра идёт без режима загрузки, поэтому по коду конфигурации вторичный регистр должен пересчитаться. Если в шаге 3 раннего интервала нет, запись прошла мимо бизнес-логики, и разбираться надо уже с вашей конфигурацией.

Исправление обработкой

Когда организаций и подразделений больше, ручная сверка превращается в работу по списку. Для этого мы собрали обработку исправления истории регистрации с одной кнопкой. Что она делает по шагам:

ШагДействие
1берёт организации и обособленные подразделения без пометки удаления
2для каждой находит первую запись истории; если её нет или она позже 01.01.1900, добавляет запись на эту дату
3единицы без регистрации и в истории, и в карточке пропускает с записью в протокол
4разносит историю головной единицы на необособленные подразделения штатной процедурой ОбновитьПодчиненныеСтруктурныеЕдиницы
5печатает итоговую историю и просит перепровести документ

Всё идёт одной транзакцией. Повторный запуск ничего не добавляет: в протоколе будет “история уже начинается с 01.01.1900, запись не нужна”. Документы обработка не проводит и не меняет. Сама обработка лежит на Инфостарте: карточка “Исправление истории регистрации в налоговом органе”, 5 SM.

Если пишете исправление сами

Здесь две ловушки, на обе легко наступить.

Режим загрузки выключает пересчёт вторичного регистра. Вторичный регистр пересчитывает модуль набора записей основного регистра, и первой строкой там стоит выход:

Процедура ПриЗаписи(Отказ, Замещение)

	Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(ЭтотОбъект) Тогда
		Возврат;
	КонецЕсли;

	СтруктурнаяЕдиница = Неопределено;
	Если Отбор.СтруктурнаяЕдиница.Использование Тогда
		СтруктурнаяЕдиница = Новый Массив;
		СтруктурнаяЕдиница.Добавить(Отбор.СтруктурнаяЕдиница.Значение);
	КонецЕсли;

	УстановитьПривилегированныйРежим(Истина);
	РегистрыСведений.ИсторияРегистрацийВНалоговомОрганеВторичный.ЗаполнитьВторичныеДанные(СтруктурнаяЕдиница);

КонецПроцедуры

В модуле менеджера регистра есть штатная ЗаполнитьИсториюРегистрацийВНалоговомОрганеНаДатуОтсчетаПериодическихСведенийСПериодомМесяц, и выглядит она как готовое решение. Но она пишет каждый набор с ОбменДанными.Загрузка = Истина, срабатывает Возврат, и вторичный регистр остаётся со старыми интервалами. Соседняя ОбновитьПодчиненныеСтруктурныеЕдиницы включает загрузку, только если передать ей РежимОбновления = Истина, по умолчанию она пишет обычным порядком. Поэтому первую мы повторили своим кодом без загрузки, вторую вызываем как есть.

Набор без отбора заменит весь регистр. Набор записей регистра сведений при записи замещает всё, что попадает под отбор. Отбор по периоду и структурной единице обязателен, и по нему же ПриЗаписи понимает, для какой единицы пересчитывать вторичный регистр:

Процедура ДобавитьЗаписьИстории(СтруктурнаяЕдиница, Период, Регистрация)

	Набор = РегистрыСведений.ИсторияРегистрацийВНалоговомОргане.СоздатьНаборЗаписей();
	Набор.Отбор.Период.Установить(Период);
	Набор.Отбор.СтруктурнаяЕдиница.Установить(СтруктурнаяЕдиница);

	ЗаписьИстории = Набор.Добавить();
	ЗаписьИстории.Период = Период;
	ЗаписьИстории.СтруктурнаяЕдиница = СтруктурнаяЕдиница;
	ЗаписьИстории.РегистрацияВНалоговомОргане = Регистрация;

	// Как у штатных процедур заполнения истории: запись на дату отсчета
	// не должна упираться в дату запрета изменения.
	Набор.ДополнительныеСвойства.Вставить("ОтключитьПроверкуДатыЗапретаИзменения", Истина);
	// Без режима загрузки: набор сам пересчитает вторичный регистр.
	Набор.Записать();

КонецПроцедуры

Мелочь из того же захода: проверочный запрос с сортировкой по псевдониму поля, посчитанного через ПРЕДСТАВЛЕНИЕ(), падает с “Операция не разрешена в предложении “УПОРЯДОЧИТЬ"". Сортировать надо по самому полю.

Случай, на котором это разбиралось

База ERP для Казахстана. В истории регистраций лежали две записи, организация и её основное подразделение, обе с 1 февраля. Сотрудников принимали на 16 месяцев раньше, и упал документ за один из тех месяцев. Срезы мы считали на конец каждого месяца, начиная с месяца перед первым приёмом.

ПоказательДоПосле
Записей в основной истории2, обе с 1 февраля4: у организации и подразделения по записи с 01.01.1900 и с 1 февраля
Интервалов во вторичном регистре2, с 1 февраля по 31.12.39994: с 01.01.1900 по 31 января и с 1 февраля по 31.12.3999
Пустых срезов на конец месяца17 из 250 из 25
Перепроведение упавшего начисленияошибкапроходит, 41 с (транзакция с откатом)

Запись организации на 01.01.1900 добавила обработка, подразделению такая же пришла через разнос истории головной единицы. При трёх необособленных подразделениях каждое получит копию истории организации целиком. Интервалы во вторичном регистре у нас резались на каждой записи основного, даже при одинаковой регистрации в соседних записях.

41 секунда здесь время проведения самого документа. Вызов обработки в прогоне с откатом занял 664 мс. При приёмке 26.09 мы отдельно воспроизвели болезнь в транзакции: убрали ранние записи истории, получили 2 пустых среза из 2 и ту же ошибку проведения, после обработки пустых срезов стало 0, документ провёлся, обработка отработала за 178 мс, после отката база совпала со снимком до прогона.

Когда исправление не подходит

СитуацияЧто будетЧто делать
Организация меняла налоговый орган, в истории только нынешнийистория продлится назад нынешним органом, так же поступает штатное обновление конфигурациипосле запуска посмотреть итоговую историю в протоколе и добавить промежуточную запись руками
Ошибка про пустую регистрацию идёт из другого регистраобработка ничего не сломает, но и не вылечитискать, откуда проведение этого регистра берёт значение
Закрытые периодызапись на 01.01.1900 делается в обход даты запрета изменения; проведённые документы не меняются, история за эти периоды становится другойесли это важно для отчётности, первый запуск на копии
ЗУП для Казахстана, Комплексная автоматизациярегистры и процедуры, скорее всего, называются так же, но код мы не сверяли и прогона не былопервый запуск на копии

Копию под такую проверку удобнее держать постоянно, а не поднимать в день аварии: как это устроено, мы описывали в статье про тестовую базу, которая отстала от рабочей. А если ошибка проведения вылезла сразу после обновления релиза, посмотрите заодно, что ещё меняется в зарплате Казахстана в 2026 году: разбор про отставание релиза ЗУП для Казахстана.

Откуда у подразделений поздняя история

В нашем случае история начиналась на 16 месяцев позже первого приёма. Почему именно с 1 февраля, мы не разбирали: для лечения это не нужно. Если у вас та же ошибка, нам интересно, откуда поздняя дата у вас: ручной ввод, перенос зарплаты из другой базы или что-то третье. Напишите, и если нужна помощь с разбором, это входит в сопровождение типовых конфигураций 1С для Казахстана.

Bunu sizin əvəzinizə həll edə bilərəm

Ведём казахстанские типовые: Бухгалтерию, Зарплату и управление персоналом, Розницу. Обновляем базы с доработками так, чтобы фискальная часть шла в ногу с законом, а ваши доработки не отваливались.

Qiyməti
от 25 900 ₸цена лицензии от вендора (1С), без наших работ; сопровождение и доработки - по разбору базы

Yazmaq tezdir? Özünüz ölçün

Исправление истории регистрации в налоговом органе

Emalı aç

INFOSTART TECH EVENT 2026: конференция для 1с-специалистов. если собираетесь, регистрируйтесь по нашей ссылке. Регистрация →

Bunu da oxuyun

Внешняя обработка или печатная форма не работает после обновления 1С: что пропало и как проверить заранее

Обновление типовой прошло чисто, а через день внешняя печатная форма падает с "Метод объекта не обнаружен". Разбираем четыре текста ошибки, объясняем, почему их не ловит ни конфигуратор, ни проверка модулей, и даём порядок проверки своих обработок против нового релиза. Числа из худшего случая: УТ для Казахстана 2.2.16.5 и 3.4.4.87.

НКТ в УПП и УТП: типового помощника там не появится, и это официально

Интеграция с Национальным каталогом вышла в Бухгалтерии, Рознице, УТ, ERP и КА для Казахстана. В УПП и УТП её нет и не будет: вендор ведёт эти конфигурации до конца 2026 года и заявил, что развитие функциональности идёт только в современных решениях. Разбираем, что это означает практически и какие три пути остаются.

1С:Розница для Казахстана: фискальную часть закрывает типовая, магазин останавливает другое

Чеки, ОФД, маркировка, Нацкаталог - всё это в типовой Рознице для Казахстана есть и приезжает с релизами. По нашей практике розница на 1С встаёт не на фискальной части: встают кассы под нагрузкой, расходятся обмены с бэк-офисом и маркетплейсами, разрастается база. Разбираем оба слоя и границу между ними.