Как можно сделать так чтоб в двух графах отчета "Расчеты с поставщиками" цифры показывали и в долларах и в рублях?

1. Shurik_M 2 28.07.18 07:34 Сейчас в теме
Помогите пожалуйста, можно ли сделать так чтоб в двух графах отчета "Расчеты с поставщиками" цифры показывали и в долларах и в рублях? Н-р: если делали РКО поставщику в долларах, то в отчете сумма документа должно показывать и в долларах и в рублях. При этом курс валюты должен брать на дату документа. 1С8.3 УТ11.3.3.205
Найденные решения
2. Leon75 28.07.18 12:44 Сейчас в теме
(1)Есть общий модуль, вроде как "РаботаСВалютами", в нем функция типа "ПересчитатьИзВалютыВВалюту("параметрынужнопосмотреть"), . Делаем в вкладке СКД вычисляемые поля, в вычисляемом поле в выражении делаем вызов этой функции, в параметры которой передаем нужные данные. Потом это вычисляемое поле добавляем в ресурсы. В выбранные поля отчета добавляем этот ресурс.
Добавляем в параметры &ВалютаПересчета тип справочник.валюты выражение по умолчанию Справочник.Валюты.ПустаяСсылка который будет передавать валюту в функцию для пересчета. Устанавливаем запрет незаполненного и выводим его в пользовательские настройки. Заходим в модуль обьекта отчета, и если там есть обработчик ПриКомпоновкеРезультата(), то проверяем строку ПроцессорКомпоновкиДанных.Инициализировать(). Последним параметром должен быть Истина. Этот параметр отвечает за использование внешних функций.
4. Leon75 29.07.18 17:50 Сейчас в теме
(3)
а вот здесь не понял: "в параметры которой передаем нужные данные"

Фигово...


Как произвольный пример:
РаботаСКурсамиВалют.ПересчитатьВВалюту(ДолгНачальныйОстаток, Выбор Когда &ДанныеПоРасчетам = 1 Тогда ВалютаВзаиморасчетов Когда &ДанныеПоРасчетам = 2 Тогда ДоходыИРасходыСервер.ПолучитьВалютуУправленческогоУчета() Когда &ДанныеПоРасчетам = 3 Тогда ЗначениеНастроекПовтИсп.ПолучитьВалютурегламентированногоУчета()  Конец, ВалютаВзаиморасчетов, ТекущаяДата())


ТекущаяДата() заменяете на что-то более внятное.
10. Shurik_M 2 31.07.18 10:41 Сейчас в теме
Нашел функцию который получает дату документа и написал ее в место ТекущаяДата(): ДенежныеСредстваКлиентСервер.ПолучитьДатуИзСтроки(Регистратор.Дата). Проверил, все верно показывает. Спасибо за советы! ))
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Leon75 28.07.18 12:44 Сейчас в теме
(1)Есть общий модуль, вроде как "РаботаСВалютами", в нем функция типа "ПересчитатьИзВалютыВВалюту("параметрынужнопосмотреть"), . Делаем в вкладке СКД вычисляемые поля, в вычисляемом поле в выражении делаем вызов этой функции, в параметры которой передаем нужные данные. Потом это вычисляемое поле добавляем в ресурсы. В выбранные поля отчета добавляем этот ресурс.
Добавляем в параметры &ВалютаПересчета тип справочник.валюты выражение по умолчанию Справочник.Валюты.ПустаяСсылка который будет передавать валюту в функцию для пересчета. Устанавливаем запрет незаполненного и выводим его в пользовательские настройки. Заходим в модуль обьекта отчета, и если там есть обработчик ПриКомпоновкеРезультата(), то проверяем строку ПроцессорКомпоновкиДанных.Инициализировать(). Последним параметром должен быть Истина. Этот параметр отвечает за использование внешних функций.
3. Shurik_M 2 29.07.18 15:39 Сейчас в теме
(2) Общий модуль называется РаботаСКурсамиВалют,
 Функция ПересчитатьВВалюту(Сумма, ИсходнаяВалюта, НоваяВалюта, Дата) Экспорт
		Возврат РаботаСКурсамиВалютКлиентСервер.ПересчитатьПоКурсу(Сумма,
		ПолучитьКурсВалюты(ИсходнаяВалюта, Дата),
		ПолучитьКурсВалюты(НоваяВалюта, Дата));
КонецФункции
Функцию вызвал в вычисляемом поле вот так:
РаботаСКурсамиВалют.ПересчитатьВВалюту()
а вот здесь не понял: "в параметры которой передаем нужные данные" Добавил в ресурсы. Добавил в вкладке ПАРАМЕТРЫ Имя=ВалютаПересчета, Тип=СправочникСсылка.Валюты, Значение=Справочник.Валюты.ПустаяСсылка. В выбранные поля добавил созданный ресурс. В модуле объекта отчета стоит ИСТИНА
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
НО присформирование отчета пишет Неправильное количество параметров "РаботаСКурсамиВалют.ПересчитатьВВалюту". Что делаю не правильно?
4. Leon75 29.07.18 17:50 Сейчас в теме
(3)
а вот здесь не понял: "в параметры которой передаем нужные данные"

Фигово...


Как произвольный пример:
РаботаСКурсамиВалют.ПересчитатьВВалюту(ДолгНачальныйОстаток, Выбор Когда &ДанныеПоРасчетам = 1 Тогда ВалютаВзаиморасчетов Когда &ДанныеПоРасчетам = 2 Тогда ДоходыИРасходыСервер.ПолучитьВалютуУправленческогоУчета() Когда &ДанныеПоРасчетам = 3 Тогда ЗначениеНастроекПовтИсп.ПолучитьВалютурегламентированногоУчета()  Конец, ВалютаВзаиморасчетов, ТекущаяДата())


ТекущаяДата() заменяете на что-то более внятное.
5. Shurik_M 2 30.07.18 08:44 Сейчас в теме
(4) Спасибо Вам огромное, все получилось. А как получить Дата курса на Дату документов?
6. Leon75 30.07.18 10:23 Сейчас в теме
(5)С этим сложнее.

Нужно получить дату Расчетного документа. Но расчетный документ в СКД не доступен как поле.
Его можно увидеть во втором запросе второго пакета набора данных. Обращаться мы к нему без переделок не можем.
И это составной тип.
И на одну строку отчета Расчетных документов может быть массив.

Я же правильно понял, точка отсчета - дата документа платежа, а не дата заказа поставщику?
7. Shurik_M 2 30.07.18 10:28 Сейчас в теме
(6) Да, дата документа платежа. Еще раз спасибо за ответы. Дальше будем копать.
8. Shurik_M 2 30.07.18 10:54 Сейчас в теме
В место ТекущаяДата() вставил ПериодДень а в Настройках Структуре отчета на первом месте поставил ПериодДень. Вот теперь получилось сумма документа в двух валютах!
9. Shurik_M 2 30.07.18 12:04 Сейчас в теме
(8) а нее, что а у меня все суммы стали не правильно показать... :(
10. Shurik_M 2 31.07.18 10:41 Сейчас в теме
Нашел функцию который получает дату документа и написал ее в место ТекущаяДата(): ДенежныеСредстваКлиентСервер.ПолучитьДатуИзСтроки(Регистратор.Дата). Проверил, все верно показывает. Спасибо за советы! ))
11. FB_2710863099162156 07.10.20 13:10 Сейчас в теме
Есть общий модуль, вроде как "РаботаСВалютами",
где это отдельно скачать для 8.2?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот