Имя: Пароль:
1C
 
Разработка подбора у документа по регистру
0 Tolstiy Beremenniy
 
06.09.18
14:47
Интерфейс такси. Имеется документ. Задача в разработке подбора для табличной части этого документа.
Нужно разработать форму подбора с определенными полями, заданными. С фильтром. Что бы там отображались только нужные данные.
На форме документа нужно разместить кнопку, что бы по ней открывался подбор, с необходимыми полями. С нужными данными для подбора.
При выборе значения должны перемещаться в табличную часть документа.

Подскажите пожалуйста где можно посмотреть пример, подобной разработки для интерфейса такси. Или же подскажите по алгоритму разработки. Пока мало представляю как это делать. Делать нужно будет в конфигурации ERP.
1 Tolstiy Beremenniy
 
06.09.18
14:59
К примеру открыл документ Инвентаризация ОС. Там есть кнопка подбор. При её нажатии открывается подбор, как раз нужного мне справочника. Можно по двойному нажатию переносить, объекты эксплуатации в табличную часть документа.

Сам пока не смотрел. Сильно тягомотный день. Может кто сталкивался с подобной задачей. Можно ли использовать типовой подбор как пример? Или там сильно сложно?

Данные для подбора мне нужны из регистра сведений.

Как там реализуются все эти манипуляции?
2 Пуля
 
06.09.18
15:09
(1) Да! Это как раз что тебе нужно
3 Tolstiy Beremenniy
 
06.09.18
15:11
(2) То есть, есть вероятность использовать его как пример?
А если мне нужно брать данные из регистра сведений?
А там может другой источник?
4 hhhh
 
06.09.18
15:54
(3) там запрос источник. а запрос ты кожешь составить свой вдумчиво и включить в него квадриллион регистров сведений и 159 справочников.
5 Tolstiy Beremenniy
 
07.09.18
05:26
(4) Создал кнопку подбор. Перенес код из документа
ИнвентаризацияОС, переделав под свою табличную часть.

