Открытие формы в цикле

  1. 3 г. назад

    Господа, опять туплю: рисую внешний обработчик таб.части для документа в типовую УТ11.
    По каждой строчке таб.части надо формировать документ Сборка товаров. Причём записывать его не надо: надо заполнять и открывать форму.

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

    В результате, разумеется, открытая форма заполняется по данным последней строки таб.части. В УФ такое не прокатывает, в обычных формах прокатывало, а тут оно, видимо, обращается к одной и той же форме, перезаполняя её.

    Собственно, вопрос: что делать-то? Как этой гадости объяснить, что мне надо на каждую строчку новую форму открывать?

  2. Используй ключ уникальности

    Ответы: (3)
  3. Я не знаю задачу, но ОткрытьЗначение()

    Ответы: (4)
  4. ТеньД Используй ключ уникальности

    Делаю

    Форма = ПолучитьФорму("Документ.СборкаТоваров.ФормаОбъекта",,Новый УникальныйИдентификатор());
    

    и нифига. То же самое: открывается последняя форма

  5. (2) это как?
    Задача - нафигачить несколько новых документов и открыть их, не записывая.

  6. От я косоглазая скатина... Пропустил позицию параметра.
    Мои благодарности благородным донам :)

    Ответы: (6)
  7. Дуб От я косоглазая скатина... Пропустил позицию параметра.
    Мои благодарности благородным донам :)

    Дуб От я косоглазая скатина... Пропустил позицию параметра.
    Мои благодарности благородным донам :)

    напиши верный код пжл

    Ответы: (7)
  8. NewTesla напиши верный код пжл

    Форма = ПолучитьФорму("Документ.СборкаТоваров.ФормаОбъекта",,,Новый УникальныйИдентификатор());
    
    Ответы: (8)
  9. Дуб

    Форма = ПолучитьФорму("Документ.СборкаТоваров.ФормаОбъекта",,,Новый УникальныйИдентификатор());
    

    СПС! сколько денег я смогу заработать с этим кодом?

    Ответы: (10) (11)
  10. понятно куй кто скажет се самому!!!

  11. NewTesla сколько денег я смогу заработать с этим кодом?

    бесценно :)

  12. NewTesla сколько денег я смогу заработать с этим кодом?

    Очень правильная постановка вопроса.Одобряю.

    ЗЫ. Наваял инструмент для быстрого удаления документов по организациям. Для больших баз от которых надо отпочковать одну организацию бесценно. Осталось понять как на этом заработать.

    Ответы: (12) (13)
  13. ТеньД Очень правильная постановка вопроса.Одобряю.

    ЗЫ. Наваял инструмент для быстрого удаления документов по организациям. Для больших баз от которых надо отпочковать одну организацию бесценно. Осталось понять как на этом заработать.

    )))))))

  14. ТеньД Осталось понять как на этом заработать.

    мне так видится следующий этап: налаживание обмена между отпочковавшейся базой и базой-источником

    Ответы: (14)
  15. (13) У меня была мысль отпочковать базу через обмен по организации, но для мало-мальски больших баз это дохлый номер. На таких размерах файлов обмена парсеры тупо валятся. "Легальный" способ через пометку удаления и удаление помеченных проработал на отдельном серваке 3 недели. Потом его пристрелили ибо надоел. В итоге написал свой инструмент на t-sql. Очистка базы и пересчет итогов заняли меньше часа.

или зарегистрируйтесь чтобы ответить!