Как перевести торгово-складской учет в программе 1С Предприятие 7.7 на другую валюту
Воронежское региональное отделение Союза писателей России и администрация Аннинского района учредили литературную премию в честь выдающейся поэтессы Е. П. Ростопчиной.
1. Входим в режим конфигуратора и создаем новую внешнюю обработку.
2. На начальном этапе необходимо изменить значение непериодической константы ВалютаУпрУчета и установить новое значение: в нашем конкретном случае валютой управленческого учета станет "рубль".
В процедуру "Сформировать()" добавляем следующий код
Спр = СоздатьОбъект("Справочник.Валюты");
Если Спр.НайтиПоКоду("810",0) = 1 Тогда
Валюта = Спр.ТекущийЭлемент();
Константа.ВалютаУпрУчета = Валюта;
КонецЕсли;
3. Следующий шаг - в справочнике "Типы цен" изменим валюту цены.
В процедуру "Сформировать()" добавляем следующий код
СпрТипЦен = СоздатьОбъект("Справочник.ТипыЦен");
СпрТипЦен.ВыбратьЭлементы();
Пока СпрТипЦен.ПолучитьЭлемент() = 1 Цикл
Если СпрТипЦен.Валюта <> Валюта Тогда
СпрТипЦен.Валюта = Валюта;
СпрТипЦен.Записать();
КонецЕсли;
КонецЦикла;
4. Переходим к самому интересному - перебросим цены не в рублях в рубли. Справочник "Цены" подчинен справочнику "Номенклатура".
В процедуру "Сформировать()" добавляем следующий код
СпрТовар = СоздатьОбъект("Справочник.Номенклатура");
СпрТовар.ВыбратьЭлементы();
Пока СпрТовар.ПолучитьЭлемент() = 1 Цикл
Если СпрТовар.ЭтоГруппа() = 0 Тогда
СпрЦены = СоздатьОбъект("Справочник.Цены");
СпрЦены.ИспользоватьВладельца(СпрТовар.ТекущийЭлемент());
СпрЦены.ВыбратьЭлементы();
Пока СпрЦены.ПолучитьЭлемент() = 1 Цикл
Если СпрЦены.Валюта <> Валюта Тогда
СпрЦены.Валюта = Валюта;
СпрЦены.Записать();
КонецЕсли;
КонецЦикла;
Иначе
Продолжить;
КонецЕсли;
КонецЦикла;
5. Возможно, что в справочнике "Банковские счета" существуют счета не в рублях.
В процедуру "Сформировать()" добавляем следующий код
СпрБанковскиеСчета = СоздатьОбъект("Справочник.БанковскиеСчета");
СпрБанковскиеСчета.ВыбратьЭлементы();
Пока СпрБанковскиеСчета.ПолучитьЭлемент() = 1 Цикл
Если СпрБанковскиеСчета.ВалютаСчета <> Валюта Тогда
СпрБанковскиеСчета.ВалютаСчета = Валюта;
СпрБанковскиеСчета.Записать();
КонецЕсли;
КонецЦикла;
6. Чтобы узнать, в каком месте под ногами путается старая валюта, пометьте на удаление данный элемент в справочнике "Валюты" и попробуйте удалить его штатными средствами программы 1С (операции - удаление помеченных объектов).
7. Старая валюта может прописаться и в других справочниках и документах. Убрать ее из объектов конфигурации можно, если добавить в обработку программный код, очень похожий с вышеприведенными примерами. С той лишь разницей, что программно создаваться буду новые объекты конфигурации или… есть такая волшебная, многим программистам известная внешняя обработка, которая присутствует на дисках ИТС и которую нетрудно будет найти в Сети - UChoice.ert. С ее помощью достаточно быстро и легко можно перевести все в другую валюту, за исключением информации, записанной в регистры.
8. С регистрами, на которые ссылается удаляемая валюта, поступаем кардинальным образом: открываем каталог базы данных и удаляем все файлы RA***.DBF и RG***.DBF
9. После этого прощаемся раз и навсегда с удаляемой валютой: операции - удаление помеченных объектов и перепроводим все проведенные документы в ИБ, чтобы восстановить утраченную информацию в регистрах.