Имя: Пароль:
1C
1С v8
В ссылке одно значение в объекте другое
0 Лялечка
 
22.09.11
11:33
Добрый день! Подскажите, пожалуйста. Ситуация такая.
Есть объект "Задача". На форме элемента расположено поле HTML документа. Необходимо его очистить.
Пишу код:
Запрос = Новый Запрос;
   Запрос.Текст =  "ВЫБРАТЬ
                   |    CRM_Задача.Ссылка
                   |ИЗ
                   |    Задача.CRM_Задача КАК CRM_Задача
                   |ГДЕ
                   |    CRM_Задача.Номер = ""000006941""";
   Результат = Запрос.Выполнить().Выбрать();
   Пока Результат.Следующий() Цикл
       ОбъектЗадача = Результат.Ссылка.ПолучитьОбъект();
       ОбъектЗадача.ОписаниеТочкиМаршрута = "";
       ОбъектЗадача.Записать();
       Сообщить("Записана задача " + Результат.Ссылка);

   КонецЦикла;
Проверяю в отладчике, ОбъектЗадача.ОписаниеТочкиМаршрута = "".

При открытии формы задачи:
...
ОбластьЧтения = СформироватьОписаниеТочкиМаршрута();
   ЭлементыФормы.ОбластьЧтенияHTMLОписаниеТочкиМаршрута.УстановитьТекст(ОбластьЧтения);
...

Функция СформироватьОписаниеТочкиМаршрута() Экспорт
       
   СтрРазделитель = "____________________________________________________________________</BR>";
   
   СтрОписаниеТочкиМаршрута = "<FONT color=#a52a2a>"+СокрЛП(ОписаниеТочкиМаршрута)+"</FONT></BR>";
...
ИтоговаяСтрока = СтрОписаниеТочкиМаршрута+?(СтрПереадресаций<>"",СтрРазделитель+СтрПереадресаций,"");
Возврат ИтоговаяСтрока;
КонецФункции

Так вот Ссылка.ОписаниеТочкиМаршрута = "", а ЭтотОбъект.ОписаниеТочкиМаршрута = "парам пам пам". В результате при открытии формы поле все равно остается заполнено:(
ОписаниеТочкиМаршрута - реквизит задачи, тип Строка
Почему же в ссылке значение пустое, а в объекте нет? Как очистить реквизит объекта?
1 Axel2009
 
22.09.11
11:37
объект не записан. поэтому ссылка. = пусто
2 zbv
 
22.09.11
11:39
ну так он наверное очищен. Проверь в отладчике при открытии объекта.

Просто в процедуре СформироватьОписаниеТочкиМаршрута генерируется какой-то текст по умолчанию.
3 Лялечка
 
22.09.11
11:39
(1) Почему, если я выполнила:
Запрос = Новый Запрос;
   Запрос.Текст =  "ВЫБРАТЬ
                   |    CRM_Задача.Ссылка
                   |ИЗ
                   |    Задача.CRM_Задача КАК CRM_Задача
                   |ГДЕ
                   |    CRM_Задача.Номер = ""000006941""";
   Результат = Запрос.Выполнить().Выбрать();
   Пока Результат.Следующий() Цикл
       ОбъектЗадача = Результат.Ссылка.ПолучитьОбъект();
       ОбъектЗадача.ОписаниеТочкиМаршрута = "";
       ОбъектЗадача.Записать();
       Сообщить("Записана задача " + Результат.Ссылка);

   КонецЦикла;

В объекте не поменялось значение...
4 Ненавижу 1С
 
гуру
22.09.11
11:43
я так понял форма привязана к одному объекту, а тут идет работа (запись) через другой
может стоит тогда у объекта формы снова Прочитать() ?
5 Лялечка
 
22.09.11
11:44
(2) При открытии ЭтотОбъект.ОписаниеТочкиМаршрута = "", почему же в СформироватьОписаниеТочкиМаршрута() ЭтотОбъект.ОписаниеТочкиМаршрута = "парам пам пам"
6 zbv
 
22.09.11
11:46
(5) Процедура СформироватьОписаниеТочкиМаршрута - большая ?

если нет, то давай ее в студию. Скорее всего там происходит заполнение реквизита.

Кстати, после открытия модифицированность изменяется ?
7 Лялечка
 
22.09.11
11:48
(6)
Функция СформироватьОписаниеТочкиМаршрута() Экспорт
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    CRM_ИсторияПереадресацииЗадач.Задача.Ссылка,
                  |    CRM_ИсторияПереадресацииЗадач.Период КАК Период,
                  |    CRM_ИсторияПереадресацииЗадач.Исполнитель,
                  |    CRM_ИсторияПереадресацииЗадач.Переадресовал,
                  |    CRM_ИсторияПереадресацииЗадач.НовыйИсполнитель,
                  |    CRM_ИсторияПереадресацииЗадач.ДатаПринятияКИсполнению,
                  |    CRM_ИсторияПереадресацииЗадач.Комментарий
                  |ИЗ
                  |    РегистрСведений.CRM_ИсторияПереадресацииЗадач КАК CRM_ИсторияПереадресацииЗадач
                  |ГДЕ
                  |    CRM_ИсторияПереадресацииЗадач.Задача = &Задача
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Период";
   Запрос.УстановитьПараметр("Задача", Ссылка);
   Данные = Запрос.Выполнить().Выгрузить();
   
   СтрРазделитель = "____________________________________________________________________</BR>";
   
   //СтрОписаниеТочкиМаршрута = "<B>Задание: </B></BR>";
   СтрОписаниеТочкиМаршрута = "<FONT color=#a52a2a>"+СокрЛП(ОписаниеТочкиМаршрута)+"</FONT></BR>";
   
   СтрПереадресаций = "";
   
   Для Каждого СтрокаДанных ИЗ Данные Цикл
       Если СтрокаДанных.ДатаПринятияКИсполнению <> Дата('00010101') Тогда
           СтрПереадресаций = СтрПереадресаций + "Принял к исполнению:"+" "+ "("+Формат(СтрокаДанных.ДатаПринятияКИсполнению,"ДЛФ=DT")+")"
           + " " + СтрокаДанных.Исполнитель+"</BR>";
       КонецЕсли;
       СтрПереадресаций = СтрПереадресаций + "Переадресовал:      "+" "+ "("+Формат(СтрокаДанных.Период,"ДЛФ=DT")+")"
       + " " + СтрокаДанных.Переадресовал+"</BR>";
       
       СтрПереадресаций = СтрПереадресаций + "Комментарий:        "+ СокрЛП(СтрокаДанных.Комментарий)+"</BR>";
       СтрПереадресаций = СтрПереадресаций + СтрРазделитель;
   КонецЦикла;
   
   ИтоговаяСтрока = СтрОписаниеТочкиМаршрута+?(СтрПереадресаций<>"",СтрРазделитель+СтрПереадресаций,"");
   ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, Символы.ПС, "</BR>");
   ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, Символы.Таб, "&nbsp;&nbsp;&nbsp;");
   
   Возврат "<FONT Size = 2>" + ИтоговаяСтрока + "</FONT>";
   
КонецФункции
8 Лялечка
 
22.09.11
11:50
(6) ничего не меняется вроде...
9 Лялечка
 
22.09.11
11:50
СтрОписаниеТочкиМаршрута = "<FONT color=#a52a2a>"+СокрЛП(ОписаниеТочкиМаршрута)+"</FONT></BR>";

В этой строчке ОписаниеТочкиМаршрута = "парам пам пам"
10 zbv
 
22.09.11
11:51
(7) А вот это "ЭтотОбъект.ОписаниеТочкиМаршрута = "парам пам пам" - точно так ?

или "парам пам пам" - это у тебя на форме отображается ?
11 zbv
 
22.09.11
11:52
(9) а равно именно "парам пам пам" или какой-то вразумительный текст ?

(10) - отменяется
12 Лялечка
 
22.09.11
11:52
(11) вразумительный текст
13 Ненавижу 1С
 
гуру
22.09.11
11:53
(12) секретный?
14 Лялечка
 
22.09.11
11:53
(13) я думаю, что не принципиально, какой текст
15 Лялечка
 
22.09.11
11:55
текст этот взялся из шаблона БП. Кто-то его там заполнил когда-то и БП стартовал. Он попал в задачу. Теперь шаблон поправили, задачу надо исправить тоже.
16 hhhh
 
22.09.11
11:57
(13) но ведь ясно какой текст.

Принял к исполнению
Переадресовал
Комментарий

Возврат "<FONT Size = 2>" + ИтоговаяСтрока + "</FONT>";
17 Лялечка
 
22.09.11
11:58
(13) нет, выводится одна конкретная строка, которая была заполнена в шаблоне, как задание на этап. Задачу не переадресовывали.
18 Лялечка
 
22.09.11
12:02
как мне в задаче этот текст убрать:( он не нужен там абсолютно
19 hhhh
 
22.09.11
12:03
(17) но из регистра РегистрСведений.CRM_ИсторияПереадресацииЗадач  вы жестко удалили эту строчку? Или пока еще продумываете этот момент?
20 zbv
 
22.09.11
12:03
(18) модифициорованность объекта меняется после открытия ?
или запись объекта после объект происходит ?
21 Лялечка
 
22.09.11
12:10
(19) в регистре сведений этой строки нет вообще, потому что задачу не переадресовывали
22 Лялечка
 
22.09.11
12:11
(20) ничего после открытия не меняется...или я что-то не понимаю...
"или запись объекта после объект происходит ?" - это как понять?
23 zbv
 
22.09.11
12:20
(22) после открытия имелось ввиду. в журнале регистрации посмотри не записывается ли объект после открытия
24 Лялечка
 
22.09.11
12:25
(23) все, всем спасибо за помощь, нашла в чем причина.
25 Лялечка
 
22.09.11
12:28
просто в регистр МаршрутБП прописались данные. Теперь вопрос. Если я выполню следующий код:
ЗадачаТек = Задачи.CRM_Задача.НайтиПоНомеру("000006941");
   регМаршрут = РегистрыСведений.CRM_МаршрутБизнесПроцесса.СоздатьНаборЗаписей();
   регМаршрут.Отбор.БизнесПроцесс.Установить(ЗадачаТек.БизнесПроцесс);
   регМаршрут.Отбор.ТочкаМаршрута.Установить(ЗадачаТек.ТочкаМаршрута);
   регМаршрут.Прочитать();
   регМаршрут[0].Комментарий = "";
   регМаршрут.Записать();

У меня только данная запись изменится? только одна строка? остальные записи регистра останутся как и были?
26 Лялечка
 
22.09.11
12:40
Все, всем спасибо за помощь. Во всем разобралась
Основная теорема систематики: Новые системы плодят новые проблемы.