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

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

Перенос данных из устаревших конфигураций, таких как 1С:Предприятие 7.7, в современные редакции на платформе 1С:Предприятие 8.3 (например, в 1С:Бухгалтерия 3.0) — это сложный процесс, который нередко сопровождается техническими сбоями. Одна из классических проблем, с которой сталкиваются пользователи после такого перехода: в журнале банковских выписок или в самих документах поступления и списания невозможно выбрать расчетный счет организации. При этом в справочнике Банковские счета этот счет присутствует, но в документах он просто не отображается.

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

Выясним причину: почему расчетный счет стал «невидимым»?

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

Когда вы создаете или загружаете такие документы, как Поступление на расчетный счет или Списание с расчетного счета, программа автоматически фильтрует список доступных банковских счетов по двум основным критериям:

  1. Организация — владелец банковского счета.
  2. Валюта документа — валюта, в которой оформляется хозяйственная операция.

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

Посмотрим на пример того, почему валюта могла не перенестись из «семерки»:

Ситуация осложняется тем, что если по этому расчетному счету уже были загружены и проведены какие-либо документы (например, через Банк-Клиент), то программа заблокирует возможность ручного изменения валюты непосредственно в карточке счета, выдавая предупреждение о наличии связанных записей. Ниже описаны эффективные способы обхода этой блокировки.


Способ 1. Разрешение редактирования реквизитов в карточке счета

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

Разберем по шагам этот процесс:

  1. Перейдите в раздел Главное или Настройки, откройте карточку вашей Организации.
  2. В верхней панели перейдите по ссылке Банковские счета.
  3. Найдите в списке проблемный расчетный счет и откройте его двойным кликом мыши.
  4. В открывшейся форме в правом верхнем углу нажмите на кнопку Еще (кнопка с тремя точками или выпадающим меню).
  5. В выпадающем списке найдите и выберите команду Разрешить редактирование реквизитов.
  6. Программа выведет на экран предупреждение о том, что элемент уже используется в документах, и его изменение может привести к рассогласованию данных. Подтвердите свое намерение, нажав кнопку Разрешить редактирование.
  7. После этого заблокированные поля, включая поле Валюта, станут доступными для изменения. Выберите правильное значение (например, руб.) и нажмите кнопку Записать и закрыть.

Если данный способ сработал, проверьте доступность счета в выписках. Если же кнопка разблокировки неактивна или недоступна в вашей роли, переходите к следующему методу.


Способ 2. Использование обработки «Групповое изменение реквизитов»

Этот способ является наиболее надежным и позволяет принудительно прописать нужное значение в базу данных, минуя стандартные проверки формы. Для его реализации вам понадобятся права администратора системы.

Выполните следующие действия:

  1. Откройте раздел меню Администрирование, затем выберите пункт Обслуживание.
  2. Раскройте подраздел Корректировка данных и перейдите по гиперссылке Групповое изменение реквизитов.
  3. В поле Выбирать элементы: укажите справочник Банковские счета.
  4. Внимание! Это критически важный шаг: обязательно настройте отбор, иначе программа изменит валюту у абсолютно всех счетов в информационной базе. Нажмите на ссылку Все элементы в поле отбора, добавьте новое условие отбора: Ссылка Равно [Ваш проблемный расчетный счет]. Убедитесь, что в поле фильтра отображается «1 элемент».
  5. Нажмите на кнопку Дополнительные параметры внизу формы. В открывшемся окне установите флажки напротив пунктов Показывать служебные реквизиты и Разрешить изменение реквизитов объектов. Это позволит обойти блокировку записи. Нажмите «ОК».
  6. В списке реквизитов, который появится на главной форме обработки, найдите строку Валюта (или Валюта денежных средств). Поставьте напротив нее галочку активности, а в колонке «Новое значение» укажите необходимую валюту (например, руб.).
  7. Нажмите кнопку Изменить реквизиты в правом нижнем углу.

Программа выполнит прямое обновление данных в СУБД. После успешного завершения операции зайдите в карточку счета и убедитесь, что валюта заполнилась корректно.


Способ 3. Пересоздание счета и использование инструмента «Поиск и замена дублей»

Если вы опасаетесь напрямую редактировать реквизиты старого элемента из-за возможного нарушения ссылочной целостности базы, можно воспользоваться методом "мягкого" замещения.

Проанализируем этот сценарий детально:

  1. Откройте справочник банковских счетов организации и нажмите кнопку Создать.
  2. Внимательно заполните все реквизиты заново: укажите БИК банка, введите вручную корректный 20-значный номер расчетного счета (без пробелов) и выберите правильную валюту. Запишите этот новый счет.
  3. Перейдите в раздел Администрирование -> Обслуживание -> Корректировка данных и откройте инструмент Поиск и замена дублей.
  4. В поле «Искать в:» укажите справочник Банковские счета. Нажмите кнопку Найти дубли.
  5. Программа выведет на экран список похожих элементов. Вы увидите два одинаковых расчетных счета. Один из них — старый (без валюты), второй — новый (с корректно заполненной валютой).
  6. Выделите старый счет (без валюты) и отметьте его как Дубликат.
  7. Новый, правильно заполненный расчетный счет укажите как Оригинал (в некоторых интерфейсах это называется «Пометить как правильный»).
  8. Нажмите кнопку Объединить.

Система выполнит транзакционный обход всей базы данных. Во всех документах, операциях и регистрах сведений, которые были перенесены из версии 7.7 или загружены из Банк-Клиента, старый битый расчетный счет будет автоматически заменен на новый правильный элемент справочника. После завершения процесса старый "пустой" счет можно пометить на удаление и окончательно стереть из базы.


Способ 4. Программное решение проблемы (для разработчиков и администраторов)

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


// Создадим запрос для поиска расчетного счета с пустой валютой
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	БанковскиеСчета.Ссылка КАК Ссылка
    |ИЗ
    |	Справочник.БанковскиеСчета КАК БанковскиеСчета
    |ГДЕ
    |	БанковскиеСчета.ВалютаДенежныхСредств = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)";

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

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

Использование свойства ОбменДанными.Загрузка = Истина позволяет временно отключить платформенные обработчики событий при записи объекта, что гарантирует успешное внесение изменений даже при наличии жестких блокировок со стороны бизнес-логики конфигурации.


Полезный совет: обязательная проверка номера расчетного счета

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

Если при переносе из старой программы в номере счета оказались символы пробела или дефисы, настоятельно рекомендуется удалить их. Любой лишний символ ломает внутренние алгоритмы распознавания банковских выписок при последующем импорте файлов из систем дистанционного банковского обслуживания (ДБО/Клиент-Банк).

← На главную