Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Форма выбора из запроса
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bereznoy
Создал новый документ в котором после выбора контрагента доступно поле выбора документа расчетов (РеализацияТоваровИуслуг), но при нажатии выбора документов выполняется запрос в котором по данному контрагенту формируется список документов по которым есть долг, вообщем то здесь и застопорился, вот что у меня получается, вернее не получается (

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

    СписокДокументов = Новый СписокЗначений;
//   СписокДокументов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить());

  //  ФормаВыбора = ПланыСчетов.Хозрасчетный.ПолучитьФормуВыбора(, Элемент);
    //ЭлементОтбораСсылка = ФормаВыбора.Отбор.Ссылка;
    //Если ЭлементОтбораСсылка <> Неопределено Тогда
     //   ЭлементОтбораСсылка.ВидСравнения  = ВидСравнения.ВСписке;
      //  ЭлементОтбораСсылка.Значение      = СписокДокументов;
       // ЭлементОтбораСсылка.Использование = Истина;
    //КонецЕсли;
    
    ФормаВыбора.ЭлементыФормы.Список.НастройкаОтбора.Ссылка.Доступность = Ложь;
    ФормаВыбора.Открыть();
    СтандартнаяОбработка = Ложь;
    
КонецПроцедуры




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

    СписокДокументов = Новый СписокЗначений;
    СписокДокументов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Номер"));

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



Вот вроде бы все хорошо, но надо запретить доступность на редактирование номера в формевыбора
logist
ВыбратьСтроку();

не предлагать?
bereznoy
Цитата(logist @ 25.11.12, 1:38) необходимо зарегистрироваться для просмотра ссылки
ВыбратьСтроку();

не предлагать?

Извиняюсь, не понял ,в моем документе нет табличной части, вот где закоментировнно там как раз не получается перед открытием формы запретить доступность в отборах к "Номер"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.