arefaste/1C_Forums huggingface dataset:
Подскажите, вот такой код встретил.

```1c
    ЗапросКода = Новый Запрос;
    ЗапросКода.Текст = "ВЫБРАТЬ
    | ДополнительныеСведения.Объект КАК Объект,
    | ДополнительныеСведения.Свойство КАК Свойство,
    | ДополнительныеСведения.Значение КАК Значение
    |ИЗ
    | РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
    |ГДЕ
    | ДополнительныеСведения.Объект = &Объект
    | И ДополнительныеСведения.Свойство = &Свойство";
    ЗапросКода.УстановитьПараметр("Объект",Документ.СкладПолучатель);
    ЗапросКода.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("КодКонтрагента (Склады и магазины)"));
    ВыборкаКонтр = ЗапросКода.Выполнить().Выбрать();
```

Я пока нуб 1С. Подскажите, разве нельзя напрямую обратиться к доп.сведениям через объект у которого эти жоп сведения определены? Только через запрос?
---
Доп сведения это отдельный регистр - это не реквизиты объекта. Следовательно и доступ к ним только через запрос к регистру
---
Доп сведения это отдельный регистр - это не реквизиты объекта. Следовательно и доступ к ним только через запрос к регистру
---
Ясно. Спасибо.
Создаю таблицу:

```1c
    ИтоговыеСуммы=новый ТаблицаЗначений;
    ИтоговыеСуммы.Колонки.Добавить("Наименование",Новый ОписаниеТипов("Строка"));
    ИтоговыеСуммы.Колонки.Добавить("Количество",Новый ОписаниеТипов("Число"));
    ИтоговыеСуммы.Колонки.Добавить("Сумма",Новый ОписаниеТипов("Число"));
```

заполняю её

```1c
    НоваяСтрока=ИтоговыеСуммы.Добавить();
    НоваяСтрока.Наименование=ОбластьСтрока.Параметры.Наименование;
    НоваяСтрока.Количество=Число(ОбластьСтрока.Параметры.Количество);
    НоваяСтрока.Сумма=Число(ОбластьСтрока.Параметры.Сумма);
```

пытаюсь сгруппировать

```1c
    ИтоговыеСуммы.Свернуть("Наименование","Количество,Сумма");
```

После этого, колонки Сумма и Количество пустые. и при отладке все суммы и количества заполняюстя в ТЗ с типом Строка, Что я не так сделал?
---
Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 2, ДопустимыйЗнак.Любой))
---
Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 2, ДопустимыйЗнак.Любой))
---
Новый КвалификаторыЧисла(12, 2, ДопустимыйЗнак.Любой)
спасибо, помогло
---
При воспроизведении ситуации ошибки не происходит. Что-то вы нам не договариваете.
Добрый день!

Прошу помощи.

Есть регламентное задание. Из него обращаюсь к модулю объекта справочника. Условно:

СправочникОбъект.ОтправитьОтчеты()

Из процедуры модуля справочника ОтправитьОтчеты() обращаюсь к экспортной процедуре в модуле отчета. Условно:

ОтчетОбъект.СформироватьОтчет()

Но ошибка: Метод объекта не обнаружен (СформироватьОтчет)

Что не так? Помогите, пожалуйста

Обычное приложение 8.3. База файловая. Без регламентного задания все отрабатывает
---
переписать код под контекст сервера!
---
контекст сервер. Делай проверку! В оф обычно пишут как курица лапой!
---
контекст сервер Расшифруйте, пожалуйста, что Вы имеете ввиду
---
Если СформироватьОтчет() находится в модуле объекта отчета, то отчет нужно сначала создать (Отчеты.КакойТоОтчет.Создать()), а потом вызвать эту процедуру у созданного отчета.
---
я так и делаю :(
---
Процедура СформироватьОтчет() Экспорт
?
---
Сделайте ее экспортной. Это 100 процентов
---
Процедура экспортная, выше об этом написано
---
Поняла, в чем дело. Процедуры отчета, к которым я обращаюсь, находятся в модуле отчета, где прописано #Если Клиент Тогда
Но отчеты стандартные. Мой справочник хранит перечень отчетов и их настроек (выбранных пользователем). По расписанию эти отчеты с помощью регламентного задания должны рассылаться по эл. почте. Отчет пользователь для отправки может выбрать любой, не буду же все отчеты под себя подстраивать. Что можно сделать в данной ситуации?
---
переписать код под контекст сервера!
---
Там куча отчетов стандартных. Как их перепишешь. Что еще можно придумать? Как можно обойти?
---
если там все на клиенте, то придумать ничего не получится. А вот если только не нужная для выполнения часть, то обрамить препроцессором.
---
В отчетах, которые на данный момент нужны пользователю, все на клиенте. Но завтра ему может понадобиться что-то еще. Что означает "обрамить препроцессором"? Что это такое, где об этом можно почитать?
---
в справке общая инфа, а так в книге разработчика поищите.
---
Спасибо. Еще такой вопрос для этой же ситуации.
Есть регламентное задание. Из него обращаюсь к модулю объекта справочника. Из процедуры модуля справочника пытаюсь получить форму отчета:
- если пишу ФормаОтчета = ВыгружаемыйОтчет.ПолучитьФорму(); то "ошибка в выражении"
- если пишу ФормаОтчета = ПолучитьФорму("Отчет."+СтрокаТЧ.Отчет+".Форма"); то ФормаОтчета = Неопределено.
Что нужно сделать, чтобы получить эту форму?
Не пойму почему возникает ошибка в запросе:

```1c
    "ВЫБРАТЬ
    | ВЫБОР
    | КОГДА ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия = 0
    | ТОГДА 0
    | ИНАЧЕ ОсновныеНачисленияДанныеГрафика.Размер / ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия * ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия
    | КОНЕЦ КАК Результат,
    | ОсновныеНачисленияДанныеГрафика.НомерСтроки
    |ИЗ
    | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
    | ВидРасчета = &Оклад
    | И Регистратор = &Ссылка) КАК ОсновныеНачисленияДанныеГрафика";
```

Сообщение об ошибке: "Неверные параметры "/" ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия"

Что характерно в первой конфигурации запрос работает нормально. Перенес запрос в копию конфигурации и стала возникать такая ошибка. Поля все есть в наличии.
---
так не работает ИНАЧЕ ОсновныеНачисленияДанныеГрафика.Размер - 1
Может у ОсновныеНачисленияДанныеГрафика.Размер тип не Число?
---
Деление на 0 ???
---
Нет.
Так работает ИНАЧЕ ОсновныеНачисленияДанныеГрафика.Размер
так не работает ИНАЧЕ ОсновныеНачисленияДанныеГрафика.Размер - 1
---
так не работает ИНАЧЕ ОсновныеНачисленияДанныеГрафика.Размер - 1
Может у ОсновныеНачисленияДанныеГрафика.Размер тип не Число?
---
Проверил: Число
---
ЗначениеПериодДействия и ЗначениеФактическийПериодДействия тоже должны быть числовыми
---
Почему
Так работает ИНАЧЕ ОсновныеНачисленияДанныеГрафика.Размер
так не работает ИНАЧЕ ОсновныеНачисленияДанныеГрафика.Размер - 1
---
Действительно был тип не число, а строка.
До этого посмотрел не в той базе
---
Действительно был тип не число, а строка.
До этого посмотрел не в той базе
---
А
ЕстьNULL(ОсновныеНачисленияДанныеГрафика.Размер,0) - 1
не падает? Мож график не заполнен?
---
Если запрос сам не открывается в конструкторе, то дело не в данных. Как выяснилось не исправил тип Строка на Число.
Ну всё как обычно в запросах 1С :(
Есть дата в формате д/м/г, надо сортировать в формате м/д/г. Варианты для СКД тоже рассматриваются.

ЗЫ: на крайний случай есть решение через строку, но сами понимаете это "головняк".
---
МЕСЯЦ(ЗаказКлиента.Дата) КАК Месяц,
ДЕНЬ(ЗаказКлиента.Дата) КАК День,
ГОД(ЗаказКлиента.Дата) КАК Год
...
УПОРЯДОЧИТЬ ПО
Месяц, День, Год
---
Вариант для СКД: настроить сортировку по части даты.
---
Это сработает только уже при выводе отчета. Хотелось бы чуть пораньше, когда можно перенаправить вывод.
---
МЕСЯЦ(ЗаказКлиента.Дата) КАК Месяц,
ДЕНЬ(ЗаказКлиента.Дата) КАК День,
ГОД(ЗаказКлиента.Дата) КАК Год
...
УПОРЯДОЧИТЬ ПО
Месяц, День, Год
---
Всё спать, надо спать :)
---
А зачем хранить дату в строке?
---
Дата в дате.
Просто я могу сделать из неё строку, и собрать как мне хочется, но это лишний подзапрос.
Доброго времени. Начал готовиться к экзамену специалист по платформе. Встал вопрос, как реализовать программно метод списания FIFO или LIFO.
По средней то понятно, что берем количество проданных делим на произведение количества оставшихся и суммы оставшихся:

```1c
    СуммаСписания = Движение.Количество / ВыборкаДетальныеЗаписи.КоличествоОстаток *
    ВыборкаДетальныеЗаписи.СуммаОстаток;

    Движение.Сумма = СуммаСписания;
```

Но не могу понять, как написать по методу LIFO и FIFO.
Я понимаю, что FIFO - это первая партия пришла и первая ушла, а LIFO последняя партия уходит и первой и сейчас не применяется уже. Но в коде все равно не могу сообразить. Подскажите, где можно об этом почитать?
---
Надо в регистр добавить еще одно измерение "партия", в которое при приходе писать ссылку на документ, а при списании учитывать остатки в разрезе этого измерения
---
выгрузить в таблицу все остатки по партиям и закрывать их последовательно по хронологии сортировка
фифо(ВОЗР) лифо (УБЫВ)
---
да кстати неявный момент при списании остатка партии в 0 списывать весь остаток суммы
---
Надо в регистр добавить еще одно измерение "партия", в которое при приходе писать ссылку на документ, а при списании учитывать остатки в разрезе этого измерения
---
я думал партия это будет регистратор, то есть сам документ.
---
В таблице итогов (остатки которая) не доступен регистратор
---
выгрузить в таблицу все остатки по партиям и закрывать их последовательно по хронологии сортировка
фифо(ВОЗР) лифо (УБЫВ)
---
И вместо этого

```1c
    СуммаСписания = Движение.Количество / ВыборкаДетальныеЗаписи.КоличествоОстаток *
    ВыборкаДетальныеЗаписи.СуммаОстаток;
```

лучше ставить это:

```1c
    СуммаСписания = Окр(Движение.Количество / ВыборкаДетальныеЗаписи.КоличествоОстаток *
    ВыборкаДетальныеЗаписи.СуммаОстаток,2);
```

т.к. скорее всего у Вас есть реквизит, хранящий остаток суммы, который при списании всего оставшегося количества тоже нужно будет списать целиком. Если отнимать из него неокругленные согласно размерности числа в базе суммы, в конце можно получить "лишние" копейку или две.
---
да кстати неявный момент при списании остатка партии в 0 списывать весь остаток суммы
Всем привет,
вопрос: как убрать то, что выделено на рисунке? Выбранные поля детальных записей показываю, номенклатуры там нет, но она выводится. Сильно не ругайтесь, топики по теме в форуме искала, не нашла.
---
Вопрос снят. Может сэкономлю кому время - надо в других настройках в параметре "расположение полей группировок" выбрать "отдельно и только в итогах"
---
Вопрос снят. Может сэкономлю кому время - надо в других настройках в параметре "расположение полей группировок" выбрать "отдельно и только в итогах"
Добрый День!
Ищу строку в ТЧ документа. Нужно чтобы найденная строка стала текущей . Строка находится, но остается за пределами видимости. Что делаю не так, подскажите пожалуйста.

```1c
    &НаКлиенте
    Процедура НайтиСтроку(СсылкаН)
    Отбор = Новый Структура();
    Отбор.Вставить("Номенклатура", СсылкаН);
    НайденноеЗначение = Объект.Товары.НайтиСтроки(Отбор);
    Если НайденноеЗначение.Количество() > 0 Тогда
    ЭтаФорма.Элементы.Товары.ТекущаяСтрока=НайденноеЗначение[0];
    НайденноеЗначение[0].Метка=true;
    //ЭтаФорма.Элементы.Товары.Обновить();
    КонецЕсли;
    КонецПроцедуры
```
---
Вы можете использовать метод ПолучитьИдентификатор() для найденной строки и передавать этот идентификатор в свойство ТекущаяСтрока.
---
Для свойства ТекущаяСтрока нужен идентификатор строки, вы же передаете саму строку.
---
Вы можете использовать метод ПолучитьИдентификатор() для найденной строки и передавать этот идентификатор в свойство ТекущаяСтрока.
---
Спасибо ! С Вашей помощью заработало. Удачи!
```1c
    Функция КоличествоЦелыхЧиселВСтроке(Строка)
    ЧислоСлов = 0;
    КоличествоЧисел = 0;
    ПолученнаяСтрока = СтрЗаменить(СокрЛП(Строка), " ", Символы.ПС);
    Для Сч = 1 ПО СтрЧислоСтрок(ПолученнаяСтрока) Цикл
    ТекСтрока = СтрПолучитьСтроку(ПолученнаяСтрока, Сч);
    Если НЕ ПустаяСтрока(ТекСтрока) Тогда
    Попытка
    Число = Число(ТекСтрока);
    //цел()
    КоличествоЧисел = КоличествоЧисел + 1;
    Исключение
    КонецПопытки;
    КонецЕсли;
    КонецЦикла;
    Возврат КоличествоЧисел;
    КонецФункции
    помогите решить, через цел нужно чтобы учитывались .0 как целые, а числа типа 5.13 вообще не считались
    КоличествоЧисел = КоличествоЦелыхЧиселВСтроке(" 2 3 4 0.1 5.13 1,0 ");
    Предупреждение("В строке "+КоличествоЧисел+" чисел");
```
---
```1c
    МассивЧисел = СтрРазделить(СтрокаЧисел, " ", Ложь);
    КоличествоЧисел = 0;
    Для Каждого СтрЧисло Из МассивЧисел Цикл
    Попытка
    ТекущееЧисло = Число(СтрЧисло);
    Если Цел(ТекущееЧисло) = ТекущееЧисло Тогда
    КоличествоЧисел = КоличествоЧисел + 1;
    КонецЕсли;
    Исключение

    КонецПопытки;
    КонецЦикла;
```
---
```1c
    МассивЧисел = СтрРазделить(СтрокаЧисел, " ", Ложь);
    КоличествоЧисел = 0;
    Для Каждого СтрЧисло Из МассивЧисел Цикл
    Попытка
    ТекущееЧисло = Число(СтрЧисло);
    Если Цел(ТекущееЧисло) = ТекущееЧисло Тогда
    КоличествоЧисел = КоличествоЧисел + 1;
    КонецЕсли;
    Исключение

    КонецПопытки;
    КонецЦикла;
```
---
да подходит только цикл прерывается на 5.13 и дальнейшие уже в учет не идут, как можно исправить?
---
да подходит только цикл прерывается на 5.13 и дальнейшие уже в учет не идут, как можно исправить?
вот чисто из-за этого цикл не должен прерываться. Все должно отрабатывать нормально.
Там можно даже любые символы использовать, просто их в исключение отбросит, но продолжит дальше вычислять.
---
да все ровно спасибо
---
КоличествоЧисел = СтрЧислоВхождений(<Строка>, " ")-2-СтрЧислоВхождений(<Строка>,".")- СтрЧислоВхождений(<Строка>,",")
---
это не учитывает как число значения типа: 1.0 2,0
---
можно прибавить СтрЧислоВхождений(<Строка>,".0") и ",0"
---
СтрЧислоВхождений(,".0")
а 1.0 и 1.05 это одно и тоже?
---
ошибся .тогда пусть ".0 "
---
в любом случае, отчего решили, что в конце строки обязательно есть символ пробела?
И использовать магические числа в коде "-2" это вообще не правильно. У нас есть не жестко заданные значения строки.
Всем здравствуйте. Подскажите, пожалуйста, как реализовать сумму прописью в Excel в виде формулы?
Или хотя бы подскажите, как добавить диапазон имен в диспетчер имен из 1с в книгу
---
Спасибо, разобрался уже)
---
Уточните, что хотите получить на выходе? (1С / Excel)
---
По итоге мне в колонке надо иметь формулу, которая преобразовывала бы число в текст, и реагировала на изменение того самого числа
---
Спасибо, разобрался уже)
---
Т.е. вы не считаете правильным все же написать ответ, раз сами создали эту тему?
---
Решение осталось на работе, в понедельник обязательно напишу.
---
через надстройки
---
Формулу нужно написать в английском варианте.
Перечень основных функций на англ., нем. , француз. и т.д. - http://www.excelworld.ru/index/spravochniki/0-48
Добрый день !
Подскажите пожалуйста как правильно создать глобальную переменную ?! Потому что я что-то запутался ...
Конфигурация (Документооборот 1.4 управляемые формы) в [модуле управляемого приложения] добавил:

```1c
    // В.Ч.
    Перем вчЭтоУдалениеИзФормыСписка Экспорт;
    // Признак того, что в данный момент находимся в режиме удаления элемента из Формы списка
```

Затем в [модуле справочника ВнутренниеДокументы] пишу:

```1c
    // В.Ч. УдалениеИзФормыСписка
    вчЭтоУдалениеИзФормыСписка = Истина;
    РаботаСФайламиВызовСервера.ПометитьНаУдалениеПриложенныеФайлы(Ссылка, ПометкаУдаления);
    вчЭтоУдалениеИзФормыСписка = Ложь;
```

проверка синтаксиса пишет "Синтаксических ошибок не обнаружено!"
Затем в [модуле справочника Файлы] пишу:

```1c
    Если НЕ вчЭтоУдалениеИзФормыСписка Тогда
    ВызватьИсключение СтрокаОшибки;
    КонецЕсли;
```

проверка синтаксиса пишет:
{Справочник.Файлы.МодульОбъекта(161,13)}: Переменная не определена (вчЭтоУдалениеИзФормыСписка)
    Если НЕ <<?>>вчЭтоУдалениеИзФормыСписка Тогда (Проверка: Сервер)

Как такое может быть ?!
Посоветуйте может есть другой вариант использовать что-либо вместо глобальной переменной ?
---
Глобальных переменных нет в УФ. Используйте параметры сеанса.
---
Конфигурация (Документооборот 1.4 управляемые формы) в [модуле управляемого приложения] добавил:
...
Затем в [модуле справочника Файлы] пишу:
1. Внимательно смотрите контекст выполнения. Объявление переменной на клиенте. Попытка обращения к ней на сервере.
2. Глобальные переменные существуют, но только на клиенте.
3. Переменные на сервере хранят свое значение только во время текущего серверного сеанса.
---
Глобальных переменных нет в УФ. Используйте параметры сеанса.
---
+(2), но есть переменные контекста сервера и клиента в тех областях видимости где они объявлены(модули объектов, форм и т.д.)

