1с получить число валюты
Зачем нужна "Переоценка валюты"? Мне довольно часто задают этот вопрос начинающие бухгалтеры, потому что ещё не сталкивались на практике с валютными операциями и не понимают откуда берётся эта переоценка, как она рассчитывается и нужна ли. Давайте же разберёмся с этим раз и навсегда на примере 1С:Бухгалтерия 8.3, редакция 3.0.Во-первых, переоценка возникает "сама собою" при закрытии месяца.
Во-вторых, возникает она только для организаций, у которых были операции с валютой.
Согласно ПБУ 3/2006 об учете активов и обязательств, стоимость которых выражена в иностранной валюте имеем:
Стоимость активов и обязательств, выраженная в иностранной валюте, для отражения в бухгалтерском учете и бухгалтерской отчетности подлежит пересчету в рубли. Пересчет стоимости производится на дату совершения операции в иностранной валюте, а также на отчетную дату.Разберём на примере
01.01.2014 покупатель перечислил нам на расчетный счет 1 доллар.
Проводка будет следующей:
Д52 К62 1 USD (32.6587 рубля)Обратите внимание, что мы записали сумму проводки одновременно в валюте операции (1 доллар) и в рублях по курсу на дату совершения операции (1 января 2014 года курс доллара составлял как раз 32.6587 рубля).
Получается, что все валютные счета хранят свои денежные показатели сразу в двух измерениях: в валюте счета и в рублях (основной валюте регламентированного учёта для России).
Таким образом, на конец дня 01.01.2014 остаток по 52 счету будет составлять 1 USD и одновременно 32.6587 рубля.
Всё замечательно, но время идёт. Курс доллара меняется. И вот уже на конец месяца (31.01.2014) за один доллар дают 35.2448 рубля.
И, если мы посмотрим на наш остаток по 52 счету в конце месяца, то увидим, что несмотря на то, что курс изменился там по-прежнему лежит 1 USD и 32.6587 рубля. Но мы то знаем, что одному доллару уже соответствует не 32.6587 рубля, а 35.2448 рубля! Возникло несоответствие суммы остатка в долларах сумме остатка в рублях.
Так вот, этот самый пересчёт стоимости активов и обязательств в иностранной валюте на отчётную дату (то есть ежемесячно) как раз и придуман для того, чтобы каждый раз в конце месяца восстанавливать это соответствие между валютой и рублями.
В данном случае переоценка по 52 счёту на 31.01.2014 будет выглядеть так:
Таким образом, мы дооценили рублёвый остаток по 52 счёту на 2.5861 рубля за счёт прочего дохода. Получается курс за этот месяц вырос - отсюда и доход для организации. Если бы курс наоборот упал - был бы прочий расход.
Итак, после переоценки дебетовый остаток по 52 счету на конец дня 31.01.2014 будет составлять 1 USD и одновременно 35.2448 рубля.
Но время идёт. И вот на конец февраля за 1 доллар дают уже 36.0501 рублей. А значит, у нас опять возникло несоответствие долларов и рублей на 52 счете, а заодно возник прочий доход за счет повышения курса за февраль.
Новая переоценка даст следующие проводки:
И дебетовый остаток по 52 счету на конец дня 28.02.2014 составит всё тот же 1 USD и одновременно 36.0501 рублей.
И так мы будем переоценивать до бесконечности, пока у нас будет сохраняться ненулевой остаток по 52 счёту. Таким же образом переоцениваются и другие валютные счета.
Вот вкратце теория переоценки валютных средств в бухгалтерском учёте. А теперь давайте посмотрим как это всё реализовано в программе на примере 1С:Бухгалтерия 8.3 (редакция 3.0):
Делаем загрузку курсов валют за 2014 год
Заводим валютный счёт (USD)
Для этого заходим в раздел "Главное"->"Организации" и открываем там нашу организацию ( у вас другое меню? ):
В карточке организации в верхней панели выбираем пункт "Банковские счета":
В открывшемся списке счетов нажимаем кнопку "Создать" и заполняем карточку расчетного счета следующим образом (номер счета и БИК указаны в качестве примера; обязательно выбрать валюту счета USD):
Нажимаем "Записать и закрыть".
Делаем поступление денежных средств от покупателя
Для этого заходим в раздел "Банк и касса" и выбираем там пункт "Банковские выписки" ( у вас другое меню? ):
Нажимаем кнопку "Поступление" и заполняем банковскую выписку следующим образом (поступление 01 доллара 01.01.2014; от любого контрагента по любому договору; счет учета - 52; банковский счет - тот, что мы только что создали):
Нажимаем "Провести и закрыть".
Смотрим проводки документа (кнопка ДтКт в журнале выписок):
Видим, что 1 доллар оприходовался на 52 счет по курсу на 01.01.2014 (о том как смотреть курсы валют на определённую дату в 1С:Бухгалтерия читайте здесь).
Делаем закрытие месяца за январь
Заходим в раздел "Операции" и выбираем там пункт "Закрытие месяца" ( у вас другое меню? ):
Выбираем период январь 2014 и нажимаем "Выполнить закрытие месяца".
Затем находим пункт "Переоценка валютных средств", нажимаем на нём и выбираем "Показать проводки":
Вот она наша курсовая разница на 2.58 рубля:
Вернёмся в закрытие месяца за январь 2014 и найдём там кнопку "Справки-расчеты". Нажмём её и выберем пункт "Переоценка валютных средств":
Программа сформирует отчет с расчетами по переоценке валютных средств:
Аналогичным образом сделайте закрытие месяца за февраль, чтобы убедиться, что наши предварительные расчеты совпадают с поведением программы.
Мы молодцы, на этом всё
Кстати, подписывайтесь на новые уроки.
Решение проблем с переоценкой
Всем, кто работает с валютой (или оплатой в условных единицах) нужно знать о таком замечательном регистре сведений "Счета с особым порядком переоценки".
Если в этот регистр добавить какой-то из счетов (например, 52), то 1С перестанет делать по нему автоматический расчёт курсовых разниц.
По умолчанию этот регистр имеет следующий набор счетов:
Это означает, что валютные (или в условных единицах) остатки по всем этим счетам не переоцениваются программой автоматически.
Отсюда у пользователей возникают следующие проблемы.
Почему 1С не делает расчет курсовых разниц (переоценку валюты)
Для начала убедитесь, что у вас загружен курс валюты: ссылка.
Если и это не помогает, то очень вероятно, что счёт по которому вы ожидаете расчёт курсовой разницы занесён у вас в список счетов с особым порядком переоценки.
Если по нему всё же нужно делать переоценку, тогда зайдите в меню функции для технического специалиста. :
В открывшемся диалоге раскройте пункт "Регистры сведений" и найдите там "Счета с особым порядком переоценки":
Откройте этот регистр и если нужный вам счёт в этом списке - это и есть причина, по которой 1С не делает расчёт курсовых разниц по нему.
Удалите этот счёт из регистра и остаток по нему начнёт переоцениваться на конец месяца (закрытие) и на дату операции по нему.
Как заставить 1С не рассчитывать курсовую разницу по определенному счёту
В открывшемся диалоге раскройте пункт "Регистры сведений" и найдите там "Счета с особым порядком переоценки":
Откройте этот регистр и добавьте в него нужный вам счёт. Всё. 1С больше не будет делать переоценку остатка (расчёт курсовой разницы) на этом счёте.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).
среда, 12 марта 2014 г.
Типовая функция для пересчета из валюты в валюту
Для пересчета из валюты в валюту в типовых конфигурациях используется функция ПересчитатьИзВалютыВВалюту, расположенная в общем модуле - МодульВалютногоУчета.Текст функции такой:
// Эта функция пересчитывает сумму из валюты ВалютаНач по курсу ПоКурсуНач
// в валюту ВалютаКон по курсу ПоКурсуКон
//
// Параметры:
// Сумма - сумма, которую следует пересчитать;
// ВалютаНач - ссылка на элемент справочника Валют;
// определяет валюты из которой надо пересчитвать;
// ВалютаКон - ссылка на элемент справочника Валют;
// определяет валюты в которую надо пересчитвать;
// ПоКурсуНач - курс из которого надо пересчитать;
// ПоКурсуКон - курс в который надо пересчитать;
// ПоКратностьНач - кратность из которого надо пересчитать (по умолчанию = 1);
// ПоКратностьКон - кратность в который надо пересчитать (по умолчанию = 1);
//
// Возвращаемое значение:
// Сумма, пересчитанная в другую валюту
//
Функция ПересчитатьИзВалютыВВалюту ( Сумма , ВалютаНач , ВалютаКон , ПоКурсуНач , ПоКурсуКон ,
ПоКратностьНач = 1 , ПоКратностьКон = 1 , Погрешность = 0 ,
СоответствиеПогрешностей = Неопределено, Ключ = Неопределено) Экспорт
Если ( ВалютаНач = ВалютаКон ) Тогда
// Считаем, что пересчет не нужен.
Возврат Сумма ;
КонецЕсли;
Если ( ПоКурсуНач = ПоКурсуКон )
и ( ПоКратностьНач = ПоКратностьКон ) Тогда
// пересчет суммы не требуется
Возврат Сумма ;
КонецЕсли;
Если ПоКурсуНач = 0
или ПоКурсуКон = 0
или ПоКратностьНач = 0
или ПоКратностьКон = 0 Тогда
ОбщегоНазначения . СообщитьОбОшибке ( "При пересчете из валюты '" + ВалютаНач + "' в валюту '" + ВалютаКон + "' обнаружен нулевой курс. Пересчет не произведен!" );
Возврат 0 ;
КонецЕсли;
НоваяСумма = ( Сумма * ПоКурсуНач * ПоКратностьКон ) / ( ПоКурсуКон * ПоКратностьНач );
Возврат ОбщегоНазначения . ОкруглитьСУчетомПогрешности ( НоваяСумма , 2 , Погрешность , СоответствиеПогрешностей , Ключ );
В УПП также существует функция ПересчитатьВСуммуРегл, которая предназначена для пересчета суммы управленческого учета в сумму регламентированного учета.
// Функция производит пересчет суммы в валюте упр. учета в валюту регл. учета.
//
Функция ПересчитатьВСуммуРегл ( СуммаУпр , ВалютаРегламентированногоУчета , ВалютаУправленческогоУчета , Дата ) Экспорт
ВалютаРегл = ВалютаРегламентированногоУчета ;
ВалютаУпр = ВалютаУправленческогоУчета ;
КурсВал = ПолучитьКурсВалюты ( ВалютаРегл , Дата );
КурсРегл = КурсВал . Курс ;
КратРегл = КурсВал . Кратность ;
КурсВал = ПолучитьКурсВалюты ( ВалютаУпр , Дата );
КурсУпр = КурсВал . Курс ;
КратУпр = КурсВал . Кратность ;
СуммаРегл = ПересчитатьИзВалютыВВалюту ( СуммаУпр , ВалютаУпр , ВалютаРегл , КурсУпр , КурсРегл , КратУпр , КратРегл );
Получить данные из регистра сведений
Нужно получить данные из регистра сведений. Мне нужно вывести данные одного из полей регистра за.
Никак не могу получить данные из регистра сведений
Функция ПолучитьКоличествоДолжностей(Должность) Экспорт ЭтаДолжность = Новый Структура;.
Получить данные из регистра сведений
Добрый день! Помогите пожалуйста разобраться! Есть регистр сведений - независимый.
Получить курсы валют с сервера центробанка
До вчерашнего всё работало без проблем. Теперь не хочет. Чо надо ему, а? <?php .
Подтолкнете данные из таблицы в необходимые поля на форме.
Чтобы выполнялось при открытии, код в соответсвующий обработчик события формы - ПриОткрытии.
Чтобы выборка шла сразу по нескольким валютам можно заменить Валюта = &Валюта на Валюта В (&СписокВалют) и передавать в запрос список валют (в вашем случае USD и EUR).
Спасибо, но всё равно выводит ошибку.
Вставляю эту процедуру в модуль формы Номенклатура в процедуру ПриОткрытии.
: Переменная не определена (Справочники)
стДоллар = <<?>>Справочники.Валюты.НайтиПоНаименованию("USD"); (Проверка: Тонкий клиент)
: Переменная не определена (Справочники)
стЕвро = <<?>>Справочники.Валюты.НайтиПоНаименованию("EURO"); (Проверка: Тонкий клиент)
: Переменная не определена (РегистрыСведений)
КурсД = <<?>>РегистрыСведений.КурсыВалют.СрезПоследних(ТекущаяДата() ,Новый Структура("Валюта",стДоллар))[0].Курс; (Проверка: Тонкий клиент)
: Переменная не определена (РегистрыСведений)
КурсЕ = <<?>>РегистрыСведений.КурсыВалют.СрезПоследних(ТекущаяДата() ,Новый Структура("Валюта",стЕвро))[0].Курс; (Проверка: Тонкий клиент)
кратность
Даны натуральные числа M и N. Найти все числа, кратные числу N, меньшие M*N.
Кратность
Задание: нужно ввести строку, если в ней количество слов кратна числу 7, то логической переменной B.
Кратность 7
Суть программы определить делимость на 7 ряда целых чисел, записанных в двоичной системе счисления.
если будет написано "100 йен стоят 17 гульденов" значит кратность 100 (если твоя родная валюта - гульден) Yulunga, а можете в рублях объяснить и долларах. Что то я не понял ваш ответ? очень сложно но постараюсь
цена указана не за единицу валюты, а за некую степень 10
Допусти 70 рублей 1 доллар.
Какая здесь кратность?
Добавлено через 30 секунд
Или я не так размышляю.
Вы можете пример привести тогда может я пойму.
Реквизиты "Курс" и "Кратность" взаимосвязаны, смысл их использования следующий. Если кратность задана равной единице, то в поле "Курс" вводится количество рублей, соответствующее единице данной валюты (то есть, курс валюты — в привычном понимании) . Если курс данной валюты по отношению к рублю очень низкий (точность составляет меньше 4 знаков дробной части) , в поле "Кратность" следует указать количество единиц валюты, принятое к котированию (котировочная единица валюты) , а в поле "Курс" — сумму в рублях, соответствующую этому количеству единиц валюты.
Например. Курс итальянской лиры составляет 3,4756 рубля за 1000 лир. Тогда в поле "Кратность" указываем 1000 (котировочная единица итальянской лиры) , а в поле "Курс" 3,4756.
ЭТО ПЕРВАЯ ( . ) ССЫЛКА НА ЯНДЕКСЕ ПО ЗАПРОСУ "кратность в курсах валют"
количество занков после запятой не должно превышать 4
поэтому не может быть написано 192,4459017 копеек за 4177,3345109 у.е.
Читайте также: