Имя: Пароль:
1C
1C 7.7
v7: Атрибут По умолчанию
,
0 дон1есник
 
21.11.11
17:30
1сv7. Есть справочник категории цен.Редактировать в списке. Завел в нем реквизит (Перечисление.ДаНет) для того чтобы фиксануть какую из цен выводить на сайт.... логика простая Да должно быть обязательно указано у одной из записей...

ФлагОшибки = 1;
Да=0;
спрКЦ=СоздатьОбъект("Справочник.КатегорииЦен");
спрКЦ.ВыбратьЭлементы();
Если Поумолчанию=Перечисление.ДаНет.да Тогда
// колво ДА в справочнике, Один обязательно должен быть ДА
Пока спрКЦ.ПолучитьЭлемент() > 0 Цикл
Если спрКЦ.ПоУмолчанию=Перечисление.ДаНет.да Тогда    ФлагОшибки = 0; КонецЕсли;    
КонецЦикла;
Если ФлагОшибки=0 Тогда
// не заполнено обязательное поле
Предупреждение("Уже есть цена установленная по умолчанию");
СтатусВозврата(0);
КонецЕсли;    
иначе
Пока спрКЦ.ПолучитьЭлемент() > 0 Цикл
Если спрКЦ.ПоУмолчанию=Перечисление.ДаНет.да Тогда Да=Да+1;КонецЕсли;    
КонецЦикла;
Если Да=0 Тогда
не заполнено обязательное поле
Предупреждение("Уже есть цена установленная по умолчанию");
СтатусВозврата(0);
КонецЕсли;    
КонецЕсли;

Если все записи Нет и одна ДА у которой указали Нет - получаются все Нет... А если все Нет и одно ДА и мы решили ДА передернуть, то надо будет сначала указать НЕт сохранить а потом ДА. т.е. одного ПриЗаписи не хватает, можно подключить и ПриЗакрыти, но можно закрять 1С и это событие пролетит...Как правильно решить подобную задачу?
1 Господин ПЖ
 
21.11.11
17:32
жестЪ
2 Asmody
 
21.11.11
17:33
константу завести не проще было?
3 zuza
 
21.11.11
17:34
(0) не чего не понял...
4 дон1есник
 
21.11.11
17:34
И что мне указать в константе?
5 Asmody
 
21.11.11
17:35
(4) [для того чтобы фиксануть какую из цен выводить на сайт]
6 дон1есник
 
21.11.11
17:49
логичечно
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс