|   |   | 
| 
 | Запрос дополнительных реквизитов справочника | ☑ | ||
|---|---|---|---|---|
| 0
    
        Khan7779 23.12.15✎ 14:21 | 
        Здравствуйте! Очень нужна помощь! 1С 8.3, УТ 11.1. Как запросом получить дополнительные реквизиты добавленные справочнику через режим предприятия?     | |||
| 1
    
        Naumov 23.12.15✎ 14:21 | 
        а как вы пытались?     | |||
| 2
    
        Naumov 23.12.15✎ 14:21 | 
        + доп реквизиты  скорее через ТЧ объекта.     | |||
| 3
    
        Cyberhawk 23.12.15✎ 14:22 | 
        Значения сидят в ТЧ каждого объекта, а сами реквизиты (их описание) - в соответствующем ПВХ и в справочнике "Наборы значений реквизитов"     | |||
| 4
    
        Khan7779 23.12.15✎ 14:36 | 
        (1) вот именно, что никак, потому что первый раз с этим сталкиваюсь     | |||
| 5
    
        Khan7779 23.12.15✎ 14:37 | 
        (3) вижу у объекта ТЧ доп. реквизиты, но что из нее взять, чтоб работать с нужным мне доп. реквизитами? Под описанием реквизитов имеется ввиду их название из предприятия? Не нашел ничего подобного.     | |||
| 6
    
        Naumov 23.12.15✎ 15:14 | 
        (5) Реквизит Значение из ТЧ - это значение доп.реквизита.     | |||
| 7
    
        Cyberhawk 23.12.15✎ 15:46 | 
        (5) ИР тебе в помощь - там увидишь стркутуру ТЧ и данные, в ней хранящиеся     | |||
| 8
    
        vicof 23.12.15✎ 15:50 | 
        (0) 
 ВЫБРАТЬ * ИЗ Документ.Мегадокумент.ТЧ_Допреквизитов | |||
| 9
    
        Khan7779 24.12.15✎ 09:27 | 
        В общем у меня получилось достать данные доп. реквизитов.
 Вот код запроса: Запрос = Новый Запрос; Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов); Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиента.Номер, | ЗаказКлиента.Дата КАК ДатаДоговора, | ЗаказКлиента.Контрагент.Наименование КАК ПокупательКратко, | ЗаказКлиента.Контрагент.НаименованиеПолное КАК ОрганизацияПокупатель, | ЗаказКлиента.Контрагент.ИНН КАК ИННПокупателя, | ЗаказКлиента.Контрагент.КПП КАК КПППокупателя, | ЗаказКлиента.СуммаДокумента, | ЗаказКлиента.БанковскийСчетКонтрагента.НомерСчета, | ЗаказКлиента.БанковскийСчетКонтрагента.БанкДляРасчетов, | ЗаказКлиента.БанковскийСчетКонтрагента.БИКБанкаДляРасчетов, | ЗаказКлиента.Контрагент.ДополнительныеРеквизиты.( | Свойство.Ссылка КАК Название, | Значение КАК Значение | ), | ЗаказКлиента.Товары.( | НомерСтроки, | Номенклатура.Наименование, | Упаковка.ЕдиницаИзмерения, | КоличествоУпаковок, | Цена, | Сумма | ) |ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента |ГДЕ | ЗаказКлиента.Ссылка В(&МассивОбъектов)"; Запрос.Выполнить().Выгрузить(); Как теперь достать из массива нужные мне доп. реквизиты по отдельности? | |||
| 10
    
        Khan7779 24.12.15✎ 09:59 | 
        Ну пожалуйста, помогите! Нигде в гугле не могу найти как это сделать.     | |||
| 11
    
        cw014 24.12.15✎ 10:04 | 
        (10) ты же в (9) все уже сделал     | |||
| 12
    
        Khan7779 24.12.15✎ 10:06 | 
        (11) не все. У меня доп. реквизиты в массиве кучей. Теперь мне нужно вычленить их по отдельности.     | |||
| 13
    
        cw014 24.12.15✎ 10:07 | 
        Вычленяй     | |||
| 14
    
        cw014 24.12.15✎ 10:07 | 
        У тебя в результате есть поле "ДополнительныеРеквизиты"     | |||
| 15
    
        cw014 24.12.15✎ 10:07 | 
        Это таблица значений из двух колонок "Название" и "Значение"     | |||
| 16
    
        cw014 24.12.15✎ 10:08 | 
        Свойство.Ссылка КАК Название, замени на  Свойство КАК Название,     | |||
| 17
    
        Khan7779 24.12.15✎ 10:10 | 
        (15) ну да, я знаю, я как бэ в курсе) В этой таблице 3 доп. реквизита. Теперь мне нужно их по отдельности заполучить.     | |||
| 18
    
        Khan7779 24.12.15✎ 10:13 | 
        (16) заменил. Так что мне это даст?     | |||
| 19
    
        cw014 24.12.15✎ 10:14 | 
        (17) У тебя три реквизита. Значит в таблице 3 строки. Что именно ты хочешь?     | |||
| 20
    
        cw014 24.12.15✎ 10:14 | 
        Отдельно получаю:
 СтрокаТЧ.ДополнительныеРеквизиты[0].Значение - 1 реквизит СтрокаТЧ.ДополнительныеРеквизиты[1].Значение - 2 реквизит СтрокаТЧ.ДополнительныеРеквизиты[2].Значение - 3 реквизит | |||
| 21
    
        cw014 24.12.15✎ 10:15 | 
        Отдельно? Отдельно     | |||
| 22
    
        Nolan 24.12.15✎ 10:17 | 
        (0) А запрос где ты писать будешь?     | |||
| 23
    
        Khan7779 24.12.15✎ 10:19 | 
        (22) запрос уже написан, смотри выше     | |||
| 24
    
        Khan7779 24.12.15✎ 10:21 | 
        (19) нужно получить значение доп. реквизита и присвоить его отдельной переменной, для дальнейшего использования.     | |||
| 25
    
        Khan7779 24.12.15✎ 10:21 | 
        (20) этот код не работает     | |||
| 26
    
        Nolan 24.12.15✎ 10:22 | 
        (23) я понял, что написан. ты его в конфигураторе пишешь или где?     | |||
| 27
    
        cw014 24.12.15✎ 10:23 | 
        (23)Что именно у тебя не получается?     | |||
| 28
    
        cw014 24.12.15✎ 10:23 | 
        Спорим работает?     | |||
| 29
    
        Khan7779 24.12.15✎ 10:23 | 
        (26) эм, ну да, через конфигуратор, в модуле внешней обработки.     | |||
| 30
    
        cw014 24.12.15✎ 10:24 | 
        ТЗ = Запрос.Выполнить().Выгрузить();
 СтрокаТЧ = ТЗ[0]; СтрокаТЧ.ДополнительныеРеквизиты[0].Значение; // 1 реквизит СтрокаТЧ.ДополнительныеРеквизиты[1].Значение; // 2 реквизит СтрокаТЧ.ДополнительныеРеквизиты[2].Значение; // 3 реквизит | |||
| 31
    
        cw014 24.12.15✎ 10:24 | 
        И почему у меня то все получается?     | |||
| 32
    
        Khan7779 24.12.15✎ 10:26 | 
        (31) вылетает ошибка: неопознанный оператор.     | |||
| 33
    
        cw014 24.12.15✎ 10:26 | 
        В какой строке?     | |||
| 34
    
        Nolan 24.12.15✎ 10:26 | 
        (30) так должно работать)     | |||
| 35
    
        Khan7779 24.12.15✎ 10:29 | 
        (33) в этих трех:
 СтрокаТЧ.ДополнительныеРеквизиты[0].Значение;// 1 реквизит СтрокаТЧ.ДополнительныеРеквизиты[1].Значение;// 2 реквизит СтрокаТЧ.ДополнительныеРеквизиты[2].Значение;// 3 реквизит | |||
| 36
    
        cw014 24.12.15✎ 10:30 | 
        1) точку с запятой пропустил
 2) Это просто пример. Ну сделай так: Реквизит1 = СтрокаТЧ.ДополнительныеРеквизиты[0].Значение; Реквизит2 = СтрокаТЧ.ДополнительныеРеквизиты[1].Значение; Реквизит3 = СтрокаТЧ.ДополнительныеРеквизиты[2].Значение; | |||
| 37
    
        Khan7779 24.12.15✎ 10:32 | 
        (36) Ошибок нет. Теперь этим реквизиту 1,2 и 3 присвоено значение тех доп. реквизитов?     | |||
| 38
    
        Nolan 24.12.15✎ 10:34 | 
        (37) Посмотри как пользоваться отладчиком. Тогда ты сможешь сам проверять значения.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |