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

Публикация № 1534999 15.10.21

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

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

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

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

 

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

 

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

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

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

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

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

- Нет.

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

 

ТЗ

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

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

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

 

Поехали!

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

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

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

Движок

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

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

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

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

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

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

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

Дедлайн

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

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

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

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

 

MES

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

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

Возвращение

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

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

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

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

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

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

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

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

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

 

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

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

 

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

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

Специальные предложения

Отзывы
41. check2 234 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 2537 15.10.21 14:52 Сейчас в теме
Динамическая таблица или табличный документ - конечно это дело вкуса.

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

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

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

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

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

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

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

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

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

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

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

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

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

И все-таки, я бы рекомендовал пользоваться СКД. Реализация отчетов на формах в дальнейшем может приводит к большим трудозатратам на доработку.
35. rpgshnik 3316 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 1651 21.10.21 09:24 Сейчас в теме
(0) при создании новой колонки, чтобы она не скакала, я бы попробовал открывать отдельное дополнительное окошко для ввода данных, после ввода окошко закрывается, изначальная форма перерисовывается как надо с учетом введенных значений.
39. rpgshnik 3316 25.10.21 03:55 Сейчас в теме
(36) так там окно выбора и открывается, отдельное окошко
37. RustIG 1651 21.10.21 09:29 Сейчас в теме
(0) есть у меня разработка https://infostart.ru/public/919747/
Смотрели ее?
40. rpgshnik 3316 25.10.21 04:01 Сейчас в теме
(37) не смотрел, поддержал, считаю что назначение разное и изначально была выбрана реализация на Таблице формы.
41. check2 234 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 3316 10.11.21 04:36 Сейчас в теме
(41) Если честно дамп не ловили, но платформу я уже не помню, но вероятно это были точно не 8.3.17+

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

См. также

Чистка пользовательских настроек динамического списка после удаления полей

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

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

20.02.2023    561    dovolos    0    

15

Использование языковой модели GPT3 для создания интерфейса 1С на естественном языке

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

Я взял типовую конфигурацию УТ редакции 11.5 Немного доработал запрос к языковой модели GPT-3 и получил возможность обращаться к учетной системе на естественном языке

15.01.2023    9140    mkalimulin    121    

73

Визуализация таблицы значений на управляемой форме

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

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

02.11.2022    1350    bvb    2    

9

Разбор ошибок заполнения реквизитов формы объекта (мой топ-3)

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Идея статьи родилась в момент исправления очередной ошибки с заполнением реквизитов формы и особенно реквизитов табличных частей. Решил накидать небольшую шпаргалку и отсылаться к ней при необходимости.

30.08.2022    1847    zeltyr    4    

18

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

{UI/UX} Свой всплывающий информер у элемента формы

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

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

12.08.2022    4527    rpgshnik    36    

81

Динамическая кнопка VS Комбинация клавиш

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

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

08.08.2022    5403    sapervodichka    33    

76

Программный вывод таблицы значений в таблицу на управляемой форме

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

Функционал данного механизма служит для программного вывода "Таблицы значений" в реквизит управляемой  формы с типом "ДанныеФормыКоллекция". Может быть полезен в задачах, где состав колонок выгружаемой таблицы значений может меняться.

15.04.2022    4948    ns_bulatov    5    

11

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

Работа с интерфейсом Платформа 1С v8.3 Украина Бесплатно (free)

Как многим известно, пользователь в обычных формах может убрать любую панель из интерфейса так, что восстановить ее можно только чисткой кеша. Но как быть, если кеш жалко :?

21.12.2021    1579    bulpi    4    

13

Программный интерфейс для доработки форм

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

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    6343    AtamanovYS    19    

119

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом)... То вам - сюда.

08.10.2021    3540    e-9    13    

21

Как читать чужой код? Часть 4. Программный интерфейс. Исправление чужих доработок

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

Во всех вакансиях есть требование - умение читать чужой код. Но ни на одних курсах специально этому не учат. Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

20.09.2021    4466    biimmap    9    

51

Перенос расшифровки в пользовательские настройки

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

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

11.08.2021    1048    scientes    1    

9

Изменение размера картинок "на лету" с помощью NGINX

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Пример использования nginx и image_filter для сжатия картинок.

26.05.2021    2864    malikov_pro    21    

29

Динамический список и поиск... неприятностей

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Страх и ненависть в поиске по динамическому списку, или "Кое-что о неоптимальном отборе".

17.03.2021    10368    Yashazz    37    

50

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Пример работы с диаграммой Ганта в 1С

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Пример работы с очень нужным и важным, по моему мнению, объектом в 1С «Диаграммой Ганта».

24.02.2021    13188    JIEX@    4    

32

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

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

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

30.11.2020    15123    SizovE    6    

45

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    12985    leobrn    82    

105

Быстрая кодогенерация программной доработки форм

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Данная статья является описанием идеи по быстрому получению кода для программной доработки форм. А также приглашением к участию в реализации данной идеи (даже звездочке на гите буду рад).

12.10.2020    3033    huxuxuya    29    

21

Цветовая схема конфигуратора в стиле OneScript

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

Цветовая схема конфигуратора 1С максимально приближенная к стандартной цветовой схеме OneScript в VS Code.

