Запрос по Валовой прибыли в УТ 10.3

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(ТаблицаРегистра.КоличествоОборот) КАК Количество,
    СУММА(ТаблицаРегистра.КоличествоОборот * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕд,
    СУММА(ТаблицаРегистра.СтоимостьОборот) КАК Стоимость,
    СУММА(ВЫБОР
            КОГДА ЕСТЬNULL(ТаблицаРегистраСебестоимость.КоличествоОборот, 0) = 0
                ТОГДА 0
            ИНАЧЕ ЕСТЬNULL(ТаблицаРегистраСебестоимость.СтоимостьОборот, 0) / ТаблицаРегистраСебестоимость.КоличествоОборот * ТаблицаРегистра.КоличествоОборот
        КОНЕЦ) КАК Себестоимость,
    СУММА(ТаблицаРегистра.СтоимостьОборот - ВЫБОР
            КОГДА ЕСТЬNULL(ТаблицаРегистраСебестоимость.КоличествоОборот, 0) = 0
                ТОГДА 0
            ИНАЧЕ ЕСТЬNULL(ТаблицаРегистраСебестоимость.СтоимостьОборот, 0) / ТаблицаРегистраСебестоимость.КоличествоОборот * ТаблицаРегистра.КоличествоОборот
        КОНЕЦ) КАК ВаловаяПрибыль,
    ВЫРАЗИТЬ(ВЫБОР
            КОГДА СУММА(ТаблицаРегистра.СтоимостьОборот) <> 0
                ТОГДА 100 * (СУММА(ТаблицаРегистра.СтоимостьОборот) - СУММА(ВЫБОР
                            КОГДА ЕСТЬNULL(ТаблицаРегистраСебестоимость.КоличествоОборот, 0) = 0
                                ТОГДА 0
                            ИНАЧЕ ЕСТЬNULL(ТаблицаРегистраСебестоимость.СтоимостьОборот, 0) / ТаблицаРегистраСебестоимость.КоличествоОборот * ТаблицаРегистра.КоличествоОборот
                        КОНЕЦ)) / СУММА(ТаблицаРегистра.СтоимостьОборот)
            ИНАЧЕ "-"
        КОНЕЦ КАК ЧИСЛО(15, 2)) КАК РентабельностьПродаж,
    ТаблицаРегистра.ДоговорКонтрагента.Владелец КАК Покупатель
ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, НЕ Номенклатура.Услуга) КАК ТаблицаРегистра
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПродажиСебестоимость.Номенклатура КАК Номенклатура,
            ПродажиСебестоимость.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
            ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя,
            ПродажиСебестоимость.Подразделение КАК Подразделение,
            ВЫБОР
                КОГДА ПродажиСебестоимость.ДокументРеализации ЕСТЬ NULL
                        ИЛИ ПродажиСебестоимость.ДокументРеализации = НЕОПРЕДЕЛЕНО
                    ТОГДА ПродажиСебестоимость.Регистратор
                ИНАЧЕ ПродажиСебестоимость.ДокументРеализации
            КОНЕЦ КАК ДокументРеализации,
            СУММА(ПродажиСебестоимость.Количество) КАК КоличествоОборот,
            СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот
        ИЗ
            РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
        ГДЕ
            ПродажиСебестоимость.Период МЕЖДУ &ДатаНач И &ДатаКон
        
        СГРУППИРОВАТЬ ПО
            ПродажиСебестоимость.Номенклатура,
            ПродажиСебестоимость.ХарактеристикаНоменклатуры,
            ПродажиСебестоимость.ЗаказПокупателя,
            ПродажиСебестоимость.Подразделение,
            ВЫБОР
                КОГДА ПродажиСебестоимость.ДокументРеализации ЕСТЬ NULL
                        ИЛИ ПродажиСебестоимость.ДокументРеализации = НЕОПРЕДЕЛЕНО
                    ТОГДА ПродажиСебестоимость.Регистратор
                ИНАЧЕ ПродажиСебестоимость.ДокументРеализации
            КОНЕЦ) КАК ТаблицаРегистраСебестоимость
        ПО (ТаблицаРегистраСебестоимость.Номенклатура = ТаблицаРегистра.Номенклатура)
            И (ТаблицаРегистраСебестоимость.ХарактеристикаНоменклатуры = ТаблицаРегистра.ХарактеристикаНоменклатуры)
            И (ТаблицаРегистраСебестоимость.ЗаказПокупателя = ТаблицаРегистра.ЗаказПокупателя)
            И (ТаблицаРегистраСебестоимость.Подразделение = ТаблицаРегистра.Подразделение)
            И (ТаблицаРегистраСебестоимость.ДокументРеализации = ТаблицаРегистра.Регистратор)

СГРУППИРОВАТЬ ПО
    ТаблицаРегистра.ДоговорКонтрагента.Владелец

Система Office обнаружила проблему с этим файлом. Чтобы обеспечить защиту компьютера, этот файл не будет открыт.

COMОбъект = Новый COMОбъект("Excel.Application");

COMОбъект.FileValidation = 1;

Workbook = COMОбъект.Workbooks.Open(Объект.ПутьКФайлу, , 1);

Связь наборов данных в СКД не всегда левое!

Напоролся на ошибку — решил 2 набора кинуть в скд и связать по контрагенту. Если потом отбор накладываешь на «правый набор» — то оказывается что соединение вполне себе внутреннее. Кароче лучше так не баловаться и делать в одном запросе =). С мисты:

ЛЕВОЕ СОЕДИНЕНИЕ — это по умолчанию.

если есть отбор (на уровне всего отчета)по полям из «подчиненного» набора — Соединение внутреннее,
Если в группировке участвует поле из «подчиненного» набора
соединение так же внутреннее

Отста

Программист 1С от ста тыщ

job.mista.ru/topic.php?id=799970&page=1

>>>>>

Я постоянно мониторю hh.ru:
1) 4 года назад было 700 вакансий 1С, сейчас 1400 вакансий 1С
2) Зарплаты 4 года назад вакансий на 120 тыс. было 5 шт, сейчас от 150 тыс. вакансий больше 50 шт.
Вывод: средняя зарплата 1С-ника увеличилась на 30% за последние 4 года и потребность в программистах 1С увеличилась вдвое

>>>>>

Недавно провел десяток собеседований (где-то за 1,5 месяца) искали простого адекватного разработчика.
Люди, которые думают что в 1С только 2 вида регистров — накопления и сведений хотят 80 тыс.
Люди, которые знают что в 1С есть еще регистры бухгалтерии и расчета хотят 100-120.
Люди, которые знают про таблицы итогов, агрегатов, могут внятно объяснить чем оперативное проведение отличается от неоперативного (и зачем оно нужно вообще) и хорошо знают какую-нибудь типовую конфу меньше 150 не рассматривают.
Да я и сам год назад искал работу один день всего, сразу после того как отрыл резюме написала кадровичка, потом позвонила, сьездил на собеседование и все, на след день написал заявление на предыдущей работе.
И это в июле месяце, в самый несезон…

>>>>>