Имя: Пароль:
1C
 
Открытие обычной формы 81.
0 pro3ri
 
25.12.15
14:36
Добрый день!
Делаю возможность подбора в форме документа. При нажатии на кнопку Подбор:

Процедура ПодборНажатие(Элемент)
    Форма = ПолучитьОбщуюФорму("ФормаЗаказыПоставщикам",ЭтаФорма);
    Форма.Открыть();
    Форма.ЗакрыватьПриВыборе = Ложь;
КонецПроцедуры

Открылась новая форма (форма заказов).

Тут код:


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

Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    Форма = ПолучитьОбщуюФорму("ФормаЗаказа",ЭтаФорма);
    Форма.Открыть();
    Форма.Активизировать();
КонецПроцедуры

При выборе открывается 3 форма (форма номенклатуры). Она прячется за формой заказов. Как ее вывести вперед?
https://s.mail.ru/4RWTzeLFcFH3/img-2015-12-25-16-36-24.png
1 palpetrovich
 
25.12.15
14:48
(0) а куда стандартный подбор дел? чем он неустраивает?

зы: клюшки все сломал? :)
2 palpetrovich
 
25.12.15
14:51
+(1) запрос зачетный :)
3 pro3ri
 
28.12.15
14:19
В конечном итоге решено было сделать 2 формы (Основная и форма вызова).

В основной (по кнопке):
Процедура ПодборНажатие(Элемент)

    Форма = ПолучитьОбщуюФорму("ФормаЗаказыПоставщикам",ЭлементыФормы.ТабличноеПоле1);
    Форма.Открыть();
    Форма.ЗакрыватьПриВыборе = Ложь;
    Форма.МножественныйВыбор = Истина;
КонецПроцедуры

Процедура ТабличноеПоле1ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    Строка = ДокументОбъект.Товары.Добавить();
    Строка.Номенклатура = ВыбранноеЗначение.Номенклатура;
    Строка.Количество = ВыбранноеЗначение.Количество;
    Строка.ЗаказПоставщику = ВыбранноеЗначение.ЗаказПоставщику;
    Строка.Коэффициент = 1;
    Строка.ЕдиницаИзмерения = Строка.Номенклатура.ЕдиницаХраненияОстатков;
    Строка.Цена = ВыбранноеЗначение.Цена;
    Строка.Сумма = ВыбранноеЗначение.Сумма;
    
    
КонецПроцедуры


В форме подбора:

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

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

    ОповеститьОВыборе(Элемент.ТекущаяСтрока);
КонецПроцедуры

(1) что-то стандартный показался оч запутан..
4 pro3ri
 
28.12.15
14:20
Вопрос в том, чтобы передать с формы Владельца дату документа, Это 8.1 последний релиз.
5 ejikbeznojek
 
28.12.15
14:38
Введи реквизит формы МояДата
И перед форма.открыть()
Пиши форма.МояДата = ТакаяТоДата
6 pro3ri
 
28.12.15
14:53
(5)     Форма = ПолучитьОбщуюФорму("ФормаЗаказыПоставщикам",ЭлементыФормы.ТабличноеПоле1);
    Форма.Дата = ДокументОбъект.Дата;
    Форма.Открыть();

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЗаказыПоставщикамОстатки.ЗаказПоставщику,
                   |    ЗаказыПоставщикамОстатки.Номенклатура,
                   |    ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Количество,
                   |    ЗаказыПоставщикамОстатки.Цена,
                   |    ЗаказыПоставщикамОстатки.СуммаУпрОстаток КАК Сумма
                   |ИЗ
                   |    РегистрНакопления.ЗаказыПоставщикам.Остатки(&Момент, ) КАК ЗаказыПоставщикамОстатки";
                  
    Запрос.УстановитьПараметр("Момент", ЭтаФорма.Дата);
    Выборка = Запрос.Выполнить().Выгрузить();

спасибо!