При активной работе в программе 1С:Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с непредвиденными сбоями после проведения очередного обновления конфигурации. Одной из наиболее неприятных является ошибка при проведении банковских выписок, когда документ Поступление на расчетный счет отказывается проводиться, выдавая системное сообщение: «Запись не верна! Значение поля "Счет на оплату" не может быть пустым! (Регистр накопления: Оплата счетов, строка 1)».
Эта проблема парализует работу бухгалтера, так как не позволяет оперативно отражать приход денежных средств от контрагентов. Примечательно, что ошибка возникает даже в тех документах, где заполнение счета на оплату изначально не планировалось и не требовалось правилами ведения учета в организации. Давайте подробно разберем по шагам, почему возникает эта ошибка и как ее оперативно исправить.
Проанализируем ситуацию на уровне структуры данных. В конфигурации 1С:Бухгалтерия 3.0 существует регистр накопления Оплата счетов. Он служит для автоматического контроля за статусами оплаты выставленных счетов покупателям. В структуре метаданных этого регистра для измерения СчетНаОплату разработчиками установлено жесткое системное свойство — «Запрет незаполненных значений».
Когда мы проводим документ поступления денег без указания конкретного счета, программа по своей стандартной логике вообще не должна формировать движения по этому регистру. Однако из-за сбоев при обновлении, некорректного кэша метаданных платформы или ошибок реструктуризации таблиц базы данных программный код проведения пытается записать в данный регистр пустую строку (где вместо ссылки на счет передается пустое значение). СУБД (будь то файловая база данных или MS SQL Server / PostgreSQL) блокирует эту запись, так как она нарушает установленное ограничение целостности. В результате транзакция отменяется, и проведение документа прерывается.
Как показывает практика практикующих специалистов и опыт обсуждений на профильных форумах, наиболее действенным и комплексным решением данной проблемы является штатная утилита платформы 1С:Предприятие — Тестирование и исправление информационной базы. Рассмотрим подробнее, как правильно запустить данный процесс:
1Cv8.1CD в отдельную папку. Если база клиент-серверная — сделайте выгрузку информационной базы (.dt) или бэкап средствами СУБД.После завершения процедуры запустите 1С в режиме предприятия и попробуйте перепровести проблемные документы — ошибка должна исчезнуть.
Если тестирование и исправление базы данных занимает слишком много времени (актуально для баз большого объема), либо процедура не помогла с первого раза, причина может крыться во временных файлах (кэше) платформы на рабочем компьютере пользователя. Разберем по шагам, как быстро произвести очистку локального кэша:
Для продвинутых администраторов также доступен запуск системы с ключом очистки кэша. Для этого в свойствах базы в строке «Дополнительные параметры запуска» пропишите команду: /ClearCache.
Проанализируем ситуацию, когда в регистре накопления уже успели записаться некорректные пустые строки из-за сбоев предыдущих релизов. Для этого нам потребуется найти эти битые записи программным путем. Мы можем воспользоваться встроенной обработкой «Групповое изменение реквизитов» или написать небольшой проверочный запрос в консоли запросов.
Посмотрим на пример простого запроса, который поможет локализовать проблемные записи в регистре накопления Оплата счетов:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОплатаСчетов.Регистратор КАК ДокументРегистратор,
| ОплатаСчетов.НомерСтроки КАК НомерСтроки,
| ОплатаСчетов.СчетНаОплату КАК ПустойСчет
|ИЗ
| РегистрНакопления.ОплатаСчетов КАК ОплатаСчетов
|ГДЕ
| ОплатаСчетов.СчетНаОплату = ЗНАЧЕНИЕ(Документ.СчетНаОплатуПокупателю.ПустаяСсылка)";
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Найден проблемный документ: " + Строка(Выборка.ДокументРегистратор) + ", строка " + Строка(Выборка.НомерСтроки));
КонецЦикла;
КонецЕсли;
Если запрос выявил наличие документов, которые записали в регистр пустые ссылки на счета, то такие документы необходимо принудительно перепровести (сначала распровести, очистить поле счета и провести заново) либо воспользоваться обработками по очистке движений документов.
Иногда логика проведения документов ломается из-за некорректных настроек параметров учета или функциональности программы. Проверьте следующие важные настройки в пользовательском интерфейсе:
1С:Бухгалтерия 3.0 появилась опция Без закрывающих документов (актуально для упрощенных систем налогообложения, патентов). Убедитесь, что в форме документа Поступление на расчетный счет эта настройка выставлена в соответствии с вашим фактическим учетом.Применяя последовательно эти методы, вы гарантированно избавитесь от ошибки проведения и восстановите стабильную работу программы 1С:Бухгалтерия.