Курсовые разницы при частичной или полной оплате — Как?

Автор Сообщение
aav
Администратор
Администратор

Зарегистрирован: 14.09.2004
Сообщения: 1081
Откуда: Санкт-Петербург

Добавлено: 24.01.2007 10:57 Заголовок сообщения: Курсовые разницы при частичной или полной оплате — Как?
Наша новая процедура:

Ввод счетов-фактур и платежей в Скалу для получения правильных курсовых разниц при частичной или полной оплате.
1. Авансовый платеж сделан раньше счета-фактуры
o При получении авансовой оплаты в валюте платеж Книги Продаж или платеж Книги Закупок вводится по текущему курсу на дату оплаты
o При выставлении счета-фактуры покупателю или вводе счета-фактуры поставщика он вводится по текущему курсу на дату выставления счета.
o При зачете авансового платежа в оплату счета-фактуры платеж делается датой счета-фактуры.
o Если счет-фактура при этом оплачивается полностью, тогда обе части проводки (счет-фактура и авансовый платеж) увязываются по курсу авансового платежа.
o Если счет-фактура оплачивается частично, тогда пересчет суммы от авансового платежа делается по курсу авансового платежа, а часть суммы счета-фактуры – по текущему курсу. Разница по проводке при этом относится «вручную» на соответствующий счет курсовой разницы.
2. Счет фактура получен/выставлен раньше платежа
o При выставлении счета-фактуры покупателю или вводе счета-фактуры поставщика он вводится по текущему курсу на дату выставления счета.
o При получении авансовой оплаты в валюте платеж Книги Продаж или платеж Книги Закупок вводится по текущему курсу на дату оплаты
o При зачете авансового платежа в оплату счета-фактуры платеж делается датой авансового платежа.
o Если счет-фактура при этом оплачивается полностью, тогда обе части проводки (счет-фактура и авансовый платеж) увязываются по курсу авансового платежа.
o Если счет-фактура оплачивается частично, тогда пересчет суммы от авансового платежа делается по текущему курсу, а часть суммы счета-фактуры – по курсу счета-фактуры (курсу на дату ввода счета-фактуры или на дату последней переоценки). Разница по проводке при этом относится «вручную» на соответствующий счет курсовой разницы.

а теперь самое интересное:

Чтобы выбрать курс конкретного счета-фактуры (или платежа), необходимо проделать следующие действия:
При вводе платежа после ввода (или выбора) конкретного счета-фактуры и ввода валютной суммы, Вы оказываетесь в поле «СУММА РУБ» — нажмите «Esc». Будет выведено диалоговое окошко для ввода курса:

Нажмите на кнопку «ВК» (Выбор Курса»). Вам будет предложено ввести код поставщика (или покупателя, в зависимости от того, где Вы находитесь – в Книге Закупок или Книге Продаж).
Введите «вручную» код поставщика (или покупателя, если Вы вводите платеж покупателя) и нажмите «Enter». Вам будет выведен список открытых счетов-фактур для этого поставщика:

или покупателя (соответственно):

Выберите тот счет-фактуру (или платеж), курс которого необходимо использовать для данной операции.

У Вас нет кнопки «ВК»? Вот ведь досада Wink
Интересующимся могу прислать xml файлы для импорта «быстрых поисков», функциональность которых здесь использована. Или могу опубликовать здесь их текст, пишите! Very Happy

aav
Администратор
Администратор

Зарегистрирован: 14.09.2004
Сообщения: 1081
Откуда: Санкт-Петербург

Добавлено: 26.01.2007 09:38 Заголовок сообщения: Как добавить кнопку "ВК"
Любознательные люди интересуются, как добавить кнопку. Отвечаю:
1. Для начала надо создать так называемые быстрые поиски. Для этого из верхнего меню выбираем Инструменты -> Построитель быстрого поиска (разумеется Вам это должно быть разрешено, чтобы Вы могли это сделать)
2. В окне отрывшегося Snap Search Builder’а выбираем Файл -> Импорт из файла и ищем файл, который нам нужен.
3. А чтобы этот файл найти я опубликую его текст, а Вы выделите его, скопируете в буфер, затем откроете блокнот, скопируете туда и сохраните под именем, указанным ниже:

Итак: файл sl_ExchRate.xml (для Книги Продаж)

Код:
<Query name="SL_ExchRate" UseSQL="-1"><SQLText>SELECT
case when SL03.[SL03054]=0 then case SL03.[SL03014] when 0 then 1 else SL03.[SL03013]/SL03.[SL03014] end
   when SL03.[SL03014]-SL03.[SL03054]=0 then 1 else (SL03.[SL03013]-SL03.[SL03053])/(SL03.[SL03014]-SL03.[SL03054]) end as [Курс],
