При попытке привести учет в соответствие с Общероссийским классификатором валют (ОКВ) многие пользователи и специалисты меняют код базовой валюты «Рубль» со старого 810 на новый 643 непосредственно в справочнике Валюты. В результате в типовых конфигурациях 1С 7.7 (таких как «Производство + Услуги + Бухгалтерия», «Комплексная конфигурация», «Бухгалтерский учет») возникает каскадный сбой: появляются дублирующие элементы, в документах активируются валютные графы курса и кратности, а в актах сверки и отчетах по взаиморасчетам искажаются обороты и сальдо. Разберем механизм возникновения этой проблемы и пошаговый алгоритм полного восстановления базы данных.
Проанализируем внутреннюю архитектуру типовых решений платформы 1С:Предприятие 7.7. Сбой при замене кода вызван следующими факторами:
ПриНачалеРаботыСистемы глобального модуля и модулях проведения документов зашит поиск национальной валюты регламентированного учета по конкретному строковому коду "810". Если код элемента изменен на "643", система считает, что базовая валюта отсутствует, и автоматически создает новый элемент «Рубль» с кодом "810".Покупатели, Поставщики) в разрезе договоров и валют. Из-за расщепления ссылок на два разных элемента справочника старые обороты отсекаются, а итоговое сальдо перестает соответствовать реальным взаиморасчетам.Рассмотрим по шагам, как вернуть базу данных в корректное состояние, если код уже менялся и привел к нарушению расчетов.
Валюты вернем основному элементу «Рубль» системный код 810.810, нельзя просто пометить его на удаление без предварительной замены ссылок. С помощью внешней обработки поиска и замены значений перенаправим все ссылки с созданного дубля на основной предопределенный элемент «Рубль», после чего удалим дубль.ОсновнаяВалюта (или аналогичной константы валюты бухучета), а также реквизит ВалютаВзаиморасчетов во всех договорах контрагентов. Все они должны указывать на единственный корректный элемент «Рубль».Выясним, как соответствовать требованиям законодательства по выводу кода 643 («Российский рубль») в печатных формах счетов-фактур и УПД без риска сломать учетную логику 1С 7.7.
Для этого не требуется менять системный код в справочнике. Корректировка выполняется на уровне формирования печатных форм (в модуле документа или во внешней печатной форме). Посмотрим на пример кода формирования строки 7 счета-фактуры:
// Пример формирования наименования и кода валюты для печатной формы
Если ВалютаДокумента = Константа.БазоваяВалюта Тогда
СтрокаВалюты = "Российский рубль, 643";
Иначе
СтрокаВалюты = СокрЛП(ВалютаДокумента.ПолнНаименование) + ", " + СокрЛП(ВалютаДокумента.Код);
КонецЕсли;
Такой подход гарантирует соблюдение требований регламентированной отчетности и полностью сохраняет внутреннюю целостность регистров и алгоритмов взаиморасчетов конфигурации.