• 🚨 24 часа до повышения цены на курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    Последний день записи в текущий поток по старой цене Подробнее о курсе ...

Динамическое добавление колонок в 1С8

  • Автор темы Автор темы Golod
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
G

Golod

Появилась проблема: необходимо создать документ, в табличных частях которого колонки не постоянны и могут изменятся, причём пользователь может добавлять новые колонки прямо из формы документа.
Колонки можно добавить через элементы формы. Например так: ЭлементыФормы.ТабличнаяЧасть.Колонки.Добавить(Название), однако, в этом случае данные, находящиеся в колонке не подлежат изменению.
Как с этим бороться?
 
ухты, а можно узнать зачем? я бы рекомендовал всетки развернуть табличку на 90градусов. т.е. вниз, чтоб строчки росли :) почитай про реляционные базы. все описывается вполне табличками с фиксированным количеством столбцов
 
Друг мой! Если бы в данной ситуации можно было бы сделать так, то обязательно бы так и сделал. Задача поставлена именно так, что необходимо создавать и колонки и строчки. Суть такая: бухгалтерия. Есть стоимостные показатели, по которым составляется бюджет этапа. Этап состоит из периодов. Периодов, как сам понимаешь может быть сколько угодно, а заказчику понадобилось ещё и показатели добавлять, к тому же смотреть данные по этапу в этих двух разрезах с возможностью правки и, соответственно, пересчёта. Таким образом отчёты не подходят, а табличку с динамически изменяемым количеством столбцов сделать, насколько я понял, в 1с не реально. Пришлось изворачиваться.
Конечно, можно сделать всё только строками (типа сложный ключ (P.S. теорию я нормально знаю)), но это будет не очень наглядно, заказчику не понравится, придётся переделывать, сроки жмут... Всё как обычно...
 
Друг мой, почему ты решил, что не реально? В модуле формы документа выполни следующий код:
Код:
ЭлементыФормы.ТабличнаяЧасть1.Колонки.Вставить(позиция, Наименование);
Где: позиция - номер колонки, после которой будет добавлена нужная
Наименование - Как колонка назовется
ТабличнаяЧасть1 - название твоей табличной части.
и посмотри, что произойдет.
Но я бы, всетки, на твоем месте, заставил заказчика пересмотреть ТЗ. А не пытался ему "понравиться" Ты профи в своем деле и к твоему мнению должны прислушиваться. А то на голову сядут (
 
В таком случае возникает 2 вопроса:
1) не могу вставить данные в добавленную колонку;
2) колонка при записи документа не сохраняется, а это критично в моём случае.
 
1) после добавления колонки установи ей элемент управления, например:
НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));
проверь свойства к0лонки ТолькоПросмотр и Доступность
поковыряйся с0 свойствами самого поля ввода НоваяКолонка.ЭлементУправления

2) и не сохраницц0... иб0 состав реквизитов меняецц0 только в режиме Конфигуратора...
вариантЪ : добавь реквизит ХранилищеЗначения и загоняй в нег0 при записи ТЗ, являющуюся ист0чником данных для Таб. поля формы...
Контейнер = Новый ХранилищеЗначения(ТЗданныеФормы);

с00твеЦтвенно, ПриОткрытии вытаскивай обратн0...
ТекТаб = Контейнер.Получить();
ТЗданныеФормы = ТекТаб.Скопировать();
ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
ЭлементыФормы.ТабличноеПоле.ОбновитьСтроки();

т0ка запрос по полям этой ТЗ ты пАстроить, соотвеЦтвенно, не сможешь...
 
и всетки лучще чем хранилище, всетки развернуть таблицу в строки... хотя бы внутренне. (Юзерам покажешь как они хотят.) Бо ссылочная целостность! Можно при помощи доп табличных частей.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

Курс AD