01.10.2020    2123    DmitrySinichnikov    4    

11

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Рендеринг элементов управляемого интерфейса

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Россия Бесплатно (free)

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    4907    kalyaka    5    

39

[Общий модуль] Динамическое формирование интерфейса

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

Библиотека готовых функций для разработки интерфейса формы и размещения на нём элементов формы с помощью программного кода.

28.08.2020    28411    rpgshnik    87    

274

Медленно формируются отчеты в БП 3, способ исправления

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

При формировании любых отчетов, но в особенности оборотно-сальдовой ведомости в бухгалтерии 3, очень долго формировался отчет, ПОЯВЛЯЛСЯ ЖЕЛТЫЙ КОТ, разумеется у бухгалтера невроз, да и у меня тоже. Что только ни делал: тестирование и исправление с пересчетом итогов, настройка SQL, отключение фоновых заданий, обновление платформы и конфигурации, а толку нет, регламентные операции по скулю тоже сделал. И что же сделал, а вот что:

21.07.2020    4874    VID1234    10    

10

Программное открытие отчета

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

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

28.06.2020    9530    da_1c    4    

9

Подборка программ для взаимодействия с ЕГАИС Промо

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

Форма выбора (подбор) в управляемых формах

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

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    164900    user5300    37    

275

Форма выбора для реквизита с составным типом данных

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Возник вопрос: как открыть форму выбора для реквизита, имеющего составной тип данных, да еще и отображаемый в виде надписи?

11.03.2020    10626    rule_2    6    

20

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

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

Предлагается ознакомиться с редким способом графического представления иерархических данных. Приводится алгоритм формирования и пример реализации.

18.02.2020    8276    randomus    20    

75

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

[Шпаргалка] Предустановка типа для составного реквизита

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

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

18.02.2020    12673    rpgshnik    6    

25

СКД. Шаг 3. Используем макеты для оформления отчета

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

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

13.01.2020    67024    aximo    23    

195

Добавление собственного поля и состояния в настройки доступности по состоянию в 1С:Документооборот

Работа с интерфейсом Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного поля и состояния в функционал настройки доступности по состоянию в 1С:Документооборот.

30.12.2019    8865    pavelpribytkin96    2    

23

Добавление собственного виджета в 1С:Документооборот

Работа с интерфейсом Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

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

14.12.2019    7413    pavelpribytkin96    2    

34

[СКД] Вывод картинки в результат любого отчета на СКД

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

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    15601    John_d    17    

119

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Лайфхаки 1С. Настройка списков (Часть 3)

Работа с интерфейсом Платформа 1С v8.3 Бесплатно (free)

Новая порция лайфхаков по работе с интерфейсом 1С. На этот раз разбираем работу со списками - учимся их упорядочивать, сортировать, создавать новые и перемещать старые. Это очень полезное дополнение к уже имеющимся знаниям по интерфейсу 1С.

03.12.2019    28761    VachKirp    14    

22

В новой платформе пропала кнопка "Печать". Имитируем БСП

Работа с интерфейсом Платформа 1С v8.3 Россия Бесплатно (free)

"Приятным" сюрпризом для многих пользователей 1С стало то, что при обновлении платформы (начиная с 8.3.15) полностью поменялся интерфейс. Можно долго спорить о целесообразности этого новшества, но самым главным минусом стало то, что пропали стандартные кнопки на панели инструментов. Разработчики предполагают повсеместное использование БСП, но что делать тем, кто давно и успешно использует самописные конфигурации, в которых формирование печатной формы происходит по ТабДок.Показать(), и не желает их "утяжелять"? Добавим общую форму с нужными нам кнопками.

03.12.2019    12074    Vlan    44    

24

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

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

Вносим изменения в типовые формы объектов (документы, справочники, журналы, обработки, общие формы). Не снимая с поддержки эти формы. Создаем программно элементы из общего модуля. Для примера рассмотрю добавление колонки "Скрепка" в форму списка документа. Если к документу привязан файл, то в списке в новой колонке должна отображаться "скрепка".

12.11.2019    20647    John_d    29    

122

Локализация интерфейсов конфигураций. Практика и инструментарий 1Ci

Работа с интерфейсом Локализация решений Платформа 1С v8.3 Бесплатно (free)

В последнее время компания 1С International все увереннее заявляет о себе на международном рынке. Но для успешного продвижения в этом направлении необходима локализация интерфейсов конфигураций 1С. О том, как выглядит процесс перевода, какие инструменты для этого есть, где брать переводчиков и как проверять их работу, на конференции Infostart Event 2018 Education рассказал руководитель группы локализации компании 1Ci Сергей Поликарпов.

05.11.2019    7288    user1069006    2    

15

ELK. Время изумительных историй!

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

Всем привет! Сегодня хочу рассказать вам несколько полезных историй про то как нам помог Elastic search в связке с Kibana. Про сам Elastic рассказывать не буду, уже все давным давно описали и до меня. Все обычно говорят что это полезно, это классно. В то же время, очень мало кто рассказывает про практические ситуации: когда и как помог Elastic. Итак, начнем.

31.10.2019    10784    slozhenikin_com    28    

33