Имя: Пароль:
1C
 
СРОЧНО!!! Помогите с сохранением элемента справочника
Ø
0 davinсhi
 
27.06.06
11:48
На форме элемента справочника есть флажок, при его изменении необходимо выполнить ряд проверок, для этого элемент справочника должен быть записан, в формуле флага следующая процедура:
//_____________________________________________________________________________
Процедура ПриИзмененииФлага()
  Если ПустоеЗначение(ТекущийЭлемент()) = 1 Тогда
    Если Вопрос("Тут текст сообщения..."+РазделительСтрок+"Сохранить введенные данные?", 1) = 1 Тогда
      Записать(); // -> вот тут ошибка: "Данная команда не может выполняться в формуле элемента диалога!"
    Иначе
      //тут возвращаем прежнее значение флага
      Флаг = 0;
      Возврат;
    КонецЕсли;
  КонецЕсли;
// далее необходимые проверки...
КонецПроцедуры
//-
Посоветуйте как быть, кроме варианта сохранять кнопкой после сообщения о необходимости сохранить...
1 Hedin
 
27.06.06
11:53
А почему незя всё делать "ПриЗаписи" ???
2 davinchi
 
27.06.06
11:56
а в тот момент элемент уже будет записан???
3 frodo6x3
 
27.06.06
11:57
Может что-то типа:
Спр=СоздатьОбъект("Справочник.!!!!!!!!!!");
Спр.НайтиПоКоду(Код);//Если коды уникальны
Спр.Записать();
4 Hedin
 
27.06.06
12:01
(2) Нет.
пишиш все проверки, если какойто касяк то просто:
Сообщить("Нельзя записать элемент");
СтатусВозврата(0);
Возврат;
5 davinchi
 
27.06.06
12:02
дык элемент справочника пока не сохранен в базе не существует и по коду не найдется...
6 Hedin
 
27.06.06
12:03
Нафига тебе проверки ПОСЛЕ записи???
7 Графитыч
 
27.06.06
12:07
проверяй реквизиты (нужные) по отдельности, непосредсвенно при изменении этих реквизитов. Сам элемент можно и не записывать.
8 karek
 
27.06.06
12:10
А если не секрет, какого рода проверки должны быть выполены, чтобы элемент при этом был записан?
9 davinсhi
 
27.06.06
12:15
проверки состоят в том что проверяется информация о элементе справочника по информации лежащей в других доках... чтобы было более пнятно: речь идет о самописной конфе по приему абитуриентов для ВУЗа; есть справочник Абитуриенты, где забивается вся его личная инфа; естя документы - Олимпиадная ведомость, где списки ФИО тех кто участвовал в олимпиадах и их результаты; флаг - Участник олимпиады; родитель элемента абитуриента - его форма обучения, ее родитель - специальность, а ее родитель факультет; при установке флага выполняется проверка, т.е. этот абитура ищется в олимпиадной ведомости, а для этого необходимо знать от элемента справочника наименование и родителей, т.е. в глобальнике процедурка, которая все это проверяет - так вот ей нужен СУЩЕСТВУЮЩИЙ (записанный в базу) элемент справочника абитуриенты... переписывать ее жутко неохото...
10 frodo6x3
 
27.06.06
12:15
Проверяй поля формы в ПриЗаписи(), потом если где-то касяк СтатусВозврата(0) выдавай сообщение, что поле не правильно заполнено и активируй это поле, чтобы перезаполнили.
11 Сли то
 
27.06.06
12:21
"..абитура ищется в олимпиадной ведомости.." "..так вот ей нужен СУЩЕСТВУЮЩИЙ (записанный в базу) элемент.."
А как ты думаешь есть ли в алимпиадной ведомости незаписанный элемент?
12 karek
 
27.06.06
12:22
(9) Ну если у тебя элемент еще не записан, то откуда он возьмется в олимпиадной ведомости или вобще где бы то ни было??? В этом случае и проверку не надо делать. я так думаю...
13 Hedin
 
27.06.06
12:22
Проверяй не через эту процедуру, а ручками в контексте элемента справочника
14 davinсhi
 
27.06.06
12:26
в ведомостях не элементы справочника, а просто строковые ФИО... я же писал: "... а для этого необходимо знать от элемента справочника НАИМЕНОВАНИЕ и родителей...", т.е. сверка идет по сравнению строкового наименования с ФИО из ведомости, а ведомость ищется по родителям элемента справочника...
15 Редкий гость
 
27.06.06
12:27
(0)Правила форума читать не пробовали?
16 davinсhi
 
27.06.06
12:30
(15) что-то не так???
17 Сли то
 
27.06.06
12:38
"..т.е. сверка идет по сравнению строкового наименования с ФИО из ведомости.."
Ну тебе ни чего не мешает передавать из этой формы ФИО в виде строки
.
"..а ведомость ищется по родителям элемента справочника.."
А определить будующего родителя нового элемента ведь можно?
18 karek
 
27.06.06
12:40
А попробуй в свою глоб. процедуру вместо ссылки на справочник передавать контекст формы элемента. Может и прокатит.
19 davinсhi
 
27.06.06
12:41
да...
20 davinсhi
 
27.06.06
12:45
(19) to (17)
(18) думал уже об этом, тока для этого надо процедурку переделывать - нехотелось бы, она еще много где используется...
21 karek
 
27.06.06
12:49
(20) Если процедура действительно ищет в базе элемент по переданной ей ссылке, то да, надо переделывать. А если она просто читает из ссылки занчения атрибутов, то и с контекстом будет работать так же.
22 davinсhi
 
27.06.06
13:27
(21) в процедуре просто читаются значения реквизитов!!!
т.е. вместо
  глПолучитьРезультатыОлимпиады(ТекущийЭлемент())
надо написать
  глПолучитьРезультатыОлимпиады(Контекст)
23 davinсhi
 
27.06.06
13:35
СПАСИБО всем огромное... помогло с передачей контекста...
Закон Брукера: Даже маленькая практика стоит большой теории.