Почему в 1С:ERP и Комплексной автоматизации не отображается 52 счет (Валютные счета) и как это исправить?

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

При начале работы с валютными операциями в конфигурациях 1С:ERP Управление предприятием или 1С:Комплексная автоматизация (КА) пользователи часто сталкиваются с неочевидной проблемой. Казалось бы, валюта заведена, галочки в настройках проставлены, но в Плане счетов бухгалтерского учета отсутствует счет 52 "Валютные счета". Либо он есть в плане счетов, но недоступен для выбора в документах движения денежных средств.

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

Понимание механизма Функциональных опций

Первое, что нам необходимо усвоить: в современных решениях на управляемых формах (ERP, КА, УТ) видимость объектов системы (справочников, документов и даже счетов в плане счетов) управляется механизмом Функциональных опций.

Если счет 52 физически отсутствует в общем списке Плана счетов (даже в режиме "Все функции" или "Функции для технического специалиста"), значит, система считает, что валютный учет в базе отключен. Давайте проверим настройки.

Частая ошибка заключается в том, что пользователи включают опцию "Международные реквизиты банковских счетов" или просто добавляют валюту в справочник, считая, что этого достаточно. Однако, для появления счета 52 критически важна другая константа.

  1. Перейдем в раздел НСИ и администрирование.
  2. Откроем подраздел Предприятие (или "Настройка параметров системы" -> "Валюты" в зависимости от версии).
  3. Убедимся, что установлена галочка Несколько валют (или "Использовать несколько валют"). Для оперативной работы менеджерам также может потребоваться удобный отчет для просмотра текущего курса валют ЦБ.

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

Проблема кэширования и обновления параметров

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

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

  1. Попробуем снять галочку "Несколько валют", сохранить настройки, а затем установить её снова. Это принудительно обновит запись в регистре сведений или константах.
  2. Если это не помогло, запустим 1С с ключом запуска /ClearCache, чтобы очистить клиентский кэш.

Анализ программного кода фильтрации счетов

Гораздо интереснее ситуация, когда счет 52 есть в Плане счетов, но он не появляется в форме выбора счета при оформлении банковских выписок или кассовых документов. Здесь вступает в силу программная логика фильтрации.

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

Функция анализирует реквизиты объекта (например, банковского счета или кассы) и решает, какие счета бухгалтерского учета допустимы.


Функция МассивДоступныхСчетовДенежныхСредств(Реквизиты, ДоступныеСчетаУчета)

    МассивВозврата = Новый Массив;

    Если Реквизиты = Неопределено Тогда
        // Если реквизиты не переданы, возвращаем всё, что есть в настройках по умолчанию
        ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаБезналичныхДенежныхСредств);
        ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаНаличныхДенежныхСредств);
        
    ИначеЕсли ТипЗнч(Реквизиты.АналитикаДенежныхСредств) = Тип("СправочникСсылка.БанковскиеСчетаОрганизаций") Тогда
        // Логика для банковских счетов
        Если Реквизиты.ТипБанковскогоСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Расчетный") Тогда
            
            // ВАЖНЫЙ МОМЕНТ: Проверка заполнения валюты
            Если Не ЗначениеЗаполнено(Реквизиты.ВалютаДенежныхСредств) Тогда
                // Если валюта явно не заполнена в контексте, добавляем и валютные, и рублевые
                МассивВозврата.Добавить(ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.ВалютныеСчета")); // Счет 52
                МассивВозврата.Добавить(ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.РасчетныеСчета")); // Счет 51
            КонецЕсли;
            
        Иначе
            ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаБезналичныхДенежныхСредств);
        КонецЕсли;

    ИначеЕсли ТипЗнч(Реквизиты.АналитикаДенежныхСредств) = Тип("СправочникСсылка.Кассы") Тогда
        // Логика для касс
        ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаНаличныхДенежныхСредств);
    КонецЕсли;

    Возврат МассивВозврата;

КонецФункции

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

Скрытая причина: Статус банковского счета ("Красный крест")

Одна из самых коварных причин, почему система не предлагает 52 счет в документах, кроется не в коде, а в данных. В справочнике Банковские счета организаций есть реквизиты, отвечающие за период действия счета: ДатаОткрытия и ДатаЗакрытия.

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

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

Если банковский счет находится в таком "неактивном" состоянии, механизмы 1С:ERP исключают его из доступных для выбора в оперативных документах. Следовательно, если у Организации нет ни одного активного валютного банковского счета, система может скрывать и 52 счет в формах выбора, считая, что проводки по нему невозможны.

Решение:

  1. Откроем карточку валютного банковского счета.
  2. Проверим поле "Дата открытия". Оно должно быть заполнено и быть не больше текущей даты.
  3. Проверим поле "Дата закрытия". Оно должно быть пустым (если счет действующий).
  4. Убедимся, что счет не помечен на удаление.
  5. Убедимся, что валюта счета указана верно (не рубли, а именно иностранная валюта).

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

Особенности выбора счета в документах

Важно помнить, что в ERP/КА форма выбора счета часто зависит от Хозяйственной операции и Валюты документа.

Если мы оформляем документ "Списание безналичных ДС", и в шапке документа выбрана валюта "Рубли" (RUB), а банковский счет выбран валютный (USD), система выдаст ошибку или не позволит выбрать несоответствующий счет учета. В 1С:ERP жесткий контроль соответствия валюты счета (51 или 52) валюте банковского счета (справочник).

Рассмотрим логическую цепочку проверки:

  1. Проверяем, включена ли опция "Несколько валют".
  2. Проверяем, существует ли активный банковский счет с валютой, отличной от рублей.
  3. В документе убеждаемся, что выбран именно валютный банковский счет.
  4. После этого поле "Счет учета" должно автоматически заполниться значением 52 или позволить выбрать его из списка.

Резюме по диагностике

Если вы не видите счет 52, действуйте по следующему алгоритму:

  1. Проверка Плана счетов: Зайдите в общий план счетов. Если счета 52 там нет совсем — проблема в настройке "НСИ и администрирование - Несколько валют". Включите её.
  2. Проверка Справочника: Если счет в плане есть, но не выбирается в документе — проверьте справочник "Банковские счета". Убедитесь, что у валютного счета нет признаков закрытия (дата закрытия, пометка удаления) и правильно указана валюта.
  3. Создание нового счета: Если есть подозрение на некорректность данных (например, после переноса из другой базы), создайте новый тестовый валютный счет в USD и проверьте поведение системы на нем.
  4. Очистка кэша: При любых изменениях функциональных опций, которые не применились мгновенно, очищайте кэш платформы.

Следуя этим рекомендациям, вы сможете восстановить корректный валютный учет.

← На главную