arefaste/1C_Forums huggingface dataset:
Ребят всем привет подскажите пожалуйста, что делаю не так.
Пишу обмен между двумя базами на разных сервах, обмен через hhtp сервис.
1 база формирует и отправляет данные вроде бы все ок, на другом серве проверяю через браузер все норм выводит.
При подключении на второй базе и попытке прочитать все это дело выдаёт пустое тело.
При том код ответа 401,я так понимаю что ошибка авторизации, но
Пароль и логин совпадают с теми что я вводил в баузере
Скин с браузер и код прочтения в прикрепленых файлах
---
гугление привело меняТы вообще понимаешь, что такое прокси?
Укажи свою авторизацию непосредствено в объекте HTTPСоединение.
---
код прочтенияТы свою авторизацию проксе предъявляешь, а не конечному сайту. У тебя действительно такое подключение или это ты просто так написал?
---
У меня вот так, я только учусь писать такие вещи, но гугление привело меня к тому что тут прокси нужно использовать
---
гугление привело меняТы вообще понимаешь, что такое прокси?
Укажи свою авторизацию непосредствено в объекте HTTPСоединение.
---
может покажусь глупым, но не совсем догнал еще с этим прокси..он вообще нужен? или убрать его вообще?
---
Спс, прокси не убирал тело получил, дописал данные для входа просто как написали
---
Ты в первой базе отправлять get запрос, как ты хочешь во второй базе получить тело?
---
отправлять get запрос, как ты хочешь во второй базе получить тело
Если бы по стандарту http в ответ на get тело бы не приходило, ты бы эту тему не читал
---
Пустое тело запроса смотришь до сериализаии или после? Могу предположить, что просто крашиться, в момент сериализции при отправке или десериализации при получении. Как-то сталкивался с похожим на 8.2 и даже приходилось писать свою функцию сериализации.
Добрый день!
1С:Предприятие 8.3 (8.3.21.1895)

Написал функцию генерации пароля, при вызове этой функции из цикла возвращается одно и то же значение, а не разные, такое ощущение что функция выполняестя один раз и далее возвращает кэш.

Для теста создал обработку и две команды

```1c
    &НаКлиенте
    Процедура ВыполнитьНаКлиенте (Команда)

    Для Счетчик = 1 По КоличествоПаролей Цикл
    НовыйПароль = СоздатьНовыйПароль();
    Сообщить(НовыйПароль);
    КонецЦикла

    КонецПроцедуры

    &НаКлиенте
    Процедура ВыполнитьНаСервере(Команда)

    ЗапускССервера();

    КонецПроцедуры

    &НаСервере
    Процедура ЗапускССервера()

    Для Счетчик = 1 По КоличествоПаролей Цикл
    НовыйПароль = СоздатьНовыйПароль();
    Сообщить(НовыйПароль);
    КонецЦикла;

    КонецПроцедуры

    &НаСервере
    Функция СоздатьНовыйПароль()

    ГСЧ = Новый ГенераторСлучайныхЧисел();
    Пароль = ";
    ИспользуемыеСимволы = "243456789AQWERTYUPASDFGHJKZXCVBNMqwertyupasdfghjkzxcvbnm";
    Н = СтрДлина(ИспользуемыеСимволы);
    Пока СтрДлина(Пароль) < 8 Цикл
    НекийСимвол = Сред(ИспользуемыеСимволы ,(ГСЧ.СлучайноеЧисло(1, Н)),1);
    Пароль = Пароль + НекийСимвол;
    КонецЦикла;

    Возврат Пароль;

    КонецФункции
```

Например делаем КоличествоПаролей = 2
При выполнении команды ВыполнитьНаКлиенте генерируются всегда разные пароли.
При выполнении команды ВыполнитьНаСервере, генерируется один и тот же пароль в цикле. Словно функция из общего модуля не выполняется, а берется кэшированное значение. При этом если мы ставим точку остановы куда-нибудь внутри цикла, то будут сгенерированы разные пароли.

Если использовать клиент-серверный вариант 1С, проблема имеется.
Если использовать файловый вариант, проблемы нет.
---
ГСЧ = Новый ГенераторСлучайныхЧисел(); Передавайте параметр в конструктор.
---
там в любом случае подставляется число. Просто если его не подставлять, то подставляется:
"Генератор случайных чисел инициализируется источником энтропии".
Что при быстром выполнении это одно и тоже значение.
---
ГСЧ = Новый ГенераторСлучайныхЧисел(); Передавайте параметр в конструктор.
---
Спасибо, при передаче параметра результат меняется

Сделал примерно вот такое:
НачальноеЧисло = НачальноеЧисло+ 1;

```1c
    &НаСервере
    Функция СоздатьНовыйПароль(НачальноеЧисло)

    ГСЧ = Новый ГенераторСлучайныхЧисел(НачальноеЧисло);
    Пароль = ";
    ИспользуемыеСимволы = "243456789AQWERTYUPASDFGHJKZXCVBNMqwertyupasdfghjkzxcvbnm";
    Н = СтрДлина(ИспользуемыеСимволы);
    Пока СтрДлина(Пароль) < 8 Цикл
    НекийСимвол = Сред(ИспользуемыеСимволы ,(ГСЧ.СлучайноеЧисло(1, Н)),1);
    Пароль = Пароль + НекийСимвол;
    КонецЦикла;

    Возврат Пароль;

    КонецФункции
```

Но интересно почему, когда ставится точка остановы внутри цикла, то генерируются разные пароли. А если точку остановы не ставить то возвращает одно и то же значение.
---
там в любом случае подставляется число. Просто если его не подставлять, то подставляется:
"Генератор случайных чисел инициализируется источником энтропии".
Что при быстром выполнении это одно и тоже значение.
Добрый день уважаемые форумчане.
Прошу помощи у гуру ...

Подскажите пжл создал пользователя с ограниченными правами, в конфигураторе добавил подсистему нужную данному пользователю.
для этого дал пользователю права на все базовые права, а так же на справочинки и документы которые ему можно просматривать.

в созданной мной подсистеме все отображается как надо и всех это устраивает
Однако есть подсистемы разделы справа Главное и Настройки - которые пользователь может сам себе открыть ...

ниже прикрепил скрины ...

Есть какая то возможность закрыть их насовсем ???

Заранее спасибо !!!
---
в модуле приложения есть процедура ПередНачаломРаботыСистемы, переносишь ее в расширение, делаешь условие типо
```1c
    Если РольДоступна("МойПродаван") Тогда КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто);
    КонецЕсли.
```

попробуй так
---
в модуле приложения есть процедура ПередНачаломРаботыСистемы, переносишь ее в расширение, делаешь условие типо
```1c
    Если РольДоступна("МойПродаван") Тогда КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто);
    КонецЕсли.
```

попробуй так
---
Вот все варианты решения
https://forum.infostart.ru/forum9/topic155699/
---
Николай спасибо то что надо !!! Ат души !!! Уважение !!!
Добрый день! Есть текст запроса:
"ВЫБРАТЬ ПЕРВЫЕ 13
      ДанныеПроизводственногоКалендаря.Дата КАК ДатаКалендаря,
      АВТОНОМЕРЗАПИСИ() КАК Номер
    ПОМЕСТИТЬ ВТ_РабочиеДни
    ИЗ
      РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
    ГДЕ
      ДанныеПроизводственногоКалендаря.ВидДня = &ВидДня_РабочийДень
      И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ ПЕРВЫЕ 1
   ВТ_РабочиеДни.ДатаКалендаря КАК ДатаКалендаря,
     ВТ_РабочиеДни.Номер КАК Номер
    ИЗ
      ВТ_РабочиеДни КАК ВТ_РабочиеДни
    УПОРЯДОЧИТЬ ПО ВТ_РабочиеДни.Номер УБЫВ"

В консоли запросов срабатывает, а конфигуратор выдает ошибку "Таблица не найдена" и ругается на РегистрСведений.ДанныеПроизводственногоКалендаря

Подскажите пожалуйста, в чем может быть причина ?
Консоль запросов и конфигурация от одного пользователя с полными правами...
---
В конфигураторе в расширении пытаетесь создать запрос?
---
РегистрСведений.ДанныеПроизводственногоКалендаря в расширении добавлен? Если да, то запрос отлаживать в консоли, в конфигурации оставлять как есть, конструктор его не откроет, но работать будет.
---
В конфигураторе в расширении пытаетесь создать запрос?
---
Нет
---
РегистрСведений.ДанныеПроизводственногоКалендаря в расширении добавлен? Если да, то запрос отлаживать в консоли, в конфигурации оставлять как есть, конструктор его не откроет, но работать будет.
---
Спасибо, действительно прозевал и Регистр не был добавлен, буду дальше стараться
---
Где-то с 8.3.23 конфигуратор умеет добавлять в расширение объекты, упоминаемые в запросе -- но пока (8.3.25.1336) далеко не все.
Только что отправил в 1С багрепорт по этой теме.
база- публикация на удаленном сервере
Вопрос: где должен находится каталог Катлг ?
---
гдеНа компьютере, имя которого возвращает функция ИмяКомпьютера(), вызванная в точке использования.
---
Публикация файловая
---
гдеНа компьютере, имя которого возвращает функция ИмяКомпьютера(), вызванная в точке использования.
---
Спасибо за подсказку, вставлю в код.
---
Вставил, поигрался.
Жалко, у меня теперь нет доступа к опубликованной sql-ной базе, там кажется будет имя компьютера с sql-ной базой.
---
имя компьютера с sql-ной базой. Там будет имя сервера приложений 1С.

Вернее имя сервера кластера, на котором выполняется текущий рабочий процесс, но врядли у тебя такая архитектура.
---
там кажется будет имя компьютера с sql-ной базой.
с чего бы? там будет компьютер с сервером 1С.
Просто для файловой базы web-сервер выполняет серверную часть.
---
Всем спасибо за ответы, увы у меня банальная публикация банальной файловой базы.
Потому что, теперь у меня нет возможности посмотреть другие варианты .
А кластер для меня такое же далекое как скажем Канары :)
Динамический список. Создан параметр. Но при установке значений по-умолчанию параметр удаляется и его нет, хотя до этого в отладке он виден. Соответственно УстановитьЗначениеПараметра не дает. Как можно программно его пересоздать?
---
```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
    Список,
    "Ссылка",
    СписокОтбора,
    ВидСравненияКомпоновкиДанных.ВСписке,
    ,
    Истина);
```
---
Скорее всего текст запрос ДС переопределяется.
---
В ДС был фейковый запрос туда добавили параметр?
А при создании формы текст типовой подменили. Ну что ж переносим параметр в процедуру где меняют запрос, тогда всё заработает.
---
Да, так и сделать. Получилось. Но почему-то не отбирает. На форме динамический список номенклатуры, я передаю список номенклатуры, который хочу отобрать, но показывает все равно все.
---
Зачем для этого менять запрос и добавлять параметр?
Сделайте отбор по ссылке.
---
Мне надо, чтобы в динамический список попадали только элементы из моего заранее сформированного списка
---
```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
    Список,
    "Ссылка",
    СписокОтбора,
    ВидСравненияКомпоновкиДанных.ВСписке,
    ,
    Истина);
```
Всем добрый день.

Собственно говоря даже сам не знаю, почему такой вопрос появился. Но всё таки он появился, и я не знаю как его решить. Прошу помощи.

Входные данные: число месяца (от 1 до 31).
Выходные данные:

Пример1:
    Вход: 15
    Выход: пятнадцатого.

Пример2:
    Вход: 1
    Выход: первого.

Пример3:
    Вход: 27
    Выход: двадцать седьмого

Пробовал функции:
    ЧислоПрописью
    ПолучитьСклоненияСтрокиПоЧислу

Результата эти две функции не дали, в любом их сочетании. На текущий момент единственный выход, который вижу, это сделать соответствие, и из него уже получать нужное представление (но это как то топорно).
---
там просто немного изменить.

```1c
    ПолучитьСклоненияСтрокиПоЧислу(", 15, ", "ЧС=Порядковое", "ПД=Родительный;ПЧ=ЧислоПрописью");
```
---
Результата эти две функции не далиНе трынди, не вырастешь.

```1c
    ПолучитьСклоненияСтрокиПоЧислу(", 15, "ЧС=Порядковое", "ПД=Родительный;ПЧ=ЧислоПрописью");
```
---
Порядковое

(3) Не трынди, не вырастешь.

Результат приведенного примера будет таким:
Массив с одной записью:
"15 ЧС=Порядковых"

P.S. На текущий момент пока только ты трындишь. А у меня конкретный вопрос по конкретному функционалу.
---
там просто немного изменить.

```1c
    ПолучитьСклоненияСтрокиПоЧислу(", 15, ", "ЧС=Порядковое", "ПД=Родительный;ПЧ=ЧислоПрописью");
```
---
ПолучитьСклоненияСтрокиПоЧислу("", 15, "", "ЧС=Порядковое", "ПД=Родительный;ПЧ=ЧислоПрописью");

thank you very much!!!
---
На текущий момент пока только тыА, ты из этих, копипастеров с атрофировным мозгом, понятно. Конкретный вопрос у него...
---
Потому что это не склонение числа. И даже вообще не склонение.
---
Ок. Уберем в сторону склонения. Мне нужно число выразить прописью, причем в виде числительного. На самом деле простая задача. Я её уже давно решил. Мне сейчас интересно, есть ли платформенный механизм, её решающий, - вот что мне интересно.
Всем доброго дня!
Сбербанк выгружает в качестве подтверждения файл XLS, 1С требует XML для загрузки.
Кто-то встречал обработку по конвертации или по загрузке подтверждения из XLS?
---
У нас в ДБО Сбера в Экспорте по шаблону можно выбрать шаблон 1С (ещё Excel и txt). Полученный xml загружается в 1С
---
возможно так https://www.sberbank.ru/help/business/sbbol/100021
---
сбер ответил, что у них экспорта подтверждения в XML нет
может есть обработка для создания загрузочного файла из ранее выгруженного реестра ?
---
У нас в ДБО Сбера в Экспорте по шаблону можно выбрать шаблон 1С (ещё Excel и txt). Полученный xml загружается в 1С
---
а в каком разделе этот экспорт можно запустить? у меня нет экспорта по шаблону
---
У нас в этом меню есть ещё строка Экспорт по шаблону. Загадочно.
---
У нас в нескольких организациях клиент деградировал в такое состояние по очереди. На вопрос к поддержке отвечено было, что в настоящий момент функционал экспорта в XML отсутствует. А на вопрос, когда планируется к восстановлению: [когда-то] в течение 2024 года.
---
У нас то же самое происходит с апреля месяца 2024 г. Подтверждение из Сбербанка по зарплатному проекту можно получить через клиент-банк только в формате xlsx, экспорта в формат 1С нет. В банке туманно отвечают о сроках. В 1С вообще послали, написав, что формат xml утвержден и они ничего делать не будут.
Добрый день, понять не могу всё работало как надо, но тут в прекрасный момент конструкция

```1c
    Пр = ПредопределенноеЗначение("Перечесления.ВидыПеречесления.Карандаш");
    ЭлементыФормы.Номенклатура.Хначение = Пр;
```

Вместо того что бы заменять в поле на "Карандаш" теперь очищает его. В отладчики пустота.
---
Думаю платформа не причем, проблема в вашем коде. Может уже просто скопируете то, что у вас реально написано и исполняется?
---
Если этот код скопирован, то не удивительно...
---
Исправил.
---
Какой тип у реквизита "Номенклатура"?
---
Тип ссылка на перечесления.
---
ПредопределенноеЗначение("ПеречИслениЕ.ВидыПеречесления.Карандаш") Это выражение, если хотя бы немного грамотно написать, что в отладчике возвращает? Перечисление "ВидыПеречесления" без ошибок хоть написано?
---
Без ошибок в отладчике ничего нет пусто.
---
Возможно причина в этом. "Результат выполнения кэшируется при первом обращении до изменения конфигурации или версии платформы."
Попробуйте внести мелкую правку в конфигурацию.
---
Это как?
---
Внести изменение, сохраниться, проверить результат вычисления. БСП есть в конфигурации?
---
Что такое БСП?
---
Так всё ж нормально было причём тут платформа?
---
Думаю платформа не причем, проблема в вашем коде. Может уже просто скопируете то, что у вас реально написано и исполняется?
---
Дык вот мой код и он перестал работать
---
Тот кусок.. в заголовке темы и не должен работать! В каждой строке по ошибке. ПеречЕслениЯ, Хначение...
---
```1c
    ПредопределенноеЗначение("ПеречИслениЕ.ВидыПеречесления.Карандаш")
```

Перечисление. Контроло пробел он показывает все содержащиеся пересесления итд тоесть точно не ошибся.
---
Скрин перечисления с элементом можете сделать?
Платформа 8.3.22.2175 УПП 1.3.230.1 Партионный учет.
У нас проблема: Проведение по партиям идет долго. Если во время проведения по партиям прошлого месяца, кто-то проводит ОПзС текущего месяца, обработка снимается по причине блокировки.
В конфигурацию добавили даты запрета проведения документов, во все документы добавили проверку на эту дату и, если у пользователя не полные права, выдается сообщение о запрете проведения документов.
Но, несколько раз столкнулись с проблемой, что пользователи не проводят документы, а помечают на удаление ранее проведенные документы.
Обработка снимается по времени ожидания на блокировке.
Где в конфигурации необходимо поставить проверку, чтобы пользователи не могли пометить документ на удаление, если установлена дата запрета проведения документов.
---
Чета мне казалочь, что в УПП есть штатным механизм запрета проведения.
---
Проверила. Можно было пометить из другого документа в форме Структура подчиненности.
Решение:
В МодулеОбъекта Процедура ОбработкаУдаленияПроведения.
Тогда работает запрет на удаление проведенного из любой формы.
Всем огромное спасибо!!!
---
В конфигурацию добавили даты запрета проведения документов Ну добавьте еще и запрет отмены проведения... Дополнительно три строчки (при условии, что запрет на проведение прописан нормальным человеческим кодом).
---
ну или отобрать на уровне ролей Интерактивную пометку на удаление
---
Отобрать нельзя. Проблема только при закрытии месяца.
---
```1c
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Перем Заголовок, СтруктураШапкиДокумента, ТаблицаПоПродукции, ТаблицаПоВозвратнымОтходам, ТаблицаСписанияНаЗатраты;

    Если Не РольДоступна("ПолныеПрава") Тогда
    Если ТекущаяДата()>=Константы._ДатаНачалаЗапретаРедактирования.Получить() И ТекущаяДата()<=Константы._ДатаОкончанияЗапретаРедактирования.Получить() Тогда
    Сообщить("До "+Константы.элдДатаОкончанияЗапретаРедактирования.Получить()+" установлен запрет на проведение документов");
    Отказ=Истина;
    Возврат;
    КонецЕсли;
    КонецЕсли;

    КонецПроцедуры
```
---
Это ужасно. И это ВО ВСЕХ документах такой код???
---
Напишите этот код в подписке перед записью документа и проверяйте пометку удаления
---
Как проверить пометку удаления, если документ проведен, а пометку на удаление только ставят?
---
Перед записью документ еще не записан в БД, запросом можно получить старое состояние пометки. РежимЗаписи равен Отмена проведения
---
Чета мне казалочь, что в УПП есть штатным механизм запрета проведения.
---
Видимо, он и полным правам запрещает проводить документы. А надо!
---
Спасибо. Нашли. В форме списка:
Процедура СписокПередУстановкойПометкиУдаления(Элемент, Отказ)
---
_
---
В документе ОПзС не нашла
---
Там сработает ваш обработчик. Нужно еще проверить нельзя ли пометить на удаление из формы выбора
---
Проверила. Можно было пометить из другого документа в форме Структура подчиненности.
Решение:
В МодулеОбъекта Процедура ОбработкаУдаленияПроведения.
Тогда работает запрет на удаление проведенного из любой формы.
Всем огромное спасибо!!!
Добрый день! Выкладываю сам запрос. Отбираю всю номенклатуру из схемы обеспечения "Готовая продукция". После выполнения запроса по точке остановы делаю вычислить "Результат запроса".. Вижу таблицу значений.. там все, то что мне нужно. Но когда проваливаюсь дальне, вычисляя любую строчку, то вижу другие значения. Пожалуйста растолкуйте почему так?
---
Это ошибка платформы.
Тут обсуждение https://partners.v8.1c.ru/forum/t/2159739/m/2159739

Написали месяц назад, что исправили, и исправление войдет в следующие релизы платформы.

Указывайте сразу нужный индекс строки при вычислении.
---
Это ошибка платформы.
Тут обсуждение https://partners.v8.1c.ru/forum/t/2159739/m/2159739

Написали месяц назад, что исправили, и исправление войдет в следующие релизы платформы.

Указывайте сразу нужный индекс строки при вычислении.
---
Указывайте сразу нужный индекс строки при вычислении. Можно вас попросить текст скинуть в личку. у моих доступов нет прав на просмотр.
---
Так ты ж по другому индексу вообще смотришь строку
---
Да, теперь обратил внимание, что индекс сбивается. Ждем исправления
---
Публичная ссылка на оригинальное описание заявителя https://www.hostedredmine.com/issues/974488
В процессе работы нужно читать сотни и тысячи строк кода, переходить по модулям. Чтобы составить для самого себя понимание бизнес-логики а так же создать техническую документацию в будущем, использую конспектирование кода. Выглядит это примерно так, как на картинке.
 Это удобно, читается основная логика, последовательность выполнения, сохраняется стек процедур и функций. При этом отбрасывается ненужная сопроводительная функциональность.
 Но делать это в табличном документе, в екселе, в ворде не очень удобно. Решил обратиться к сообществу - может есть нормальный способ или программа, как делать такое? Может мне не нужно изобретать велосипед?
---
Для бизнес логики могут подойти схемы BPMN
---
Для бизнес логики могут подойти схемы BPMN
---
программисты так не делают.
как правило или держат схему в голове или рисуют графы.

всякие лишние слова - интеллектуальный хлам
---
Не скажу, что вот прям плохо-плохо код так вот конспектировать, но пользы около нуля от этого, так что соглашусть тут с Валерой из Симферополя.

Как делаю? Для анализа кода вообще ничего не делаю - просто смотрю, что в какой последовательнсти выполняется, используя отладчик. Если нужно. то просто в ворде основные тезисы записываю/копирую.

Если что-то меняю или добавляю сложное, то пишу математическую модель (1. Сделать то, 2. Сделать \это, 3.Если так, то перейти туда-то...).

Указанный топикастером подход на мой личный взгляд никаких задач не решает. Помимо того, что это может занять кучу времени., оно никак не помогает понять код. даже если оно поможет понять код сейчас по какой-то причине трудного детства и проблем с мышлением, то вряд в будущем оное пригодиться, чтобы понять код повторно, тем более кому-то еще, помимо автора этого документа.

Если говорить о том, как разрабатываются системы, то в кровавом энтерпрайзе есть проект в виде вех, календарных планов, подсистем, может быть даже объектов в каком-нить проджекте, СППРе и прочих малополезных софтинах. Самое полезное, которое я видел -это схемы, описывающие процессы, и ТЗ с описываемыми процессы схемами. Но т.к. даже функциональные требования современные аналитики пишут руками, которые прикреплены не совсем к тому месту, к которому бы должны, то и технических заданий приличных я видел единицы за свое житие. А вот схемы приличные видел и сам рисовал. По какой методике их рисовать - это можно самим придумать, ничего там такого нет. РИсовалка процессов в 1С удовлетворяет почти всему.
Добрый день!

есть отчёт на СКД, в котором рассчитывается валовая прибыль и эффективность в разрезе определённых товаров

отчёт имеет несколько уровней группировок и при выводе показателя Эффективность(в процентах) итоги суммируются не так, как мне надо.

Мне нужно сделать так, чтобы показатель в группировке рассчитывался на тех же условиях, что и строки.
а именно

эффективность = (Валовая прибыль / Себестоимость) *100

он же просто выводит простую сумму строк вложенной группировки

во вложении пример того, как выглядит всё сейчас.
---
это надо делать в СКД, на вкладке Ресуры в Выражение. Хотя там может быть можно попробовать и без этой функции сделать, просто на Выбор Когда
---
Потребуется ВычислитьВыражение()
https://infostart.ru/1c/articles/1101676/
---
внимательно прочитал, не совсем понял как это применять.
это надо делать где-то внутри схемы компоновки данных или описывать в программном коде?
---
это надо делать в СКД, на вкладке Ресуры в Выражение. Хотя там может быть можно попробовать и без этой функции сделать, просто на Выбор Когда
---
сделал следующее:
создал вычисляемое поле "Эффективности " с формулой:

(ВаловаяПрибыль)/Себестоиомость*100

поставил его в ресурсы и выставил вы ресурсе выражение:

(вычислитьВыражение("Сумма(ВаловаяПрибыль)","ВидПоказателя","ОбщийИтог"))/вычислитьВыражение("Сумма(Себестоимость)","ВидПоказателя","ОбщийИтог")*100

для детальных записей выводит, все группировки пустые. что может быть?

во вложении схема. конфигурация УТ 10.3.
---
тип расчета "общийИтог", наверно, вообще надо не заполнять параметр
---
сделал вот таким образом:

(вычислитьВыражение("Сумма(ВаловаяПрибыль)","Контрагент"))/вычислитьВыражение("Сумма(Себестоимость)","Контрагент")*100

убрал "ОбщийИтог" и вместо "ВидПоказателя" поставил "Контрагент".

появились правильно рассчитанные итоги по группировке Контрагент, но вышестоящая группировка "Склад" остаётся пустой.

как можно задать в функции ВычислитьВыражение() несколько группировок на мой выбор?
---
попробуй и второй параметр, Контрагент, не задавать
---
пробовал, пусто по всем группировкам