Как перевести торгово-складской учет в программе 1С Предприятие 7.7 на другую валюту

подслушано в Аннинском районе:
«Продимекс» выкупил земельные активы «Талекса» в Аннинском и Панинском районах
Хорошо известно, что валюта управленческого учета задается раз и навсегда в начальный момент работы с программой, когда в информационной базе отсутствуют документы. Но бывают ситуации, когда возникает необходимость изменить валюту управленческого учета, как говорится "на ходу" или "на лету". Сделать это не так уж и сложно, если знать немного язык программирования 1С.

1. Входим в режим конфигуратора и создаем новую внешнюю обработку.

2. На начальном этапе необходимо изменить значение непериодической константы ВалютаУпрУчета и установить новое значение: в нашем конкретном случае валютой управленческого учета станет "рубль".

В процедуру "Сформировать()" добавляем следующий код

Спр = СоздатьОбъект("Справочник.Валюты");

Если Спр.НайтиПоКоду("810",0) = 1 Тогда

Валюта = Спр.ТекущийЭлемент();

Константа.ВалютаУпрУчета = Валюта;

КонецЕсли;

3. Следующий шаг - в справочнике "Типы цен" изменим валюту цены.

В процедуру "Сформировать()" добавляем следующий код

СпрТипЦен = СоздатьОбъект("Справочник.ТипыЦен");

СпрТипЦен.ВыбратьЭлементы();

Пока СпрТипЦен.ПолучитьЭлемент() = 1 Цикл

Если СпрТипЦен.Валюта <> Валюта Тогда

СпрТипЦен.Валюта = Валюта;

СпрТипЦен.Записать();

КонецЕсли;

КонецЦикла;

4. Переходим к самому интересному - перебросим цены не в рублях в рубли. Справочник "Цены" подчинен справочнику "Номенклатура".

В процедуру "Сформировать()" добавляем следующий код

СпрТовар = СоздатьОбъект("Справочник.Номенклатура");

СпрТовар.ВыбратьЭлементы();

Пока СпрТовар.ПолучитьЭлемент() = 1 Цикл

Если СпрТовар.ЭтоГруппа() = 0 Тогда

СпрЦены = СоздатьОбъект("Справочник.Цены");

СпрЦены.ИспользоватьВладельца(СпрТовар.ТекущийЭлемент());

СпрЦены.ВыбратьЭлементы();

Пока СпрЦены.ПолучитьЭлемент() = 1 Цикл

Если СпрЦены.Валюта <> Валюта Тогда

СпрЦены.Валюта = Валюта;

СпрЦены.Записать();

КонецЕсли;

КонецЦикла;

Иначе

Продолжить;

КонецЕсли;

КонецЦикла;

5. Возможно, что в справочнике "Банковские счета" существуют счета не в рублях.

В процедуру "Сформировать()" добавляем следующий код

СпрБанковскиеСчета = СоздатьОбъект("Справочник.БанковскиеСчета");

СпрБанковскиеСчета.ВыбратьЭлементы();

Пока СпрБанковскиеСчета.ПолучитьЭлемент() = 1 Цикл

Если СпрБанковскиеСчета.ВалютаСчета <> Валюта Тогда

СпрБанковскиеСчета.ВалютаСчета = Валюта;

СпрБанковскиеСчета.Записать();

КонецЕсли;

КонецЦикла;

6. Чтобы узнать, в каком месте под ногами путается старая валюта, пометьте на удаление данный элемент в справочнике "Валюты" и попробуйте удалить его штатными средствами программы 1С (операции - удаление помеченных объектов).

7. Старая валюта может прописаться и в других справочниках и документах. Убрать ее из объектов конфигурации можно, если добавить в обработку программный код, очень похожий с вышеприведенными примерами. С той лишь разницей, что программно создаваться буду новые объекты конфигурации или… есть такая волшебная, многим программистам известная внешняя обработка, которая присутствует на дисках ИТС и которую нетрудно будет найти в Сети - UChoice.ert. С ее помощью достаточно быстро и легко можно перевести все в другую валюту, за исключением информации, записанной в регистры.

8. С регистрами, на которые ссылается удаляемая валюта, поступаем кардинальным образом: открываем каталог базы данных и удаляем все файлы RA***.DBF и RG***.DBF

подслушано в поселке Анна:
Численность крупного рогатого скота в Аннинском районе составляет более 18 тысяч голов
9. После этого прощаемся раз и навсегда с удаляемой валютой: операции - удаление помеченных объектов и перепроводим все проведенные документы в ИБ, чтобы восстановить утраченную информацию в регистрах.

все материалы текущего раздела