Имя: Пароль:
1C
1С v8
v8: Перечисления
0 МикаМ
 
18.03.13
15:14
Ребят, подскажите - может я где туплю - но вот не могу сообразить как бы это по красивее сделать...
В конфигурации существуют перечисления - например:
ВидыЗадолженности
- Дебиторская
- Кредиторская

К ним очень удобно обращаться через . (точку) - например:
ВидыЗадолженности.Дебиторская

Теперь вопрос - можно ли в 1С создать в модуле формы какую-то структуру типа перечисления, чтоб к ней так же обращаться.

Нужна структура:
СтатусЗакрытияДокумента
- Закрыт
- ЧастичноЗакрыт
- Незакрыт
- Отсутствует

И дальше по программе чтоб можно было проверять

Если ааа=СтатусЗакрытияДокумента.Закрыт Тогда
  .......
ИначеЕсли ааа=СтатусЗакрытияДокумента.ЧастичноЗакрыт Тогда
   .........
И.т.д
1 ДенисЧ
 
18.03.13
15:15
Если ааа = Перечисления.СтатусЗакрытияДокумента.Закрыт Тогда...
2 Steel_Wheel
 
18.03.13
15:16
Можно сделать србственное перечисление
3 exwill
 
18.03.13
15:17
Чем перечисления не устраивают?
4 НафНаф
 
18.03.13
15:18
можно и структуру:

СтатусЗакрытияДокумента = Новый Структура("Закрыт,ЧастичноЗакрыт,Незакрыт,Отсутствует",0,1,2,3);
5 МикаМ
 
18.03.13
15:19
не хочу добавлять новое перечисление в конфу - это частный случай только для одной обработки...
6 kosts
 
18.03.13
15:19
(5) Для этого списки есть
7 МикаМ
 
18.03.13
15:20
структуру нельзя проверить СтатусЗакрытияДокумента.Закрыт
8 kosts
 
18.03.13
15:21
(7) Так можно
Если ааа=СтатусЗакрытияДокумента.Закрыт Тогда
9 МикаМ
 
18.03.13
15:22
(8) в списке так вроде нельзя обратиться
10 exwill
 
18.03.13
15:23
(5) Если это частный случай - нафига тогда красота?
11 МикаМ
 
18.03.13
15:24
(10) я поставил цифрами, но неудобоваримо и если самому через месяц нужно будет что-то менять - то мозг сломаю
12 kosts
 
18.03.13
15:25
(10) Если для выбора на форме, то используй списки и все дела.
В значении списка 0,1,2,3 в тексте можно структуру
13 МикаМ
 
18.03.13
15:26
(8) В этом случае ааа должен иметь значение не СтатусЗакрытияДокумента.Закрыт, а 1,2 или 3 - то есть содержимому СтатусЗакрытияДокумента.Закрыт. (
14 МикаМ
 
18.03.13
15:28
(12) на форме это не отображается...
15 НафНаф
 
18.03.13
15:28
смотри (4(
16 exwill
 
18.03.13
15:30
(11) Если такая фигня ломает тебе мозг, может стоит бросить программирование?
17 НафНаф
 
18.03.13
15:32
к сожалению в 1С нет встроенных объектов, типа

class A
{
 public enum S {S1,S2,S3};
}
18 МикаМ
 
18.03.13
15:33
(16) ну как фигня - меня волнует чтоб через пару месяцев когда придется снова вернуться к этой обработке я не убивал неделю вычисляя что значит 1, что значит 2 и что такое 10...)
19 МикаМ
 
18.03.13
15:33
(17) обидно - хочется сделать чтоб всё красиво было... (
20 Steel_Wheel
 
18.03.13
15:34
(11) Переменных добавь
СТАТУС_ДОКУМЕНТА_ЗАКРЫТ = 0

И потом работай с этими переменными
21 exwill
 
18.03.13
15:35
(18) Ты всякий раз убиваешь на такие вещи неделю?
22 МикаМ
 
18.03.13
15:36
(20) ну если уж другого ничего нет, то неплохой вариант - спасибо...
23 МикаМ
 
18.03.13
15:37
(21) нет - только первый раз - потом уже точно знаешь что можно сделать, а что нет... )))
24 МикаМ
 
18.03.13
15:39
(21) иногда мелочи тоже бывают важны... )))
25 МикаМ
 
18.03.13
16:20
Сделал как посоветовал Наф-Наф

СтатусЗакрытияДокумента = Новый Структура("Закрыт,ЧастичноЗакрыт,Незакрыт,Отсутствует",0,1,2,3);
Получилось почти как хотел...)))
26 Reset
 
18.03.13
16:24
(25)
СтатусЗакрытияДокумента = Новый Структура("Закрыт,ЧастичноЗакрыт,Незакрыт,Отсутствует","Закрыт","Частично закрыт","Не закрыт","Отсутствует");
27 Reset
 
18.03.13
16:24
Это к (13), если хочеться не цифры в значениях
28 МикаМ
 
18.03.13
16:28
(27) можно и так... Но самое главное - что уже не просто голые цифры - а уже хоть какой-то осознанный текст по которому можно понять что проверяет это условие... :)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс