Имя: Пароль:
1C
 
Внешняя обработка заполнения тч на бсп с открытием формы
0 Noxvil
 
05.09.15
13:36
Добрый день.

БСП Бух 3.0 внешняя обработка заполнения тч с открытием формы для реализации товаров услуг.

Есть задача, мой ход действий такой:

1) выбираешь 2 параметра во внешней форме
2) на основании них получаешь данные
3) запихиваешь в тч объекта
4) обновляешь форму объекта, далее в цикле обходишь процедуры при изменении номенклатуры в тч товары реализации

По факту - мне надо на основании 2х параметров получить таблицу запроса, засунуть её в тч документа и вызвать функции при изменении номенклатуры и количества.

Я не понимаю, как правильно это методогически сделать.
Есть работающий вариант - где на клиент возвращаю массив строк и загружаю из в тч, но я считаю его неправильным... Т.к. данные должны передаваться на сервере в документобъект.

Так же я не понимаю, как можно вызвать процедуру при изменении строки на УФ и как получить открытую форму документа, чтобы ее вызвать.

Подскажите пожалуйста... Весь день ломал голову, пример демо из БСП для меня не понятен, справка в бсп очень скудная. Может быть есть у кого примеры...
1 jsmith82
 
05.09.15
13:41
Из формы документа вызываешь форму заполнения.
В форме заполнения генеришь таблицу значений. Помещаешь её во временное хранилище.
Оповещаешь родительскую форму об успешном исходе, отправляешь ей адрес временного хранилища.
В родительской форме из обработки оповещения вызываешь серверную процедуру, которая заполняет тч из тз.
2 Noxvil
 
05.09.15
13:51
(1) можете детально освятить 2 последних строчки...

Каким образом я могу оповестить форму?
Каким образом я могу прописать в форму обработку оповещения?

Разумеется без изменения конфигурации.
3 Noxvil
 
05.09.15
13:53
Ну или где об этом можно прочесть?

Сейчас мне хотя бы оповестить форму о том, что я изменил номенклатуру в строках тч
4 jsmith82
 
05.09.15
14:19
В интернете.
5 jsmith82
 
05.09.15
14:20
Посмотри в синтакс-помощнике процедуры ОповеститьОВыборе, ОбработкаОповещения, загугли в типовых примеры использования.
6 Noxvil
 
05.09.15
15:03
(1) Посмотрел как реализовано в УТ 11 "ЗагрузкаДанныхИзВнешнихФайлов", там у формы реализации есть процедура -         ВладелецФормы.ПолучитьЗагруженныеТоварыИзХранилища(ПоместитьТоварыВХранилище());

Но у меня в БП 3.0 такой нет...


"В родительской форме из обработки оповещения вызываешь серверную процедуру, которая заполняет тч из тз." - эта процедура расположена на форме или её надо как-то назначить, чтобы она происходила в модуле обработки?
7 jsmith82
 
05.09.15
15:19
Пишешь сам. Вызываешь из обработки оповещения. Обработка оповещения создаётся по клику.
8 Noxvil
 
05.09.15
15:26
(7) Вот такой код у меня заработал:

&НаКлиенте
Процедура ЗаполнитьТЧ(Команда)
        
    СтруктураВыбора = Новый Структура();
    СтруктураВыбора.Вставить("АдресОбработаннойТабличнойЧастиТоварыВХранилище", ПолучитьТаблицуПоСчету());
    СтруктураВыбора.Вставить("ИдентификаторВызывающейФормы", ВладелецФормы.УникальныйИдентификатор);
        
    Оповестить("ОбработанаТабличнаяЧастьТовары",СтруктураВыбора);
    
    ЭтаФорма.Закрыть();
        
КонецПроцедуры

Предполагаю, что необходимо самому перенести весь код "При изменении" для колонки Номенклатура в тч Товары.

Я прав?

Спасибо большое за методологию. Сейчас отработало быстро.
9 Noxvil
 
07.09.15
13:36
Коллеги, а подскажите, пожалуйста - а можно закидывать данные минуя обработку оповещения "ОбработанаТабличнаяЧастьТовары"? У меня в ней срабатывает код по установке счетов учета... Мне нужно, чтобы установленные мною счета учета не сбивались.