|   |   | 
| 
 | Переделка процедуры из модуля формы в модуль документа | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Кто дал задание?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |