|   |   | 
| 
 | Как по максимуму оптимизировать процедуру при изменений? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Айрат_116 28.08.19✎ 09:53 | 
        Здравствуйте. Помогите пжл, Как можно получше сделать эту задачу? (Всё работает, но нужен другой вариант)
 Слышал что можно как то через "ОбщийМодуль" сделать это. &НаКлиенте Процедура ОсновныеСредстваПриИзменении(Элемент) ОсновныеСредстваПриИзмененииНаСервере(); КонецПроцедуры &НаСервере Процедура ОсновныеСредстваПриИзмененииНаСервере() Если Не ЗначениеЗаполнено(Объект.ОсновноеСредство) Тогда ИнвентарныйНомерОС = ""; Возврат; КонецЕсли; ИнвентарныйНомерОС = Объект.ОсновноеСредство.Код; КонецПроцедуры | |||
| 1
    
        saaken 28.08.19✎ 10:12 | 
        Выведи на форму ИнвентарныйНомерОС  не как отдельную переменную, а как свойство объекта.
 И весь код можешь убрать. | |||
| 2
    
        GGDots 28.08.19✎ 10:14 | 
        Либо вообще убери серверную процедуру, и делай все на клиенте, получая значения через точку на клиенте через процедуру "ПолучитьЗначениеРеквизита" общего модуля (что то типа ОбщегоНазначенияСервер.ПолучитьЗначениеРеквизита)     | |||
| 3
    
        dezss 28.08.19✎ 10:15 | 
        ИнвентарныйНомерОС
 ПутьКДанным Объект.ОсновноеСредство.Код. | |||
| 4
    
        Айрат_116 28.08.19✎ 10:16 | 
        Спасибо за варианты щас попробую     | |||
| 5
    
        dezss 28.08.19✎ 10:17 | 
        (2) В моей древней БСП это в ОбщегоНазначения. И там нет вызова сервера.
 (0) Можно еще Процедура ОсновныеСредстваПриИзмененииНаСервере() сделать функцией &НаСервереБезКонтекста и передавать туда Объект.ОсновноеСредство. А возвращать уже сам код через ОбщегоНазначения.ЗначениеРеквизита объекта. А на клиенте ИнвентарныйНомерОС = ОсновныеСредстваПриИзмененииНаСервере(Объект.ОсновноеСредство). | |||
| 6
    
        Айрат_116 28.08.19✎ 10:37 | 
        Я еще пробывал запросом сделать. Но не получилось(
 ВЫБРАТЬ тн_ДефектнаяВедемость.ОсновноеСредство.Код КАК ОсновноеСредствоКод ИЗ Документ.тн_ДефектнаяВедемость КАК тн_ДефектнаяВедемость ГДЕ тн_ДефектнаяВедемость.Ссылка = &Ссылка | |||
| 7
    
        dezss 28.08.19✎ 10:40 | 
        (6) не получится, если было свойство изменено, но док еще не записан в базу. Тут запрос надо было бы делать к справочнику (или че это там у вас) ОсновноеСредство.     | |||
| 8
    
        Айрат_116 28.08.19✎ 10:46 | 
        (7) Щас попробую     | |||
| 9
    
        dezss 28.08.19✎ 10:51 | 
        (8) И не делай в таких случаях контекстных серверных.     | |||
| 10
    
        Айрат_116 28.08.19✎ 10:56 | 
        (9) Хорошо, буду знать.     | |||
| 11
    
        Айрат_116 28.08.19✎ 11:07 | 
        (9) Вот так сделал. все равно пусто.
 &НаКлиенте Процедура ОсновныеСредстваПриИзменении(Элемент) Док = Объект.ОсновноеСредство; ОсновныеСредстваПриИзмененииНаСервереБезКонтекста(Док); КонецПроцедуры &НаСервереБезКонтекста Функция ОсновныеСредстваПриИзмененииНаСервереБезКонтекста(Док) Запрос = Новый Запрос; Запрос.Текст = " | ВЫБРАТЬ | ОсновныеСредства.Код КАК Код |ИЗ | Справочник.ОсновныеСредства КАК ОсновныеСредства |ГДЕ | ОсновныеСредства.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",Док); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат ""; КонецЕсли; | |||
| 12
    
        Айрат_116 28.08.19✎ 11:12 | 
        Результат запроса точнее пусто.     | |||
| 13
    
        dezss 28.08.19✎ 11:23 | 
        (11) А если не пустой результат запроса, то что возвращаешь?
 И не мешало бы присвоить возвращаемое значение: ИнвентарныйНомерОС = ОсновныеСредстваПриИзмененииНаСервереБезКонтекста(Док); | |||
| 14
    
        unregistered 28.08.19✎ 11:27 | 
        (0) ОФФ. Если у вас какая-либо типовая конфигурация (например БП), то вы должны знать, что инвентарный номер ОС и код элемента справочника ОС - это два разных понятия и их значения могут различаться (и очень часто реально различаются).
 Просто на всякий случай спросил. | |||
| 15
    
        Айрат_116 28.08.19✎ 11:34 | 
        (13) Всё получилось. Спасибо     | |||
| 16
    
        Айрат_116 28.08.19✎ 11:36 | 
        (14) Хорошо, Проверю это, спасибо.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |