Имя: Пароль:
1C
1С v8
Организовать на форме документа таблицу отборов.
,
0 bard666
 
26.09.13
19:21
Есть самописный документ, в котором запросом отбираются некие параметры. Например, номенклатура, склады, контрагенты. На данном этапе это организовано через кучу табличных частей: Номенклатура, ИсключаемаяНоменклатура, Контрагенты, ИсключаемыеКонтрагенты, и т. д. Хочу объединить всё в одну таблицу значений. В типовых запросах это реализовано через ПостроительЗапроса.Отбор. Можно ли что-то подобное создать в форме документа или только вариант с созданием процедур с нуля, без типовых механизмов?
1 bard666
 
26.09.13
19:33
Кто-то может помочь?
2 bard666
 
26.09.13
19:50
читателей больше. Есть идеи?
3 bard666
 
26.09.13
20:06
прям монолог какой-то
4 kosts
 
26.09.13
20:20
(0) > номенклатура, склады, контрагенты
Зачем все вместе?
5 Zamestas
 
26.09.13
20:20
(0) УФ или ОФ?
6 Поросенок Петр
 
26.09.13
20:40
Вообще чо делают какие-то запросы с пользовательскими отборами в документе Х.З.

Но если очень хочется, сделай отдельный построитель, выведи его отбор на морду, и из него заполняй остальные.
7 bard666
 
26.09.13
21:00
(5) ОФ.
(6) На форме таблица для формирования параметров для запроса
8 bard666
 
26.09.13
21:03
(4) Документ по планированию закупок.
9 Михаил Козлов
 
26.09.13
21:11
Делал через построитель.
В документе реквизит НастройкиПостроителя с типом ХранилищеЗначений.
В форме:
- реквизит Построитель;
- в ПередЗаписью:
СтруктураНастроек = Новый Структура;
СтруктураНастроек.Вставить("НастройкиПостроителя", Построитель.ПолучитьНастройки());
ЭтотОбъект.настройкиПостроителя = Новый ХранилищеЗначения(СтруктураНастроек);
- в ПриОткрытии:
ЗаполнитьНачальныеНастройки(Построитель); - текст запроса и пр. для построителя и установка настроек:    
СтруктураНастроек = ЭтотОбъект.настройкиПостроителя.Получить();
Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Тогда
  Построитель.УстановитьНастройки(СтруктураНастроек.НастройкиПостроителя);
КонецЕсли;
10 bard666
 
26.09.13
21:46
Спасибо, попробую
11 bard666
 
27.09.13
13:42
Сдела так:
на форме Реквизит Построитель с типом Отбор.
В Процедуру ПриОткрытии Добавлена Процедура ЗаполнитьНачальныеНастройки(Построитель). Её текст:


Процедура ЗаполнитьНачальныеНастройки(Построитель) Экспорт
        
    ДоступныеПоля = Построитель.ПолучитьДоступныеПоля();                        
    Поле = ДоступныеПоля.Добавить("ГруппыДоступностиСкладов", "ГруппыДоступностиСкладов", Новый ОписаниеТипов("СправочникСсылка.ГруппыДоступностиСкладов"));
    Поле.Отбор = Истина;
    Поле = ДоступныеПоля.Добавить("Номенклатура", "Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
    Поле.Отбор = Истина;
    Поле = ДоступныеПоля.Добавить("Контрагенты", "Контрагенты", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
    Поле.Отбор = Истина;
    Построитель.УстановитьДоступныеПоля(ДоступныеПоля);
        
КонецПроцедуры

Что не совсем нравится - Нет возможности отбирать по реквизитам справочника. Пробовал пихать тип СправочникОбъект или менять реквизиты переменной Поле. Пока безрезультатно.
12 KuAl
 
27.09.13
13:43
если я правильно понял - вполне подойдет отбор СКДшный.
13 KuAl
 
27.09.13
13:46
пример - типовой справочник в упп настройки расчета цены номенклатуры
14 bard666
 
27.09.13
13:55
у меня нет этой конфы. Можно кинуть сюда часть кода?)
15 Михаил Козлов
 
27.09.13
14:09
(11) Выбирать поля отбора можно? В тексте запроса для построителя в опциях построителя {ГДЕ ...} звездочки у полей стоят? Вроде этого:
|{ГДЕ спр.Ссылка.* КАК Номенклатура, спр.Ссылка.ОсновнойПоставщик.* КАК Поставщик, спр.Ссылка.ЗаводПоставщика КАК Завод}";