Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Июл 2017, 19:38
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Ведомость по продукции на складах в ценах номенклатуры в 1С  (Прочитано 473 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 1cwiki

  • Модератор
  • *****
  • Сообщений: 8287
  • РЕПУТАЦИЯ: 10
  • КПД: 0%
  • Регистрация: 2014-08-05
  • Сайт: 
  • Профессия: Программист 8.1
Первое, что нужно сделать, это в параметры схемы компоновки отчета под названием «ВедомостьПоТоварамНаСкладахВЦенахНоменклатуры» добавить новый параметр с именем «ВалютаОтчёта». Тип — «СправочникСсылка.Валюта», который необходимо использовать всегда:

Скрин 1

Далее добавьте новое поле в итоговый запрос, а также следующую конструкцию:

ВЫБОР
КОГДА &ВалютаОтчёта = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
ТОГДА ВидыЦен.ВалютаЦены
ИНАЧЕ &ВалютаОтчёта
КОНЕЦ КАК ВалютаДляОтчёта

А смысл данной конструкции состоит в том, что система будет брать валюту из вида цен, если такая не заполнена в параметрах.

С целью упрощения нужно будет итоговую таблицу поместить во временную таблицу с именем «ПредИтог». После этого создайте  новый запрос для того, что бы туда поместить всю предыдущую таблицу, а также 2 новые виртуальные: «Курсы Отчёта» и «Курсы Цены» (срез последних регистра сведений с именем «КурсыВалют»):

Скрин 2

Далее для 2 новых временных таблиц внесите параметр под названием «&Период»:

Скрин 3

Таблица с именем «Курсы Цены» имеет курс, что указан для этого вида цена, а таблица под названием «Курсы Отчёта» имеет курс для валюты, которая указана в отчете.

После этого таблицу «Курсы Цены» свяжите по полю с именем  «Валюта», а таблицу под названием «Курсы Отчёта» - по полю под названием «Валюта Для Отчета».

Скрин 4

Далее замените поля сумм «Сумма Начальный Остаток», «Сумма Приход», «Сумма Расход» и «Сумма КонечныйОстаток» на новые, вычисляемые поля, с помощью добавления конструкции «* Курсы Цены. Курс * Курсы Отчёта. Кратность/(Курсы Цены. Кратность * Курсы Отчёта. Курс)»:

ПредИтог.СуммаНачальныйОстаток * КурсыЦены.Курс * КурсыОтчёта.Кратность / (КурсыЦены.Кратность * КурсыОтчёта.Курс) КАК СуммаНачальныйОстаток,
ПредИтог.СуммаПриход * КурсыЦены.Курс * КурсыОтчёта.Кратность / (КурсыЦены.Кратность * КурсыОтчёта.Курс) КАК СуммаПриход,
ПредИтог.СуммаРасход * КурсыЦены.Курс * КурсыОтчёта.Кратность / (КурсыЦены.Кратность * КурсыОтчёта.Курс) КАК СуммаРасход,
ПредИтог.СуммаКонечныйОстаток * КурсыЦены.Курс * КурсыОтчёта.Кратность / (КурсыЦены.Кратность * КурсыОтчёта.Курс) КАК СуммаКонечныйОстаток,

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

Скрин 5

После этого включите в пользовательские настройки новые параметры. Одному из них – параметру под названием «Период» задайте представление с именем «Дата курса валюты», с целью лучшей наглядности.

Потом в группировках и выбранных полях поле под названием «Валюта» замените  на поле с именем «ВалютаДляОтчёта»:

Скрин 6

С целью реализации требования заполните поля с именем «Валюты» в момент выбора типа цены нужно сформировать форму отчета по умолчанию и в обработчик «При Изменении»:

Скрин 7

Где прописать нижеуказанный программный код:

&НаКлиенте
Процедура КомпоновщикНастроекПользовательскиеНастройкиПриИзменении(Элемент)
Настройка = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ПолучитьОбъектПоИдентификатору(Элемент.ТекущаяСтрока);
Если Настройка <> Неопределено
И Настройка.Параметр = Новый ПараметрКомпоновкиДанных(«ВидЦены») тогда
НастройкаВалюты = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(Отчет.КомпоновщикНастроек.ПользовательскиеНастройки,»ВалютаОтчёта»);
Если НастройкаВалюты <> Неопределено Тогда
НастройкаВалюты.Значение=ВалютаВидаЦены(Настройка.Значение);
Конецесли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ВалютаВидаЦены(ВидЦены)
Возврат ВидЦены.ВалютаЦены;
КонецФункции


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
93 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
68 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений
Dethmontt Dethmontt
22 Сообщений
xproh
21 Сообщений

* Кто онлайн

  • Точка Гостей: 394
  • Точка Скрытых: 0
  • Точка Пользователей: 13
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal