|
v7: Отбор в форме списка справочника по реквизиту неопределенного вида | ☑ | ||
---|---|---|---|---|
0
ЯнСмит
19.02.23
✎
13:59
|
Всем привет, кто-нибудь пробовал реализовать сабж, или такое в принципе не возможно? Поясню, у меня реализован механизм прикрепления произвольных файлов/ссылок к любым документам через специальный справочник с двумя реквизитами типа Основание (документ неопределенного вида) и текстовое поля для хранения собственно ссылки. Для просмотра вложений к конкретному документу я открываю форму списка с отбором по этому документу, все работает замечательно. Аналогичная история и с вложениями к справочникам, только там Основание - это справочник неопределенного вида. Поскольку в обоих случаях функционал данного механизма практически идентичен, то захотелось объединить все это в один универсальный справочник для хранения вложений, т.е. теперь Основание - это реквизит неопределенного вида. При открытии формы списка я анализирую параметр передаваемый в форму, определяю документ это или элемент справочника, задаю определенный тип реквизиту Основание примерно вот так:
Процедура ПриОткрытии() Осн=Форма.Параметр; Тип=ТипЗначенияСтр(Форма.Параметр); Тек=СоздатьОбъект(Тип); Форма.Заголовок("Вложения к "+нрег(Тип)+"у "+Осн,0); НазначитьТип("Объект",Тип+"."+Осн.Вид()); УстановитьОтбор("Объект",ТекЭлм); КонецПроцедуры но значение основания не сохраняется, что только не перепробовал, может такое в принципе не возможно? |
|||
1
Злопчинский
19.02.23
✎
14:28
|
а можно если называть основание то прямо в задаче писать что за реквизит соответсвует товему "оснвоанию"
Под "оснванием" ты понимаешь "Объект", который в "УстановитьОтбор"..? . что значит "но значение основания не сохраняется" . где что должно сохраниться? |
|||
2
Злопчинский
19.02.23
✎
14:30
|
Открой дерево метаданных
Открой ветку своего справочника Стань на реквизит "Объект". осмотри "свойства". Ничего не напрягает/не наводит на размышления? |
|||
3
Aleksey
19.02.23
✎
14:43
|
а если еще добавить
назначитьВид() |
|||
4
Злопчинский
19.02.23
✎
14:45
|
(3) мне кааатца что отбор по объекту неопределенного типа - работать не будет. галочку на отбор в метаданных ты хрен поставишь.
|
|||
5
Остап Ибрагимович
19.02.23
✎
15:20
|
Не пробовал. Потому что не надо. И технологически не реализуемо.
За весь опыт работы (начиная с 7.0 если кто помнит) - хватало отборов по тому, что технологически допускает его возможность. Ну т.е. вопрос - напомнил давнюю байку про параллельные пересекающиеся линии (ага, "с зайчиком"). |
|||
6
Злопчинский
19.02.23
✎
15:36
|
(0) храни объект в виде текстовой ссылки типа ЗначениеВСтрокуВнутр
|
|||
7
ЯнСмит
19.02.23
✎
16:01
|
(2) не напрягает, ибо можно сначала поставить галки "сортировка" и "отбор", а потом сменить тип реквизита на неопределенный, галки остаются на местах ))
(3) пробовал - ругается (6) можно попробовать ... |
|||
8
Злопчинский
19.02.23
✎
16:20
|
(7) по (2) но это не значит что это будет работать
|
|||
9
Злопчинский
19.02.23
✎
16:21
|
(7) по (6) а рядом хранить колонку текстового представления для визуализации
|
|||
10
ЯнСмит
19.02.23
✎
17:42
|
Да, уже так и сделал, спасибо тебе за идею )
|
|||
11
АгентБезопасной Нацио
19.02.23
✎
19:23
|
(6) можно хранить и в нативном виде char(23) (ЗначениеВСамуюДлиннуюСтрокуБД()).
а отображать путем ""+ЗначениеИзСамойДлиннойСтрокиБД() |
|||
12
Злопчинский
19.02.23
✎
21:06
|
(11) а чем отличается ЗначениеВСтрокуВнутр от ЗначениеВСамуюДлиннуюСТрокуБД
? |
|||
13
victuan1
20.02.23
✎
05:04
|
Можно вместо одного реквизита неопределенного вида сделать два реквизита:
1) Документ неопр. вида 2) Справочник неопр. вида. По таким типам Отбор можно использовать. |
|||
14
Злопчинский
20.02.23
✎
07:10
|
И назвать реквизиты так же "Документ" и "Справочник" - удобно будет
|
|||
15
АгентБезопасной Нацио
20.02.23
✎
07:16
|
(12) короче.
(13) ТКВ. |
|||
16
Калиостро
20.02.23
✎
09:10
|
(0) Можно еще вместо штатного отбора воспользоваться методами ИерархическийСписок(1,0); ИспользоватьСписокЭлементов().
|
|||
17
Харлампий Дымба
20.02.23
✎
10:48
|
Строка 20 символов (максимум для отбора - 22). Из ЗначениеВСтрокуВнутр берешь:
Id типа объекта: 1 символ; Id вида объекта: 6 символов (может быть до 10 - прогони по всем по Метаданнные.Документ() Метаданные.Справочнки() - посмотри сколько тебе хватит) ; Id объекта - 13 символов. |
|||
18
АгентБезопасной Нацио
20.02.23
✎
11:00
|
(17) а зачем? уменьшить длину? Тогда хватит 1 символ типа объекта, и ЗначениеВДлиннуюСтрокуБД - которое char(13), всего будет 14...
Но имхо проще хранить (23), и тогда сразу одним скалярным запросом возвращать объект. |
|||
19
Харлампий Дымба
20.02.23
✎
11:13
|
(18) Длину уменьшить надо, да. Отбор по строке - 22 символа, даже 23 уже не получится.
Если можно получить всё то же самое штатными средствами, зачем использовать функции из сторонних dll? У меня Бух и ЗиК, мне от 1сpp.dll плюшек нет особых. |
|||
20
АгентБезопасной Нацио
20.02.23
✎
11:16
|
(19) насколько помню, как раз по 23 отбор, это типовое поле неопределенного типа
|
|||
21
Харлампий Дымба
20.02.23
✎
11:32
|
Не, 22 - проверил ещё раз беглым гуглежом по форуму. Ну в любом случае в 22 можно будет запихнуть всё что потребуется, и УРБД при необходимости, и даже привязку электронной копии не конкретному объекта, а ко всему списку (Приказ об утверждении перечня статей накладных расходов) можно легко сделать. Советов надавали достаточно, дальше дело за ТС.
|
|||
22
Харлампий Дымба
20.02.23
✎
11:48
|
(20) Задумчиво: хотя может ты и прав, у себя в комментариях к функции нашел: "Нам надо впихнуться в 23 символа, по которым можно сделать отбор". Наверное 22 это не про отбор, а про максимальную длину строки, которую можно запихнуть в тип значения "Неопределенный".
|
|||
23
Злопчинский
20.02.23
✎
11:51
|
Понабежали.. мамонты.. мастодонты.. шерстистые носороги...
|
|||
24
АгентБезопасной Нацио
20.02.23
✎
11:57
|
(23) "Раньше я левитировал, как Зекс. А теперь, простите, не могу вывести растительность на ушах. Это так неопрятно… Но если нет таланта?"©
|
|||
25
Харлампий Дымба
20.02.23
✎
12:29
|
(24) Простите за нескромный вопрос, но при чем здесь диван?
|
|||
26
Харлампий Дымба
20.02.23
✎
12:55
|
Функция глПолучитьИдОбъектаДляЭК(Объект) Экспорт
//можно предварительно пробежаться по всем объектам и выяснить максимальную длину строки, возвращаемую этой функцией и добавить пару символов про запас Результат=""; Если ТипЗначенияСтр(Объект)="Справочник" Тогда Если Объект.Выбран()=0 Тогда Возврат Результат; КонецЕсли; Идентификатор = ЗначениеВСтрокуВнутр(Объект.ТекущийЭлемент());//обязательно .ТекущийЭлемент() ИначеЕсли ТипЗначенияСтр(Объект)="Документ" Тогда Если Объект.Выбран()=0 Тогда Возврат Результат; КонецЕсли; Идентификатор = ЗначениеВСтрокуВнутр(Объект.ТекущийДокумент());//обязательно .ТекущийДокумент() Иначе Возврат Результат;//другие нам неинтересны КонецЕсли; Идентификатор = Сред(Идентификатор,2,СтрДлина(Идентификатор)-2); Элементы = СоздатьОбъект("СписокЗначений"); Элементы.ИзСтрокиСРазделителями(Идентификатор); //нам надо впихнуться в 23 символа, по которым можно делать отбор ID_ТипОбъекта=Элементы.ПолучитьЗначение(1);//1 - символ "B"-справочник, "O"-документ ID_ВидОбъекта=Формат(Элементы.ПолучитьЗначение(4),"С6");//может быть 10 символов - у нас не встречается больше 5, возьмем 6 ID_Объекта=Элементы.ПолучитьЗначение(7);//13 символов Если СтрДлина(СокрЛП(Элементы.ПолучитьЗначение(4)))>6 Тогда //можно увеличить и до 8, но тогда надо и идентификатор увеличивать до 22 в справочнике (отбор не работает больше 23?) и существующие перенумеровать на 8 символов Сообщить("Слишком длинный внутренний идентификатор у <"+СокрЛП(Объект)+">. Обратитесь к программисту и сообщите код проблемы #7!","!"); а=1/0; КонецЕсли; Возврат ""+ID_ТипОбъекта+ID_ВидОбъекта+ID_Объекта;//20 символов КонецФункции//глПолучитьИдОбъектаДляЭК |
|||
27
АгентБезопасной Нацио
20.02.23
✎
12:57
|
(25) "это транслятор..."
(26) "Код проблемы #7" - это жёстко |
|||
28
Builder
20.02.23
✎
13:27
|
(26) У меня в одной конфе весь ID запихнут в 12 символов и выводится в виде EAN13.
|
|||
29
АгентБезопасной Нацио
20.02.23
✎
13:32
|
(28) !©Станиславский
|
|||
30
Builder
20.02.23
✎
13:34
|
(29) Просто сделан еще справочник для перекодировки внутреннего ИД документа в 2 символа :)
|
|||
31
Builder
20.02.23
✎
13:35
|
+ (30) внутреннего вида документа.
Короче при желании можно найти способы :) |
|||
32
АгентБезопасной Нацио
20.02.23
✎
13:37
|
(30) все равно. даже без УРБД - ZZZZZZ всего втрое меньше, чем 10^12. т.е. хватит на три объекта метаданных
|
|||
33
Builder
20.02.23
✎
13:52
|
(32) Что куда хватит? 2 разряда на виды документов или справочников - это 100 видов. Можно увеличить до 3-х.
8 разрядов для ид документа - это 100 млн документов. + первый служебный символ. Итого 11-12 разрядов. Куда еще? |
|||
34
АгентБезопасной Нацио
20.02.23
✎
13:56
|
(33) "640К хватит всем"?
"8 разрядов для ид документа - это 100 млн документов" - нужно не забывать про УРБД. Если теряешь префикс - не востановишь однозначно. Если нумеруешь базы - рискуешь потерять соответсвие при перенумерации/удалении базы. Но как частное ограниченное решение - сойдет, конечно. |
|||
35
Builder
20.02.23
✎
14:05
|
(34) у меня УРБД нет, ШК сделаны только для документов.
Сделано 9 разрядов под ИД, это овердохрена. Клюшки столько не протянут :) |
|||
36
АгентБезопасной Нацио
20.02.23
✎
14:12
|
(35) 6 а не 9. Три - это урбд.
насчет "не потянут" - ну, средняя конторка 3.5 ляма доков в год легко, 3 года (срок исковой) - уже больше 10 лямов, т.е. 8 десятичных разрядов. В архивной за 12 лет получалось уже 40. Так что "никогда не говори никогда" |
|||
37
Злопчинский
20.02.23
✎
14:17
|
(27) ""Код проблемы #7" - это жёстко"
это правильное решение. Сам аналогично делаю когда пишу "хорошо", когда нельзя допустить слома кода но надо сигнализировать об ошибочной ситуации или выдать доп.информацию, типа ОшибкаОписание = "ОШИБКА: тутидошибки, тут описание ошибки/проблемы/чтоделать"; . в качестве Идошибки - тупо беру литералом из табло текущее _GetPerformanceCounter(). ю и когда в ужасе кто-то орет аааа тут страшное что-то - "скажи номер ошибки - там он выводится" - говорят номер ошибки и тупо контекстным поиском практически быстро находишь нужное. Потому как даже в однйо обработке таких ловушек может быть штук 20-25, а обработок ткого рода - тоже штук 20 |
|||
38
Остап Ибрагимович
20.02.23
✎
14:39
|
Внутреннее представление ID объекта данных: Тип(1) + Вид(10) + Объект(10) + КодИБ(3) = 24 символа
В базе данных для полей _Id* состоящие из цифр Вид(10) и Объект(10) перекодируются в 35-ричное значение (в 1с есть недокументированные функции: _IdToStr для такой перекодировки - и "симметричная" функция _StrToId для обратной). Итого полный ID любого объекта данных легко укладывается в строку длины 16 (там кстати и код ИБ для УРБД есть) - с возможностью простого получения из такого ИД ссылки на сам объект данных. При этом никаких "подсчетов максимального" не надо от слова вообще - кодировка охватывает все пространство возможных объектов данных и взаимно-однозначна со ссылками на них. |
|||
39
АгентБезопасной Нацио
20.02.23
✎
14:40
|
(37) у меня там, где обработка ошибки возможна - задачу мне формирует (в клюшках - сообщение через систему сообщений).
|
|||
40
Злопчинский
20.02.23
✎
14:42
|
(39) например в Абакане, Ижевске или Воронеже? ;-)
|
|||
41
АгентБезопасной Нацио
20.02.23
✎
14:45
|
(38) так достаточно длинннуюСтроку (13 символов) + 1 символ тип объекта. Итого 14. ПОчему использование типа увеличивает строку не на 1 знак, а на 10 - ну ХЗ, что там они курили.
поля - в 36-ричой системе, а не 35. |
|||
42
Остап Ибрагимович
20.02.23
✎
14:45
|
(38)+: вот это - используется давно, активно, без ошибок, удобно и успешно:
// НАЗНАЧЕНИЕ: Получение ID объекта данных (Перечисление,Счет,Справочник,Документ) // ВВЕДЕНИЕ: Перечень ID объекта данных: Тип(1)+Вид(10)+Объект(10)+КодИБ(3) // Полный ID объекта складываетсчя из этих ID в указанном порядке, длина=24 // В случае определенности типа справочника значение имеет только [Объект(10)+КодИБ(3)] // ПАРАМЕТЫ: * тОбъект - объект данных (ВНИМАНИЕ! для выборки - обязательно // "<ВыборкаОбъектов>.Текущий{Счет/Элемент/Документ}()"!) // * тИдСЗ - тип возвращаемого значения (СЗ=0/1/2/3/4, ПолныйИД,ТипИД,ВидИД,ОбъектИД,ИдИБ) // ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ: * Явный возврат: Заданный во втором параметре ID // * Дополнительно: Во втором параметре вызова возвращается СЗ со всеми ID (см.выше) //------------------------------------------------------------------------------ Функция ПолучитьИДыОбъекта(Знач тОбъект,тИдСЗ=0) Экспорт Перем _Ок,тТипВозврата,тСЗ,тТхт; тТхт=ТипЗначенияСтр(тИдСЗ); Если тТхт="СписокЗначений" Тогда тИдСЗ.УдалитьВсе(); тТипВозврата="*"; Иначе Если тТхт="Число" Тогда тТипВозврата=тИдСЗ Иначе тТипВозврата=Число(СокрЛП(тИдСЗ)) КонецЕсли; тИдСЗ=СоздатьОбъект("СписокЗначений"); тТипВозврата=Макс(0,Мин(4,Окр(тТипВозврата,0))); тТипВозврата=?(тТипВозврата=4,"ИдИБ",?(тТипВозврата=3,"ИдОбъекта",?(тТипВозврата=2,"ИдВида",?(тТипВозврата=1,"ИдТипа","*")))); КонецЕсли; тСЗ=СоздатьОбъект("СписокЗначений"); тТхт=ТипЗначения(тОбъект);//ТипЗначенияСтр(тОбъект); Если тТхт=0 Тогда тТхт=ТипЗначенияСтр(тОбъект); ИначеЕсли тТхт=1 Тогда тТхт="Число"; ИначеЕсли тТхт=2 Тогда тТхт="Строка"; ИначеЕсли тТхт=3 Тогда тТхт="Дата"; ИначеЕсли тТхт=10 Тогда тТхт="Перечисление"; ИначеЕсли тТхт=11 Тогда тТхт="Справочник"; ИначеЕсли тТхт=12 Тогда тТхт="Документ"; ИначеЕсли тТхт=13 Тогда тТхт="Календарь"; ИначеЕсли тТхт=14 Тогда тТхт="ВидРасчета"; ИначеЕсли тТхт=15 Тогда тТхт="Счет"; ИначеЕсли тТхт=16 Тогда тТхт="ВидСубконто"; ИначеЕсли тТхт=17 Тогда тТхт="ПланСчетов"; ИначеЕсли тТхт=100 Тогда тТхт=ТипЗначенияСтр(тОбъект) КонецЕсли; Если тТхт="СписокЗначений" Тогда // в Объекте получен СЗ (выдернуть из него ИД-ы) тОбъект.Выгрузить(тСЗ); ИначеЕсли тТхт="Строка" Тогда // в Объекте получено внутреннее представление (=ЗначениеВСТрокуВнутр(<данные>)) тСЗ.ИзСтрокиСРазделителями(Сред(Лев(тОбъект,СтрДлина(тОбъект)-1),2)); ИначеЕсли Найти("СчетПеречислениеСправочникДокумент",тТхт)>0 Тогда // В объекте получен сам обыект данных: тОбъект=ЗначениеВСтрокуВнутр(тОбъект); тСЗ=СоздатьОбъект("СписокЗначений"); тСЗ.ИзСтрокиСРазделителями(Сред(Лев(тОбъект,СтрДлина(тОбъект)-1),2)); Иначе Возврат(""); КонецЕсли; тТхт=СокрЛП(тСЗ.ПолучитьЗначение(1)); // T=счет/O=документ/B=справочник/E=перечисление/U=неопределеннный: Если ПустоеЗначение(тТхт)=1 Тогда тТхт="U" Иначе тТхт=?(Найти("TOBEU",Лев(тТхт,1))=0,"U",Лев(тТхт,1)) КонецЕсли; _Ок=тТхт; тТхт=тСЗ.ПолучитьЗначение(тСЗ.РазмерСписка()); Если СтрДлина(тТхт)=13 Тогда тТхт=Формат(Число(тСЗ.ПолучитьЗначение(4)),"Ч10") Иначе тТхт=Лев(тТхт,10) КонецЕсли; _Ок=_Ок+тТхт; тТхт=тСЗ.ПолучитьЗначение(тСЗ.РазмерСписка()); Если СтрДлина(тТхт)>13 Тогда тТхт=Прав(тТхт,13) КонецЕсли; _Ок=_Ок+Формат(Число(Лев(тТхт,СтрДлина(тТхт)-3)),"Ч10")+Прав(тТхт,3); тИдСЗ.Установить("ИдТипа",Лев(_Ок,1)); тИдСЗ.Установить("ИдВида",Сред(_Ок,2,10)); тИдСЗ.Установить("ИдОбъекта",Сред(_Ок,12,10)); тИдСЗ.Установить("ИдИБ",Прав(_Ок,3)); Если тТипВозврата<>"*" Тогда _Ок=тИдСЗ.Получить(тТипВозврата) КонецЕсли; Возврат(_Ок); КонецФункции //ПолучитьИДыОбъекта //------------------------------------------------------------------------------ // Способы вызова: // - только первый параметр = внутреннее представление // - только первый параметр = Ключ(24) = ИдТипа(1)+ИдВида(10)+ИдОбъекта(10)+ИдИБ(3) // - в параметрах заданы все четре ИД-а Функция ПолучитьОбъектПоИДам(Знач ИдТипа,Знач ИдВида="",Знач ИдОбъекта="",Знач ИдИБ="", Знач тБазаОЛЕ="") Экспорт Перем _Ок; Если ТипЗначенияСтр(ИдТипа)="СписокЗначений" Тогда ИдВида=ИдТипа.Получить("ИдВида"); ИдОбъекта=ИдТипа.Получить("ИдОбъекта"); ИдИБ=ИдТипа.Получить("ИдИБ"); ИдТипа=ИдТипа.Получить("ИдТипа"); Если ТипЗначенияСтр(тБазаОЛЕ)="OLE" Тогда _Ок=тБазаОЛЕ.ValueFromStringInternal("{"""+ИдТипа+""",""0"",""0"",""" +ИдВида+""",""0"",""0"","""+Формат(Число(ИдОбъекта),"Ч10")+Формат(ИдИБ,"С3")+"""}"); Иначе//Если ТипЗначенияСтр(тБазаОЛЕ)<>"OLE" Тогда _Ок=ЗначениеИзСтрокиВнутр("{"""+ИдТипа+""",""0"",""0"",""" +ИдВида+""",""0"",""0"","""+Формат(Число(ИдОбъекта),"Ч10")+Формат(ИдИБ,"С3")+"""}"); КонецЕсли; ИначеЕсли СтрДлина(ИдТипа)=24 Тогда Если Лев(ИдТипа,1)="T" Тогда // Счет - составляется по-другому _Ок="{""T"",""0"",""0"",""0"",""0"",""0"","""+Сред(ИдТипа,2)+"""}"; Иначе//Если Лев(ИдТипа,1)<>"T" Тогда _Ок="{"""+Лев(ИдТипа,1)+""",""0"",""0"","""+Сред(ИдТипа,2,10)+""",""0"",""0"","""+Сред(ИдТипа,12)+"""}"; КонецЕсли; Если ТипЗначенияСтр(тБазаОЛЕ)="OLE" Тогда //_Ок=тБазаОЛЕ.ValueFromStringInternal(_Ок); _Ок=тБазаОЛЕ.EvalExpr("ЗначениеИзСтрокиВнутр("""+СтрЗаменить(_Ок,"""","""""")+""")"); Иначе//Если ТипЗначенияСтр(тБазаОЛЕ)<>"OLE" Тогда _Ок=ЗначениеИзСтрокиВнутр(_Ок); КонецЕсли; ИначеЕсли Лев(ИдТипа,1)="{" Тогда Если ТипЗначенияСтр(тБазаОЛЕ)="OLE" Тогда //_Ок=тБазаОЛЕ.ValueFromStringInternal(ИдТипа); _Ок=тБазаОЛЕ.EvalExpr("ЗначениеИзСтрокиВнутр("""+СтрЗаменить(ИдТипа,"""","""""")+""")"); Иначе//Если ТипЗначенияСтр(тБазаОЛЕ)<>"OLE" Тогда _Ок=ЗначениеИзСтрокиВнутр(ИдТипа); КонецЕсли; КонецЕсли; Возврат(_Ок); КонецФункции //ПолучитьОбъектПоИДам //------------------------------------------------------------------------------ Функция ИдОбъектаВПвБД(тИд) Экспорт Возврат(Лев(тИд,1)+_IdToStr(Число(Сред(тИд,2,10)))+_IdToStr(Число(Сред(тИд,12,10)))+Прав(тИд,3)); КонецФункции //ИдОбъектаВПвБД //------------------------------------------------------------------------------ Функция ИдОбъектаБДвВП(тИд) Экспорт Возврат(Лев(тИд,1)+Формат(СокрЛП(_StrToId(Сред(тИд,2,6))),"Ч10.0")+Формат(СокрЛП(_StrToId(Сред(тИд,8,6))),"Ч10.0")+Прав(тИд,3)); КонецФункции //ИдОбъектаБДвВП //------------------------------------------------------------------------------ |
|||
43
Остап Ибрагимович
20.02.23
✎
14:47
|
(41) нет не достаточно. точнее - можно и так, но это незачем.
|
|||
44
АгентБезопасной Нацио
20.02.23
✎
14:47
|
(40) Да, через РБД сообщения проходили.
|
|||
45
Остап Ибрагимович
20.02.23
✎
14:48
|
ЗЫ: Ага, там и по OLE можно дергать воэтовсё.
|
|||
46
Злопчинский
20.02.23
✎
14:49
|
извращенцы... вам всем прямой путь на 8-ку...
|
|||
47
АгентБезопасной Нацио
20.02.23
✎
14:50
|
(43) более чем достаточно.
ЗначениеВСамуюДлиннуюСтрокуБД(Объект). Если уж надо сократить - бери первый символ, и последние 13.. обратно - один скалярный запрос, и имеешь объект |
|||
48
АгентБезопасной Нацио
20.02.23
✎
14:51
|
(46) а мы и там извращаться продолжим!©вовочка
|
|||
49
Остап Ибрагимович
20.02.23
✎
14:54
|
(47): "Достаточно" и меньшего - при упаковке и прочих извращениях.
прим.: а отвечать на комментарий логичнее, прочитав его полностью - а не только то, на что возразить хочется искрометно )) |
|||
50
ЯнСмит
20.02.23
✎
18:17
|
Ничёсе ... испуганно оглядываясь по сторонам =)))
|
|||
51
Харлампий Дымба
20.02.23
✎
18:50
|
(50) А, кстати, почему бы не сделать два поля отбора: одно заполнять для справочников, другое для документов? Ну и отбор дёргать в соответствии с типом объекта.
|
|||
52
ЯнСмит
20.02.23
✎
20:17
|
(51) да, спасибо, думаю в итоге так и сделать, это всяко проще, чем через внутреннее представление
|
|||
53
Остап Ибрагимович
20.02.23
✎
20:19
|
(51): Ну, например, есть такая удобная в отдельных (хотя и не редких) случаях фича в формах спискак семерки: "ЗакладкиОтбора(..)" тык - и красота. Но - только по одному реквизиту.
|
|||
54
Злопчинский
20.02.23
✎
20:47
|
(53) не обязательно
|
|||
55
Злопчинский
20.02.23
✎
20:48
|
правильнее "по одному из множества реквизитов"
|
|||
56
Злопчинский
20.02.23
✎
20:55
|
вот в журнале документов можно вот так сделать
https://i.ibb.co/XL387wj/2023-02-20-205108.jpg в справочнике аналогично по реквизитам, у которых стоит галка "отбор" может пригодится для удобнйо юзабельности |
|||
57
Остап Ибрагимович
20.02.23
✎
21:01
|
(54),(55): "по одному из множества" - правильнее не "реквизитов", а "значений реквизитов".
|
|||
58
Злопчинский
20.02.23
✎
21:31
|
(57) убедил!
|
|||
59
alyuev
17.03.23
✎
12:13
|
(0) А мы прикрепляем в кнопку-скрепку любые файлы в файловую систему, а не во внутренний доп-справочник. В папку вида Y:\AC_Folder\Photo\Договор\8401972ACC - где последняя папка - код объекта. Объект, к которому можем прикреплять - это док или эл.справочника.
|
|||
60
alyuev
17.03.23
✎
12:17
|
Вот как выглядит меню добавления вложения: https://i.ibb.co/kJVFHx6/image.png
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |