|
Открытие не записанного документа в УФ | ☑ | ||
---|---|---|---|---|
0
mik_mihka
05.03.19
✎
17:36
|
Здравствуйте, с управляемыми формами работать начал недавно, по этому прошу не судить.
Бухгалтерия 3.0 Делаю обработку внешнюю, которая делает выборку из базы, создает документ "ОперацияБух". Документ открывается но не заполненный, если я его предварительно записываю - от так же открывается не заполненным,но... если его закрыть и снова открыть в журнале документов - он заполнен как надо. Как мне открыть уже заполненный но НЕ ЗАПИСАННЫЙ документ? &НаКлиенте Процедура Заполнить (Команда) ФормаПодчиненного = ПолучитьФорму("Документ.ОперацияБух.ФормаОбъекта"); ОбъектФормы = ФормаПодчиненного.Объект; Пересчет(ОбъектФормы,Организация,Склад,Счет,Дата); КопироватьДанныеФормы(ОбъектФормы, ФормаПодчиненного.Объект); //ФормаПодчиненного.Модифицированность = Истина; ФормаПодчиненного.Открыть(); КонецПроцедуры &НаСервере Процедура пересчет(ОбъектФормы,Организация,Склад,Счет,Дата) // Здесь выборка данных в запросе..... Результат = Запрос.Выполнить().Выбрать(); //НовыйДокумент = Документы.ОперацияБух.СоздатьДокумент(); Док = ДанныеФормыВЗначение(ОбъектФормы, Тип("ДокументОбъект.ОперацияБух")); Док.Дата = КонецДня(Дата-1); Док.Организация = Организация; Док.Ответственный = ПараметрыСеанса.ТекущийПользователь; Док.Комментарий = "Обработка партий_суммы "; НомерСтр = 0; Сумма = 0; Пока Результат.Следующий() Цикл НовоеДвижение = Док.Движения.Хозрасчетный.Добавить(); НовоеДвижение.СчетДт = Счет_себест.Ссылка; НовоеДвижение.СчетКт = Счет; НовоеДвижение.СубконтоДт.НоменклатурныеГруппы = Результат.ГруппаНом.Ссылка; НовоеДвижение.СубконтоКт.Номенклатура = Результат.Номенкл; НовоеДвижение.СубконтоКт.Склады = Результат.Субконто2; НовоеДвижение.СубконтоКт.Партии = Результат.Субконто3; НовоеДвижение.Сумма = Результат.суммаОстаток; НовоеДвижение.СуммаНУДт =Результат.суммаОстаток; НовоеДвижение.СуммаНУКт =Результат.суммаОстаток; СчетчикСтрок = НомерСтр+1; Сумма = Сумма + Результат.суммаОстаток; КонецЦикла; Док.Движения.Хозрасчетный.Записывать = Истина; Док.СуммаОперации = Сумма; Док.Записать(); Сообщить(Док); ЗначениеВДанныеФормы(Док,ОбъектФормы); КонецПроцедуры |
|||
1
OldCondom
05.03.19
✎
17:42
|
Движение без регистратора хочешь?
|
|||
2
OldCondom
05.03.19
✎
17:43
|
А не в УФ получалось, да?
|
|||
3
DrWatson
05.03.19
✎
17:51
|
(0) А что за КопироватьДанныеФормы? Объект сам в себя копируется?
Остальные реквизиты при открытии заполнены? |
|||
4
d4rkmesa
05.03.19
✎
18:39
|
(0) Хе-хе, ну посмотрите что там из методов формы вызывается в ПриСозданииНаСервере. Может обойдется малой кровью. В новых конфах зачастую приходится колхозить расширение с процедурой, где вызываются все доп. функции, заполняющие реквизиты формы.
|
|||
5
singlych
05.03.19
✎
18:43
|
ФормаПодчиненного = ПолучитьФорму("Документ.ОперацияБух.ФормаОбъекта");
... ФормаПодчиненного.Открыть(); В общем случае это все фуфло, потому что много чего делается в ПриСозданииНаСервере, которое срабатывает при ПолучитьФорму, а в это время объект еще пустой. А что-то вообще при чтении, которое сработает только если объект не новый. |
|||
6
Мимохожий Однако
05.03.19
✎
18:46
|
||||
7
Бертыш
05.03.19
✎
18:53
|
(4) Это ты просто данный документ не знаешь, вот и говоришь. Там тч тупо отображение движений данного отдельного регистратора. Нет регистратора нет и движений.
(0) Наваяй свою форму или свою тч в существующую форму куда будешь складывать будущие движения для отображения и будет тебе счастье |
|||
8
Сияющий в темноте
05.03.19
✎
21:29
|
Очень хорошая идея-хранить записи корректировки регистров в самих регистрах,а документ нужен только для того,чтобы был регистратор.
но,табличные части же где то живут,значит,можно попробовать просто их заполнить,как будто данные в них прочитались из регистра. |
|||
9
mik_mihka
06.03.19
✎
07:04
|
(3) Да, остальные реквизиты заполнены, только нет движений в ТЧ.
(6) - мне нужно до записи документа - его открыть заполненным (ссылки ещё нет) (7) - так данные есть в "Док.Движения.Хозрасчетный",после цикла а потом они не копируются в переданную с клиента форму (хотя другие реквизиты копируются), если их только сразу после цикла не записать. |
|||
10
sqr4
06.03.19
✎
09:08
|
(9) Предлагаю в расширение запилить алгоритм заполнения. А в обработке открывать форму передавая параметр заполнения. Тогда сначала будет заполнены все реквизиты объекта, а затем при открытии формы отработают служебные процедуры по заполнению остальных реквизитов
|
|||
11
mik_mihka
06.03.19
✎
09:51
|
(10) Есть пример?
|
|||
12
RomanYS
06.03.19
✎
09:57
|
В типовой БП3 есть код
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) .... Если Параметры.Ключ.Пустая() Тогда ..... ЗаполнитьДвижения(Параметры.ЗначенияЗаполнения); КонецЕсли; ... КонецПроцедуры Никаких расширений не надо, просто разобраться с параметрами |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |