Имя: Пароль:
1C
1C 7.7
v7: Справочник.Записать()
,
0 Маркетолог
 
24.12.11
10:53
Функция Записать() сбивает позиционирование или это глюк ?

       спр = СоздатьОбъект("Справочник.Номенклатура");
   Рез = спр.НайтиПоРеквизиту("КодСлужебный", служКод, 1);
   Сообщить(Рез);
   Сообщить(спр.ТекущийЭлемент());
   Сообщить(ПустоеЗначение(спр.ТекущийЭлемент()));
   
   спр.Записать();
   
   Сообщить(спр.ТекущийЭлемент());
   Сообщить(ПустоеЗначение(спр.ТекущийЭлемент()));

Сообщения:
         1
         Тест1
         0
         ""
         1
1 aka AMIGO
 
24.12.11
10:55
Сообщить(ПустоеЗначение(спр.ТекущийЭлемент()));
сбивает позиционирование
2 aka AMIGO
 
24.12.11
10:55
+1 вру.. милле пардоне..
3 Маркетолог
 
24.12.11
10:57
(1)Поверил , не сбивает.
4 Маркетолог
 
24.12.11
10:57
сбиват записать() 100%
5 aka AMIGO
 
24.12.11
11:01
проверь Сообщить(спр);
похоже, это не текэлемент, а ссылка.
надо-бы получить элем, потом записывать

зы. может, опять вру.. суббота :)
6 PuhUfa
 
24.12.11
11:04
Процедура Сформировать()
   спр = создатьобъект("Справочник.test");
   служКод = 5;
   Рез = спр.НайтиПоРеквизиту("рекв", служКод, 1);
   Сообщить(Рез);
   Сообщить(спр.ТекущийЭлемент());
   Сообщить(ПустоеЗначение(спр.ТекущийЭлемент()));
   
   спр.Записать();
   
   Сообщить(спр.ТекущийЭлемент());
   Сообщить(ПустоеЗначение(спр.ТекущийЭлемент()));    

КонецПроцедуры

Результат:
1
тестовый элемент
0
тестовый элемент
0
7 Маркетолог
 
24.12.11
11:09
(6) Понял.
   наверное глюк
8 aka AMIGO
 
24.12.11
11:11
(7) в какой оси запустил 1с?
9 zxcvb
 
24.12.11
11:15
Выбрать, не?
10 2S
 
24.12.11
11:16
(0) есь код?
в монопольном режиме?
11 2S
 
24.12.11
11:16
весь...
12 Маркетолог
 
24.12.11
11:16
(8) xp
13 Маркетолог
 
24.12.11
11:17
(11)весь код тут )
   режим не мнопольный
14 2S
 
24.12.11
11:17
прикинь если индексы )
15 Aleksey
 
24.12.11
11:20
тоже замечал, сбивает
16 Маркетолог
 
24.12.11
11:24
(14) Индексы !!!!!!
17 2S
 
24.12.11
11:24
)
18 Маркетолог
 
24.12.11
11:24
1
Тест1
0
Тест1
0
19 Маркетолог
 
24.12.11
11:25
Спасибо
20 Маркетолог
 
24.12.11
11:44
нет к сожалению преиндексация не помогает
в (18) яошибся т.к. хотелось верить в лучшее :(
21 2S
 
24.12.11
11:45
отладчик случаем не запушен?
22 Маркетолог
 
24.12.11
11:46
зпущен попобую сейчас без него
23 Маркетолог
 
24.12.11
11:47
Попробовал.
Без отладчика все равно сбивает
24 2S
 
24.12.11
11:49
у меня все нормально отрабатывает.
а если по условию
Если спр.НайтиПоРеквизиту("рекв", служКод, 1) = 1 Тогда
Спр.Записать();
КонецЕсли;
25 2S
 
24.12.11
11:53
просто для теста попробуй без
  Сообщить(спр.ТекущийЭлемент());
26 Маркетолог
 
24.12.11
11:56
До записать
Спр = Тест1

после
Спр = ""
27 Мимохожий Однако
 
24.12.11
12:09
Для чего Сообщить(ПустоеЗначение(спр.ТекущийЭлемент()));?
28 Маркетолог
 
24.12.11
12:10
(27) чтоб увидет пустое ли оно
29 Мимохожий Однако
 
24.12.11
12:13
Если Рез = 1 То не пустое. Поэтому последний код лишний. Возможно и мешает жить
30 Маркетолог
 
24.12.11
12:27
(29) Закомментарил ПустоеЗначение()
Не помогло
31 Маркетолог
 
24.12.11
12:28
>1
>Тест1
>
32 polOwnik
 
24.12.11
12:44
(0) Чисто теоретические исследования?
Если хочешь перезаписать реквизит(ы) 1-го элемента справочника, то причем тут "сбивание". Нашел, записал и досвидание.
33 PuhUfa
 
24.12.11
12:49
ТС что то не договааривает
34 Маркетолог
 
24.12.11
12:56
(33) Ага
:)
Длин реквизита была10
35 Маркетолог
 
24.12.11
12:57
А надо чтобы не более 6
В это поле вставляется строка длинной 6
36 Маркетолог
 
24.12.11
12:58
Тогда работает
37 Мимохожий Однако
 
24.12.11
13:13
служКод = СокрЛП(служКод)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn