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

Публикация № 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 149 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 2330 15.10.21 14:52 Сейчас в теме
Динамическая таблица или табличный документ - конечно это дело вкуса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя Промо

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

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    24948    Tatitutu    12    

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

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

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

25.11.2021    2968    AtamanovYS    19    

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

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

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

08.10.2021    1522    e-9    13    

Прогресс-бар в поле динамического списка

Работа с интерфейсом Практика программирования v8 Бесплатно (free)

Изображаем прогресс-бары в колонке динамического списка

23.08.2021    2796    Yashazz    12    

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих. Промо

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

Для начинающих. Как редактировать дополнительные параметры регламентированного отчета, изменив только модуль формы и модуль объекта. Как сохранить дополнительные параметры в данных отчета.

22.01.2014    21074    KapasMordorov    4    

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

Работа с интерфейсом Практика программирования v8 Бесплатно (free)

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

11.08.2021    694    scientes    1    

1С и ODBC

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

ODBC (Open Database Connectivity) — это программный интерфейс, универсальное средство доступа к базам данных, разработанное для обмена между источниками (базами данных) разного типа. Данный интерфейс принято считать более низкоуровневым, чем библиотека ADOdb, однако причина эта кроется не в более низком качестве, но в том, что ODBC послужила своего рода фундаментом более поздней ADOdb – работу с последней поддерживают все типы баз, работающие и с первой. В данной статье мы расскажем о том, как взаимодействуют ODBC и 1С, а точнее, поговорим о механизме 1С ВнешнийИсточникДанных и его использовании с вышеупомянутым интерфейсом.

02.06.2021    1334    Koder_Line    5    

Предотвращение многократного вызова "ПриПолученииДанных" во время поиска в табличном поле в обычных формах

Работа с интерфейсом Практика программирования v8 Бесплатно (free)

Долго искал решение: как при выводе строк заполнить значениями колонки, которые созданы программно, чтобы, не было тормозов при стандартном поиске. И с минимальными изменениями (легко контролируемыми, при обновлении).

07.04.2021    2094    Vlad_CK    9    

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a). Промо

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

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

09.04.2011    47359    mtv:)    75    

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

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

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

17.03.2021    4679    Yashazz    37    

Отображение и редактирование в дереве большого количества настроек/параметров/опций программы, конфигурации, документа, справочника - без программного создания элементов формы

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

Очень много реквизитов (настроечные опции, параметры) у справочника или документа, и их все необходимо разместить на управляемую форму - лень! Хочется - добавил в метаданные и всё! В публикации отличное, простое и олдскульное решение с открытым кодом, научимся работать с ДанныеФормыДерево, ДеревомЗначений, сделаем быстрый поиск, создадим универсальный инструмент.

11.12.2020    1078    SizovE    6    

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

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

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

30.11.2020    6535    SizovE    4    

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

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

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.

27.07.2012    32887    milkers    10    

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

Работа с интерфейсом Мобильная разработка v8 v8::Mobile 1cv8.cf Бесплатно (free)

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

02.11.2020    8915    leobrn    79    

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

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

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

01.10.2020    1400    DmitrySinichnikov    3    

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

Работа с интерфейсом v8 v8::УФ Россия Бесплатно (free)

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

22.09.2020    3928    kalyaka    5    

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница» Промо

Работа с интерфейсом v8 Розница Бесплатно (free)

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

29.11.2012    48366    aavolkoff    50    

Переопределение представления ссылочного значения

Работа с интерфейсом Практика программирования v8 Бесплатно (free)

Переопределение представления ссылочного значения

17.09.2020    5053    sam441    15    

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

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

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

21.07.2020    3078    VID1234    8    

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7; Промо

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

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    37979    dour-dead    18    

Регистр сведений как дополнение объекта

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Подключаем регистры сведений к формам связанных с ними объектов, быстро и надежно.

19.05.2020    5162    Infector    14    

Перенос инструкций из word во встроенную справку 1С с сохранением картинок и форматирования

Работа с интерфейсом Практика программирования v8 Бесплатно (free)

Делюсь простым и удобным способом переноса справки/инструкций из ворда (и не только) во встроенную справку 1С с сохранением картинок и форматирования.

22.04.2020    5605    77dream77    21    

Функциональные опции. Управление доступным функционалом для пользователей

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

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

24.03.2020    2162    Evilgrym    2    

Выбор вариантов отчета в "Управление торговлей" ред. 11 Промо

Работа с интерфейсом Учет ТМЦ Учет ТМЦ v8 УТ10 Россия БУ Бесплатно (free)

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

27.05.2012    48749    1cUserAndrew    25    

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

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

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

11.03.2020    6156    rule_2    4    

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

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

18.02.2020    6562    randomus    20    

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

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

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

18.02.2020    5566    rpgshnik    6    

Практика регулярных выражений в 1С или "парсим неудобные форматы" Промо

Работа с интерфейсом Практика программирования v8 1cv8.cf Россия Бесплатно (free)

В продолжение статьи Использование регулярных выражений (RegExp) в 1С8.х. Углубляемся в практику использования регулярных выражений в 1С. Основы работы с регулярными выражениями хорошо описаны в указанной публикации. А я попробую ответить на вопрос "почему именно регулярные выражения?" на примере конкретной рабочей задачи.

26.10.2011    30661    1cspecialist    33    

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

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.01.2020    39028    aximo    19    

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

Работа с интерфейсом v8 ДО Бесплатно (free)

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

30.12.2019    6851    pavelpribytkin96    2    

Визуальный индикатор состояния документа

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

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

24.12.2019    2759    user752307    10    

Допиливаем форму выбора серий номенклатуры для отображения остатков Промо

Работа с интерфейсом Практика программирования v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

В этой статье я хочу рассмотреть задачу, которая довольно часто возникает у начинающих (и не только) разработчиков, адаптирующих типовые конфигурации (УТ, КА, УПП) на предприятиях торговли. Речь пойдет про отображение остатков в форме выбора серий номенклатуры при подборе в документы. Это актуально в тех случаях, когда не ведется партионный учет по сериям, либо когда документы вводятся неоперативно и нет возможности воспользоваться волшебной кнопкой "Заполнить и провести". На первый взгляд задача банальна, но я хочу показать некоторые "грабли", на которые часто наступают новички в процессе ее реализации, а также сопоставлю алгоритмы решения на платформе 8.1 и 8.2.

20.01.2011    33317    practik1c    19    

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

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

09.12.2019    12556    John_d    16    

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

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

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

03.12.2019    22866    VachKirp    14    

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

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

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

03.12.2019    10476    Vlan    44    

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

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

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

12.11.2019    16010    John_d    25    

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

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

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

05.11.2019    6195    user1069006    1    

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

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

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

31.10.2019    9948    slozhenikin_com    28    

Лайфхаки 1С (часть 2) Настройка работы интерфейса такси. Настройка и советы по работе

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

Советы по настройке интерфейса Такси и особенности работы в этой среде.

24.10.2019    16183    VachKirp    10    

Создание асинхронных виджетов

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

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    14633    YPermitin    19    

Формы. Трудности программной работы

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

06.10.2019    13244    YPermitin    31    

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С

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

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

02.10.2019    16760    VachKirp    10    

Добавляем виджет "Задачи от меня" в Документооборот 2.1

Работа с интерфейсом Практика программирования v8 v8::Бизнес-процессы ДО Россия Бесплатно (free)

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    9833    Sergey_Borisovi4    3    

[Шпаргалка] Программное создание элементов формы

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

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

06.09.2019    104909    rpgshnik    77    

[Механизм интерфейса] Часы

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    11184    rpgshnik    36    

Произвольная начальная страница через расширение (программно)

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

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    19924    nagaitseff    15    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    13604    IvanAT1981    18    

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Практика программирования v8 Бесплатно (free)

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

29.07.2019    13544    dsdred    10