Здравствуйте, не без помощи форумчан смог создать документ который при изменении периода создает новые колонки в ТЗ документа. Вопрос как можно делать записи в регистр по новым колонкам? Скриншот 1 - до смены периода, скриншот 2 - после смены периода.
---
(6)
(7)

 НачалоИнтервала = Объект.НачалоПериода;
 КонецИнтервала = Объект.КонецПериода;
  МассивМесяцев = Новый Массив;

  ПервыйМесяц=НачалоМесяца(НачалоИнтервала);
 Пока ПервыйМесяц <= НачалоМесяца(КонецИнтервала) Цикл

  Сообщить(ПервыйМесяц);
  НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMMM");
  МассивМесяцев.Добавить(Новый РеквизитФормы(НазваниеКолонки, Новый ОписаниеТипов("Число"), "ПрозводственныеПланы", НазваниеКолонки, Истина));
  ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
 КонецЦикла;
 ИзменитьРеквизиты(МассивМесяцев);
  ПервыйМесяц=НачалоМесяца(НачалоИнтервала);
 Пока ПервыйМесяц <= НачалоМесяца(КонецИнтервала) Цикл
  НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMММ ");
  Год=Формат(ПервыйМесяц, "ДФ=yyyy");
  НоваяКолонка = Элементы.Добавить(НазваниеКолонки, Тип("ПолеФормы"), Элементы.ПрозводственныеПланы);
  НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
  НоваяКолонка.ПутьКДанным = "ПрозводственныеПланы."+НазваниеКолонки;
  ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
 КонецЦикла;
---
```1c
    Для Каждого стрТЗ Из ТЗ Цикл
    Для к=1 По ТЗ.Колонки.КоличествоКолонок()-1 Цикл // начинаем с 1, а не с нуля, потому что первая колонка нам не нужна.
    //заполняем. данные по колонке:
    // Имя колонки = ТЗ.Колонки[к].Имя
    // значение строки:
    // значение из строки по колонке = стрТЗ[к]
    КонецЦикла;
    КонецЦикла;
```
---
не совсем то
---
ожидали готового решения?
Я специально дал только направление того, как достать данные из динамических колонок. Но решение должны найти сами. Так лучше запомнится.
---
(6)
(7)

 НачалоИнтервала = Объект.НачалоПериода;
 КонецИнтервала = Объект.КонецПериода;
  МассивМесяцев = Новый Массив;

  ПервыйМесяц=НачалоМесяца(НачалоИнтервала);
 Пока ПервыйМесяц <= НачалоМесяца(КонецИнтервала) Цикл

  Сообщить(ПервыйМесяц);
  НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMMM");
  МассивМесяцев.Добавить(Новый РеквизитФормы(НазваниеКолонки, Новый ОписаниеТипов("Число"), "ПрозводственныеПланы", НазваниеКолонки, Истина));
  ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
 КонецЦикла;
 ИзменитьРеквизиты(МассивМесяцев);
  ПервыйМесяц=НачалоМесяца(НачалоИнтервала);
 Пока ПервыйМесяц <= НачалоМесяца(КонецИнтервала) Цикл
  НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMММ ");
  Год=Формат(ПервыйМесяц, "ДФ=yyyy");
  НоваяКолонка = Элементы.Добавить(НазваниеКолонки, Тип("ПолеФормы"), Элементы.ПрозводственныеПланы);
  НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
  НоваяКолонка.ПутьКДанным = "ПрозводственныеПланы."+НазваниеКолонки;
  ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
 КонецЦикла;
---
да, еще. Для обратного преобразования имен колонок в дату. Советую в реквизитах формы завести еще один реквизит типа список значений, где хранить дату соответствую имени колонки.
---
спасибо за помощь, нет я ждал не готового решения, просто не много не правильно описал свою мысль как сделаю, кину код что бы показать)
---
в ТЗ документа
Обычно это не ТЗ, а ТЧ. При всей похожести данных объектов, они слегка разные.

Простите великодушно за вопросы вместо ответа, но в какой регистр Вы собираетесь писать?
В ВыпускПродукции? Так там нет измерения Категория.
И пишите ли вы сейчас "по старым колонкам" и как?

Просто есть элемент легкого волнения за штатный механизм Производства в УНФ.
---
спасибо за волнение, но это полностью новый документ и новый регистр.
---
Я думаю, следующий Ваш вопрос будет как транспонировать данные из ТЧ документа. Так как скорее всего придется преобразовывать колонки в строки, для того, чтобы сделать движения в регистре.
Было: Категория1 Месяц1Количество Месяц2Количество Месяц3Количество ... МесяцNКоличество

Стало:
Категория1 Месяц1 Количество
Категория1 Месяц2 Количество
Категория1 Месяц3 Количество...
Категория1 МесяцN Количество
---
опиши регистр в который будут записываться данные

и еще - а если пользователь выберет период от 01.01.2017 - до 01.01.2019 - то будут продублированы месяца? это нормально для тебя? лучше в наименование колонки писать что-то типа - если январь 2017, то "01.2017"
---
вы правы, с этим тоже нужно будет поработать.
---
если задуматься серьезно то надо вообще изменить архитектуру конфигурации:
- вместо документа "Производственный план" создать такой же справочник (но без ТЧ)
- саму же "ТЧ" хранить в РС "Описание производственных планов" - регистр периодический (месяц), независимый, в измерениях - ссылка на справочник "Производственный план"; категория номенклатуры, а ресурс - описание (строка)
- работу по созданию / обновлению описаний организовать через отдельный интерфейс - там пользователь выбирает производственный план, и после изменения дат, програмно надо создать ТЗ, вывести на форму, заполнить данными из регистра "Описание производственных планов"

такое мое видение :)