SL03.[SL03002] AS [Сч.-ф],
SL03.[SL03003] AS [№ пров],
SL03.[SL03004] AS [Дата с-ф],
SL03.[SL03014] AS [Сумма],
SL03.[SL03054] AS [Оплачено]
FROM {SL03} SL03 (nolock) where SL03.[SL03014]&lt;&gt;SL03.[SL03054] and SL03.[SL03001]=» +upper(@Customer) +»</SQLText><Descriptions><Description LangCode="ENG">Текущий курс СФ Покупателя</Description><Description LangCode="RUS">Текущий курс СФ Покупателя</Description></Descriptions><Tables/><Joins/><Columns/><Parameters><Parameter ID="1" DataType="7" Column="-1" Row="0" Name="@Customer" DefaultValue="" Length="10" FractionLength="0"><Descriptions><Description LangCode="ENG">Код покупателя</Description><Description LangCode="RUS">Код покупателя</Description></Descriptions></Parameter></Parameters></Query>

Файл pl_ExchRate.xml (Для КЗ, соответственно):

Код:
<Query name="PL_ExchRate" UseSQL="-1"><SQLText>SELECT
case when PL03.[PL03027]=0 then case PL03.[PL03014] when 0 then 1 else PL03.[PL03013]/PL03.[PL03014] end
   when PL03.[PL03014]-PL03.[PL03027]=0 then 1 else (PL03.[PL03013]-PL03.[PL03026])/(PL03.[PL03014]-PL03.[PL03027]) end as [Курс],
PL03.[PL03002] AS [Сч.-ф], PL03.[PL03003] AS [№ пров], PL03.[PL03004] AS [Дата с-ф], PL03.[PL03014] AS [Сумма], PL03.[PL03027] AS [Оплачено]

 FROM {PL03} PL03 where PL03.[PL03014]&lt;&gt;PL03.[PL03027] and PL03.[PL03001]=» +upper(@Supplier) +»</SQLText><Descriptions><Description LangCode="ENG">Текущий курс СФ Поставшика</Description><Description LangCode="RUS">Текущий курс СФ Поставшика</Description></Descriptions><Tables/><Joins/><Columns/><Parameters><Parameter ID="1" DataType="7" Column="-1" Row="0" Name="@Supplier" DefaultValue="" Length="10" FractionLength="0"><Descriptions><Description LangCode="ENG">Код поставщика</Description><Description LangCode="RUS">Код поставщика</Description></Descriptions></Parameter></Parameters></Query>

После импорта надо новые поиски сохранить. Чаще всего для того, чтобы их добавить уже в саму Скалу, необходимо из Скалы выйти и зайти заново.

4. Заходим в Скалу, начинаем ввод платежей, добираемся до нужного поля, нажимаем мышью на треугольничек поля ввода курса и из меню выбираем "Управлять ссылками"
5. Видим следующее:

Нажимаем на "Доб…" и заполняем, как на картинке

Когда все добавлено, нажимаем "ОК" и видим следующую картинку:

Если у Вас не стоит SR2, то поля "Активировать" и, соответственно, кнопки "ВК" может не быть, тогда вызов формы Вы сможете сделать, выбирая из меню по нажатию на треугольничек (см. выше).
Желаю успеха. Если будут проблемы с сохранением xml файлов, пишите, я их вышлю.

aav
Администратор
Администратор

Зарегистрирован: 14.09.2004
Сообщения: 1081
Откуда: Санкт-Петербург

Добавлено: 09.03.2007 11:04 Заголовок сообщения: Re: Как добавить кнопку "ВК"

aav писал(а):

Код:
<SQLText>SELECT
case when SL03.[SL03054]=0 then case SL03.[SL03014] when 0 then 1 else SL03.[SL03013]/SL03.[SL03014] end
   when SL03.[SL03014]-SL03.[SL03054]=0 then 1 else (SL03.[SL03013]-SL03.[SL03053])/(SL03.[SL03014]-SL03.[SL03054]) end as [Курс],
SL03.[SL03002] AS [Сч.-ф],
SL03.[SL03003] AS [№ пров],
SL03.[SL03004] AS [Дата с-ф],
SL03.[SL03014] AS [Сумма],
SL03.[SL03054] AS [Оплачено]
FROM {SL03} SL03 (nolock) where SL03.[SL03014]&lt;&gt;SL03.[SL03054] and SL03.[SL03001]=» +upper(@Customer) +»</SQLText>

Обнаружили ошибку алгоритма.
Необходимо исправить следующим образом:
case when SL03.[SL03054]=0 and SL03.[SL03053]=0 then
Аналогично для PL:
case when PL03.[PL03027]=0 and PL03.[PL03026]=0 then