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

Создание нескольких документов на основе одного

Автор nscode, 08 дек 2015, 22:30

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

nscode

Добрый день!

1С 8.3, УФ.

Помогите пожалуйста в решении следующей задачи:
Есть документ "А", у которого в табличной части след. реквизиты : склад, материал, количество. Есть документ "Б", у которого есть реквизит склад в шапке, а в табличной части материал и количество. Необходимо по нажатию кнопки у документа "А" создать, но не записывать несколько документов "Б" и открыть их формы. Количество документов "Б" равно количеству строк в ТЧ документа "А".

Делаю так,
&НаКлиенте
Процедура Тест(Команда)
   
    Для Каждого Стр Из Объект.ТЧ Цикл
               
        Пар = Новый Структура;
        Пар.Вставить("Рек1",Стр.Склад);
        Пар.Вставить("Рек2",Стр.Материал);
        Пар.Вставить("Рек3",Стр.Количество);
       
        ФормаДок = ПолучитьФорму("Документ.Б.ФормаОбъекта",Пар,,Новый УникальныйИдентификатор());
        ФормаДок.Открыть();
       
    КонецЦикла;
   
КонецПроцедуры

в процедуре Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ловлю параметры и обрабатываю их.

Что-то мне подсказывает, что изобретаю велосипед, так как не использую стандартный механизм "СоздатьНаОсновании". Подскажите, может есть более оптимальный код решения задачи?

Спасибо.

Дмитрий Сенин

Я конечно с УФ мало знаком. Но что мешает просто создать документ Б, заполнить реквизиты и открыть форму?
Если такое частое действие, то создайте функцию в модуле менеджера документа Б для этого : СоздатьДокументБ(Склад, ПараметрыТЧ), которая вернет объект и открывайте его форму.

Gunner

И правда какой-то велосипед. А если строк в ТЧ будет 100? То 100 документов создавать, открывать их формы и потом каждую записывать, если необходимо?)):zebzdr:

cska-fanat-kz

Механизм "создать на основании" в данном случае не поможет, потому что ОбработкаЗаполнения() не будет знать какую из строк ТЧ основания использовать для заполнения.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

да, открывать кучу форм действительно не оптимально.
лучше чтобы открылась форма с таблицей и по кнопке заполнилась эта таблица ссылками на созданные документы.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Цитата: cska-fanat-kz от 09 дек 2015, 09:23Механизм "создать на основании" в данном случае не поможет, потому что ОбработкаЗаполнения() не будет знать какую из строк ТЧ основания использовать для заполнения.
Это если в качестве основания передавать документ. Но, вроде, передавать структуру в качестве основания никто не запрещал.

Цитата: cska-fanat-kz от 09 дек 2015, 09:24да, открывать кучу форм действительно не оптимально.
"Какие ваши доказательства"©  В смысле "почему"? Вроде стоит явное требование открывать всю кучу форм, если пользователю так удобнее.

nscode

Цитата: vitasw от 09 дек 2015, 10:49
Цитата: cska-fanat-kz от 09 дек 2015, 09:23Механизм "создать на основании" в данном случае не поможет, потому что ОбработкаЗаполнения() не будет знать какую из строк ТЧ основания использовать для заполнения.
Это если в качестве основания передавать документ. Но, вроде, передавать структуру в качестве основания никто не запрещал.

Цитата: cska-fanat-kz от 09 дек 2015, 09:24да, открывать кучу форм действительно не оптимально.
"Какие ваши доказательства"©  В смысле "почему"? Вроде стоит явное требование открывать всю кучу форм, если пользователю так удобнее.

Совершенно верно, задача так и стоит, открыть формы все этих документов, причем сами эти документы не должны быть записаны.

Ума не приложу, как можно это сделать более качественно.

Vladimir_Sh

nscode, согласно описанию ваш подход абсолютно корректный. Других путей решения я не вижу.
Если я Вам помог, нажми - Спасибо!

cska-fanat-kz

Цитата: vitasw от 09 дек 2015, 10:49"Какие ваши доказательства"©  В смысле "почему"? Вроде стоит явное требование открывать всю кучу форм, если пользователю так удобнее.

нет, любой каприз конечно! хотят формы - пусть будут формы.
я просто на секунду представил это зрелище когда строк действительно много...
до свидания оперативная память :trhregerhg:

Цитата: vitasw от 09 дек 2015, 10:49Это если в качестве основания передавать документ. Но, вроде, передавать структуру в качестве основания никто не запрещал.
внедряться в ОбработкаЗаполнения() ради этого?
трясись потом при каждом обновлении..
ИМХО проще программно создать и не мучиться...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Цитата: cska-fanat-kz от 09 дек 2015, 14:14внедряться в ОбработкаЗаполнения() ради этого?

Ээээээ, подписки?
Цитата: cska-fanat-kz от 09 дек 2015, 14:14ИМХО проще программно создать и не мучиться...

Открыть форму незаписанного документа "проще"????

Теги:

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

Рейтинг@Mail.ru

Поиск