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

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    Дата1 = Строка(КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек,"Период1").Значение);
    Дата2 = Строка(КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек,"Период2").Значение);

    Для Каждого ЭлементВыбора Из Настройки.Выбор.Элементы Цикл

    Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("Период1") Тогда
    ЭлементВыбора.Заголовок = Дата1;
    ЭлементВыбора.Использование=Истина;
    Конецесли;

    Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("Период2") Тогда
    ЭлементВыбора.Заголовок = Дата2;
    ЭлементВыбора.Использование=Истина;

    Конецесли;

    КонецЦикла;
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
    КонецПроцедуры
```
---
```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    Поле = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Период1");
    Если Поле <> Неопределено Тогда
    Поле.Заголовок = ................................ ;
    КонецЕсли;
    КонецПроцедуры
```

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

    Поле = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Период1");
    Если Поле <> Неопределено Тогда
    Поле.Заголовок = ................................ ;
    КонецЕсли;
    КонецПроцедуры
```

У Вас строка ЭлементВыбора.Заголовок = Дата1; - означает что Вы "полю" Период1" присваиваете тоже самое (как минимум).
Или я не так поняла.....
"Период1", "Период2" - это параметры отчета ?
(или можете прислать отчётик)?
---
Период1,Период2-это параметры отчета(то есть, период:01.01.17-01.02.17), затем ищу колонку с именем Период1 и задаю ей заголовок как значение периода.
---
Или в Вашем коде попробуйте

```1c
    Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("Период1") Тогда
    ЭлементВыбора.Заголовок = Строка(Дата1);
    ЭлементВыбора.Использование=Истина;
    Конецесли;
```

Или, если все таки Вам нужно изменить наименование как на моем первом скрине программно, но в (4) рабочий код
---
действительно, в (4) работает.
---
Отлично!
---
Вариант сделать через макет СКД подходит?
Можно реализовать макет нужного поля и указать там параметры, достаточно будет просто сформировать отчет.
---
нет,не подходит,нужно программно.
---
Вам надо в качестве заголовка поля (значения поля) вставить параметр. В настройках скд есть закладка "Макеты", там создаете макет поля/группировки в качестве значения выставляете параметр, например <ПредставлениеПериода>, в окошке параметры макета выставите ему параметр из параметров отчета или любой другой
---
это я знаю,но мне нужно программно. Это неудобно тем,что если пользователь решит не вывести в отчет 2 колонки, этот макет съедет
---
Видимо не верно меня поняли, можете прикрепить отчет? Я сброшу результат вам.
---
я вас верно поняла.Попробуйте сами создать такой макет,а затем в структуре отчета уберите галку с любого поля и попробуйте сформировать. У меня заголовки полей съезжают.
---
Еще вариант, разбить группировки с установкой вычисляемого поля в качестве поля группировки, тогда уж точно ничего не съедет
---
Сделать это можно, например в процедуре ПриКомпоновкеРезультата расположенной в модуле объекта отчета.

Для начала получим текущие настройки СКД.

```1c
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();

    Далее при помощи цикла обойдем все поля выбранные в отчет.

    Для Каждого ЭлементВыбора Из Настройки.Выбор.Элементы Цикл
    КонецЦикла;

    Присваиваем полям нужный заголовок.

    ЭлементВыбора.Заголовок = "Мой заголовок";

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

    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    Рассмотрим небольшой пример:

    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    НастройкиКД = КомпоновщикНастроек.ПолучитьНастройки();
    Дата = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек,"Месяц").Значение;
    СтрокаФормата = "ДФ = МММгггг";
    Для Каждого ЭлементВыбора Из НастройкиКД.Выбор.Элементы Цикл

    Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("СреднемесячныеПродажиМинус1СУчетомТекущегоГода") Тогда
    ЭлементВыбора.Заголовок = "Среднемесяные продажи " + Формат(ДобавитьМесяц(Дата,-1),СтрокаФормата) + " с учетом текущего года";
    Конецесли;

    Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("СреднемесячныеПродажиМесяцаМинус1") Тогда
    ЭлементВыбора.Заголовок = "Среднемесяные продажи " + Формат(ДобавитьМесяц(Дата,-1),СтрокаФормата);
    Конецесли;

    Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("СреднемесячныеПродажиМесяцаМинус2") Тогда
    ЭлементВыбора.Заголовок = "Среднемесяные продажи " + Формат(ДобавитьМесяц(Дата,-2),СтрокаФормата);
    Конецесли;

    КонецЦикла;

    КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);
    КонецПроцедуры
```
---
именно о этому примеру я и делала,но ничего не вышло.
---
```1c
    СтрокаФормата = "ДФ = МММгггг";
    Дата1 = Строка(КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек,"Период1").Значение)
    Дата1 = Формат(Дата1,СтрокаФормата);
```
---
Тогда можно вот так:

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();
    ЗначениеПериода = НастройкиКомпоновки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
    Если НЕ ЗначениеПериода = Неопределено И ЗначениеПериода.Использование Тогда

    Дата1 = Формат(ЗначениеПериода.Значение.ДатаНачала, "ДФ=dd.MM.yyyy");
    Дата2 = Формат(ЗначениеПериода.Значение.ДатаОкончания, "ДФ=dd.MM.yyyy");

    КонецЕсли;

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки, ДанныеРасшифровки);

    Для Каждого ТекМакет Из МакетКомпоновки.Макеты Цикл

    Если НЕ ТипЗнч(ТекМакет.Макет) = Тип("МакетОбластиКомпоновкиДанных") Тогда
    Продолжить;
    КонецЕсли;

    Для Каждого Макет Из ТекМакет.Макет Цикл

    Для Каждого Ячейка Из Макет.Ячейки Цикл
    Для Каждого Элемент Из Ячейка.Элементы Цикл

    Если Найти(Элемент.Значение, "%НачалоПериода%") > 0 Тогда
    Элемент.Значение = СтрЗаменить(Элемент.Значение, "%НачалоПериода%", Дата1);
    ИначеЕсли Найти(Элемент.Значение, "%КонецПериода%") > 0 Тогда
    Элемент.Значение = СтрЗаменить(Элемент.Значение, "%КонецПериода%", Дата2);
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;

    КонецЦикла;

    КонецЦикла;

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    КонецПроцедуры
```
---
ну тогда вам прямая дорога к макету и параметрам в заголовках вместо текстовых значений