Всем хорошего настроения!
Парни, извините, может вопрос ламерский. Восьмерку только осваиваю.
В своей обработке заполняю документы "Реализация товаров и услуг"
данными выгребенными из базы данных SQL. Возникла необходимость
выполнить Процедуру формы документа, но так как будто она выполнилась
с формы документа, "в контексте формы документа" кажется так это правильно
называется. Вопрос: как ее так вызвать?
Может ткните пальцем туда, где про это написано.
Заранее благодарен!
Если обращаться к документу в контексте объекта или ссылки то никак.
Форма = Ссылка.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
Форма.МояЛюбимаяПроцедурочка() // в форме должна быть объявлена как экспортная
Форма.Закрыть();
Уважаемый Vofka, то что Вы предложили как раз то, что мне нужно, но
у меня возникла сложность следующего характера, я теперь не знаю
как обратиться к этому элементу формы.
Номенклатура=Справочники.Номенклатура;
Ном=Номенклатура.НайтиПоРеквизиту("ProdID", Rs2.Fields("ProdID").Value);
Если Ном = Номенклатура.ПустаяСсылка() Тогда
Сообщить("Номенклатура не найдена!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
Иначе
Сообщить(Ном);
ОбъектДок=НовДок.Ссылка.ПолучитьОбъект();
НоваяСтрока=ОбъектДок.Товары.Добавить();
НоваяСтрока.Номенклатура=Ном;
Форма = НовДок.Ссылка.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
Форма.ТоварыНоменклатураПриИзменении(Форма.Товары.Номенклатура); // Проблемная строка
Форма.Закрыть();
ОбъектДок.Записать();
КонецЕсли;
Ну и не будет конечно же работать. Откуда система знает какую строчку пересчитать? Что у вас находится в ТоварыНоменклатураПриИзменении() ?
Процедура ТоварыНоменклатураПриИзменении(Элемент) Экспорт
ПриИзмененииНоменклатурыТовары(Элемент);
КонецПроцедуры // ТоварыНоменклатураПриИзменении()
Процедура ПриИзмененииНоменклатурыТовары(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
// Выполнить общие действия для всех документов при изменении номенклатуры.
ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТабличнойЧасти, "Товары", ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете);
ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти);
// Рассчитать реквизиты табличной части.
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
УчетСерийныхНомеров.ПроверитьСерийныеНомера(СтрокаТабличнойЧасти, ЭтотОбъект);
// Ввод состава набора
УправлениеЗапасами.ДобавитьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект);
КонецПроцедуры // ПриИзмененииНоменклатурыТовары()
ТоварыНоменклатураПриИзменении(Элемент) Экспорт
ПриИзмененииНоменклатурыТовары(Элемент)
ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуТабЧасти(НоваяСтрока, НовДок);
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua