Имя: Пароль:
1C
 
Выборка из табличных частей объекта на форме
0 NIGHTHUNTER
 
22.09.20
09:54
Каким образом можно осуществлять выборку из табличной части на форме объекта.
Например справочника, если табличной части нет в составе объекта, и она есть только на форме????
1 dka80
 
22.09.20
09:56
Таблица значений на форме?
Для Каждого строка Из ТоваяТЧ Цикл
2 Ёпрст
 
22.09.20
09:56
Посмотреть, кто источник табличного поля, сделать выводы.
3 Fedor-1971
 
22.09.20
09:57
(0) ТвояТЧНаФорме.ОтборСтрок = новый ФиксированнаяСтруктура("....", );
для отключения ОтборСтрок = Нопределено;

За одно посмотри, если источник ДС, то можешь воспользоваться штатным отбором ДС
4 Fedor-1971
 
22.09.20
09:59
3+ Это для фильтрации значений по каком-то признакам
Перебор зависит от типа элемента.
5 NIGHTHUNTER
 
22.09.20
12:55
(1) Я делаю выборку запросом по справочникам, связку данных. Но обнаружил что основная часть из них просто расположена на форме и никак не связана через объекты.
Я об этом спросил в (0). Как тут быть?
6 NIGHTHUNTER
 
22.09.20
13:02
(2) Похоже это просто таблица на форме, и в нее добавляются строки и все. Она есть только на форме и нигде больше, как это можно выбрать я не понимаю вообще (
7 NIGHTHUNTER
 
22.09.20
13:07
Суть в том что нужно сделать общую выборку, но как ее делать, если я как понимаю значения этой таблицы можно получить только через элементы формы и то из модуля справочника????

А нужно по всем объектам делать выборку.
8 Галахад
 
гуру
22.09.20
13:11
(7) Как-то же таблица заполняется данными при открытии формы. Значит ты тоже сможешь получить эти самые данные. Но будет не просто...
9 NIGHTHUNTER
 
22.09.20
13:19
(8) Что хоть делать? А то я открыл универсальный редактор он ничего не показывает ((((((
10 Галахад
 
гуру
22.09.20
13:29
(9) Код читать. При создании на сервере.
11 acht
 
22.09.20
13:32
(10) Ливингстара учить - только портить. Он и так великолепен.
12 NIGHTHUNTER
 
22.09.20
13:35
Вот что я нашел. Меня интересуют значения трех таблиц значений на форме, это

удПараметры
удЗначения
удПользователи

и вот процедура, что запускается при создании на сервере, я так понимаю именно эта процедура и заносит значения в эти таблицы и с ней мне и разбираться теперь


&НаСервере
Процедура ЗагрузитьИнформациюОПараметрахДоступа()
    
    знПараметры        = РеквизитФормыВЗначение("удПараметры");
    знЗначения        = РеквизитФормыВЗначение("удЗначения");
    знПользователи    = РеквизитФормыВЗначение("удПользователи");
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    НастройкиПараметровДоступа.КонфигурационнаяЕдиница КАК КЕ,
        |    НастройкиПараметровДоступа.Параметр КАК Параметр,
        |    НастройкиПараметровДоступа.Значение КАК Значение,
        |    ПараметрыДоступаПользователейВОбъектахОбслуживанияСрезПоследних.Пользователь КАК Пользователь,
        |    ПараметрыДоступаПользователейВОбъектахОбслуживанияСрезПоследних.ДоступЗакрыт
        |ИЗ
        |    РегистрСведений.НастройкиПараметровДоступа КАК НастройкиПараметровДоступа
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыДоступаПользователейВОбъектахОбслуживания.СрезПоследних(&ТекДата, КонфигурационнаяЕдиница = &КЕ) КАК ПараметрыДоступаПользователейВОбъектахОбслуживанияСрезПоследних
        |        ПО НастройкиПараметровДоступа.КонфигурационнаяЕдиница = ПараметрыДоступаПользователейВОбъектахОбслуживанияСрезПоследних.КонфигурационнаяЕдиница
        |            И НастройкиПараметровДоступа.Параметр = ПараметрыДоступаПользователейВОбъектахОбслуживанияСрезПоследних.Параметр
        |            И НастройкиПараметровДоступа.Значение = ПараметрыДоступаПользователейВОбъектахОбслуживанияСрезПоследних.Значение
        |ГДЕ
        |    НастройкиПараметровДоступа.КонфигурационнаяЕдиница = &КЕ
        |ИТОГИ ПО
        |    КЕ,
        |    Параметр,
        |    Значение";
    
    Запрос.УстановитьПараметр("ТекДата", ЧасовыеПоясаСервер.ТекущееВремяИБ());
    Запрос.УстановитьПараметр("КЕ", СсылкаНаЭлемент);
    
    Результат = Запрос.Выполнить();
    
    ВыборкаКонфигурационнаяЕдиница = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаКонфигурационнаяЕдиница.Следующий() Цикл
        
        ВыборкаПараметр = ВыборкаКонфигурационнаяЕдиница.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
        Пока ВыборкаПараметр.Следующий() Цикл
            
            нсПараметр = знПараметры.Добавить();
            ЗаполнитьЗначенияСвойств(нсПараметр, ВыборкаПараметр);
            
            ВыборкаЗначение = ВыборкаПараметр.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            
            Пока ВыборкаЗначение.Следующий() Цикл
                
                нсЗначения = знЗначения.Добавить();
                ЗаполнитьЗначенияСвойств(нсЗначения, ВыборкаЗначение);
                
                ВыборкаДетальныеЗаписи = ВыборкаЗначение.Выбрать();
                
                Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                    Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Пользователь) И НЕ ВыборкаДетальныеЗаписи.ДостуПЗАкрыт Тогда
                        нсПользователи = знПользователи.Добавить();
                        ЗаполнитьЗначенияСвойств(нсПользователи, ВыборкаДетальныеЗаписи);
                    КонецЕсли;
                КонецЦикла;
                
            КонецЦикла;
            
        КонецЦикла;
        
    КонецЦикла;

    ЗначениеВРеквизитФормы(знПараметры, "удПараметры");
    ЗначениеВРеквизитФормы(знЗначения, "удЗначения");
    ЗначениеВРеквизитФормы(знПользователи, "удПользователи");
    
    ПараметрыДоступаЗагружены = ИСТИНА;
        
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший