|
Как получить все строковые реквизиты? | ☑ | ||
---|---|---|---|---|
0
dart909
31.07.15
✎
12:34
|
Добрый день, подскажите пожалуйста. Как можно получить значения всех строковых реквизитов объектов в конфигурации?
|
|||
1
Волшебник
модератор
31.07.15
✎
12:35
|
циклом
|
|||
2
asady
31.07.15
✎
12:35
|
(0) крутяк!
|
|||
3
Timon1405
31.07.15
✎
12:40
|
взять падавана, дать конфу, попросить посчитать. будет быстрее
|
|||
4
Serg_1960
31.07.15
✎
12:47
|
(3) Ты не понял. Автор хочет узнать все значения строковые (все наименования всех справочников, все комментарии во всех документах и т.д.) Я так его понял.
|
|||
5
Волшебник
модератор
31.07.15
✎
12:49
|
(4) Похоже на полнотекстовый поиск...
|
|||
6
Провинциальный 1сник
31.07.15
✎
12:53
|
(4) А в чем проблема, в цикле по метаданным формируем запросы, данные обрабатываем..
|
|||
7
Fish
31.07.15
✎
12:54
|
Главный вопрос: а зачем это нужно?
|
|||
8
Serg_1960
31.07.15
✎
12:54
|
Цикл по метаданным; определение типа; формирование текстов запросов в цикле; сами запросы; анализ полученных данных для комплексных типов.... и очень много, много, много, очень много, о-ч-е-н-ь м-н-о-г-о времени, просто д-о-ф-и-г-и-щ-а много времени. Нет проблем.
|
|||
9
dart909
31.07.15
✎
12:54
|
(4) Нет стоп сорян ,ошибся. Я хочу узнать значения строковые только во всех справочниках/
|
|||
10
dart909
31.07.15
✎
12:56
|
(7) Ну есть обработка. В которое вводится некоторое строковое значение, и оно подставляется во все строковые реквизиты во всех справочниках?
|
|||
11
dart909
31.07.15
✎
12:56
|
(6) А как это сделать? примерно хотя бы
|
|||
12
Serg_1960
31.07.15
✎
12:57
|
(7) Велосипед изобретаем, альтернативу полнотекстовому поиску, не?
|
|||
13
Smallrat
31.07.15
✎
12:58
|
(10) о как
интересные задачи у людей |
|||
14
Fish
31.07.15
✎
13:01
|
(11) Вложенными циклами.
|
|||
15
Провинциальный 1сник
31.07.15
✎
13:04
|
(13) Читал как-то описание резидентного вируса (еще времено ДОСа), который при посылке русского текста на принтер после каждой запятой вставлял нецензурный эпитет, переформатируя строку при необходимости. Наверное, что-то подобное требуется и сейчас.
|
|||
16
Fish
31.07.15
✎
13:04
|
(12) Не, тут похоже что-то более глобальное, судя по (9) и (10). Я так понял он хочет запихнуть некую строку во все строковые реквизиты всех справочников в конфе. Зачем это надо, так и осталось загадкой, с учётом, что наименование, да и код (как правило) - это тоже строковый реквизит :))
|
|||
17
dart909
31.07.15
✎
13:08
|
(16) Я стажер, у меня самописная простенькая конфа) Просто дали такое задание ,потренироваться
|
|||
18
Лодырь
31.07.15
✎
13:09
|
(17) Скажи что-нибудь уничижительное в адрес дающих абсолютно ненужные задачки.
|
|||
19
Serg_1960
31.07.15
✎
13:11
|
(11)
Для Каждого Справочник Из Метаданные.Справочники Цикл Для Каждого Реквизит Из Справочник.Реквизиты Цикл Если Реквизит.Тип.СодержитТип(... |
|||
20
Fish
31.07.15
✎
13:14
|
(19) А если учесть, что у справочников могут быть ТЧ со строковыми реквизитами, то ещё парочку вложенных циклов надо :))
|
|||
21
dart909
31.07.15
✎
13:15
|
(20) нет обработать нужно только реквизиты) ТЧ не надо)
|
|||
22
Fish
31.07.15
✎
13:16
|
(21) Ну тогда проще.
|
|||
23
dart909
31.07.15
✎
13:19
|
(22) как в (19) ? Спасибо сделаю)
|
|||
24
dart909
31.07.15
✎
13:48
|
(19) СодержитТип(), а что в параметры передавать?
|
|||
25
Encode
31.07.15
✎
13:49
|
(24) Тип Типа Тип :)
|
|||
26
dart909
31.07.15
✎
13:59
|
(25) А как изменить значение реквизита на выбранное Просто Реквизит.Имя не доступно для записи
|
|||
27
D_E_S_131
31.07.15
✎
14:00
|
(24) Ну если записать новое строковое значение нужно не везде куда можно, а только туда, где уже строка записана, то можешь СодержитТип() не использовать, а проверять значение реквизита с помощью ТипЗнч().
|
|||
28
dart909
31.07.15
✎
14:02
|
(27) Ну у меня тип совпал а как теперь имя значения реквизита поменять/
|
|||
29
D_E_S_131
31.07.15
✎
14:03
|
(26) Выборка метаданных справочников, выборка элементов справочника, выборка реквизитов, проверка значений реквизитов элемента справочника, если есть строковое значение, то получение объекта справочника и запись нового значения в найденный реквизит.
|
|||
30
dart909
31.07.15
✎
14:09
|
(29) &НаКлиенте
Процедура Заполнить(Команда) ЗаполнитьДанными() КонецПроцедуры &НаСервере Процедура ЗаполнитьДанными() ПроверяемыйТип = Тип("Строка"); Для каждого Справочник Из Метаданные.Справочники Цикл Для каждого Реквизит Из Справочник.Реквизиты Цикл Если Реквизит.Тип.СодержитТип(ПроверяемыйТип) тогда а=Справочник.ПолучитьОбъект(); Реквизит.Синоним = Объект.НовоеЗначениеРеквизитов; КонецЕсли КонецЦикла КонецЦикла КонецПроцедуры |
|||
31
Fish
31.07.15
✎
14:11
|
(30) Ты бы это, для начала хоть книжки какие почитал бы.
|
|||
32
dart909
31.07.15
✎
14:13
|
(31) Читаю(
|
|||
33
Serg_1960
31.07.15
✎
16:23
|
(26) Это метаданные - они не для того чтобы ты их изменял, а для того чтобы ты мог получить имена реквизитов, содержащих нужный тебе тип. Дальше тебе предстоит запомнить эти имена; сформировать динамически текст запроса, используя эти метаданные или выборкой пройтись по справочникам; получить ссылки; прочитать объекты; изменить значения реквизитов, обращаясь к ним по запомненным ранее метаданным; записать объекты...
|
|||
34
D_E_S_131
31.07.15
✎
17:17
|
|
|||
35
Лодырь
01.08.15
✎
16:35
|
Нафига ты для каждого элемента заново определяешь список строковых реквизитов? определи его 1 раз для нового типа. а потом уже иди по ним и меняй если надо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |