Вход | Регистрация
 

Заполнение табличной части (((

Заполнение табличной части (((
Я
   lamme
 
04.03.20 - 10:37
БУХ 8,3 3.0
Внешняя обработка по заполнению табл части.
Цель - в документ Х открыть выбор другого типа документа У и по нему заполнить табличну. часть исходного документа.
Вроде просто.


У обработки - реквизит обработки - ОбъектНазначения - это документ объект типа ДокументОбъект.ОтчетОРозничныхПродажах

Из документа ОтчетОРозничныхПродажах открываю заполнение табл частей - выбирается документ тот что мне нужен



&НаКлиенте
Процедура ВыбратьЭлементДокументаКонец(Значение, ДопПараметры) Экспорт
    Если Значение = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    
       ВыполнитьЗаполнениеНаСервере(Значение);
    
    //КопироватьДанныеФормы(ИсхДокумент, ВладелецФормы.Объект);

КонецПроцедуры


&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
        
    ПараметрыФормы  = Новый Структура("РежимВыбора, ЗакрыватьПриВыборе", Истина, Истина);
    ОбработкаВыбора = Новый ОписаниеОповещения("ВыбратьЭлементДокументаКонец", ЭтаФорма,
        Новый Структура("Исхдокумент", ОбъектыНазначенияМассив[0]));
        
    ЭтотОбъект.ОбъектНазначения     = ОбъектыНазначенияМассив[0];
    
    
    ОткрытьФорму("Документ.ОтчетОРозничныхПродажах.ФормаВыбора", ПараметрыФормы,
        ЭтаФорма, , , , ОбработкаВыбора);
    
    
    
КонецПроцедуры



и вот тут вот какой то прикол

&НаСервере
Функция ВыполнитьЗаполнениеНаСервере(ВыбранныйДокумент)
    ЭтотОбъект.ОбъектНазначения.Продукция.Очистить(); - Объект недоступен для изменения
//    Возврат ОбъектЗаполнения;
КонецФункции

предполагаю = что там ссылка на объект

проверяю

&НаСервере
Функция ВыполнитьЗаполнениеНаСервере(ВыбранныйДокумент)

Если ТипЗнч(ЭтотОбъект.ОбъектНазначения) = тип("ДокументСсылка.ОтчетПроизводстваЗаСмену") тогда
        сообщить ("1");
    иначе    
        сообщить ("2");
    конецесли;    

конецфункции


Возвращает 1 - т.е. это всяко ссылка.
а где прошло преобразование из документобъект в ссылку ?
   Cyberhawk
 
1 - 04.03.20 - 10:46
Меняй не объекты БД в памяти, а данные формы
   lamme
 
2 - 04.03.20 - 10:46
пытаюсь ..
и заблудился ..
   Cyberhawk
 
3 - 04.03.20 - 10:47
В документации по нужной подсистеме БСП есть примеры
   d4rkmesa
 
4 - 04.03.20 - 10:52
ЭтотОбъект.ОбъектНазначения.Продукция.Очистить()
поменяй на
Объект.ОбъектНазначения.Продукция.Очистить()
   D_E_S_131
 
5 - 04.03.20 - 10:57
(4) У ссылки ТЧ очищать?
   lamme
 
6 - 04.03.20 - 10:58
а тогда вопрос

обработка начинает свою жизнь из процедуры формы
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт


и где тут -в этих параметрах - данныеформы ?
   D_E_S_131
 
7 - 04.03.20 - 11:00
&НаСервере
Функция ВыполнитьЗаполнениеНаСервере(ВыбранныйДокумент)

    ДокОбъект = РеквизитФормыВЗначение("Объект");

    ДокОбъект.Продукция.Очистить();

КонецФункции
   D_E_S_131
 
8 - 04.03.20 - 11:01
...и после всех очисток/заполнений в конце:

ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
   Cyberhawk
 
9 - 04.03.20 - 11:30
(7) (8) Такое можно рекомендовать только от безысходности

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.