|
Заполнение ТЧ не записанного документа | ☑ | ||
---|---|---|---|---|
0
Rastaman55
07.11.16
✎
18:10
|
В процессе выполнения обработки есть необходимость открытия формы нового документа с заполненными данными, но документ не должен быть записать изначально.. это уже решит пользователь на свое усмотрение.
Реквизиты смог заполнить таким образом СтруктураСвойств = Новый Структура("Организация, КонтрагентДебитор, КонтрагентКредитор", Организация, Контрагент, Контрагент); ФормаЗаписи = ПолучитьФорму("Документ.КорректировкаДолга.ФормаОбъекта"); ЗаполнитьЗначенияСвойств(ФормаЗаписи,СтруктураСвойств,"Организация, КонтрагентДебитор, КонтрагентКредитор",); ФормаЗаписи.Открыть(); Но не знаю как заполнять табличную часть в этом случае. |
|||
1
Cyberhawk
07.11.16
✎
18:25
|
В обработке заполнения (в модуле объекта) для документа предусмотрена инициализация ТЧ из данных заполнения?
|
|||
2
Rastaman55
07.11.16
✎
18:30
|
кажется получилось, попробовал сделать как при создании документа
НоваяСтрока = ФормаЗаписи.СуммыДолга.Добавить(); НоваяСтрока.Сумма = ... НоваяСтрока.ДоговорКонтрагента= ... и так для каждой строки. На форме появились данные. |
|||
3
Rastaman55
07.11.16
✎
18:39
|
Процедура ОбработкаЗаполнения(Основание)
Если ТипЗнч(Основание) = Тип("ДокументСсылка.КорректировкаДолга") Тогда ОрганизацияДебитор = ЗаполнениеДокументов.ПолучитьОрганизациюПоКонтрагенту(Основание.КонтрагентДебитор); Если НЕ ЗначениеЗаполнено(ОрганизацияДебитор) Тогда ОрганизацияКредитор = ЗаполнениеДокументов.ПолучитьОрганизациюПоКонтрагенту(Основание.КонтрагентКредитор); Если ЗначениеЗаполнено(ОрганизацияКредитор) Тогда Организация = ОрганизацияКредитор; КонтрагентДебитор = ЗаполнениеДокументов.ПолучитьКонтрагентаПоОрганизации(Основание.Организация); КонтрагентКредитор = Основание.КонтрагентДебитор; Иначе Возврат; КонецЕсли; Иначе Организация = ОрганизацияДебитор; КонтрагентКредитор = ЗаполнениеДокументов.ПолучитьКонтрагентаПоОрганизации(Основание.Организация); КонтрагентДебитор = Основание.КонтрагентКредитор; КонецЕсли; Для каждого СтрокаОснования Из Основание.СуммыДолга Цикл НоваяСтрока = СуммыДолга.Добавить(); НоваяСтрока.ВидЗадолженности = ?(СтрокаОснования.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская, Перечисления.ВидыЗадолженности.Кредиторская, Перечисления.ВидыЗадолженности.Дебиторская); ТекКонтрагент = ?(НоваяСтрока.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская, КонтрагентДебитор, КонтрагентКредитор); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Контрагент", ТекКонтрагент); Запрос.УстановитьПараметр("Организация", Организация); Запрос.Текст = " |ВЫБРАТЬ | Ссылка |ИЗ Справочник.ДоговорыКонтрагентов |ГДЕ Справочник.ДоговорыКонтрагентов.Владелец = &Контрагент | И Справочник.ДоговорыКонтрагентов.Организация = &Организация"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда НоваяСтрока.ДоговорКонтрагента = Выборка.Ссылка; Иначе ОбщегоНазначения.СообщитьОбОшибке("У контрагента " + ТекКонтрагент + " отсутствует договор на поставку с организацией " + Организация + "."); КонецЕсли; НоваяСтрока.КурсВзаиморасчетов = СтрокаОснования.КурсВзаиморасчетов; НоваяСтрока.КратностьВзаиморасчетов = СтрокаОснования.КратностьВзаиморасчетов; НоваяСтрока.Сумма = СтрокаОснования.Сумма; КонецЦикла; КонецЕсли; КонецПроцедуры Это в модуле документа, имеется код который обходит все строки Основание.СуммыДолга, с заполнением документа то проблем нету, но ведь я заполнял именно форму так что думаю не имеет значения есть инциализация в модуле объекта или нет. |
|||
4
Мимохожий Однако
07.11.16
✎
19:29
|
Ответь на (1). Какая конфигурация?
|
|||
5
Cyberhawk
07.11.16
✎
19:32
|
(3) Ну вот, код поддерживает заполнение ТЧ. Если ты правильно сформируешь массив структур, то код в (3) штатно отработает и форму ты сможешь открывать через "ОткрытьФорму"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |