|   |   | 
| 
 | Необходимо выводить значения измененых реквизитов "ЧтоБыло-ЧтоСтало" 8.2 упр. пр | ☑ | ||
|---|---|---|---|---|
| 0
    
        ser-korvin 27.03.12✎ 16:08 | 
        В обычном приложении в процедуре ПриОткрытии() в ранее обозначенные переменные присваиваются значения старые.
  В процедуре ПередЗаписью() сравниваются с текущими ив итоге выводится сообщение. Пытаюсь также все это реализовать на управляемом приложении: ругается что переменные не определены Траздел, ТОтветственный и т.д. &НаКлиенте Перем ТРаздел; Перем ТОтветственный; Перем ТПроект; Перем ТСтатус; Перем ТПриоритет; Процедура ПриОткрытии(Отказ) Если Объект.Ссылка.Пустая() Тогда ///// Иначе ПриоритетПриИзменении(Объект); ТОтветственный = Объект.Ответственный; ТРаздел = Объект.Раздел; ///// КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) К = 0; Если НЕ ТРаздел = Объект.Раздел Тогда Т1 = "Изменен " + ТРаздел + " на " + Объект.Раздел + ". "; К = 1; Если К = 1 Тогда //ЗаписьИзменений(Т1,Т2,Т3,Т4,Т5); НК = Объект.ИсторияИзменений.Добавить(); НК.АвторИзменения = ИмяПользователя(); НК.ДатаИзменения = ТекущаяДата(); НК.СлужебноеСообщение = Т2; Иначе //ЗаписьИзменений(Т1,Т2,Т3,Т4,Т5); КонецЕсли; КонецПроцедуры Подскажите как решить данную проблему. | |||
| 1
    
        Человечкин 27.03.12✎ 16:34 | 
        &НаКлиенте
  Перем ТРаздел=неопределено; Перем ТОтветственный=неопределено; Перем ТПроект; Перем ТСтатус; Перем ТПриоритет; | |||
| 2
    
        ser-korvin 27.03.12✎ 16:40 | 
        (1) Увы, ругается 
  {Документ.Задача.Форма.ФормаДокумента.Форма(3,23)}: Ожидается символ ';' Перем ТОтветственный<<?>> = Неопределено; (Проверка: Сервер) {Документ.Задача.Форма.ФормаДокумента.Форма(3,24)}: Неопознанный оператор Перем ТОтветственный <<?>>= Неопределено; (Проверка: Сервер) | |||
| 3
    
        Euguln 27.03.12✎ 16:42 | 
        &НаКлиенте
  Процедура ПриОткрытии(Отказ) | |||
| 4
    
        Euguln 27.03.12✎ 16:43 | 
        А по-хорошему лучше реквизитом формы делать     | |||
| 5
    
        yabes 27.03.12✎ 16:43 | 
        (0) ты просто хочешь проверить изменил ли пользователь реквизиты после открытия объекта?     | |||
| 6
    
        ser-korvin 27.03.12✎ 16:46 | 
        (4) спасибо за идею, попробую
  (5) не только изменил но и что на что Т1 = "Изменен " + ТРаздел + " на " + Объект.Раздел + ". "; | |||
| 7
    
        ser-korvin 27.03.12✎ 16:46 | 
        (3) в коде у меня это есть, просто лишнее убирал и случайно удалил когда сюда копировал     | |||
| 8
    
        Азат 27.03.12✎ 16:50 | 
        (4) + 100500, сделать реквизит формы типа Произвольный, при создании на сервере пихать туда структуру всех реквизитов...
  ПередЗаписьюНаСервере сравнивать и все... делов-то на 30 минут с тремя перекурами и парой игр в контру | |||
| 9
    
        Человечкин 27.03.12✎ 16:51 | 
        (0) номер строки глянь на какой ругается, тобишь в твоей ошибке, если что при открытии инициализируй эти переменные     | |||
| 10
    
        ser-korvin 27.03.12✎ 16:58 | 
        Всем спасибо за помощь, сделал по (4). Делается все на клиенте -> меньше запросов на сервер(делается конфа для WEB интерфейса)     | |||
| 11
    
        yabes 27.03.12✎ 17:00 | 
        Смысл в том, что не обязательно запоминать значения при открытии! До записи старые значения можно прочитать обратившись по ссылке, например Объект.Ссылка.Ответственный (на сервере), а новые можно прям из формы прочитать!
  &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ПроверкаИзменений() КонецПроцедуры &НаСервере Процедура ПроверкаИзменений() Если Объект.Ответственный <> Объект.Ссылка.Ответственный Тогда Сообщить("Бало изменение ответственного"); КонецЕсли; Если Объект.ТРаздел <> Объект.Ссылка.ТРаздел Тогда Сообщить("Бало изменение раздела"); КонецЕсли; КонецПроцедуры | |||
| 12
    
        wald 27.03.12✎ 17:07 | 
        (11) в (10) правильно сделал, нефиг каждый раз на сервер лазить     | |||
| 13
    
        ser-korvin 27.03.12✎ 17:22 | 
        (11) спасибо за объяснения, при необходимости - применю.     | |||
| 14
    
        Человечкин 27.03.12✎ 18:43 | 
        (11) Эй там - наверху. И куда ты серверу собрался сообщать?     | |||
| 15
    
        Человечкин 27.03.12✎ 18:44 | 
        (11) и перед словом "Бало" забыл поставить букву "Е" ГГгггг )Медаль Петросяна мне встудию)     | |||
| 16
    
        simol 27.03.12✎ 18:52 | 
        &НаКлиенте
  Перем ТРаздел, ТОтветственный, ТПроект, ТСтатус, ТПриоритет; | |||
| 17
    
        vmv 27.03.12✎ 18:53 | 
        (0) и (16) + в соответствие     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |