При отмене проведения удалить элемент справочника. #510042


#0 by Dimkostav
Добрый день. Подскажите, как можно удалить элемент справочника зная один из его реквизитов (ТекСтрокаКартриджи.УникальныйНомерКартриджа)? Насколько я понимаю нужно делать так: И как обратиться к <ИмяРеквизита>?
#1 by zbv
запросом делай.
#2 by lxs
ОбъектСправочника.Записать?
#3 by Dimkostav
ну а после ОбъектСправочника.Удалить сохранить изменения не нужно?)
#4 by Buster007
#5 by Dimkostav
Знаю, что после .Очистить нужно...
#6 by AndreyFAN
*на всякий случай* - а точно ли нужно удалять? а не ПометкаУдаления? Может были движения по объекту...
#7 by Dimkostav
Движения были в регистрах только.
#8 by YF
Зачем все это?
#9 by Dimkostav
Когда документ проводится, то происходит движение в регистрах и запись нового элемента в справочник. Но если отменить проведение этого документа, то и соответствующий элемент тоже нужно удалить. Или я как-то не так мыслю?)
#10 by YF
А зачем создавать элемент? Может регистром сведений обойтись?
#11 by AndreyFAN
неужели этот элемент используется только один раз и только в одном документе??? прав
#12 by Dimkostav
В регистрах лишь состояния элементов, а в справочнике сами элементы. Этот элемент используется во всех документах, потому как сама система создана для учёта этих элементов). Но создавать новый элемент справочника нужно лишь при проведении одного документа.
#13 by YF
Тогда удалять при отмене проведения не нужно, т.к. элемент может использоваться еще где-то
#14 by Dimkostav
Да, наверное вы правы... Тогда как быть? Установить пометку удаления для этого документа?
#15 by YF
Зачем?
#16 by YF
+ Как я понял некий документ "поступлениеКартриджа" создает элемент в справочнике при проведении. Хорошо, тогда сделай в документе реквизит с типом этот  справочник и при проведении, если этот реквизит пуст, то создаешь элемент и его пихаешь в реквизит. тогда при повторном проведении не будет создаваться новый элемент. При отмене же проведения его удалять не нужно
#17 by Dimkostav
А если с типом этот справочник уже создан реквизит табличной части? Дело в том, что при поступлении НовогоЭлемента создаётся документ с одним реквизитом "ЮрЛицо". Есть табличная часть в этом документе. И один из реквизитов этой табличной части есть тип этого справочника.
#18 by YF
Ну используй его, я же не телепат и не вижу твоей конфигурации
#19 by Dimkostav
Не телепат, потому и стараюсь описать подробнее.
#20 by Dimkostav
+ Примерно так и происходит). Этот реквизит табличной части заполняется автоматически при добавлении элементов в табличную часть. Теперь мне стало ясно. Большое спасибо.
#21 by Dimkostav
сделал так: в процедуре ОбработкаПроведения создал новую запись в справочнике (реквизит в документе имеет тип этот справочник), добавил в этот реквизит соответствующее значение из справочника. При повторном проведении создаётся новый элемент в справочнике, но имеет другой код, а при отмене проведения из справочника соответствующий элемент не удаляется. Где искать подвох, подскажите?
#22 by Дарт Вейдер
(устало) код то покажи хоть, тогда может и подскажут, что по делу
#23 by Dimkostav
Вот код:
#24 by Dimkostav
Не выдаётся сообщение "Сообщить(Док.Картриджи.Картридж)" :( Картриджи - это табличная часть. А Картридж - это реквизит табличной части.
#25 by Дарт Вейдер
ну конечно будет новый создаваться, ты же не проверяешь, что элемент уже создан
#26 by Дарт Вейдер
нужно завести скрытый реквизит с типом "Справочники.Картриджи" и при создании элемента писать туда ссылку.. далее проверяешь, если реквизит пустой - значит нужно создать, если заполнен - значит есть уже такой
#27 by Дарт Вейдер
с запросами что-то вообще замуть какая-то зачем это все: ... ...
#28 by Dimkostav
а почему не подойдёт для этой цели имеющийся реквизит табличной части (см 24)? Т.е. вот такая проверка: ....................... .......................
#29 by Дарт Вейдер
перепиши все..
#30 by Дарт Вейдер
а где в проверка? в сразу создается новый элемент
#31 by Дарт Вейдер
и как бы Записать за циклы желательно выносить
#32 by Dimkostav
Ну вот что получилось: Но так не записывается новый элемент в спрвочник.
#33 by Aprobator
офигеть.
#34 by Dimkostav
Наверно правильней, но всё равно не верно так:
#35 by Dimkostav
?
#36 by Aprobator
за такое проектирование систем ...... (матофильтр). Тут что в момент проведения документа (а не перед записью), он еще и правится попутно?
#37 by Dimkostav
Получается да. Так значит нужно сделать так: ?
#38 by Aprobator
+ для затравки:
#39 by Aprobator
+ хотя эту чехарду со справочником мне все равно не понять.
#40 by Dimkostav
ну а как правильно? Поступили новые картриджи на склад, я добавляю их в справочник и провожу документ, который делает движения в регистрах...
#41 by Aprobator
почему таким странным способом, а не непосредственно в форме документа?
#42 by Aprobator
судя по коду, весь сыр бор из - за того, что надо знать какой картридж куда ушел. Уже есть модель картриджа (справочник?) и его уникальный номер, зачем нужен еще один справочник?
#43 by Dimkostav
Вы имеете ввиду почему я в форме документа не указывают Картридж и УникальныйНомерКартриджа? Потому что на момент создания документа я их не знаю, а знаю лишь модель.
#44 by Aprobator
это как? Они что в момент проведения генерятся что ли?
#45 by Aprobator
+ судя по запросу к номеру справочника - да (
#46 by Dimkostav
Есть справочники МодельКартриджа, Картриджи. В Картриджи есть поля Наименование (тип МодельКартриджа), Картридж (автонумерация), УникальныйНомерКартриджа(Строка). Да. У меня очень маленький опыт программирования в 1с, потому такие извращения.
#47 by Aprobator
навскидку - что мешает вместо уникального номера использовать тогда код справочника картриджи? А вообще надо сначала продумать систему учета, а уже затем ее реализовывать.
#48 by Dimkostav
Ну когда продумывалась система, то уникальные номера у картриджей уже были. Мне один человек с форума советовал включить помимо этих номеров ещё и код справочника использовать.
#49 by Dimkostav
Не получается разобраться:
#50 by Dimkostav
В ТекСтрокаКартриджи.Картридж и ТекСтрокаКартриджи.УникальныйНомерКартриджа пустые значения :(
#51 by Renat11111
все таки в пятнице, что то есть такое.... волшебное. всем +100. Больше всего понравилось с запросами в цикле.
#52 by Dimkostav
ну а как иначе сгенерить новое значение для каждого создающегося элемента?
#53 by Aprobator
получаем до цикла последний номер и в цикле просто +1.
#54 by Aprobator
>
#55 by Dimkostav
Ясно, спасибо всем.
#56 by МЮЛЛЕР
> При отмене проведения удалить элемент справочника Это кто так круто базу разработал?
#57 by Aprobator
опоздал с вопросом - смотри )
#58 by Dimkostav
Ну а вообще как правильно делать? Каков алгоритм? Т.е. нужно добавить новый элемент в справочник и в регистры. А если нужно удалить этот элемент? Делать отдельный документ, который при проведении будет искать в справочнике и удалять?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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