Как исправить ошибки в учете и актах сверки после изменения кода валюты рубля с 810 на 643 в 1С 7.7?

Программист 1С v7.7 Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При попытке привести учет в соответствие с Общероссийским классификатором валют (ОКВ) многие пользователи и специалисты меняют код базовой валюты «Рубль» со старого 810 на новый 643 непосредственно в справочнике Валюты. В результате в типовых конфигурациях 1С 7.7 (таких как «Производство + Услуги + Бухгалтерия», «Комплексная конфигурация», «Бухгалтерский учет») возникает каскадный сбой: появляются дублирующие элементы, в документах активируются валютные графы курса и кратности, а в актах сверки и отчетах по взаиморасчетам искажаются обороты и сальдо. Разберем механизм возникновения этой проблемы и пошаговый алгоритм полного восстановления базы данных.

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

Проанализируем внутреннюю архитектуру типовых решений платформы 1С:Предприятие 7.7. Сбой при замене кода вызван следующими факторами:

  1. Жесткая привязка кода валюты в алгоритмах конфигурации. В процедуре ПриНачалеРаботыСистемы глобального модуля и модулях проведения документов зашит поиск национальной валюты регламентированного учета по конкретному строковому коду "810". Если код элемента изменен на "643", система считает, что базовая валюта отсутствует, и автоматически создает новый элемент «Рубль» с кодом "810".
  2. Разрыв ссылочной целостности и появление валютного учета. Все документы, проведенные в момент нахождения в базе двух рублей или измененного кода, начинают воспринимать рублевые операции как расчеты в иностранной валюте. В документах поступления, реализации и банковских выписках появляется обязательное поле курса, формируются движения по валютным суммам и рассчитываются курсовые разницы.
  3. Искажение данных в актах сверки. Отчет «Акт сверки» строит выборку по регистрам взаиморасчетов (Покупатели, Поставщики) в разрезе договоров и валют. Из-за расщепления ссылок на два разных элемента справочника старые обороты отсекаются, а итоговое сальдо перестает соответствовать реальным взаиморасчетам.

Пошаговый план восстановления информационной базы

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

  1. Возврат системного кода валюты: в справочнике Валюты вернем основному элементу «Рубль» системный код 810.
  2. Устранение дублирующихся ссылок: если система уже создала второй элемент с кодом 810, нельзя просто пометить его на удаление без предварительной замены ссылок. С помощью внешней обработки поиска и замены значений перенаправим все ссылки с созданного дубля на основной предопределенный элемент «Рубль», после чего удалим дубль.
  3. Проверка договоров и констант: проверим значение константы ОсновнаяВалюта (или аналогичной константы валюты бухучета), а также реквизит ВалютаВзаиморасчетов во всех договорах контрагентов. Все они должны указывать на единственный корректный элемент «Рубль».
  4. Тестирование и исправление информационной базы: запустим систему в режиме Конфигуратор и перейдем в пункт меню Администрирование -> Тестирование и исправление ИБ. Обязательно включим следующие опции:
    1. Проверка логической целостности;
    2. Проверка ссылочной целостности (с режимом очистки битых ссылок);
    3. Пересчет итогов.
  5. Полное групповое перепроведение документов: пересчета итогов недостаточно, так как в самих табличных частях ранее проведенных документов сохранились признаки валютных операций. Выполним восстановление последовательности документов строго с даты самого первого документа, который был создан или перепроведен в период экспериментов с кодом валюты.

Как корректно выводить код 643 в счетах-фактурах

Выясним, как соответствовать требованиям законодательства по выводу кода 643 («Российский рубль») в печатных формах счетов-фактур и УПД без риска сломать учетную логику 1С 7.7.

Для этого не требуется менять системный код в справочнике. Корректировка выполняется на уровне формирования печатных форм (в модуле документа или во внешней печатной форме). Посмотрим на пример кода формирования строки 7 счета-фактуры:


// Пример формирования наименования и кода валюты для печатной формы
Если ВалютаДокумента = Константа.БазоваяВалюта Тогда
    СтрокаВалюты = "Российский рубль, 643";
Иначе
    СтрокаВалюты = СокрЛП(ВалютаДокумента.ПолнНаименование) + ", " + СокрЛП(ВалютаДокумента.Код);
КонецЕсли;

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

← На главную