Имя: Пароль:
1C
1С v8
ФормаВыбораДокумента с возвратом Выбора
0 Csar
 
01.03.13
15:31
Товарищи, добрый день.
У меня имеется цикл, в котором создаются строки ОперацииБух, СчетДт = 75.05.П (Бухня). там есть субконто - расчетныйДокумент. Вот его то мне и надо подбирать по методу ЛИФО. Алгоритм пытается его подобрать, но в некоторых случаях не находит НЕОБХОДИМЫХ и пользователю надо предложить выбрать любой ему угодный документ. Для этого вызывается окошко с выбором документа:
УправлениеВзаиморасчетами.ВыборРасчетногоДокумента()
Проблема в том, что форма открывается "ФормаВыбора.Открыть();", а т.к. у меня цикл, то программа открывает форму и проскакивает дальше. Модально я открывать не могу, т.к. Пользователь хочет, перед тем как указать документ из списка, посмотреть в самой базе в журналах (т.к. в окошке выбора не отображется ряд параметров). Подскажите, пожалуйста, что можно сделать?
1 Csar
 
01.03.13
15:32
Вот код в модуле УправлениеВзаиморасчетами
Процедура ВыборРасчетногоДокумента(СтруктураПараметров,Элемент,ТипыДокументов) Экспорт

   ФормаВыбора = Документы.ДокументРасчетовСКонтрагентом.ПолучитьФорму("ФормаВыбора",Элемент);

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

   ФормаВыбора.Открыть();

КонецПроцедуры
2 НЕА123
 
01.03.13
15:35
как вариант - таблицу невыбранных сформировать и дать пользователю на заполнение.
3 Csar
 
01.03.13
15:37
(2) что значит дать на заполнение?
PS вы предлагаете отказаться от типовой процедуры и сделать свою форму, где буду формировать список? так все равно если не модально открывать, то программа пролетит его.
4 Csar
 
01.03.13
15:51
(2) Надо как то ждать ответа от пользователя (пока выберет документ), дав при этом полазить по базе, что бы определеиться с выбором.