arefaste/1C_Forums huggingface dataset:
Управляемые формы, БСП 3.0.1.206

У меня код выполняется на сервере.
Нужно отправить на печать сразу два ТабличныхДокумента (можно без предварительного просмотра).

У меня код, как в примере ниже:

```1c
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ИмяМакета, СинонимМакета, ТабличныйДокумент, Картинка, ПолныйПутьКМакету, ИмяФайлаПечатнойФормы);

    // Модуль менеджера документа
    Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Накладная") Тогда
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Накладная", НСтр("ru = 'Реализация товаров'"),
    СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, ПараметрыПечати), ,
    "Документ.РеализацияТоваровУслуг.ПФ_MXL_РеализацияТоваров");
    КонецЕсли;

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

```1c
    СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати, ПараметрыПечати) --- это один ТабличныйДокумент.
```

Пробовал даже в пакет добавлять документы:

```1c
    // Добавляем документы в пакет
    ЭлементПакета1 = Пакет.Состав.Добавить();
    ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабДокумент1, Новый УникальныйИдентификатор);

    // Добавляем документы в пакет
    ЭлементПакета1 = Пакет.Состав.Добавить();
    ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабДокумент2, Новый УникальныйИдентификатор);

    ПакетОтображаемыхДокументов = УправлениеПечатьюВызовСервера.ПакетДокументов(ЭлементПакета1,
    ОбъектыПечати, Истина, 1);

    // ---- проблема в том, что код ниже выполняется только &НаКлиенте (у меня код, используя БСП, выполняется на сервере, выше привел пример)
    ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
```

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

```1c
    ОбщийДок = Новый ТабличныйДокумент;
    ОбщийДок.Вывести(ТабДокумент1);
    ОбщийДок.ВывестиГоризонтальныйРазделительСтраниц();
    ЗадатьФорматСтрок(ТабДокумент2);
    ОбщийДок.Вывести(ТабДокумент2);
    ОбщийДок.ВывестиГоризонтальныйРазделительСтраниц();
    // далее печатаем ОбщийДок
```
---
Что-то есть в БСП, можно набор печатных форм сделать. Или я с УПП путаю...

По части извращений: КоллекцияПечатныхФорм - таблица значений. Добавь туда строку, заполни её - и штатный метод напечатает))
---
Так пробовал (Это без предварительного просмотра)?

ТабДокумент1.Напечатать();
ТабДокумент2.Напечатать();
---
Это на клиенте будет работать, а на сервере нет.
---
Сделал кнопку и запускаю код с клиента, вопрос решен.
один и тот же товар не может являться и комплектом, и комплектующей одновременно. 1с erp как обойти.
Товар и количество перевыбираем на другую серию.
---
В ERP на любой чих надо новую номенклатуру заводить для одной и той же позиции
---
В ERP на любой чих надо новую номенклатуру заводить для одной и той же позиции
---
Дак система не спроста не позволяет, заводите новую номенклатуру.
Доброго времени суток. Проблема такая: в одной из процедур &НаСервере мне необходимо после запроса по его результату вывести не модальное оповещение об ошибке пользователю. Сделал пока Сообщить(), но это не то пальто) Делал раньше через ОписаниеОповещения(), но оно работает на клиенте в команде, а как сразу после запроса в процедуре, в которой после условия еще куча кода, вызвать это оповещение ума не приложу. Там по сути просто проверка заполнен результат запроса или нет и дальше идёт код по обработке результата. А оповещение я хочу сделать, чтобы описать суть ошибки для пользователя.
---
```1c
    Новый СообщениеПользователю;
```
---
```1c
    Новый СообщениеПользователю;
```
---
Чем Сообщить() не устроил?
Можно выводить в какой-нибудь элемент на форме.
---
Недостаточно явный текст), будь моя воля окно бы было на весь экран и не закрывалось, пока они в слух не прочитают текст. Правда потом мне бы позвонили со словами "Что тут написано?? Я же не программист!!".Судя по всему любой текст, который есть в базе автоматически конвертируется в какой-то магический язык) А в оповещении хоть кнопку "ок" надо нажать, лишняя секунда и то хорошо.)
---
А в чём принципиальная разница между СообщениеПользователю и Сообщить()? Выглядит это абсолютно одинаково.
Платформа 8.3.21.1302, конфигурация БП 3.0 общий модуль ОбменДаннымиXDTOСервер добавляю в расширение процедуру

```1c
    &ИзменениеИКонтроль("ЗаполнитьДанныеИБПоПолученнымДанным")
    Процедура ЗаполнитьДанныеИБПоПолученнымДанным(ДанныеИБ, ПолученныеДанные, ПравилоКонвертации)
```
, но процедура не отрабатывает, подскажите что я делаю не так
---
я использовал ИзменениеИКонтроль, но не добавил #Удаление, #КонецУдаления, #Вставка и #КонецВставки добавил и заработало, всем спасибо
---
а вызов то настроен?
вместо, до, после там...

просто так добавить и не указать как из расширения оно будет исполняться, не достаточно
---
&ИзменениеИКонтроль("ЗаполнитьДанныеИБПоПолученнымДанным")
---
а что поменялось внутри процедуры?
есть #Вставка внутри или ничего не поменялось по итогу?

вот здесь обсуждали похожее
https://forum.infostart.ru/forum9/topic227698/

почитайте, может у вас как раз аналогичная ситуация
---
&ИзменениеИКонтроль("ЗаполнитьДанныеИБПоПолученнымДанным")
Процедура ЗаполнитьДанныеИБПоПолученнымДанным(ДанныеИБ, ПолученныеДанные, ПравилоКонвертации)
И даже ошибку не дает? По сути сделали дубликат процедуры. Смотрите ошибки применения расширения. Должно там ругаться и отключить расширение.
Переименуйте имя процедуры в расширении. Обычно перед именем процедуры ставится префикс ИмяРасширения_

```1c
    &ИзменениеИКонтроль("ЗаполнитьДанныеИБПоПолученнымДанным")
    Процедура ИмяРасширения_ЗаполнитьДанныеИБПоПолученнымДанным(ДанныеИБ, ПолученныеДанные, ПравилоКонвертации)
```
---
я использовал ИзменениеИКонтроль, но не добавил #Удаление, #КонецУдаления, #Вставка и #КонецВставки добавил и заработало, всем спасибо
Хочу узнать какое значение в процедуре "ВыветиСтроку" примет значение "область" и от этого заполнить табличный документ

Реквизит: значение (Область ячеек табличного документа) может меняться в зависимости от условий.

```1c
    // Вывод ТЧ Финансирования и мероприятий
    Для каждого СтрФинансы из Объект.Финансы Цикл
    Если Не ТипЗнч(СтрФинансы.Контрагент) = Тип("Строка") Тогда
    Если СтрФинансы.ИсточникФинансирования = Перечисления._ВидыИсточниковФинансирования.СобственныеСредства Или
    СтрФинансы.ИсточникФинансирования = Перечисления._ВидыИсточниковФинансирования.ФедеральныйБюждет Или
    СтрФинансы.ИсточникФинансирования = Перечисления._ВидыИсточниковФинансирования.СредстваИсполнителя Тогда
    ВывестиСтроку(СтрФинансы, ФинансированиеКонтрагент, ТабДок);
    ИначеЕсли СтрФинансы.ИсточникФинансирования = Перечисления._ВидыИсточниковФинансирования.СредстваЗаказчика Тогда
    ВывестиСтроку(СтрФинансы, ФинансированиеОрганизация, ТабДок);
    КонецЕсли;
    Иначе
    ВывестиСтроку(СтрФинансы, ФинансированиеОрганизация, ТабДок);
    КонецЕсли;
    КонецЦикла;

    &НаСервере
    Процедура ВывестиСтроку(СтрФинансы, Область, ТабДок);

    СтруктураПараметров = Новый Структура;

    Если Область.Области.Свойство("ФинансированиеКонтрагент") Тогда
    СтруктураПараметров.Вставить("НомерДокумента", СтрФинансы.Документ.НомерДокумента);
    СтруктураПараметров.Вставить("ФинансыКонтрагент", СтрФинансы.Контрагент);
    ИначеЕсли Область.Области.Свойство("ФинансированиеКонтрагент") Тогда
    СтруктураПараметров.Вставить("НомерДокумента", СтрФинансы.Документ.НомерДокумента);
    Иначе
    СтруктураПараметров.Вставить("ФинансыКонтрагент", СтрФинансы.Контрагент);
    КонецЕсли;

    Область.Параметры.Заполнить(СтруктураПараметров);
    ТабДок.Вывести(Область);

    КонецПроцедуры
```
---
Если я правильно понял, вам надо проверить существует ли в коллекции Области область с определенным именем. Тогда это метод Найти:
```1c
    Если Область.Области.Найти("ФинансированиеКонтрагент") <> Неопределено Тогда
```
---
Если я правильно понял, вам надо проверить существует ли в коллекции Области область с определенным именем. Тогда это метод Найти:
```1c
    Если Область.Области.Найти("ФинансированиеКонтрагент") <> Неопределено Тогда
```
---
Спасибо
Не могу понять, как это делается. Или так не получиться?
Сразу поясню зачем это нужно. Есть сложный отчет скд. данные которые он выводит в основном варианте нужно получить программно. Несколько уровней группировок, должна вроде бы быть возможность вывести в дерево значений, но не получается. предпологаю из за объединения полей в группы. Возникла мысль сохранить его в ПриКомпоновкеРезультата в ТабличныйДокумент, и перебарать его области по верхнему уровню группировок (данные с него мне как раз и нужны). Но что то не получается найти как это сделать.
Саму схему отчета трогать и менять крайне не желательно. расчитывал обойтись без этого
---
```1c
    ТабДок.ПоказатьУровеньГруппировокСтрок(0);

    Для НомерСтроки = 1 По ТабДок.ВысотаТаблицы Цикл
    Если ТабДок.Область(НомерСтроки, 1).Видимость = Ложь Тогда
    Продолжить;
    КонецЕсли;
    Сообщить(ТабДок.Область(НомерСтроки, 1).Текст);
    КонецЦикла;
```
---
тут есть похожее решение https://infostart.ru/1c/articles/1213983/
немного не в вашу тему, но сильно похоже
---
тут есть похожее решение https://infostart.ru/1c/articles/1213983/
немного не в вашу тему, но сильно похоже
---
```1c
    ТабДок.ПоказатьУровеньГруппировокСтрок(0);

    Для НомерСтроки = 1 По ТабДок.ВысотаТаблицы Цикл
    Если ТабДок.Область(НомерСтроки, 1).Видимость = Ложь Тогда
    Продолжить;
    КонецЕсли;
    Сообщить(ТабДок.Область(НомерСтроки, 1).Текст);
    КонецЦикла;
```
---
Спасибо, действительно похоже это решение
---
Просто невероятно круто, проосто и элегантно, спасибо огромное!
Добрый вечер, форумчане!

В БП3 есть документы "Реализация", в форму списка которых можно вывести реквизит "Есть маркируемая продукция ГИСМ". Предполагаю, что если в УПД есть марки, то значение этого реквизита должно быть "Да". На практике стоит везде "Нет"... Намекните, пожалуйста, как поднастроить отображение наличия марок в УПД?
---
Этот реквизит проставляется в процедуре "перед записью", если включена функциональная опция "ИспользоватьКонтрольныеЗнакиГИСМ"
---
Этот реквизит проставляется в процедуре "перед записью", если включена функциональная опция "ИспользоватьКонтрольныеЗнакиГИСМ"
Доброго времени суток.
Подскажите пожалуйста, личинке программиста
Необходим простейший отчет на СКД:
Клиент, договор и дней отсрочки оплаты
Клиент и договор берется из справочника ДоговорыКонтрагентов. А Дней отсрочки- это доп реквизит, в элементе этого справочника.
Как мне получить значение этого доп реквизита?
Я создал вычисляемое поле и в выражение написал УправлениеСвойствами.ЗначениеСвойства(Объект, Свойство) Где объект у меня "Договор", а вот как передать свойство? Без указания свойства, естественно, 1ска ругается.
Моя конфига 1С:ERP Агропромышленный комплекс 2
Работаем на УФ
Заранее, премного благодарен за помощь
---
Если что, вдруг кому- то понадобится. Сделал так.
Добавил условие
ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство.Имя = &Имя
Заполнил в параметрах "Значение", взяв инфу из ПланВидовХарактеристик. Нашел нужный реквизит, развернул "Для разработчиков", там написано "Имя". Вот это значение и подставил
---
Если не нужно производить вычислений с этим реквизитом, то в режиме предприятия из под плюса договора можно вытащить.
---
Вычисления, скорее всего понадобятся. В дальнейшем буду вычитать из этого числа, чтоб получить количество дней просрочки
---
Вопрос снимается. Я сделал
---
Если что, вдруг кому- то понадобится. Сделал так.
Добавил условие
ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство.Имя = &Имя
Заполнил в параметрах "Значение", взяв инфу из ПланВидовХарактеристик. Нашел нужный реквизит, развернул "Для разработчиков", там написано "Имя". Вот это значение и подставил
---
Добрый день!
Можно скрин)?
---
ДниОтсрочки.Значение как деньОтсрочки

из ДоговорыКонтрагентов как ДоговорыКонтрагентов
    левое соединение ДоговорыКонтрагентов.ДопРеквизиты как ДниОтсрочки
           по ДниОтсрочки.Ссылка = ДоговорыКонтрагентов.Ссылка и ДниОтсрочки.Свойство.Имя = &ИмяДляРазраба
Как можно получить подразделение сотрудника имея лишь текстовую строку с его ФИО формата "Фамилия И.О." ?
---
```1c
    ВЫБРАТЬ
    СотрудникиОрганизаций.Ссылка,
    СотрудникиОрганизаций.Наименование,
    СотрудникиОрганизаций.Физлицо,
    СотрудникиОрганизаций.Организация,
    СотрудникиОрганизаций.ВидДоговора,
    СотрудникиОрганизаций.ВидЗанятости,
    СотрудникиОрганизаций.Должность
    ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
    ГДЕ
    СотрудникиОрганизаций.Наименование ПОДОБНО "%ФИО%"
```
---
Запросом
---
имея лишь текстовую строку с его ФИО формата "Фамилия И.О." Достоверно - никак: у вас даже не ФИО, а фамилия и инициалы, вероятность совпадения довольно высока.

На пальцах, однофамильцев Петра Ивановича и Павла Игоревича так не различишь.
---
Найдите в своей конфигурации объект, в котором содержится сотрудник, обычно у него есть реквизит ФИО. И скорее всего есть регистр
сведений ФИОФизЛиц, в котором Фамилия, Имя и Отчество разделены. По вашему ФИО из этих данных запросом получаете сотрудника и потом уже можете выбирать подразделение, оно может храниться в разных объектах. Зависит от конфигурации.
Это все в одном запросе, я просто логику описала.
---
```1c
    ВЫБРАТЬ
    СотрудникиОрганизаций.Ссылка,
    СотрудникиОрганизаций.Наименование,
    СотрудникиОрганизаций.Физлицо,
    СотрудникиОрганизаций.Организация,
    СотрудникиОрганизаций.ВидДоговора,
    СотрудникиОрганизаций.ВидЗанятости,
    СотрудникиОрганизаций.Должность
    ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
    ГДЕ
    СотрудникиОрганизаций.Наименование ПОДОБНО "%ФИО%"
```
---
Так точно не найдет, формат ФИО с точками. И нужно подразделение
---
да это пример, как отработать строку.. можно на несколько условий разбить и тд..
---
В регистре ФИОФизЛиц фамилия, имя и отчество уже разделены, поэтому все можно будет сделать одним запросом. Если по искать Наименованию сотрудника, где все это представляет сплошную строку, то запросом не обойдешься, придется что-то отдельно доделывать.
---
да вопрос был "как можно". Ответ - можно вот так... Если есть ньюансы - нужно их отдельно озвучивать.. И опять же, нет понимания что это за конфигурация =) Не везде есть регистры =)
Нужно вывести пустое значение в колонке "Действие", написал вот так, но не работает

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_НачисленияИОсновныеПоказатели.Начисление КАК Начисление,
    ВТ_НачисленияИОсновныеПоказатели.Действие КАК Действие,
    ВТ_НачисленияИОсновныеПоказатели.Показатель КАК Показатель,
    ЕСТЬNULL(КадровыйПереводПоказатели.Значение, 0) КАК Значение
    ИЗ
    ВТ_НачисленияИОсновныеПоказатели КАК ВТ_НачисленияИОсновныеПоказатели
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод.Показатели КАК КадровыйПереводПоказатели
    ПО ВТ_НачисленияИОсновныеПоказатели.ИдентификаторСтрокиВидаРасчета = КадровыйПереводПоказатели.ИдентификаторСтрокиВидаРасчета
    И ВТ_НачисленияИОсновныеПоказатели.Ссылка = КадровыйПереводПоказатели.Ссылка
    И ВТ_НачисленияИОсновныеПоказатели.Показатель = КадровыйПереводПоказатели.Показатель
    ГДЕ ВТ_НачисленияИОсновныеПоказатели.Действие = ЗНАЧЕНИЕ(Перечисление.ДействияСНачислениямиИУдержаниями.Утвердить) или
    ВТ_НачисленияИОсновныеПоказатели.Действие = NULL
```
---
ВТ_НачисленияИОсновныеПоказатели.Действие = NULL
Вот это всегда будет Ложь. Даже условие NULL = NULL будет Ложь.
Для проверки на null используется: Есть NULL

Но в данном случае и это не поможет. КадровыйПереводНачисления.Действие не может быть NULL, так как берется из левой физической таблицы.
---
ВТ_НачисленияИОсновныеПоказатели.Действие = NULL
Вот это всегда будет Ложь. Даже условие NULL = NULL будет Ложь.
Для проверки на null используется: Есть NULL

Но в данном случае и это не поможет. КадровыйПереводНачисления.Действие не может быть NULL, так как берется из левой физической таблицы.
---
Так у него вообще условие на ВТ_НачисленияИОсновныеПоказатели вместо КадровыйПереводНачисления
---
чисто технически ошибки нет, кроме сравнения с null и что само значение этого поля не может быть null.
---
да, моя вина, недосмотрел.
---
Ну так выведи пустое значение. Зачем ты выводишь значение из базы данных?
---
посмотрите запрос внимательно,
```1c
    ГДЕ ВТ_НачисленияИОсновныеПоказатели.Действие = ЗНАЧЕНИЕ(Перечисление.ДействияСНачислениямиИУдержаниями.Утвердить) или
    ВТ_НачисленияИОсновныеПоказатели.Действие = NULL
```
 мне нужно получить запросом пустые значения
---
оно никогда там NULL не будет и при этом запрос вообще не рабочий
---
да, ошибку увидел, всем спасибо
Добрый день. Есть запрос к регистру накоплений, в консоли запросов выводятся одни данные, этот же запрос в модуле документа возвращает другие данные (скрин с 3 строками это данные запроса из модуля документа). Номер в параметры запроса в обоих случаях передается один и тот же. Подскажите, пожалуйста, из за чего это может быть?
```1c
    ВЫБРАТЬ
    РеализацияТоваров.Номенклатура КАК Номенклатура,
    РеализацияТоваров.Номенклатура.Код КАК НоменклатураКод,
    СУММА(РеализацияТоваров.Количество) КАК Количество,
    РеализацияТоваров.ДатаДокумента КАК ДатаДокумента,
    РеализацияТоваров.НомерРеализации КАК НомерРеализации,
    РеализацияТоваров.ВидДвижения КАК ВидДвижения
    ИЗ
    РегистрНакопления.РеализацияТоваров КАК РеализацияТоваров
    ГДЕ
    РеализацияТоваров.НомерРеализации= &Номер
    И РеализацияТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)

    СГРУППИРОВАТЬ ПО
    РеализацияТоваров.Номенклатура,
    РеализацияТоваров.Номенклатура.Код,
    РеализацияТоваров.ДатаДокумента,
    РеализацияТоваров.НомерРеализации,
    РеализацияТоваров.ВидДвижения
```
---
Движения.РеализацияТоваров.Записывать = Истина;
Это не делает запись в текущем месте. Это говорит только о том, что запись будет по завершении обработчика.
Короче, движения документа уже очищены, а новые еще не записаны. Вот и разница.
---
чудес не бывает, либо параметры разные, либо тексты запросов разные. Кстати - остальные поля совпадают?
---
совпадает все, кроме количества строк и самого количества номенклатуры. Параметр один, и в обоих случаях значение одинаковое (87699 - Номер реализации, в обоих случаях именно он указан в качестве параметра запроса)
---
Где номенклатура?
---
в скриншотах в (3) первая колонка это коды номенклатуры номенклатуры
---
либо параметры разные, либо тексты запросов разные параметры одинаковые, текст одинаковый, база одна и та же(изначально думал, что в разных базах проверяю запрос). Разница только в том, что один запрос выполняется консолью, второй в модуле документа.
---
в модуле объекта в какой процедуре? не меняются ли движения в регистре после выполнения запроса?
например выполняете запрос перед записью, а движения еще не обновились
остановите отладку на строке выполнения запроса и в другом сеансе посмотрите результат в консоле
---
в модуле объекта в какой процедуре? В обработке проведения, движения меняются, да, пробовал выполнять запрос и до записи движений, и после записи, без результатов.
---
пробовал выполнять запрос и до записи движений, и после записи
с этого места подробнее.
---
с этого места подробнее.
```1c
    ТаблицаОстатков = ПолучитьТаблицуОстатков();
    Движения.РеализацияТоваров.Записывать = Истина;
    //////Запись движений
    ТаблицаОстатков = ПолучитьТаблицуОстатков();
```
---
Движения.РеализацияТоваров.Записывать = Истина;
Это не делает запись в текущем месте. Это говорит только о том, что запись будет по завершении обработчика.
Короче, движения документа уже очищены, а новые еще не записаны. Вот и разница.
---
понял, спасибо!
---
остановите отладку на строке выполнения запроса и в другом сеансе посмотрите результат в консоле попробовал, результат идентичный как в (1)
Здравствуйте, коллеги!

Направьте в нужную сторону.

Никак не могу в форматированном документе перебрать элементы коллекций и заменить символ $

В каком надо работать направлении?

* * *

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

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