Имя: Пароль:
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
Коллеги, а подскажите, пожалуйста - а можно закидывать данные минуя обработку оповещения "ОбработанаТабличнаяЧастьТовары"? У меня в ней срабатывает код по установке счетов учета... Мне нужно, чтобы установленные мною счета учета не сбивались.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший