Имя: Пароль:
1C
1С v8
Внешняя обработка заполнения таб части документа.
0 Любопытная
 
10.10.12
06:15
Доброе время суток!
Возникли трудности с созданием внешней обработки заполнения ТЧ документа, помогите, пожалуйста.
Задача: документ типа акт сверки, соответственно есть две колонки с остатками - одну заполняем данными из БД, вторую - данными из внешнего xml файла. Заполнение данных из xml и надо выполнять внешней обработкой.
За основу взяла вот эту работу http://infostart.ru/public/84119/
Споткнулась вот на чем: если у документа табличная часть еще не заполнена, ее надо заполнить данными из БД. Процедура заполнения таб части лежит в модуле объекта, но вызывается из формы на сервере, обратиться к ней проблем не составило, процедуры документа отрабатываются нормально. Но получается, что мне надо вернуть уже заполненную ТЧ на эту же форму и заново получить объект с формы, чтобы работать с ним дальше.
Не могу понять, как это сделать.
1 Гефест
 
10.10.12
06:30
надо ли говорить, что без фото не взлетит
2 kosts
 
10.10.12
06:33
(0) > заново получить объект с формы, чтобы работать с ним дальше.
Не нужно заново ничего получать.
Используй один и тот же объект, который пришел в твою обработку.
3 Любопытная
 
10.10.12
06:34
(1) Надо ли говорить, что по полоске под ником должно быть понятно, что мое фото (и не одно) видели уже все, кто хотел.
4 kosts
 
10.10.12
06:37
(2) При необходимости, конечно же, можно получить и новый объект для получения данных из БД.
Которые затем перекопируются в объект который уже есть.
5 Любопытная
 
10.10.12
06:39
(2) Я вот думаю - как это лучше сделать. На данный момент команда выполняется на клиенте, в команде получаем форму открытого документа, от формы используется объект (который Форма.Объект), а это не сам документ а данные формы. Соответственно, если я вызову заполнение ТЧ, данные формы изменятся, значит мне надо получить уже обновленный объект и обрабатывать его дальше - заполнять данными из файла.
Как-то это слишком накручено.
Что если команду выполнять на сервере, обрабатывать объект, полученный через ссылку, а не через форму, а потом уже в форму загонять измененный объект?
6 kosts
 
10.10.12
06:45
(5) > обрабатывать объект, полученный через ссылку, а не через форму, а потом уже в форму загонять измененный объект?
Новый объект нельзя использовать?
7 Любопытная
 
10.10.12
06:51
(6) Почему нельзя? Можно. Только не получается - ТЧ остается пустой. При этом, если после вызова процедуры Форма.ЗаполнитьТЧНаСервере() вставить заведомо ошибочный код, чтобы обработка вывалилась, то ТЧ на форме заполнится. А если команда отрабатывает полностью, до КопироватьДанныеФормы(НовыйОбъект,Форма.Объект), то ТЧ остается пустой, даже если не вносить никаких изменений.
Из этого я сделала вывод, что проблема где-то на стадии переполучения объекта с формы. Я не права?
8 kosts
 
10.10.12
06:57
(7) Не используй форму что бы заполнять. Отследи какая процедура вызывается из Форма.ЗаполнитьТЧНаСервере()
и вызывай ее непосредственно.
9 kosts
 
10.10.12
06:58
Это обычные или управляемые формы ?
10 Любопытная
 
10.10.12
07:00
(8) Вызывается процедура из модуля объекта, заполняется ТЧ объекта, потом данные объекта кидаются обратно на форму. Я не могу вызвать процедура из модуля объекта на клиенте, потому что нет на клиенте объекта. Поэтому и думаю переделать на ВыполнениеКомандыНаСервере, работать со ссылкой на документа, а не с данными формы.
11 Любопытная
 
10.10.12
07:04
(9) Конечно же это управляемые формы. Работа с внешними обработками на основе БСП
12 Любопытная
 
10.10.12
11:51
В общем, сделала все по-своему: на клиенте только получаю файл и запихиваю его во временное хранилище, все остальное делается на сервере в модуле обработки. Обработка изменяет данные объекта, а не формы.
В конце сохраняем объект и получаем документ со всеми изменениями
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой