| 
    
            
         
         | 
    
  | 
Как получить все строковые реквизиты? | ☑ | ||
|---|---|---|---|---|
| 
    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 раз для нового типа. а потом уже иди по ним и меняй если надо.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |