При работе в программе 1С:Бухгалтерия пользователи часто сталкиваются с ситуацией, когда при создании нового документа «Поступление на расчетный счет» в поле «Счет учета» по умолчанию всегда подставляется счет 51 («Расчетные счета»). Однако во многих организациях значительная часть безналичных платежей поступает на специальные счета, например, на корпоративные карты. В этом случае учет должен вестись на субсчете 55.04 («Депозитные счета» или «Счета корпоративных карт»).
Постоянно изменять этот счет вручную при создании каждого документа крайне неудобно, это увеличивает трудоемкость работы бухгалтера и повышает риск возникновения ошибок. Выясним причину такого поведения системы, проанализируем, где именно в программе заложена эта привязка, и разберем по шагам все возможные варианты решения — от простых штатных настроек до безопасного программирования.
Прежде чем переходить к настройкам, давайте разберем логику работы конфигурации. В современных версиях «1С:Бухгалтерия 8» счет учета в банковских документах жестко привязан к конкретному расчетному счету организации, который выбран в документе. Для стандартных рублевых расчетных счетов система действительно автоматически определяет счет учета как 51.
На уровне программного кода за это отвечает модуль менеджера плана счетов Хозрасчетный, в частности экспортный метод ОсновнойСчет. В этой функции заложен алгоритм, который анализирует назначение использования денежных средств:
ИначеЕсли Назначение = "БезналичныеДеньги" Тогда
Возврат РасчетныеСчета;
КонецЕсли;
Переменная РасчетныеСчета в данном контексте как раз и возвращает предопределенный счет 51. Изменять этот код напрямую в основной конфигурации крайне не рекомендуется, так как это приведет к серьезным сложностям при последующих обновлениях программы. Ниже мы рассмотрим правильные методы решения этой задачи.
Самый простой, быстрый и безопасный способ заставить программу автоматически подставлять счет 55.04 — это правильная настройка параметров самого банковского счета в системе. Нам не потребуется изменять код программы, все действия выполняются в пользовательском режиме.
Рассмотрим этот процесс по шагам:
55.04 (это должен быть карточный или специальный счет).55.04. Сохраните изменения по кнопке «Записать и закрыть».Проанализируем результат: теперь при создании нового документа «Поступление на расчетный счет» программа автоматически подставит ваш основной банковский счет. Считав его настройки, система мгновенно и без вашего участия перезаполнит поле «Счет учета» значением 55.04 вместо стандартного 51.
Если штатный вариант по каким-то причинам вам не подходит (например, вам требуется более сложная логика автоподстановки, зависящая от вида операции, пользователя или других условий), задачу следует решать с помощью расширений конфигурации. Этот механизм позволяет изменить логику программы, сохраняя типовую конфигурацию на поддержке.
Разберем, как реализовать такое решение:
Хозрасчетный и его модуль менеджера.ОсновнойСчет с помощью аннотации &Вместо. Обязательно сохраняйте вызов оригинального метода для прочих назначений.Пример программного кода для модуля менеджера плана счетов в расширении:
&Вместо("ОсновнойСчет")
Функция Расш1_ОсновнойСчет(Знач Назначение)
// Если запрашивается счет для безналичных денежных средств
Если Назначение = "БезналичныеДеньги" Тогда
// Возвращаем предопределенный счет 55.04
Возврат ПланыСчетов.Хозрасчетный.ДепозитныеСчета;
КонецЕсли;
// Для всех остальных случаев вызываем стандартный обработчик
Возврат ПродолжитьВызов(Назначение);
КонецФункции
Также можно перехватить процедуру заполнения в модуле менеджера самого документа ПоступлениеНаРасчетныйСчет. Для этого добавьте документ в расширение и переопределите обработчик заполнения реквизитов по умолчанию. Этот способ более локальный и не затронет другие документы, работающие с безналичными денежными средствами.
На форумах часто предлагают быстрые решения, связанные с прямой правкой модулей (например, замена строки "БезналичныеДеньги" на "СчетКорпоративныхРасчетов" в модуле менеджера документа или изменения в модуле менеджера плана счетов). Мы крайне не рекомендуем так поступать по следующим причинам:
ОсновнойСчет используется во многих внутренних механизмах платформы. Прямое изменение возвращаемого значения без дополнительных проверок может привести к непредсказуемым ошибкам при проведении других регламентных операций или формировании отчетности.Используйте штатные настройки банковского счета — это наиболее надежный, простой и правильный путь, предусмотренный разработчиками 1С.