|
Переделка процедуры из модуля формы в модуль документа | ☑ | ||
---|---|---|---|---|
0
sidalexsandr
30.07.18
✎
13:16
|
Есть процедура, которую требуется вызывать при копировании документа.
Изначально процедура была в модуле формы документа. Процедура выполняет запись в регистр сведений. Вот текст процедуры: НаборЗаписей = РегистрыСведений.NKE_Спецификация.СоздатьНаборЗаписей(); НаборЗаписей.Прочитать(); ФормаНаборЗаписей = НаборЗаписей.ПолучитьФорму("ФормаНабораЗаписей",Этаформа); ФормаНаборЗаписей.ЭлементыФормы.РегистрСведенийНаборЗаписей.ОтборСтрок.Документ.Значение = ЭтотОбъект.Ссылка; ФормаНаборЗаписей.ЭлементыФормы.РегистрСведенийНаборЗаписей.ОтборСтрок.Документ.Использование = Истина; ФормаНаборЗаписей.ЭлементыФормы.РегистрСведенийНаборЗаписей.ОтборСтрок.НомерСтр.Значение = ТекущаяСтрока.КлючСтроки; ФормаНаборЗаписей.ЭлементыФормы.РегистрСведенийНаборЗаписей.ОтборСтрок.НомерСтр.Использование = Истина; ФормаНаборЗаписей.Номенклатура = ТекущаяСтрока.Номенклатура; //Не разделяем конфигурацию по хар-кам //ФормаНаборЗаписей.ХарактеристикаНоменклатуры = ТекущаяСтрока.ХарактеристикаНоменклатуры; ФормаНаборЗаписей.ОткрытьМодально(); СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); Выдает ошибки: Документ.ЗаказПокупателя.МодульОбъекта(2738,71)}: Переменная не определена (Этаформа) ФормаНаборЗаписей = НаборЗаписей.ПолучитьФорму("ФормаНабораЗаписей",<<?>>Этаформа); (Проверка: Толстый клиент (обычное приложение)) {Документ.ЗаказПокупателя.МодульОбъекта(2751,26)}: Переменная не определена (ЭлементыФормы) СтрокаТабличнойЧасти = <<?>>ЭлементыФормы.Товары.ТекущиеДанные; (Проверка: Толстый клиент (обычное приложение)) |
|||
1
sidalexsandr
30.07.18
✎
13:17
|
Я понимаю что в модуле документа не доступны формы, но не знаю как мне исправить приведённую выше процедуру.
|
|||
2
Джинн
30.07.18
✎
13:18
|
(1) Не перенести код из модуля в модуль, а переписать его, сохранив бизнес-логику. Ваш Кэп.
|
|||
3
Asmody
30.07.18
✎
13:19
|
(1) Для начала нужно понять, что этот код делает.
|
|||
4
sidalexsandr
30.07.18
✎
13:20
|
(3) Пишет в регистр сведений, так сказал программист написавший эту процедуру.
|
|||
5
Diman000
30.07.18
✎
13:20
|
Если процедуру перенести в модуль объекта с таким пассажем
ФормаНаборЗаписей.ОткрытьМодально(); то беда боюсь ожидает вас... |
|||
6
Джинн
30.07.18
✎
13:21
|
(4) Писать в регистр при копировании - это какое-то очень уж нетрадиционное действие.
|
|||
7
Asmody
30.07.18
✎
13:22
|
(4) Он тебе наврал.
|
|||
8
sidalexsandr
30.07.18
✎
13:23
|
(7) А что тогда делает процедура?
|
|||
9
Asmody
30.07.18
✎
13:26
|
(8) Первые 9 строк открывают форму набора записей с установленным отбором.
Следующие три строки рассчитывают сумму и НДС выделенной строки таб.части Товары |
|||
10
sidalexsandr
30.07.18
✎
13:47
|
(9) Большущее спасибо.
|
|||
11
AlexTim03
30.07.18
✎
14:40
|
Асмоди - красавчик
(10) И что тебе дает теперь обладание этим знанием? |
|||
12
sidalexsandr
30.07.18
✎
14:45
|
(11) Буду теперь искать где происходила запись в регистр сведений
|
|||
13
sidalexsandr
30.07.18
✎
14:46
|
Теперь ещё дали задание: перенести эту процедуру в другой документ. Процедура выдает ошибку: {Документ.ВнутреннийЗаказ.Форма.БП_ФормаДокумента.Форма(236)}: Поле объекта не обнаружено (КлючСтроки)
ФормаНаборЗаписей.ЭлементыФормы.РегистрСведенийНаборЗаписей.ОтборСтрок.НомерСтр.Значение = ТекущаяСтрока.КлючСтроки; |
|||
14
sidalexsandr
30.07.18
✎
16:08
|
Подниму
|
|||
15
hhhh
30.07.18
✎
16:33
|
(13) ну проверь, может в другом документе ты забыл добавить этот реквизит КлючСтроки?
|
|||
16
Cyberhawk
30.07.18
✎
16:59
|
Кто дал задание?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |