v7: Запись элемента справочника. Выборка "потерялась" #692752


#0 by BalBess
Тема уже не раз обсуждалась, например но че-то я туплю.. мне нужно, найти контрагента по емейл, если найден то вернуть его, если не найден, то создать и вернуть его, но после записи элемента выборка теряется
#1 by skunk
а смысл этой строки Контр = спрКонтр.ТекущийЭлемент;
#2 by Godofsin
Класс!
#3 by ДенисЧ
Есмть такое. Заново найди
#4 by Godofsin
а смысл вот этой?
#5 by Godofsin
Или это доп. опция для 7.7 с булевым...?
#6 by Chum
Делай так:
#7 by Voronve
Тема за V7, код от V8. Код на писан как в V7, это "   Контр = спрКонтр.ТекущийЭлемент;" самое нажористое. Каашмарр
#8 by Chum
У тебя элемент еще не записан, ссылки нет, а потом ты пытаешься по хз чему спозиционироваться, хотя этого и не нужно вообще
#9 by КонецЦикла
Восьмерочник-прикладник, куле
#10 by vinogradъ
#11 by BalBess
код от V7, кошмар не в этом ) ближе к теме, но мне надо реквизиты переприсвоить даже если элемент существует (адрес, тел и т.д.)
#12 by BalBess
т.е. заново его сохранить
#13 by Godofsin
Мля, поясните, с каких пор в 7.7 появилось булево?! Это 1с++ или как там она называется...
#14 by BalBess
Истина = 1; Ложь = 0;
#15 by BalBess
Вкратце фича V7 в том, что если тип поля строковый, то после НайтиПоРеквизиту  и Записать позиционирование элемента теряется.
#16 by Godofsin
ну и нахера? ))))
#17 by Voronve
Даладно
#18 by Ork
С каких ... оно теряется? Это вы его потеряли. Тут интересно то, что не записав элемент пытаемся получить ТекущийЭлемент. А потом у них "выборки сбиваются"...
#19 by BalBess
Да! именно так, сам ох.. удивился запустите в отладчике, или здесь можно глянуть привык так уже, не суть важно
#20 by BalBess
уберите это строчку (дело не в ней), после сохранения элемента  - он теряется. почитайте
#21 by 1Сергей
да, теряется. делай так:
#22 by Ork
Может это у вас платформа эксклюзивная? На обычной фокус никуда не девается.
#23 by Ork
Звиздетц... Еще один. Что у вас будет в Контр перед Записать? Классика жанра - записать - получить позицию. А не так, как у вас : Контр = спрКонтр.ТекущийЭлемент; И не нужно ничего искать.
#24 by 1Сергей
мде... пустая ссылка, видимо. Погоди, вспомню как я выкручивался
#25 by BalBess
в том то и дело, что после спрКонтр.Записать; выборка теряется!!! очень жду..
#26 by 1Сергей
в форме списка, кажется, есть баг. После строки "спрКонтр.Записать;" в переменной спрКонтр уже будет не новый записанный объект, а пустой.
#27 by 1Сергей
не выборка теряется, а позиционирование. Выборка - это другое
#28 by Godofsin
Ты проигнорировал ?
#29 by 1Сергей
заново ищи по реквизиту
#30 by BalBess
нас уже двое! )) я сначала так и писал, просто слово выборка короче ))
#31 by BalBess
я искал заново, гляньте код что мне делать, если элемент НЕ найден
#32 by 1Сергей
Вот выборка:
#33 by 1Сергей
#34 by vinogradъ
#35 by BalBess
1000 раз писал уже, если элемент найден(!!!) , то после спрКонтр.Записать;  - спрКонтр, становится пустым!!!
#36 by BalBess
на хрена бы тогда я делал конструкцию только в таком виде это работает! вопрос, как сделать если элемент не найден
#37 by Voronve
...... бла-бла ..... Пользуйся
#38 by vinogradъ
Работает 100% и когда найден и когда не найден
#39 by 1Сергей
см
#40 by BalBess
- работает, логично: ищем один, сохраняем другой )) - не работает, 1001 раз, после записи элемента, он становится пустым - точно!, надо было просто его заново найти (по реквизиту), как и писал всем спасибо!
#41 by BalBess
Кстати проверил, повторный поиск элемента по реквизиту, выполняется быстрее, чем , и не нужно еще один справочник создавать. В общем остановился на нем.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С

Back to top