|
v7: "Безумные" хотелки | ☑ | ||
---|---|---|---|---|
0
tgu82
02.10.23
✎
15:01
|
Самописная конфа - одни справочники!!!
Хочу в форму списка добавлять колонки при открытии с теми названиями которые введены в служебном справочнике причем чтобы колонки шли в том порядке в котором они описаны в служебном справочнике. Кроме того если это текстовые колонки то чтобы они автоматически записывали себе в "дополнительно" формулу - выполнение функции Вот я допустим понаделал 50 полей в справочнике строковых - поле1, поле2 и т.д. а вот их названия в показе и очередность чтобы шли через этот служебный справочник в котором - название справочника, идентификатор - (поле1, поле2....) название поля при визуализации, номер по порядку при визуализации в форме списка, формула-функция если нужно Формекс должен уметь такие вещи. Еще бы конечно чтобы в сам справочник в конфигураторе какими-то библиотеками можно было сделать автосоздание его структуры но это было бы вообще круто. |
|||
1
tgu82
02.10.23
✎
15:06
|
(0) Как вариант конечно можно было бы использовать xbase там можно все подобавлять гибко и потом визуализировать но с учетом сетевой работы неудобно
|
|||
2
tgu82
02.10.23
✎
15:13
|
(0) можно было еще наверное создать один такой справочник скажем с 50 полями (Поле1, Поле2 и т.д.) а потом просто его клонированием создать еще 7. Тоже вариант и не особенно долгий
|
|||
3
tgu82
02.10.23
✎
15:13
|
(0) Главное сделать для них гибкую визуализацию в форме списка
|
|||
4
tgu82
02.10.23
✎
15:15
|
(0) То что было в этой ветки я вроде одолел с вашей помощью
(Финт с выводом текущей колонки с функцией на форме - как?) |
|||
5
Eiffil123
02.10.23
✎
15:16
|
попытка эмулировать конфигуратор в режиме 1С:Предприятия, но зачем?
PS на 8.х такое реализовано в конфигурации бит.финанс для настройки заполнений движений документов. На 7.7 такое вряд-ли возможно |
|||
6
Djelf
02.10.23
✎
15:19
|
(0) Штатно? Это затруднительно.
Через formex? Ну это почти штатно, но немного расширено. Переход на ТабличныйДокумент из 1с++, решает большинство таких проблем. |
|||
7
Харлампий Дымба
02.10.23
✎
15:21
|
Про формекс ничего не скажу - щас тебе расскажут.
А вот касательно (2) - в первую колонку в формулу ставишь МояФункция(), в остальные - в формулу ставишь ЗначениеКолонки[2], ЗначениеКолонки[3] и т.д. В МояФункция() возвращаешь ЗначениеКолонки[1], заодно заполняя по своим формулам остальной массив ЗначениеКолонки. И не забывай всё занулять, если например, для группы ничего не должно выводится. Так вроде в какой-то типовой было сделано - гораздо быстрее, чем дергать ТекущийЭлемент для каждой колонки отдельно. |
|||
8
tgu82
02.10.23
✎
15:28
|
(7) Ты имеешь в виду массив ? ЗначениеКолонки[i]
|
|||
9
tgu82
02.10.23
✎
15:31
|
(7) Классная идея кстати, единственное что нужно сами текстовые колонки создавать автоматом и размещать автоматом
|
|||
10
uno-group
02.10.23
✎
15:36
|
Что мешает в форму списка кинуть ТЗ и добавлять колонки в нее как угодно. Тут наверное больше вопрос размера этого справочника. Одно дело когда это 100 элементов и совсем другое когда 1000 тыс.
ИМХО пользователь не знает что хочет а ты ему потакаешь. Визуализацию можно сделать какую угодно, а как это будет реализовано на самом деле пользователя не касается. Были у меня справочники который юзер видел как 1, а на самом деле это было 4 разных справочника. Попробывал бы задачу подробнее описать |
|||
11
Arbuz
02.10.23
✎
15:40
|
Насчёт автосоздания структуры - был такой класс РаширениеСправочников. Насколько я помню, позволял добавлять реквизиты справочника в рантайм, причём для каждого элемента свои. Фактически значения хранились в подчинённом справочнике.
|
|||
12
uno-group
02.10.23
✎
15:44
|
А так создаешь сразу кучу колонок с идентификатором Р1...50 и в формулу добавляешь Функция("Р1")
Потом при открытии смотришь сколько колонок тебе нужно остальным видимость О. В Функции проверяешь что за поле и выводишь или реквизит или считаешь по формуле и выводишь значение. Примеров как вычислить значение из текстовых описаний полно. |
|||
13
tgu82
02.10.23
✎
16:02
|
(10) Да нет. Шеф много лет работает с 7.7 и неплохо ее знает. И я ему не потакаю а понимаю что он хочет. Мне вот посоветовали аналог Свойства и Виды свойств. Вот это очень интересный вариант мне кажется и потом визуализировать только.
Тогда я могу создать каждый справочник по сути вообще с двумя полями код и наименование. а дальше как в типовой тис 7.7 |
|||
14
Eiffil123
02.10.23
✎
16:05
|
(13) а скоро с таким подходом вы придете к тому, что нужен вообще только 1 справочник
|
|||
15
uno-group
02.10.23
✎
16:07
|
(13) Ради чего все это? Зачем писать безумный конструктор когда добавить реквизит в справочник быстрее? Добавь таблицу реквизит значения и выводи туда дополнительную информацию по текущему элементу.
|
|||
16
uno-group
02.10.23
✎
16:09
|
Если потом захотят какие то отчеты с фильтрами по этим свойствам то вообще замучаетесь.
Я допускаю что таких гибких полей может понадобиться 1-3, но если 50 то это что то в консерватории. |
|||
17
tgu82
02.10.23
✎
16:09
|
(15) Нет. Не быстрее. Там очень много полей и с очень замудренными названиями типа ЛЭП_6_10кв
|
|||
18
uno-group
02.10.23
✎
16:19
|
(17) создавай их программно какие проблемы.
|
|||
19
Kigo_Kigo
02.10.23
✎
16:21
|
По моему ТЗ на форме решает эту задачу на все 100% и не надо изобретать велосипед
|
|||
20
tgu82
02.10.23
✎
16:41
|
(19) Но поля-то в структурах справочников все равно вводить. А так ДА. Я частенько ТЗ на форме+Формекс использую
|
|||
21
uno-group
02.10.23
✎
16:56
|
(20) разобрал компауд файл добавил поля в текстовый файл собрал обратно. загрузил измененную конфигурацию
|
|||
22
tgu82
02.10.23
✎
18:18
|
(21) Наверное нет смысла. Не так сложна задача
|
|||
23
HawkEye
02.10.23
✎
20:30
|
(0) кинь на форму 150 колонок и играйся видимостью...
|
|||
24
tgu82
02.10.23
✎
20:51
|
у меня есть поле в служебном справочнике "Название колонки". Я ввожу его руками но поскольку высоту заголовка ТЗ на форме я задал то как мне при вводе обычного текста указать "перевод строки" между слова то есть аналог "Разделитель строк" ???
|
|||
25
tgu82
02.10.23
✎
20:59
|
(24) Хотя можно же просто через Шаблон сделать
|
|||
26
tgu82
02.10.23
✎
21:07
|
Наименование заявителя проявителя и закрепителя - вот просто ввожу руками и надо вставить при вводе перевод строки и возврат каретки
|
|||
27
tgu82
02.10.23
✎
21:07
|
(26) После слова "проявителя"
|
|||
28
tgu82
02.10.23
✎
21:19
|
Вообще конечно Альф гений. Получить в ТЗ на форме и название колонок в несколько строк и значения данных в колонках в несколько строк - это Супер!!!
|
|||
29
Смотрящий
02.10.23
✎
21:46
|
(28) Дед. Называй его Дед.
|
|||
30
Злопчинский
02.10.23
✎
22:35
|
(7) "Так вроде в какой-то типовой было сделано" - так сделано в типовой ТиС в форме подбора номенклатуры, где в колонке использовалась переменная рассчитанная в функции из предыдущей колонки.
|
|||
31
Злопчинский
02.10.23
✎
22:44
|
Если штатно - тупо ТЗ на форму. И играться колонками и отображением как заблогарассудится.
. при этом надо понимать - будут ли реквизиты справочника чисто информационно/описательными или индексируемыми? . и нахрена 50..100 реквизитов? Описывать некие характеристики? Ну так карточка с основными реквизитами и к ней как в ТиС "Свойство, значение свойсчва" и описывай произвольный набор характеристик для каждого элемента отдельно. Можно пойти дальше - сдедать "шаблоны характеристик" для классов номенклатуры, с заранее описанными "характеристиками" - чтобы для гвоздя - жмак! характеристика "покрытие, длина, вес", для гайки "жмак! " свой набор харатектристик. . Отчеты правда собирать геморно, ибо это все превращается по сути в метаконструктор (второй конфигуратор) и в коде появятся костыли типа "Если Свойство="Ширина" ТогдаТоТо... |
|||
32
Злопчинский
02.10.23
✎
22:45
|
С постановокой задачи в (0) - труба. Ибо наверное тяжкое наследие царского режима...
|
|||
33
uno-group
03.10.23
✎
08:54
|
(24) А точно стоит это через ТЗ делать? ИМХО в таких случаях штатная таблица в режиме ввода данных офигительно работает. Ширину строк, колонок авто перевод строк и т.п. можно менять в динамическом режим + еще куча плюшек и без всяких дополнительных ВК.
|
|||
34
tgu82
03.10.23
✎
09:00
|
(33) Согласен но все-таки с задачей будут работать несколько пользователей (сетевая).
|
|||
35
АгентБезопасной Нацио
03.10.23
✎
09:07
|
открой уже для себя 1с++ и ТабличноеПоле. Там легко решается как эта задача в постановке в (0), так и практически без переделок в постановке (13), с механизмом свойств.
|
|||
36
tgu82
03.10.23
✎
09:11
|
(35) Спасибо. Да. Давно пора открыть :)
|
|||
37
АгентБезопасной Нацио
03.10.23
✎
09:25
|
(36) по-хорошему, пора уже закрывать - это актуально было лет 15 назад. сейчас актуальны самонеуправлеяемы формы, клиент-сервер и вот это всё.
Единственный плюс, что может научишься работать с нормальными запросами, что теоретически поможет в теоретическом переползании на снеговика (да и ТП в 1с++ тоже чем-то напоминает оное) |
|||
38
tgu82
03.10.23
✎
09:38
|
(37) Я индексированной таблицей пользовался - понравилось. Только давно это было
|
|||
39
tgu82
05.10.23
✎
09:45
|
Казалось бы все просто но не работает:
Процедура ПриНачалеРедактированияСтроки() Если Форма.ПолучитьАтрибут(Форма.ТекущаяКолонка()).Заголовок()="ТипКолонки" Тогда ВыбТип=""; Форма.УстановитьАтрибут(Форма.ТекущаяКолонка(),"ку-ку-ку"); УстановитьАтрибут(Форма.ТекущаяКолонка(),ВыбТип); КонецЕсли; КонецПроцедуры |
|||
40
tgu82
05.10.23
✎
09:46
|
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ПолучитьАтрибут(Форма.ТекущаяКолонка()).Заголовок()="ТипКолонки" Тогда ВыбТип=""; Форма.УстановитьАтрибут(Форма.ТекущаяКолонка(),"ку-ку-ку"); КонецЕсли; |
|||
41
tgu82
05.10.23
✎
09:47
|
Пробовал УстановитьАтрибут(Форма.ТекущаяКолонка(),"ку-ку-ку"); - без Форма. Результат тот же
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |