Проверка ролей

Например, неправильно:

Если РольДоступна("ДобавлениеИзменениеСтранМира") Тогда ...
 Если РольДоступна("ПросмотрОтчетаПопулярныеСтраны") Тогда ...

правильно:

Если

ПравоДоступа("Редактирование", Метаданные.Справочники.СтраныМира) Тогда ...
 Если

ПравоДоступа("Просмотр", Метаданные.Отчеты.ПопулярныеСтраны) Тогда ...

via https://its.1c.ru/db/v8std#content:-2145782910:hdoc



 

Использовать стандартные команды

Необходимо устанавливать данный флажок для отображения справочника в командном интерфейсе:

Например, свойство Использовать стандартные команды для справочника Товары установлено. 
В командном интерфейсе присутствует навигационная команда Товары, которая позволяет открыть форму списка справочника, 
и команда действия Товар, которая позволяет создать новый элемент справочника.

Проверка результата запроса на Пустой

Рекомендация с ИТС:

Методическая рекомендация (полезный совет)

2. В то же время если требуется выбрать (или выгрузить) результат запроса, то предварительный вызов метода Пустой не требуется.
Например, вместо:

РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда // избыточный вызов
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл

правильно:

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл

Запрос по Валовой прибыли в УТ 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);