8.х Регистр бухгалтерии. Параметр субконто.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Robix, 1 апр 2015.

  1. TopicStarter Overlay
    Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Добрый вечер. Ниже код из типовой конфигурации 1с:

    Код:
            ПорядокСубконто = Новый Массив();
            ПорядокСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
            ПорядокСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
           
            МассивНоменклатуры = ТаблицаТоваров.ВыгрузитьКолонку("Номенклатура");
           
            Запрос = Новый Запрос;
            Запрос.УстановитьПараметр("Склад",           СтруктураШапкиДокумента.Склад);
            Запрос.УстановитьПараметр("КонецПериода",    СтруктураШапкиДокумента.Дата);
            Запрос.УстановитьПараметр("Организация",     СтруктураШапкиДокумента.Организация);
            Запрос.УстановитьПараметр("Подразделение",   СтруктураШапкиДокумента.ПодразделениеОрганизации);
            Запрос.УстановитьПараметр("Счет",             ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахАТТ);
            Запрос.УстановитьПараметр("ПорядокСубконто", ПорядокСубконто);
            Запрос.УстановитьПараметр("Номенклатура",     МассивНоменклатуры);
           
            Запрос.Текст =
            "ВЫБРАТЬ
            |    Остатки.Субконто1 КАК Номенклатура,
            |    СУММА(Остатки.СуммаОстатокДт) КАК СуммаОстаток,
            |    СУММА(Остатки.КоличествоОстатокДт) КАК КоличествоОстаток
            |ИЗ
            |    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, Счет = &Счет, &ПорядокСубконто, Организация = &Организация И (Подразделение = &Подразделение ИЛИ Подразделение ЕСТЬ NULL) И Субконто1 В (&Номенклатура) И Субконто2 = &Склад) КАК Остатки
            |
            |ГДЕ
            |    Остатки.КоличествоОстаток > 0 
            |
            |СГРУППИРОВАТЬ ПО
            |    Остатки.Субконто1
            |";
    
    Пробовал выполнять этот отчет с параметром ПорядокСубконто и без него. Результат один
    и тот же. Кто в курсе, объясните пожалуйста наглядно, чтобы можно было почувствовать разницу, что дает этот параметр?
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Чтобы почувствовать разницу, зайдите в план счетов и для счета поменяйте местами порядок следования субконто. Т.е. сделайте Номенклатуру - Субконто2, а Склады сделайте Субконто1.
    И для чистоты эксперимента в запросе в выбранные поля добавьте какой-нибудь реквизит Номенклатуры, например, Артикул.
    Код:
    "ВЫБРАТЬ
    |    Остатки.Субконто1 КАК Номенклатура,
    |    Остатки.Субконто1.Артикул КАК Артикул,
    |..."
    И посмотрите на результат.

    Вот...одним из назначений данного параметра является упорядочивание видов субконто. Т.е. порядок следования субконто в запросе в данном случае будет определяться не тем, в каком порядке субконто указаны в плане счетов, а тем, в каком порядке Вы добавляете их в массив (первые строчки приведенного Вами кода). Т.е. Вы можете быть уверены, что Субконто1 будет Номенклатура, а не Склады (даже если в плане счетов все наоборот).
    Зачастую это очень важно.
    Конечно, маловероятно, что для предопределенного счета поменяют порядок следования субконто. Но для счетов, добавленных пользователем в режиме предприятия, это вполне возможно.

    Ну и второе назначение данного параметра - наложение фильтра на виды субконто. Очевидно, с целью ускорения выборки (если остальные субконто не требуются).
    Т.е. в данном случае, если у счета есть третье и т.д. субконто, то они выбраны не будут.
    Последнее редактирование: 2 апр 2015
  3. TopicStarter Overlay
    Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Спасибо за ответ.

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