если работаете с неким объектом, то в качестве контейнера "глобальных" переменных можно рассматривать "ДополнительныеСвойства" этого объекта. Это структура в которой можно хранить по ключам значения и они будут "видны" и в формах и в модуле этого экземпляра объекта.
Правда у внешних обработок и отчетов "ДополнительныеСвойства" отсутствуют.

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

А в данно случае, что может быть не так?

```1c
    &НаСервере
    Процедура ОтборРегламентноеЗаданиеНачалоВыбораНаСервере()
    Регламентные = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
    Для Каждого РегламентноеЗадание из Регламентные Цикл
    Элементы.ОтборРегламентноеЗадание.СписокВыбора.Добавить(РегламентноеЗадание, РегламентноеЗадание);
    КонецЦикла;
    КонецПроцедуры

    &НаКлиенте
    Процедура ОтборРегламентноеЗаданиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    ОтборРегламентноеЗаданиеНачалоВыбораНаСервере();
    КонецПроцедуры
```
---
"Отсутствует отображение" - значит, вы пытаетесь передать на клиент что-то, чего там быть не должно. В данном случае вы пытаетесь непонятно зачем впихнуть в список выбора элемента регламентное задание. Передавайте уид.

Элементы.ОтборРегламентноеЗадание.СписокВыбора.Добавить(РегламентноеЗадание.УникальныйИдентификатор, РегламентноеЗадание.Наименование);
---
Скорее всего в том, что нельзя получить строковое представление регламентного задания.
Замените

```1c
    Элементы.ОтборРегламентноеЗадание.СписокВыбора.Добавить(РегламентноеЗадание, РегламентноеЗадание);
```

на

```1c
    Элементы.ОтборРегламентноеЗадание.СписокВыбора.Добавить(РегламентноеЗадание, РегламентноеЗадание.Наименование);
```
---
Ошибка такая же (
---
"Отсутствует отображение" - значит, вы пытаетесь передать на клиент что-то, чего там быть не должно. В данном случае вы пытаетесь непонятно зачем впихнуть в список выбора элемента регламентное задание. Передавайте уид.

Элементы.ОтборРегламентноеЗадание.СписокВыбора.Добавить(РегламентноеЗадание.УникальныйИдентификатор, РегламентноеЗадание.Наименование);
---
Да, действительно!) Спасибо! А Вы можете объяснить, почему так?
---
Потому что список выбора элемента доступен и на сервере и на клиенте. А на тонком клиенте регламентных заданий нет. Советую всегда обращать внимание на эту строчечку.
Здравствуйте.
Есть 2 таблицы (документа): План и Факт.
В плане в 1 строке указано количество, например, 20 единиц данной номенклатуры, а в Факте, например, 2 строки по этой номенклатуры, к-е отличаются сериями.
Например, в первой строке 20, а во второй строке еще 10.

Вопрос: как в запросе вычислить, что во второй строке уже превышение плана над фактом и поставить ей признак, что это превышение?

Т.е. посчитать, что 30>20 и у строки, где 10 поставить признак Сверх плана.

Можно это вычислить в запросе?

Хотя сейчас попробую вычислить по признаку, что - раз разнесли второй строкой - значит превышение.

Но вопрос про вычисление тоже актуален.

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

Выбрать 1 как номерстроки, "кресло" как номенклатура, 20 как количество
Поместить План
Объединить все
Выбрать 2 как номерстроки, "Диван" как номенклатура, 15 как количество;
Выбрать 1 как номерстроки, "кресло" как номенклатура, 20 как количество
Поместить Факт
Объединить все
Выбрать 2 как номерстроки, "кресло" как номенклатура, 10 как количество
Объединить все
Выбрать 3 как номерстроки, "Диван" как номенклатура, 5 как количество
Объединить все
Выбрать 4 как номерстроки, "Диван" как номенклатура, 10 как количество;
Выбрать Ф1.номерСтроки, Ф1.номенклатура, Ф1.Количество, Сумма(ф2.Количество) как КолИтог поместить ФактСИтогом из Факт как Ф1
Левое соединение Факт как ф2 по Ф1.Номенклатура=Ф2.Номенклатура и Ф1.номерстроки>=Ф2.номерстроки
Сгруппировать по Ф1.номерСтроки, Ф1.номенклатура, Ф1.Количество;
Выбрать ф.*,Выбор когда П.Количество-Ф.КолИтог<0 тогда "превышение" иначе "" конец из ФактСИтогом как ф левое соединение План как П по Ф.Номенклатура=П.Номенклатура
---
Спасибо! Сейчас буду смотреть.
Всем привет! У меня на уф есть длинный заголовок поля, как мне заголовок сделать в 2 строки? Спасибо.
---
В поле редактирования заголовка нажать в нужном месте Shift+Enter.
---
В поле редактирования заголовка нажать в нужном месте Shift+Enter.
Доброе время суток. Есть отчет на СКД, в схеме 2 набора данных, между собой связаны - оба строятся по документу (отбор), который указывает пользователь. В первом наборе есть затраты, и итог в конце по ним (по ресурсам). Во втором тоже есть колонка, в которой считается итог. Вопрос: как посчитать разницу итога из первого набора и итога из второго набора, для определенных ресурсов?
---
Назвать вычисляемое поле "РазницаИтога"

в выражение вбить формулу, где поля в агрегатных функциях это поля из разных наборов
Сумма(СуммаЗатрат1)-Сумма(СуммаЗатрат2)

в ресурсы добавить

РазницаИтога и назначить ему выражение РазницаИтога уже без агрегатов
---
вычисляемые поля для этого предназначены

в них можно агрегировать результаты общего набора согласно набору функций СКД
---
можно пример для моей задачи?
---
Назвать вычисляемое поле "РазницаИтога"

в выражение вбить формулу, где поля в агрегатных функциях это поля из разных наборов
Сумма(СуммаЗатрат1)-Сумма(СуммаЗатрат2)

в ресурсы добавить

РазницаИтога и назначить ему выражение РазницаИтога уже без агрегатов
---
спасибо, разобрался, правда не так как хотелось, но решение верное
Добрый день!

Делаю СКД отчет по амортизации основных средств по месяцам. Табличный отчет за несколько месяцев. В колонках по каждому месяцу должно отображаться начисленная за этот месяц амортизация и оставшаяся стоимость (Первоначальная стоимость минус сумму за все предыдущие месяца).
Проблема с расчетом оставшейся суммы амортизации за каждый месяц. Как в каждой колонке подсчитать сумму амортизации до этого месяца???

В ресурсах прописываю выражения для получении суммы амортизации:

Сумма(ВычислитьВыражение("Сумма(НачисленнаяАмортизация)", "ПериодМесяц"))

Подскажите, пожалуйста, что не так....
---
я как то давно делал такой отчет, сейчас не вспомню, но судя из синтаксиса, вроде верно копаешь
ВычислитьВыражение(Выражение, Группировка, ТипРасчета, Начало, Конец, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка)
Только у тебя нет полей Начало и Конец. Т.е. с какого по какой месяц считать. Типа первая запись, предыдущая запись и тд
---
Посмотри здесь
https://infostart.ru/public/267055/
https://youtu.be/X09BHLDQDh0
---
я как то давно делал такой отчет, сейчас не вспомню, но судя из синтаксиса, вроде верно копаешь
ВычислитьВыражение(Выражение, Группировка, ТипРасчета, Начало, Конец, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка)
Только у тебя нет полей Начало и Конец. Т.е. с какого по какой месяц считать. Типа первая запись, предыдущая запись и тд
---
Посмотри здесь
https://infostart.ru/public/267055/
https://youtu.be/X09BHLDQDh0
---
Спасибо. Смотрю Ваши подсказки.

Начало и конца нет. Считает по всему диапазону.
---
Разобрался. Спасибо !!!!!!!!!!!!!!!!!!!

ВычислитьВыражение("Сумма(НачисленнаяАмортизация)","ПериодМесяц",,"Первая","Текущая")