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

1С 8.2 обычное приложение, авто подстановка в форму из ТЗ

Автор asdfr1, 20 янв 2012, 14:50

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

asdfr1

Необходимо сделать авто подстановку в форму, написал:

Процедура ПисьмоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   Письма.Ссылка,
        |   Письма.Контрагент.Наименование
        |ИЗ
        |   БизнесПроцесс.Письма КАК Письма
        |ГДЕ
        |   Письма.Ссылка = &ВыбранноеЗначение";

    Запрос.УстановитьПараметр("ВыбранноеЗначение", ВыбранноеЗначение);

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

ТЗ = Результат.Выгрузить();
ОткрытьЗначение(ТЗ);
Собственно, как выдернуть значение ячейки ТЗ и подставить в форму.Создать таблицу и через неё помещать на форму? Куда хоть копать? :dfbsdfbsdf:

asdfr1

Цитата: asdfr1 от 20 янв 2012, 14:50
Необходимо сделать авто подстановку в форму, написал:

Процедура ПисьмоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   Письма.Ссылка,
        |   Письма.Контрагент.Наименование
        |ИЗ
        |   БизнесПроцесс.Письма КАК Письма
        |ГДЕ
        |   Письма.Ссылка = &ВыбранноеЗначение";

    Запрос.УстановитьПараметр("ВыбранноеЗначение", ВыбранноеЗначение);

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

ТЗ = Результат.Выгрузить();
ОткрытьЗначение(ТЗ);
Собственно, как выдернуть значение ячейки ТЗ и подставить в форму.Создать таблицу и через неё помещать на форму? Куда хоть копать? :dfbsdfbsdf:
ВыбранноеЗначение = строка с номером, текстом, и т.д.
вставить же нужно КонтрагентНаименование в поле заказчик.В ТЗ два столбика, с номером и НаименованиеЗаказчика

has

Задачу поподробней. Не понятно что за выбранное значение, условие в запросе то по ссылке.

asdfr1

Цитата: has от 23 янв 2012, 07:13
Задачу поподробней. Не понятно что за выбранное значение, условие в запросе то по ссылке.
ВыбранноеЗначение - это строка с номером письма, датой создания и т.д. по сути оно не нужно, по нему находится то что нужно.Суть в том , что Нужный столбец "КонтрагентНаименование" содержит значение, его то и нужно выдернуть из ТЗ и вставить в форму, поле ввода.

has

ЦитироватьВыбранноеЗначение - это строка с номером письма, датой создания и т.д. по сути оно не нужно, по нему находится то что нужно.
Если оно не нужно, то в запросе оно бы не использовалось. Если это строка, то врятли запрос верный получается, так как там условие по ссылке.
Во-вторых, если тип поля ввода на форме СправочникСсылка, то и вытаскивать надо ссылку, а не наименование. И лучше не в поле ввода вставлять, а в реквизит. Хотя тут зависит уже от задачи.

asdfr1

Цитата: has от 23 янв 2012, 10:01
ЦитироватьВыбранноеЗначение - это строка с номером письма, датой создания и т.д. по сути оно не нужно, по нему находится то что нужно.
Если оно не нужно, то в запросе оно бы не использовалось. Если это строка, то врятли запрос верный получается, так как там условие по ссылке.
Во-вторых, если тип поля ввода на форме СправочникСсылка, то и вытаскивать надо ссылку, а не наименование. И лучше не в поле ввода вставлять, а в реквизит. Хотя тут зависит уже от задачи.
Да, всё отлично, свою ошибку понял, получилось :)
   Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   Письма.Ссылка,
        |   Письма.Номер,
        |   Письма.Дата,
        |   Письма.Контрагент.Ссылка,
        |   Письма.Контрагент.Наименование
        |ИЗ
        |   БизнесПроцесс.Письма КАК Письма
        |ГДЕ
        |   Письма.Ссылка = &ВыбранноеЗначение";

    Запрос.УстановитьПараметр("ВыбранноеЗначение", ВыбранноеЗначение);

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

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

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

      ёпта = ВыборкаДетальныеЗаписи.КонтрагентСсылка;
    ёпта1 = ВыборкаДетальныеЗаписи.Номер;
    ТЗ = Результат.Выгрузить();
   // ОткрытьЗначение(ТЗ);
   
    Если Результат.Выгрузить().Количество() > 1 Тогда
    Сообщить("чёт, мля, дубли есть :)");
            Возврат;
        Иначе
   
     
    //мля = Лев(ВыбранноеЗначение,14);
    //мля1 = Прав(мля,7);
   
    ЭтаФорма.ЭлементыФормы.Заказчик.Значение = ёпта;
   КонецЕсли; 

asdfr1

Цитата: asdfr1 от 24 янв 2012, 10:55
Цитата: has от 23 янв 2012, 10:01
ЦитироватьВыбранноеЗначение - это строка с номером письма, датой создания и т.д. по сути оно не нужно, по нему находится то что нужно.
Если оно не нужно, то в запросе оно бы не использовалось. Если это строка, то врятли запрос верный получается, так как там условие по ссылке.
Во-вторых, если тип поля ввода на форме СправочникСсылка, то и вытаскивать надо ссылку, а не наименование. И лучше не в поле ввода вставлять, а в реквизит. Хотя тут зависит уже от задачи.
Да, всё отлично, свою ошибку понял, получилось :)
   Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   Письма.Ссылка,
        |   Письма.Номер,
        |   Письма.Дата,
        |   Письма.Контрагент.Ссылка,
        |   Письма.Контрагент.Наименование
        |ИЗ
        |   БизнесПроцесс.Письма КАК Письма
        |ГДЕ
        |   Письма.Ссылка = &ВыбранноеЗначение";

    Запрос.УстановитьПараметр("ВыбранноеЗначение", ВыбранноеЗначение);

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

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

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

      ёпта = ВыборкаДетальныеЗаписи.КонтрагентСсылка;
    ёпта1 = ВыборкаДетальныеЗаписи.Номер;
    ТЗ = Результат.Выгрузить();
   // ОткрытьЗначение(ТЗ);
   
    Если Результат.Выгрузить().Количество() > 1 Тогда
    Сообщить("чёт, мля, дубли есть :)");
            Возврат;
        Иначе
   
     
    //мля = Лев(ВыбранноеЗначение,14);
    //мля1 = Прав(мля,7);
   
    ЭтаФорма.ЭлементыФормы.Заказчик.Значение = ёпта;
   КонецЕсли; 
Огромное спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск