Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 00:45

Открытие документа из полученного списка в ТЧ?

Автор Черника, 21 мар 2023, 13:18

0 Пользователей и 1 гость просматривают эту тему.

Черника

Добрый день, подскажите, как открыть документ из полученного списка в ТЧ?


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

   
   
    РезультатЗапроса = Запрос.Выполнить();
   
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
       
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Строка = ДокументыЗУП.Добавить();
        Строка.Наименование = ВыборкаДетальныеЗаписи.Ссылка;
    КонецЦикла;
     

   
ЗначениеВРеквизитФормы(ФормаОбъект, "Объект");
   
    Возврат Истина;
                     
КонецФункции

LexaK

Черника, так после того как вы получили список документов, просто мышкой тыкаете в нужных документ - он и открывается!
если помогло нажмите: Спасибо!

Черника

LexaK, Нет, не открывается. Тыкая мышкой, только для изменения текста в строке

LexaK

Черника, ааа, так из запроса надо колонку ссылками на документы заполнять! (и что бы тип колонки был ДокументСсылка)
что такое Ссылка знаете? проходили?
если помогло нажмите: Спасибо!

Черника

LexaK, Уже сделала, но появилась другая проблема, хочется все таки, что бы при нажатии на строку, а не "открыть" справа в конце строки

LexaK

Черника, в форме у вашей ТЧ есть обработчик события ПриАктивазацииСтроки
зайдите в настройки формы, создайте и откройте обработчик этого события и в нем добавьте код

ТекДанные = Элементы.ВашаТЧ.ТекущиеДанные;
Если ТекДанные <> Неопределено тогда
    ПоказатьЗначение( , ТекДанные.Документ);
КонецЕсли;


это пример, свои наименования надо подставить
сохранить изменения, перезапустить базу,
и теперь при тыканье в вашей ТЧ будет открываться форма документа
если помогло нажмите: Спасибо!

Черника

LexaK, Простите но у меня не выходит :(
&НаКлиенте
Процедура ТабличнаяЧасть1ПриАктивизацииСтроки(Элемент)
   
     ТекДанные = Элементы.ТабличнаяЧасть1.ТекущиеДанные;
Если ТекДанные <> Неопределено тогда
    ПоказатьЗначение( , ТекДанные.Документ);
КонецЕсли;
   
      КонецПроцедуры


LexaK

Черника, что же вы так невнимательно ответы читаете? вот написано
Цитироватьэто пример, свои наименования надо подставить

у вас колонка с документами называется "Наименование" (кто такие названия дает?  :dfbsdfbsdf:  )
поэтому и в коде должно быть так

ПоказатьЗначение( , ТекДанные.Наименование);

//другие переменные тоже проверьте!
если помогло нажмите: Спасибо!

Черника

LexaK, Я наверное не  полностью информацию скинула :(. Извините. Вот весь код:
Теперь получается он сразу открывает первый документ. Я не программист, иногда (Раз в пол года) приходится, что то с кодом делать :)
&НаСервере                                                                       
Функция ПолучитьДокументыНаСервере()                                             

ФормаОбъект = РеквизитФормыВЗначение("Объект");
ДокументыЗУП = ФормаОбъект.ДокументыЗУП;
ДокументыЗУП.Очистить();

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВозвратИзОтпускаПоУходуЗаРебенком.Ссылка КАК Ссылка,
| ВозвратИзОтпускаПоУходуЗаРебенком.Дата КАК Дата
|ИЗ
| Документ.ВозвратИзОтпускаПоУходуЗаРебенком КАК ВозвратИзОтпускаПоУходуЗаРебенком
|ГДЕ
| ВозвратИзОтпускаПоУходуЗаРебенком.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ОтпускПоУходуЗаРебенком.Ссылка,
| ОтпускПоУходуЗаРебенком.Дата
|ИЗ
| Документ.ОтпускПоУходуЗаРебенком КАК ОтпускПоУходуЗаРебенком
|ГДЕ
| ОтпускПоУходуЗаРебенком.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|УПОРЯДОЧИТЬ ПО
| Дата УБЫВ";

Запрос.УстановитьПараметр("ДатаНачала", НачалоМесяца(Текущаядата())); 
Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(Текущаядата()));



РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Строка = ДокументыЗУП.Добавить();
Строка.Наименование = ВыборкаДетальныеЗаписи.Ссылка;
КонецЦикла;

   


ЗначениеВРеквизитФормы(ФормаОбъект, "Объект");

Возврат Истина;
                 
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)

    ПолучитьДокументыНаСервере();
ПодключитьОбработчикОжидания("ВыводДокументов", 20);


КонецПроцедуры 

     &НаКлиенте
Процедура ВыводДокументов()

ПолучитьДокументыНаСервере();

КонецПроцедуры


&НаКлиенте
Процедура ТабличнаяЧасть1ПриАктивизацииСтроки(Элемент)

ТекДанные = Элементы.ТабличнаяЧасть1.ТекущиеДанные;
Если ТекДанные <> Неопределено тогда
    ПоказатьЗначение( , ТекДанные.Наименование);
КонецЕсли;

КонецПроцедуры


Черника

LexaK, Вставила Ваш Код в Событие - "Выбор". Все заработало. Спасибо большое

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск