Задачка на Специалиста

Отзывов (7)FavoriteLoadingВ закладки

все праздники промучался, но так и не нашел решения задачи 2.2 сборника задач для подготовки к специалисту по УТ. по условию задачи нужно доработать прайс-лист, чтобы его можно было формировать в валютах видов цен либо в одной валюте, которая выбирается в диалоге. когда валюта указана, то все работает отлично, но когда нет, то выходит ошибка о том, что не указано значение параметра, а мне его и не нужно указывать, я хочу, чтобы отчет формировался “по старому”, т.е. так как в конфигурации. вот в этом затык, получается, никак не могу найти решение, подскажите пожалуйста или намекните в какую хотя бы сторону смотреть?

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

7 Коммент.

  1. по умолчанию у каждого вида цены своя валюта (отчет Прайс-лист в УТ), по условию задачи нужно добавить возможность выбора валюты отчета так, чтобы все цены пересчитались в этой валюте. т.е. если валюта указана, то все цены в ней, если нет, то каждый вид цен должен формироваться в своей валюте.
    ситуация, когда валюта указана, у меня отработана, я не могу пока сделать так, чтобы при НЕуказании валюты цены выводились в своих валютах, т.к. если я не указываю валюту, то выходит ошибка о том, что не указан параметр ВалютаОтчета. параметр ВалютаОтчета – это параметр из условия к виртуальной таблице курсов валют, откуда я получаю нужные мне курс и кратность.

  2. если вот такая ошибка:
    Ошибка компоновки макета
    по причине:
    Не установлено значение параметра “ВалютаОтчета”, то у этого параметра свойство “Запрещать незаполненные значения” нужно выставить в ложь
    или
    использовать не параметр, а отбор- в этом случае при установленном отборе система компоновки сама добавит нужный параметр в виртуальную таблицу
    )))

    • хотя и отбор здесь не получится использовать, мне кажется, поскольку при неуказании валюты отчет должен формироваться “по старому”, как в конфигурации. мне всё-таки кажется, что нужно использовать параметр. решение вижу таким:
      Выбор Когда &ВалютаОтчета=Null Тогда
      ЦеныНоменклатуры.Цены
      Иначе
      ЦеныНоменклатуры.Цены*КурсВалютыЦены.Курс/КурсВалютыОтчета.Курс
      Конец
      загвоздка только в ругачке на не указанный параметр, который должен быть помечен как Null. а как с отбором решать что-то совсем не представляю

  3. да, ошибка именно такая, но у параметра не установлен флаг “Запрещать незаполненные значения”, да и вообще я так понимаю, это для пользователей, т.е. отчет даже не начнет формироваться если установлен этот флаг и не заполнен параметр, а здесь немного другая ситуация – пользователю параметр указывать не обязательно, но для СКД он обязателен. похоже остается только отбор. спасибо за ответ.

  4. Можно использовать следующее условие в тексте запроса:
    Выбор Когда &ОтборПоВалюте Тогда
    КурсВалютыЦены.Валюта = &ВалютаОтчета
    Иначе
    Истина
    Конец
    В коде, в месте передачи параметров в СКД добавить еще один параметр “ОтборПоВалюте”, который приравнять к заполненности реквизита “Валюта”. Плюс этого метода в том, что если валюта не указана, то по условию в запросе параметр “ВалютаОтчета” не будет инициализирован и его заполненность следовательно не будет проверяться. Я так очень часто делаю, так что рабочесть метода гарантирую.

    Только условие нужно накладывать на таблицу валют.

Оставить комментарий

RSSКомментарии в RSS

Авторизация

Логин:
Пароль:
Регистрация

Архивы

Закладки

  • Your favorites will be here.