Почему не заполняется статья прочих доходов и расходов при банковской комиссии и как восстановить предопределенные элементы в 1С?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При проведении банковских выписок с операцией «Комиссия банка» в документе «Списание с расчетного счета» пользователи нередко сталкиваются с ситуацией, когда проводка по дебету счета 91.02 формируется с пустым субконто. В типовых решениях программа ожидает наличие системного предопределенного элемента справочника ПрочиеДоходыИРасходы (как правило, с именем РасходыНаУслугиБанков). Если связь с ним нарушена или элемент не был создан, автоподстановка перестает работать.

Разберем подробнее, почему предопределенные данные могут отсутствовать в информационной базе, к каким последствиям это приводит и как восстановить корректное заполнение аналитики.

Причины исчезновения или несоздания предопределенных элементов

Проанализируем ситуацию с точки зрения архитектуры платформы 1С:Предприятие 8.3:

  1. Коллизия существующих данных: При обновлении конфигурации или переносе остатков из старых редакций (например, при переходе с редакции 2.0 на 3.0) в справочнике уже могут существовать пользовательские записи с совпадающими кодами или наименованиями. Если в базе накопилось несколько элементов с видом «Расходы на услуги банков», механизм автоматического создания предопределенного значения может дать сбой, чтобы не нарушать уникальность.
  2. Механизм связывания через ИмяПредопределенныхДанных: Начиная с платформы 8.3, связь записи в таблице базы данных с объектом метаданных определяется специальным реквизитом ИмяПредопределенныхДанных. Если этот реквизит пуст, платформа считает элемент обычным пользовательским, даже если его наименование полностью совпадает с предопределенным.
  3. Режим обновления предопределенных данных: В распределенных информационных базах (РИБ) или базах с нестандартными настройками обновления свойство конфигурации «Обновление предопределенных данных» может быть переведено в ручной режим, из-за чего новые предопределенные элементы не создаются при реструктуризации автоматически.

В результате при формировании проводки по комиссии банка программа пытается обратиться к предопределенному значению, получает пустую ссылку и оставляет субконто незаполненным. Это приводит к искажению оборотов по счету 91.02 и ошибкам в расчете налога на прибыль.

Способ 1. Инициализация через экспортные методы конфигурации

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


Справочники.ПрочиеДоходыИРасходы.ОбновитьПредопределенныйЭлементРасходыНаУслугиБанков();

Данный метод проверяет наличие элемента в базе и корректно связывает его с метаданными конфигурации.

Способ 2. Программная привязка существующего элемента к предопределенному

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

  1. Найдем ссылку на существующий элемент справочника ПрочиеДоходыИРасходы.
  2. Выполним следующий фрагмент программного кода:

СсылкаНаЭлемент = Справочники.ПрочиеДоходыИРасходы.НайтиПоНаименованию("Расходы на услуги банков");
Если ЗначениеЗаполнено(СсылкаНаЭлемент) Тогда
    Объект = СсылкаНаЭлемент.ПолучитьОбъект();
    Объект.ИмяПредопределенныхДанных = "РасходыНаУслугиБанков";
    Объект.Записать();
КонецЕсли;

После записи элемент получит признак предопределенного (в интерфейсе появится соответствующая пиктограмма с точкой), и типовые алгоритмы проведения документов начнут использовать его автоматически.

Способ 3. Глобальное обновление предопределенных данных

Если проблема носит массовый характер после масштабного обновления конфигурации или синхронизации узлов РИБ, воспользуемся платформенным методом принудительного обновления:

ПланыОбмена.ОбновитьПредопределенныеДанные();

Этот вызов заставляет платформу сопоставить все элементы метаданных со справочниками и планами счетов базы данных и создать недостающие предопределенные записи.

Способ 4. Настройка автоподстановки в пользовательском режиме

Если нет возможности выполнять программный код, настроим поведение программы через пользовательский интерфейс:

  1. Перейдем в раздел «Справочники» и откроем справочник «Прочие доходы и расходы».
  2. Откроем карточку статьи, которая должна использоваться для банковских комиссий.
  3. В реквизите «Использование по умолчанию» выберем значение «Документ "Списание с расчетного счета", используется при загрузке из клиент-банка».
  4. Запишем и закроем элемент.

После сохранения настройки при проведении банковских выписок программа будет подставлять указанную статью независимо от статуса предопределенности.

Завершающий шаг: удаление дублирующихся статей

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

  1. Откроем типовую обработку «Поиск и удаление дублей» (раздел «Администрирование» — «Обслуживание» — «Корректировка данных»).
  2. Выберем справочник «Прочие доходы и расходы».
  3. Укажем в качестве оригинала правильный предопределенный элемент, а пользовательские копии отметим как дубли.
  4. Нажмем «Удалить дубли»: программа автоматически перенесет ссылки во всех проведенных документах на основной элемент и удалит повторяющиеся записи.
← На главную