[ПОТРАЧЕНО] Динамическая таблица формы

15.10.21

Разработка - Работа с интерфейсом

История одной разработки в далеком 2020 году.

Публикацию можно считать художественным вымыслом, все совпадения случайны!

 

Люблю поэкспериментировать в нашей горячо обожаемой и «управляемой» среде разработки с интерфейсами форм. А если подворачивается подходящая задача — значит все звезды сошлись неспроста!

 

рождение сверхновой

- Дмитрий Вадимович, я тебе скину ТЗ, некоторые пункты описаны размыто и возможно потребуется пообщаться с заказчиком напрямую и даже проявить творческий подход.

Просто подарок, творческий подход…

- Ещё отмечу, что в одном пункте я подумал, что можно сделать через таблицу значений или табличный документ, решай сам…

- Готовые решения рассматриваем?

- Нет.

На нет и суда нет.

 

ТЗ

Дизайн интерфейса — одно из моих любимых хобби в разработке. Кто знает возможности платформы «1С:Предприятие 8.3» понимает, что мы сильно ограничены в дизайне интерфейса. Ты словно настоящий творец безумия в желтом мире пытаешь найти способ разработать нереализуемое на первый взгляд.

Подробности всего ТЗ опустим, оно было большое и в последствии переродилось из функционального блока 1С:ERP в отдельный проект по разработке самописной конфигурации, говорят, что её до сих пор пилят, а может и нет… Нас же интересует пункт про Таблицу значений или Табличный документ. Конечно, как ты уже заметил, мой дорогой читатель, из заголовка или своей личной компетентности, что речь идёт о Таблице формы, но многие грешат и называют её так как привыкли.

Если убрать контекст предприятия, то необходимо было предоставить пользователю возможность создавать свою сложную кросс-таблицу с разными группировками по колонкам. Уровень группировок доходил предварительно до четырех, но была вероятность и большей глубины. На пересечении строк и нижнего уровня группировки должны были вводиться производственные показатели с разным типом значений. Вся эта "портянка" должна была конечно же сохраняться и открываться в последствии.

 

Поехали!

Для простоты понимания, визуализирую в Excel необходимую Таблицу формы, она представлена ниже на скриншоте.

Как уже было озвучено в ТЗ, пользователь функционала может свободно создавать неограниченное количество группировок (разрезов) на каждом уровне, но каждый уровень группировки по умолчанию будет содержать как минимум один нижестоящий уровень.

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

Движок

Причиной создания движка была необходимость в масштабировании функционала. Таблиц могло быть с десяток на одной форме и требовалось учитывать, что типы группировок будут разные, так же как количество уровней. Идея реализации как-то пришла сама собой.

Архитектура визуализации таблицы на форме осуществлялась с помощью элемента формы «Группа колонок» с выводом заголовка, в нижнем уровне группы колонок помещалась Колонка для хранения значения без вывода заголовка. Таким образом все заголовки, отображаемые на форме у Таблицы, не принадлежали колонке, хранящей значения.

Для сохранения архитектуры такого фантастического интерфейса использовалась не одна служебная таблица, которая в себе хранила имена элементов форм. Имена шифровались, что помогало легко и просто подключать новые таблицы и обращаться к любым показателям. Пример шифра, который использовался в движке представлен ниже на скриншоте.

Значения на пересечении строк и нижнего уровня группировки, хранятся в зашифрованных колонках на форме, при этом тип их может быть разный (число, дата, строка и т.д.). Ниже на скриншоте представлен пример шифрования колонок.

Единственное исключение имена группировок для всех таблиц должны быть уникальные в рамках всей формы, а не конкретной таблицы. Поэтому все имена элементов получили префикс в виде имени таблицы к которой они относились, например Таблица1Погрузчик_1, Таблица1Материал_1_1 и т.д.

На первый взгляд кажется всё сложным, но не забывайте, что за создание наименований и самого шифра отвечал движок. Также он отвечал за сборку и разборку этих сложных Таблиц формы для сохранения и загрузки данных. Получение информации для различных отчетов и алгоритмов уже происходило из плоских таблиц, записанных в базу данных.

Это был прототип, который по-хорошему после успешной опытно-промышленной эксплуатации потребовал бы рефакторинг кода и возможную оптимизацию.

Дедлайн

Демонстрация нового функционала заказчику состоялась через месяц. Визуализация заказчику понравилась, это конечно было попадание прямо в яблочко. Но не понравился сам интерфейс управления созданием новых колонок и установка значений им.

Движок динамической таблицы формы испытывал главную проблему, отсутствие метода вызова контекстного меню по элементу Группа колонок! Выкрутился я созданием уровня Группы колонок следующим образом (скриншот из инструкции ниже): пользователь вставал на значение (1) и осознавал в рамках какой группировки он находится, затем добавлял нужную колонку (2) по методам из командной панели. Да это было неудобно, и я это понимал, но решение принято и работа выполнена в поставленный срок. Функционал готовился к запуску в опытно-промышленную эксплуатацию.

А вот если бы да кабы

Было бы это лучше или хуже на табличном документе изначально? Всё возможно, но интерфейс, реализуемый на Табличном документе мне сразу показался, каким-то «плоским», не было явного акцента на элементах интерфейса, это было бы больше похоже на Excel с заливками ячеек колонок, их блокировкой от изменений и так далее. В реализованном функционале движка было именно привычное интерфейсное выделение уровней группировок как и во всех табличных частях типовых документах.

 

MES

Разработанный функционал у меня забрали и сказали прекратить работу по проекту, в опытно-промышленную мы его не запустили. Заказчик оказался удивлен не меньше меня... Тем временем пошли слухи, что над одной схожей задачей бизнеса работали две команды. На тот момент я подумал, что выбрали функционал другой команды, а мой похоронили.

Прошло примерно больше полугода и меня неожиданно и срочно подключают к проекту под кодовым названием «MES» и с требованием «бросить всё и заниматься только им». Первое моё удивление, в нем оказался мой функционал и другие функциональные блоки, перенесенные из 1С:ERP. К проекту так же вернулся и мой заказчик. Оба мы прибывали в недоумении, но это уже нюансы внутренней политики и кухни того предприятия.

Возвращение

Монстр вернулся к хозяину! В результате стечения обстоятельств мне перешла и вся самописка, тут я уже прокачивал опыт не на интерфейсе, а больше на работе с EDT & GIT… Но это уже другая история, вернемся к монстру!

Был удивлен, что перенесенный не мною функционал движка из 1С:ERP в самописную конфигурацию на БСП переехал без каких-то видимых повреждений и остался жив.

Новые потребности от заказчика начали тестировать движок на пригодность к масштабированию. Создавались другие табличные части у документа для хранения производственных показателей, если не ошибаюсь их количество уже стремилось к десяти и возможно перевалило этот рубеж.

Считаю, что движок справлялся на ура, он не потерял к сожалению своего главного минуса в плане интерфейса по добавлению колонок, но и приобрел неожиданно новый минус.

Некультурное поведение платформы

Первые жалобы после опытно-промышленной эксплуатации: «Когда мы вводим значение, таблица скачет». Оказалось, пересчеты вертикальных итогов отображаемые в подвале колонки, необходимо было писать не напрямую в элемент формы подвала, а выводить через вспомогательные текстовые реквизиты формы, закрепленные за заголовком подвала колонки. Хорошо, странное поведение Таблицы формы удалось победить.

Не прошло и пары дней после победы странного поведения платформы со скачками таблицы, как пользователи начали обращаться опять с той же проблемой: «Вводим значение колонки, таблица скачет».

И тут я решил применить тот же способ и для Группы колонок, выводить значения для заголовка колонок через вспомогательные текстовые реквизиты формы, но увы потерпел неудачу. При изменении заголовка выбранной Группы колонок, изменяемая колонка «скакала» принимая правое крайнее положение на отображаемой части таблицы формы.

Обращался за помощью к коллегам и в сообщества, но безрезультатно. Ниже отрывок из старого видео-вопроса. Если скажете, что есть решение... увы уже конечно не вернусь к этой задаче, так уже давно продолжил карьеру в другой компании.

 

Это фиаско, братан!

Если неудобство, связанное с созданием Группы колонок ещё можно было пережить, то представьте, как всё перевернули эти «скачки». Выявленное поведение платформы ставило крест на всем функционале движка по созданию динамической таблицы формы, решения проблемы не было.

 

ваша остановка, сэр!

Считаю, что изначальное решение по создания функционала динамической таблицы формы было верным, но подкачала сама платформа с её странным поведением и ограниченными возможностями. Использовать функционал в таком виде я бы не стал, но есть надежда, что платформа получит развитие в этом направлении. Возможно разработчики платформы добавят схожий функционал для Группы колонок как у Подвалов колонок, когда привязка к текстовому реквизиту решает проблему со «скачками». Возможно так же разработчики платформы добавят когда-нибудь метод контекстного меню для Группы колонок, что было бы точно не лишним.

MES Таблица формы значений Создание таблицы Программное создание элементов Динамическая таблица

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61791    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54394    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16694    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10731    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9606    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3662    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12077    1    5    

10
Отзывы
41. check2 354 30.10.21 22:27 Сейчас в теме
Всё бы ничего, и то что съезжает к правой стороне наши пользователи "съели" за неимением лучшего. Убивает другое - при изменении размеров этих многоуровневых вложенных колонок (и не дай бог условное оформление ещё) тихое падение клиента в дамп. Это регрессивный баг периодически лечат. Последний раз вылечили в 8.3.13.1926, тестировали 10 человек изменяя границы колонок с вложенными колонками и условным оформлением - ни разу не упало, 8.3.17.1549, 8.3.18.1563 - Welcome. Опять падает...
А ещё есть ещё интересный баг Вызов контекстного меню таблицы проявляется так, только чур не мышью контекстное меню открывать:
https://youtu.be/hYYlrJcPxLk
Многие пользователи, длительное время работая с системой, мышью пользуются редко. В особенности те, кто выполняет однообразные действия...
rpgshnik; +1 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. vasilev2015 2686 15.10.21 14:52 Сейчас в теме
Динамическая таблица или табличный документ - конечно это дело вкуса.

Но вот пример удачной реализации на основе СКД https://infostart.ru/public/549297/
Hatson; Shmell; rpgshnik; RustIG; +4 Ответить
3. rpgshnik 3631 15.10.21 15:19 Сейчас в теме
(1) да я слышал о схожих решениях на СКД, но они не позволят решить ТЗ, так как именно такой группировки, насколько мне известно, в колонках кросс-таблицы СКД нет. По этому скорее это на "чистом" табличном документе можно только сделать.

Я же расматривал сначала здесь известную Табулу, но там нужен очень скилловый пользователь и бюджета ни какого не дали)

Так же смотрел в сторону функционала Бюджетирования ЕРП, там тоже есть готовое решение по редактированию выведенных данных в табличный документ...
vasilev2015; +1 Ответить
2. RustIG 1351 15.10.21 15:02 Сейчас в теме
(0) спасибо за труд )
kai068; unknown181538; rpgshnik; +3 Ответить
4. andy_zhav 197 15.10.21 17:17 Сейчас в теме
Что-то ностальгией запахло. Лет 5 назад решал аналогичную задачу, но решил ее на табличном документе. Возможно работает до-сих пор и развивается
Yashazz; rpgshnik; +2 Ответить
5. aximo 2027 15.10.21 17:25 Сейчас в теме
каждый что-то когда-то делал подобное https://infostart.ru/public/1492688/

а по факту ноги растут из формирования динамического интерфейса в рознице "палитры товаров"
6. rpgshnik 3631 15.10.21 17:46 Сейчас в теме
(5) любое динамическое формирование интерфейса берет начало из розницы?) Я не в курсе о рознице, не видел её, работаю с производством.

Данная моя публикация скорее развитие ранее опубликованной библиотеки Динамического Формирования Интерфейса https://infostart.ru/1c/articles/1284403/
7. aximo 2027 15.10.21 17:49 Сейчас в теме
(6) советую посмотреть как устроено РМК кассира - достаточно толково сделано. полностью динамически формируется
8. rpgshnik 3631 15.10.21 17:53 Сейчас в теме
(7) там есть такая таблица?
9. aximo 2027 15.10.21 17:56 Сейчас в теме
(8) нет, там есть "движок" для формирования динамического функционала.
10. rpgshnik 3631 15.10.21 17:56 Сейчас в теме
(9) он может создать такую таблицу и сохранить данные?
11. aximo 2027 15.10.21 17:59 Сейчас в теме
(9) да, конечно, там заложена грамотная идея иерархии элементов
18. rpgshnik 3631 16.10.21 05:34 Сейчас в теме
(11) хорошо, еали будет свободное время посмотрю реализацию движка розницы, но я думаю, что он заточет под конкретную задачу АРМ Кассира (дерево кнопок).
12. aximo 2027 15.10.21 18:05 Сейчас в теме
(10) ты сделай лучше неограниченную глубину иерархии (или настраиваемую). реально месяц такое делали?
13. gybson 15.10.21 18:07 Сейчас в теме
А это не АвтоВводНезаполненного?
14. rpgshnik 3631 15.10.21 18:19 Сейчас в теме
(13)
АвтоВводНезаполненного

Честно не помню, пробовал ли это свойство, но помню штудировал все возможные варианты)
15. gybson 15.10.21 18:24 Сейчас в теме
(14)по поведению на видео очень похоже на автоматический переход к незаполненному значению.
rpgshnik; +1 Ответить
20. rpgshnik 3631 16.10.21 15:28 Сейчас в теме
(15) птички нашептали, что АвтоВводНезаполненого стоит в ЛОЖЬ и скачки сохраняются.
16. serverstar 62 15.10.21 19:19 Сейчас в теме
За стиль изложения 5 баллов, да и за повествование тоже)) 😊👍
unknown181538; rpgshnik; RustIG; +3 Ответить
17. axelerleo 338 15.10.21 23:07 Сейчас в теме
Любопытная реализация! Мне напомнило сводную таблицу в УХ.А также напомнило давнюю разработку в одной из фирм где работал, там делали интерактивную таблицу для планов продаж. Но реализовывали это дело на табличном документе, не на таблице формы.
rpgshnik; +1 Ответить
19. rpgshnik 3631 16.10.21 05:38 Сейчас в теме
(17) с УХой меня пока судьба не свела, но многие её используют для консолидации данных и верю в вероятность, что там возможно выполнить данное ТЗ.
22. gybson 17.10.21 08:37 Сейчас в теме
(19)там табличный документ используется в сводной таблицею. В "оперативном плане" периоды по столбцам разносятся, как типы цен в прайс-листе УТ
21. Pavel_Vladivostok 58 17.10.21 07:17 Сейчас в теме
Интересный проект, у меня однажды тоже была подобная задача, мне кажется в данном проекте разумнее было бы разделить интерфейс документа на 2 вкладки, в первой определялась бы структура таблицы, во второй вкладке выводилась бы уже готовая ко вводу данных таблица которая создавалась бы однократно при сохранении структуры, в такой модели юзер может вводить данные и не испытывать неудобств от перересовок группировок колонок таблицы с которой он непосредственно работает, пересчет итогов по колонкам/строкам можно вывести на отдельную кнопку.
23. rpgshnik 3631 17.10.21 12:39 Сейчас в теме
(21) в пересчете итогов проблемы нет, скачки при изменении заголовка группы колонок, если пользователь захочет его поменять по вашей логике ему придется это сделать на другой вкладке в отдельной структуре. Ещё момент когда будет 10 таблиц на форме, нужно будет создать ещё 10 вкладок для структур. Ваш вариант используется в подсистеме бюджетирования ЕРП, там такая структура настраивается в Виде бюджета и используется для генерации таблицы в экземпляре бюджета.
24. Pavel_Vladivostok 58 18.10.21 04:24 Сейчас в теме
В обычных условиях, юзеры не тратят свое время на разработку структуры таблиц документа каждый раз при его создании, все стараются описать однажды все необходимые структуры данных и пользоваться шаблонами при создании новых. Я бы "настойчиво" предложил заказчику разделить действия описания структуры таблицы, и непосредственно работу с этими таблицами в документе, описание структуры можно открывать в отдельной форме для каждой таблицы (например из ком. панели вкладки с этой таблицей), хранить эти описания в виде шаблонов с возможностью копирования и изменения.
RustIG; eeeio; Алексей Воробьев; +3 Ответить
25. rpgshnik 3631 18.10.21 04:33 Сейчас в теме
(24) в контексте задачи не возможно было описать "однажды" все возможные структуры, структура могла корректироваться в процессе заполнения от ситуации на производстве.
26. strelec13 20 18.10.21 09:05 Сейчас в теме
"... мой дорогой читатель, ..." - дорогой мой писатель.
27. rpgshnik 3631 18.10.21 09:23 Сейчас в теме
(26) акцент на неправильной последовательности?) учусь)
28. strelec13 20 18.10.21 09:28 Сейчас в теме
Теперь позвольте к вам обращаться, как дорогой мой читатель, раз читатете мой комментарий )
rpgshnik; +1 Ответить
30. rpgshnik 3631 18.10.21 10:36 Сейчас в теме
29. Поручик 4670 18.10.21 09:53 Сейчас в теме
Охренеть. Меня бы вырвало от такой хотелки.
hiduk; NeLenin; Nefilimus; rpgshnik; +4 Ответить
31. sisdrou 23 18.10.21 10:54 Сейчас в теме
Отличная написанная статья ! Только зачем такая разработка в данной ситуации? Есть же конструктор СКД, его можно выводить по отдельным блокам. На пример, только структуру (Группируемые поля отчета). Оставив по умолчанию тип отчета "Таблица". Там можно редактировать , изменять и добавлять как угодно и что угодно. Я уже не говорю, что придется реализовывать систему сохранения этой настройки и передачу ее другому пользователю. Получается мне каждый раз придется по новой его собирать ?
Реализация такого отчета на динамической форме чревата тем, что форма "Динамическая". Управлять ее отражение достаточно сложно и дорого по трудозатратам.
Любая работа стоит денег и тут видно, что работа проделана большая. Но простите, я бы не заплатил за нее столько денег.

Возможности языка программирования и целесообразность реализации кода в том или ином виде. Это именно то, что отделяет человека умеющего программировать от специалиста занимающегося автоматизацией бизнес-процессов.

Статья на - 5.
Тех. реализация на - 5,
Целесообразность такого решения по этому ТЗ - 0.
32. rpgshnik 3631 18.10.21 11:37 Сейчас в теме
(31) насколько мне известно СКД не умеет строить такие группировки в колонках без скальпеля, в строках да без проблем. Хотя если что-то там покрутить через программную сборку, но это извращение будет ещё дороже стоить и монстроидальнее на СКД, с необходимостью хранить с десяток настроек для каждого документа, а их было два за день только по одному подразделению.

По части ТЗ - оно как раз исходило от "автоматизатора бизнес-процессов". Считаю им было совершено верно предоставлены два возможных варианта реализации: Таблица формы или Табличный документ (без СКД).

Всё было хорошо если бы эти два нюанса удалось победить (особенно скачки)... Они (Документы) даже открывались довольно шустро с сотнями элементов при создание на старте, чему был удивлен. Например тоже Бюджетирование ЕРП (не знаю не разбирал код, но есть подозрение реализации на СКД) ужасно тормозит, даже на малых объемах данных и там только одна таблица.
33. sisdrou 23 19.10.21 09:52 Сейчас в теме
(32)
насколько мне известно СКД не умеет строить такие группировки в колонках без скальпеля, в строках да без проблем

Все отлично строит и передает настройки из пользовательского интерфейса в расширенный и обратно.

По части ТЗ - оно как раз исходило от "автоматизатора бизнес-процессов". Считаю им было совершено верно предоставлены два возможных варианта реализации: Таблица формы или Табличный документ (без СКД).

Где они будут хранить настройку этого отчета, до сих пор не понятно. И да, может я что то пропустил, но не увидел отборов по отчету. А это значит дополнительная реализация, дополнительные деньги и время (что порой важнее).

И все-таки, я бы рекомендовал пользоваться СКД. Реализация отчетов на формах в дальнейшем может приводит к большим трудозатратам на доработку.
35. rpgshnik 3631 19.10.21 10:46 Сейчас в теме
(33) это не отчёт это план отражения факта производственной деятельности, но похоже на отчёт.

Если не сложно поделитесь как в пользовательском или расширенном варианте отчета СКД настроить такую группировку.
38. sisdrou 23 22.10.21 17:07 Сейчас в теме
(35)
и не сложно поделитесь как в пользоват

Скинуть не могу, коммерческая разработка.

На форму выводите "Отчет.КомпоновщикНастроек.Настройки". Далее отдельными "списками значений": пользовательские поля и значения (если есть агрегирующие показатели).

В "КомпоновщикНастроек"элемента формы обрабатываете события "ПроверкаПеретаскивания" и "Перетаскивание". Далее сам код перетаскивания, ну и т.д.

обКомпановкиДанных = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(СтрокаКомпановки);
	
	типОбъектаКомпановкиДанных = ТипЗнч(обКомпановкиДанных);
	
	Если  типОбъектаКомпановкиДанных = Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда
		НоваяГруппировка = обКомпановкиДанных.Структура.Добавить();	
	ИначеЕсли  типОбъектаКомпановкиДанных = Тип("КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных") Тогда
		НоваяГруппировка = обКомпановкиДанных.Добавить();
	КонецЕсли;
	
	НоваяГруппировка.Использование = Истина;
	
	НовоеПоле = НоваяГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
	НовоеПоле.Поле = ДобавляемоеЗначение;
	
	НовоеПоле = НоваяГруппировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
	НовоеПоле = НоваяГруппировка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
Показать
34. Droonimus 19.10.21 10:04 Сейчас в теме
Очередная попытка сделать из 1С Excel? Но, безусловно, красивая) Не знаю, насколько бизнес приложениям нужна такая гибкость интерфейса в части отображения данных конкретного документа. Но заказчик, который платит, вправе получить и такой вариант реализации. Что - то из области занимательного программирования. Подобного рода "фишечки" я встречал еще в 7.7., затем в УПП. Нечто подобное делал сам для графиков ППР в УПП, когда СКД еще не существовало. Но порой жизненный путь таких инструментов заканчивался с приходом нового поколения пользователей. Потом пришли стандарты разработки и окончательно похоронили энтузиазм:)
hiduk; NeLenin; rpgshnik; +3 Ответить
36. RustIG 1351 21.10.21 09:24 Сейчас в теме
(0) при создании новой колонки, чтобы она не скакала, я бы попробовал открывать отдельное дополнительное окошко для ввода данных, после ввода окошко закрывается, изначальная форма перерисовывается как надо с учетом введенных значений.
39. rpgshnik 3631 25.10.21 03:55 Сейчас в теме
(36) так там окно выбора и открывается, отдельное окошко
37. RustIG 1351 21.10.21 09:29 Сейчас в теме
(0) есть у меня разработка https://infostart.ru/public/919747/
Смотрели ее?
40. rpgshnik 3631 25.10.21 04:01 Сейчас в теме
(37) не смотрел, поддержал, считаю что назначение разное и изначально была выбрана реализация на Таблице формы.
41. check2 354 30.10.21 22:27 Сейчас в теме
Всё бы ничего, и то что съезжает к правой стороне наши пользователи "съели" за неимением лучшего. Убивает другое - при изменении размеров этих многоуровневых вложенных колонок (и не дай бог условное оформление ещё) тихое падение клиента в дамп. Это регрессивный баг периодически лечат. Последний раз вылечили в 8.3.13.1926, тестировали 10 человек изменяя границы колонок с вложенными колонками и условным оформлением - ни разу не упало, 8.3.17.1549, 8.3.18.1563 - Welcome. Опять падает...
А ещё есть ещё интересный баг Вызов контекстного меню таблицы проявляется так, только чур не мышью контекстное меню открывать:
https://youtu.be/hYYlrJcPxLk
Многие пользователи, длительное время работая с системой, мышью пользуются редко. В особенности те, кто выполняет однообразные действия...
rpgshnik; +1 Ответить
43. rpgshnik 3631 10.11.21 04:36 Сейчас в теме
(41) Если честно дамп не ловили, но платформу я уже не помню, но вероятно это были точно не 8.3.17+

Поведение с Контекстным меню да очень странное.
42. Nefilimus 75 02.11.21 16:14 Сейчас в теме
Интересный опыт и удивила ваша трепетность к визуалу )
rpgshnik; +1 Ответить
44. quazare 3586 12.11.21 06:05 Сейчас в теме
поделитесь кодом, как вы это сделали - ради интереса можно посмотреть?
45. rpgshnik 3631 12.11.21 09:42 Сейчас в теме
(44) Код предоставить не имею возможности. А что именно интересует?
46. quazare 3586 12.11.21 09:46 Сейчас в теме
(45) если честно - ничего конкретно - посмотреть как сделано ради собственного личного интереса.
47. rpgshnik 3631 12.11.21 10:39 Сейчас в теме
(46) основную идею описал в пункте "Движок" с шифрованием элементов и их программной сборки при старте формы.
Оставьте свое сообщение