Имя: Пароль:
1C
1С v8
Открыть журнал документов для выбора документа
,
0 fdv_83
 
03.07.20
12:21
Здравствуйте, уважаемые форумчане. Возник такой вопрос. Имеется журнал документов (в нём два вида документов). Этот журнал я открываю программно (с отборами) для выбора документов. Но проблема в том, что не получается выбрать документ и посадить его в реквизит. При двойном клике документ просто открывается. Подскажите, пожалуйста, как сделать так чтобы из журнала можно было выбрать (посадить в реквизит) документ. Код прилагаю.

&НаКлиенте
Процедура КлиентыДокументОснованиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтрокаТабличнойЧасти = Элементы.Клиенты.ТекущиеДанные;
    ПараметрыОтбора = Новый Структура;
    Если ЗначениеЗаполнено(Объект.ВидКредита) Тогда
        НастройкаОтбора = Новый Структура;
        НастройкаОтбора.Вставить("ЛевоеЗначение", Новый ПолеКомпоновкиДанных("ВидКредита"));
        НастройкаОтбора.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.Равно);
        НастройкаОтбора.Вставить("ПравоеЗначение", Объект.ВидКредита);
        НастройкаОтбора.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
        
        ПараметрыОтбора.Вставить("ВидКредита", НастройкаОтбора);
    КонецЕсли;
    Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.Клиент) Тогда
        НастройкаОтбора = Новый Структура;
        НастройкаОтбора.Вставить("ЛевоеЗначение", Новый ПолеКомпоновкиДанных("Клиент"));
        НастройкаОтбора.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.Равно);
        НастройкаОтбора.Вставить("ПравоеЗначение", СтрокаТабличнойЧасти.Клиент);
        НастройкаОтбора.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
        
        ПараметрыОтбора.Вставить("Клиент", НастройкаОтбора);
    КонецЕсли;
    Если СтрокаТабличнойЧасти.СписаниеНачальногоДолга Тогда
        ПараметрыОткрытия = Новый Структура("ПараметрыОтбора", ПараметрыОтбора);
        ПараметрыОткрытия.Вставить("ЭлементДляПозиционирования", Элементы.Клиенты.ТекущиеДанные.ДокументОснование);
        ОткрытьФорму("Документ.ВводНачальногоДолгаКлиента.ФормаВыбора", ПараметрыОткрытия, Элемент, ЭтаФорма);
    Иначе
        ПараметрыОткрытия = Новый Структура("ПараметрыОтбора", ПараметрыОтбора);
        ПараметрыОткрытия.Вставить("ЭлементДляПозиционирования", Элементы.Клиенты.ТекущиеДанные.ДокументОснование);
        ОткрытьФорму("ЖурналДокументов.РасходныеНакладныеКредит.ФормаСписка", ПараметрыОткрытия, Элемент, ЭтаФорма);
    КонецЕсли;
    СтандартнаяОбработка = Ложь;
КонецПроцедуры
1 Ц_У
 
03.07.20
12:32
Добавь в ПараметрыОткрытия поля "РежимВыбора, ЗакрыватьПриВыборе", Истина, Истина
2 fdv_83
 
03.07.20
13:07
(1) Что-то не срабатывает
3 Ц_У
 
03.07.20
13:23
(2) Ну не знаю, у меня работает:

&НаКлиенте
Процедура КонтрагентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ПараметрыОткрытия = Новый Структура;
    ПараметрыОткрытия.Вставить("РежимВыбора", Истина);
    ПараметрыОткрытия.Вставить("ЗакрыватьПриВыборе", Истина);
    ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора",ПараметрыОткрытия,ЭтаФорма);
КонецПроцедуры
4 Ц_У
 
03.07.20
13:28
(2) ну можно Владельца задать как ЭтфФорма, перенести СтандартнаяОбработка = Ложь в начало
5 fdv_83
 
03.07.20
13:41
(3) Дело в том, что вы используете форму выбора, а она для выбора и предназначена. А в журнале документов такой формы нет. Попробуйте с журналом сделать.
6 hhhh
 
03.07.20
13:49
(5) это фигня, если нет формы выбора, тогда берется по-умолчанию форма списка
7 fdv_83
 
03.07.20
13:54
(6) У меня используется форма журнала документов
8 Ц_У
 
03.07.20
14:38
Вобщем да, (5) правда, так и есть.
Решение такое, надо у ЭлементыФормы.Список.РежимВыбора поставить Истина.
Сделал через расширение, работате
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("РежимВыбора") Тогда
        Элементы.Список.РежимВыбора = Параметры.РежимВыбора;
    КонецЕсли;
КонецПроцедуры
9 fdv_83
 
03.07.20
15:37
(8) Спасибо. Всё получилось.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.