8.х Анализ сделок на соответствие рыночному интервалу цен

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Gulnaz, 30 окт 2012.

  1. TopicStarter Overlay
    Gulnaz
    Offline

    Gulnaz Опытный в 1С

    Регистрация:
    20 сен 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Здраствуйте, уважаемые программисты! У нас конфигурация 1с Бухгалтерия 2.0 и действует закон № 227-ФЗ (о трансфертном ценообразовании).
    Мне нужно создать отчет для контроля соответствия цен в контролируемых сделках рыночному уровню.
    Я создаю отчет через СКД, простой запрос:

    Код:
    ВЫБРАТЬ
    Софт_РеализацияГПТовары.Номенклатура КАК КонтролируемаяНоменклатура,
    Софт_РеализацияГПТовары.Цена КАК КонтролируемаяЦена,
    Софт_РеализацияГПТовары.Ссылка КАК КонтролируемаяРеализация,
    ВЫРАЗИТЬ(Софт_РеализацияГПТовары.Ссылка.Контрагент КАК Справочник.Контрагенты) КАК КонтролируемыйКонтрагент,
    Софт_РеализацияГПТовары1.Ссылка КАК Реализация,
    ВЫРАЗИТЬ(Софт_РеализацияГПТовары1.Ссылка.Контрагент КАК Справочник.Контрагенты) КАК Контрагент,
    Софт_РеализацияГПТовары1.Номенклатура КАК Номенклатура,
    Софт_РеализацияГПТовары1.Цена КАК Цена,
    ИЗ
    Документ.Софт_РеализацияГП.Товары КАК Софт_РеализацияГПТовары
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Софт_РеализацияГП.Товары КАК Софт_РеализацияГПТовары1
    ПО Софт_РеализацияГПТовары.Номенклатура = Софт_РеализацияГПТовары1.Номенклатура
    И Софт_РеализацияГПТовары.Ссылка <> Софт_РеализацияГПТовары1.Ссылка
    И Софт_РеализацияГПТовары.Ссылка.Контрагент <> Софт_РеализацияГПТовары1.Ссылка.Контрагент
    ГДЕ
    Софт_РеализацияГПТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И Софт_РеализацияГПТовары.Ссылка.Проведен
    И Софт_РеализацияГПТовары.Ссылка.Софт_ПровестиВБУ
    И Софт_РеализацияГПТовары1.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И Софт_РеализацияГПТовары1.Ссылка.Проведен
    И Софт_РеализацияГПТовары1.Ссылка.Софт_ПровестиВБУ
    
    Получаю результат ( без выделенных розовым цветом колонок):
    Анализ сделок на соответствие рыночному интервалу цен Отбор: Контролируемый контрагент Равно "Кондитер" Контролируемый контрагент Цена Минимальная цена Максимальная цена Контролируемая цена Контролируемая реализация Контролируемая номенклатура Номенклатура Реализация Контрагент Кондитер Реализация1 Конфеты "Весна" 10 10 9 Конфеты "Весна" Реализация2 Малютка 10 10 10 9 Конфеты "Весна" Реализация12 Магазин №121 11 10 10 Печенье "Юбилейное" 15 Печенье "Юбилейное" Реализация4 Малютка 10 11 20 15 Печенье "Юбилейное" Реализация5 Весна 20 11 20 15 Печенье "Юбилейное" Реализация6 Феникс 13 11 20 15 Печенье "Юбилейное" Реализация7 Аксарлак 11 11 20 15 Печенье "Юбилейное" Реализация8 Магазин №33 20 11 20 15 Алгоритм расчета минимальной и максимальной цены 1. Совокупность цен, примененных в сопоставимых сделках, упорядочивается по возрастанию. Каждой цене присваивается порядковый номер. 2. Определяем минимальное значение интервала рыночных цен – количество цен делим на 4. Если получаем целое число, то минимальное значение интервала – среднее арифметическое цен с порядковыми номерами, равными этому целому числу и увеличенному на 1. Если получаем нецелое число, то минимальное значение – цена с порядковым номером полученного дробного числа, округленного в большую сторону. 3. Определяем максимальное значение интервала рыночных цен – количество цен умножаем на 0,75. дальше действуем как при определении минимального значения интервала.
  2. TopicStarter Overlay
    Gulnaz
    Offline

    Gulnaz Опытный в 1С

    Регистрация:
    20 сен 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Не знаю как в запросе или вне запроса вычислить минимальную и максимальную рыночную цену. Как можно это реализовать?
  3. TopicStarter Overlay
    Gulnaz
    Offline

    Gulnaz Опытный в 1С

    Регистрация:
    20 сен 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Добрый день! Я данную задачу решила по другому реализовать. Создаю документ, куда выгружаю все цены по неконтролируемым сделкам и при проведении рассчитанные минимальные и максимальные цены буду сохранять в регистре сведений. Пока застряла на этапе заполнения документа. Процедура заполнения ТЧ:

    Код:
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("НачалоПериода",  НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",   КонецПериода);
    Запрос.УстановитьПараметр("ГруппаНоменклатуры", ГруппаНоменклатуры);
    
    Запрос.Текст =  
    "ВЫБРАТЬ
    | ВложенныйЗапрос.Номенклатура,
    | ВложенныйЗапрос.Номенклатура.Код КАК Код,
    | Софт_РеализацияГПТовары.Ссылка.Контрагент,
    | Софт_РеализацияГПТовары.Ссылка.Ссылка КАК Реализация,
    | Софт_РеализацияГПТовары.Номенклатура КАК Номенклатура1,
    | Софт_РеализацияГПТовары.Цена КАК Цена
    |ИЗ
    | (ВЫБРАТЬ
    |  Софт_РеализацияГПТовары.Номенклатура КАК Номенклатура
    | ИЗ
    |  Документ.Софт_РеализацияГП.Товары КАК Софт_РеализацияГПТовары
    | ГДЕ
    |  Софт_РеализацияГПТовары.Ссылка.Контрагент.ВзаимозависимоеЛицо
    |  И Софт_РеализацияГПТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |  И Софт_РеализацияГПТовары.Ссылка.Проведен
    |  И Софт_РеализацияГПТовары.Ссылка.Софт_ПровестиВБУ
    |  И Софт_РеализацияГПТовары.Номенклатура В ИЕРАРХИИ(&ГруппаНоменклатуры)
    |  И НЕ Софт_РеализацияГПТовары.Ссылка.ПометкаУдаления
    |
    | СГРУППИРОВАТЬ ПО
    |  Софт_РеализацияГПТовары.Номенклатура) КАК ВложенныйЗапрос
    |  ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Софт_РеализацияГП.Товары КАК Софт_РеализацияГПТовары
    |  ПО ВложенныйЗапрос.Номенклатура = Софт_РеализацияГПТовары.Номенклатура
    |ГДЕ
    | Софт_РеализацияГПТовары.Ссылка.Проведен
    | И НЕ Софт_РеализацияГПТовары.Ссылка.Контрагент.ВзаимозависимоеЛицо
    | И Софт_РеализацияГПТовары.Ссылка.Софт_ПровестиВБУ
    | И НЕ Софт_РеализацияГПТовары.Ссылка.ПометкаУдаления
    | И Софт_РеализацияГПТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |УПОРЯДОЧИТЬ ПО
    | Код,
    | Цена";
    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    
    Для Каждого Строка Из РезультатЗапроса Цикл
    
    //номер=0;
    //Номенклатура1 = Строка.Номенклатура;
    //Пока Строка.Номенклатура = Номенклатура1 Цикл
    // номер= номер+1;
    НоваяСтрока = СопоставимыеСделки.Добавить();
    НоваяСтрока.Код = Строка.Код;  
    НоваяСтрока.Номенклатура = Строка.Номенклатура;
    НоваяСтрока.Контрагент = Строка.Контрагент;
    НоваяСтрока.Реализация = Строка.Реализация;
    НоваяСтрока.Цена = Строка.Цена;
    // НоваяСтрока.ПорядковыйНомерПоНоменклатуре = номер;
    //КонецЦикла;
    
    КонецЦикла;
    
    
    В ТЧ мне нужно заполнить поле "ПорядковыйНомерПоНоменклатуре", которое является нумерацией строк в рамках каждой номенклатуры по-отдельности. Пример указан на рисунке. Помогите написать цикл вывода нумерации.

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      93,8 КБ
      Просмотров:
      16

Поделиться этой страницей