Имя: Пароль:
1C
1C 7.7
v7: Определение Родителя элемента справочника до записи
0 osa1C
 
23.10.12
10:09
В справочнике Контрагенты имеется Родитель верхнего уровня "Касса". Для всех новых элементов справочника проводится проверка правильности заполнения реквизитов, а для группы "Касса" эту проверку надо отключить.  Как определить Родителя верхнего уровня до записи элемента?
1 Ёпрст
 
23.10.12
10:10
(0)
ВерхнийРодитель=ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(Спр"+СтрЗаменить(Формат("","С"+(Спр.Уровень()-1))," ",".Родитель")+")]"));

©РупорАбсурда
2 osa1C
 
23.10.12
10:22
(1) Проблема в том, что элемент справочника проверяется ДО ЗАПИСИ, и если в нем не заполнены или не правильно заполнены реквизиты, то элемент не записывается. Т.е. Надо определить Родителя для НЕСУЩЕСТВУЮЩЕГО ещё элемента и если запись этого элемента производится в группу "Касса", то записать его без проверки реквизитов, иначе проверять реквизиты перед записью
3 avb
 
23.10.12
10:28
Спр = ИспользоватьРодителя()
+(1)
4 Maximysis
 
23.10.12
10:30
Попробуй открывай форму справочника проверить и закрыть ее, не красиво вариант.

//спр проверяемый справочник    
Перем Конт;
Сервис = СоздатьОбъект("Сервис");
ОткрытьФорму(спр, Конт);
Сервис.ВыполнитьПроцедуру(Конт, "ПроцедураПроверки");
Конт.Форма.Закрыть();

Нужна будет компонента формекс.
5 Ёпрст
 
23.10.12
10:33
(3) Блин, какие люди и без охраны..!
6 oslokot
 
23.10.12
10:36
(0) Родитель уже определен в момент создания нового элемента, не так ли?
Процедура ВводНового()
сообщить(Родитель)
7 Ork
 
23.10.12
10:38
(6) +100
8 Ork
 
23.10.12
10:39
+(7) Правда только в случае интерактивного добавления.
9 avb
 
23.10.12
10:39
(5) :) Привет :)
10 пипец
 
23.10.12
10:41
;)) только сегодня вспомнил ;))
11 oslokot
 
23.10.12
10:43
(8) ну да, а иначе (3)
12 Ёпрст
 
23.10.12
10:50
(9) надолго сюда ?
1с-ину не забросил еще ?..
13 avb
 
23.10.12
11:06
(12) Коллеги сказали, что меня здесь сегодня вспоминают(10) :) Вот и зашел. 1С-ину не бросил, не умею больше ничего.
14 пипец
 
23.10.12
11:15
(13) да уж, сто лет прошло как гуляли ;))
ЗЫ ностальжи
15 osa1C
 
23.10.12
12:11
(6) Спасибо решил:
Процедура ВводНового()

ТекущийРодитель = Родитель;
Пока ТекущийРодитель.Выбран() = 1 Цикл
  ВерхнийРодитель = ТекущийРодитель;
  ТекущийРодитель = ТекущийРодитель.Родитель;
КонецЦикла;