&НаКлиенте
Процедура Подбор(Команда)
    ПараметрыПодбора = ВнеоборотныеАктивыКлиент.ПараметрыПодбора(Элементы.ЗемельныеУчасткиЗемельныйУчасток, ЭтаФорма);
    
    ОткрытьФорму("Справочник.ОбъектыЭксплуатации.ФормаВыбора",
                    ПараметрыПодбора, Элементы.ЗемельныеУчастки,,,,,
                    РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    
    ПодборНаСервере();
КонецПроцедуры


Форма подбора открывается, но при двойном щелчке, в тч
ничего не помещается как в документе инвентаризация ос.

Вижу там в форме документа, это делается сложными процедурами ...

&НаСервере
Процедура ЗаполнитьСлужебныеРеквизитыТабличнойЧасти(Знач Строки=Неопределено)
    
    УстановитьПривилегированныйРежим(Истина);
    
    МассивСтрок = Неопределено;
    Если Строки <> Неопределено Тогда
        МассивСтрок = Новый Массив;
        Если ТипЗнч(Строки) = Тип("Массив") Тогда
            Для Каждого ИдентификаторСтроки Из Строки Цикл
                МассивСтрок.Добавить(Объект.ОС.НайтиПоИдентификатору(ИдентификаторСтроки));
            КонецЦикла;
        Иначе
            МассивСтрок.Добавить(Строки);
        КонецЕсли;
    КонецЕсли;
    
    МВТ = Новый МенеджерВременныхТаблиц;
    
    Документы.ИнвентаризацияОС.ДобавитьВременнуюТаблицуСозданныхДокументовНаОсновании(МВТ, Объект.Ссылка);
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МВТ;
    Запрос.УстановитьПараметр("ДанныеДокумента", Объект.ОС.Выгрузить(МассивСтрок));
    Запрос.УстановитьПараметр("Дата", Объект.Дата);
    Запрос.УстановитьПараметр("Организация", Объект.Организация);
    Запрос.УстановитьПараметр("Подразделение", Объект.ПодразделениеОрганизации);
    Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
    
    #Область ТекстЗапроса
    Запрос.Текст =
    "ВЫБРАТЬ
    |    (ВЫРАЗИТЬ(ДанныеДокумента.НомерСтроки КАК ЧИСЛО)) - 1 КАК ИндексСтроки,
    |    ВЫРАЗИТЬ(ДанныеДокумента.ОсновноеСредство КАК Справочник.ОбъектыЭксплуатации) КАК ОсновноеСредство,
    |    ВЫРАЗИТЬ(ДанныеДокумента.СчетУчета КАК ПланСчетов.Хозрасчетный) КАК СчетУчета,
6 Tolstiy Beremenniy
 
07.09.18
05:27
То есть как мне использовать этот пример?
Форма открывается, а как помещать по двойному щелчку
выбранный элемент в табличную часть?
7 Tolstiy Beremenniy
 
07.09.18
05:29
Хотелось бы сделать свою форму подбора у регистра сведений
и выбирать из неё. Не подскажете, как это делать правильно?
8 Tolstiy Beremenniy
 
07.09.18
05:31
Что вообще происходит когда в форме подбора нажали
двойным кликом на нужный элемент?
9 Tolstiy Beremenniy
 
07.09.18
06:18
Нормально ли будет сделать форму подбора у регистра сведений?
10 ПегийЛунь
 
07.09.18
06:23
(Я бы поучаствовал в проекте ERP)

Процедура Подбор(Команда)
//здесь делаются параметры подбора
//из вероятно общего модуля ВнеоборонвцАктивы вызывается функция ПараметрыПодбора
//в эту функцию передаются в качестве параметров знчения
//из таблицы ЗемельныеУчастки значение УчасткиЗемельныйУчасток
//вторым параметром ЭтаФорма, вероятно чтобы было куда возвращать значение функции
    ПараметрыПодбора = ВнеоборотныеАктивыКлиент.ПараметрыПодбора(Элементы.ЗемельныеУчасткиЗемельныйУчасток, ЭтаФорма);
    
//Этой командой открывается форма подбора справочника
//куда передаются полученные ранее параметры подбора
//и "ссылка" на таблицу ЗемельныеУчастки
// при открытии формы подбора окно самого объекта будет заблокировано
//
ОткрытьФорму("Справочник.ОбъектыЭксплуатации.ФормаВыбора",
                    ПараметрыПодбора, Элементы.ЗемельныеУчастки,,,,,
                    РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    
    ПодборНаСервере();
КонецПроцедуры


Далее в где-то рядом должна быть или процедура
или что-то содержащие название
ОбработкаВыбора
11 Мимохожий Однако
 
07.09.18
06:23
12 Tolstiy Beremenniy
 
07.09.18
07:40
Сделал произвольную форму регистра сведений, а как её открыть?

ОткрытьФорму("РегистрСведений.ФормаПодбораПараметровЗемельногоУчастка.??????", , Элементы.ЗемельныеУчастки);
13 Tolstiy Beremenniy
 
07.09.18
07:46
(12+) Или из регистра сведений нельзя делать форму подбора? Только у справочника форма выбора?
14 Остап Сулейманович
 
07.09.18
08:09
(13) Формы подбора можно сделать из любой формы.
15 Остап Сулейманович
 
07.09.18
08:11
+ (14) И даже из произвольной. Содержащей вообще любые данные, на которые можно ткнуть мышкой или нажать кнопкой Enter.
16 Остап Сулейманович
 
07.09.18
08:18
+(15) Правил очень мало.
1. При открытии формы обязательно нужно указать "владельца формы" (3-й параметр метода ОткрытьФорму()).
2. Если открывается произвольная форма (не форма выбора) - в ней должен быть вызван метод ОповеститьОВыборе.
С обязательными все. Не обязательные
1. Выставить флаг ЗакрыватьПриВыборе. Если оно = Ложь тогда из формы можно будет выбрать последовательно несколько значений.
2. -//- ЗакрыватьПриЗакрытииВладельца