Запись в регистр накопления по столбцам ТЗ

1. TopZlodey 13 20.07.18 17:59 Сейчас в теме
Здравствуйте, не без помощи форумчан смог создать документ который при изменении периода создает новые колонки в ТЗ документа. Вопрос как можно делать записи в регистр по новым колонкам? Скриншот 1 - до смены периода, скриншот 2 - после смены периода.
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
13. TopZlodey 13 24.07.18 08:18 Сейчас в теме
(4)
(6)
(7)

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


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

Сообщить(ПервыйМесяц);
НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMMM");
МассивМесяцев.Добавить(Новый РеквизитФормы(НазваниеКолонки, Новый ОписаниеТипов("Число"), "ПрозводственныеПланы", НазваниеКолонки, Истина));
ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
КонецЦикла;
ИзменитьРеквизиты(МассивМесяцев);
ПервыйМесяц=НачалоМесяца(НачалоИнтервала);
Пока ПервыйМесяц <= НачалоМесяца(КонецИнтервала) Цикл
НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMММ ");
Год=Формат(ПервыйМесяц, "ДФ=yyyy");
НоваяКолонка = Элементы.Добавить(НазваниеКолонки, Тип("ПолеФормы"), Элементы.ПрозводственныеПланы);
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.ПутьКДанным = "ПрозводственныеПланы."+НазваниеКолонки;
ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
КонецЦикла;
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 20.07.18 18:16 Сейчас в теме +0.7 $m
(1)
Для Каждого стрТЗ Из ТЗ Цикл
   Для к=1 По ТЗ.Колонки.КоличествоКолонок()-1 Цикл  // начинаем с 1, а не с нуля, потому что первая колонка нам не нужна.
       //заполняем. данные по колонке:
       // Имя колонки = ТЗ.Колонки[к].Имя
       // значение строки:
       // значение из строки по колонке = стрТЗ[к]
   КонецЦикла;
КонецЦикла;
Показать
3. TopZlodey 13 20.07.18 18:20 Сейчас в теме
4. spacecraft 20.07.18 18:22 Сейчас в теме
(3) ожидали готового решения?
Я специально дал только направление того, как достать данные из динамических колонок. Но решение должны найти сами. Так лучше запомнится.
13. TopZlodey 13 24.07.18 08:18 Сейчас в теме
(4)
(6)
(7)

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


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

Сообщить(ПервыйМесяц);
НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMMM");
МассивМесяцев.Добавить(Новый РеквизитФормы(НазваниеКолонки, Новый ОписаниеТипов("Число"), "ПрозводственныеПланы", НазваниеКолонки, Истина));
ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
КонецЦикла;
ИзменитьРеквизиты(МассивМесяцев);
ПервыйМесяц=НачалоМесяца(НачалоИнтервала);
Пока ПервыйМесяц <= НачалоМесяца(КонецИнтервала) Цикл
НазваниеКолонки=Формат(ПервыйМесяц, "ДФ=MMММ ");
Год=Формат(ПервыйМесяц, "ДФ=yyyy");
НоваяКолонка = Элементы.Добавить(НазваниеКолонки, Тип("ПолеФормы"), Элементы.ПрозводственныеПланы);
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.ПутьКДанным = "ПрозводственныеПланы."+НазваниеКолонки;
ПервыйМесяц = ДобавитьМесяц(НачалоМесяца(ПервыйМесяц),1);
КонецЦикла;
5. spacecraft 20.07.18 18:27 Сейчас в теме
(1) да, еще. Для обратного преобразования имен колонок в дату. Советую в реквизитах формы завести еще один реквизит типа список значений, где хранить дату соответствую имени колонки.
9. TopZlodey 13 20.07.18 22:33 Сейчас в теме
(5) спасибо за помощь, нет я ждал не готового решения, просто не много не правильно описал свою мысль как сделаю, кину код что бы показать)
6. Leon75 20.07.18 18:46 Сейчас в теме +0.3 $m
(1)
в ТЗ документа

Обычно это не ТЗ, а ТЧ. При всей похожести данных объектов, они слегка разные.

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

Просто есть элемент легкого волнения за штатный механизм Производства в УНФ.
8. TopZlodey 13 20.07.18 22:32 Сейчас в теме
(6)спасибо за волнение, но это полностью новый документ и новый регистр.
11. Leon75 22.07.18 12:17 Сейчас в теме
(8)Я думаю, следующий Ваш вопрос будет как транспонировать данные из ТЧ документа. Так как скорее всего придется преобразовывать колонки в строки, для того, чтобы сделать движения в регистре.
Было: Категория1 Месяц1Количество Месяц2Количество Месяц3Количество ... МесяцNКоличество

Стало:
Категория1 Месяц1 Количество
Категория1 Месяц2 Количество
Категория1 Месяц3 Количество...
Категория1 МесяцN Количество
7. V.Stavinsky 271 20.07.18 18:56 Сейчас в теме
опиши регистр в который будут записываться данные

и еще - а если пользователь выберет период от 01.01.2017 - до 01.01.2019 - то будут продублированы месяца? это нормально для тебя? лучше в наименование колонки писать что-то типа - если январь 2017, то "01.2017"
10. TopZlodey 13 20.07.18 22:33 Сейчас в теме
(7)вы правы, с этим тоже нужно будет поработать.
V.Stavinsky; +1 Ответить
12. V.Stavinsky 271 23.07.18 15:56 Сейчас в теме
если задуматься серьезно то надо вообще изменить архитектуру конфигурации:
- вместо документа "Производственный план" создать такой же справочник (но без ТЧ)
- саму же "ТЧ" хранить в РС "Описание производственных планов" - регистр периодический (месяц), независимый, в измерениях - ссылка на справочник "Производственный план"; категория номенклатуры, а ресурс - описание (строка)
- работу по созданию / обновлению описаний организовать через отдельный интерфейс - там пользователь выбирает производственный план, и после изменения дат, програмно надо создать ТЗ, вывести на форму, заполнить данными из регистра "Описание производственных планов"

такое мое видение :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот