Имя: Пароль:
1C
1С v8
элементы справочника
,
0 Vasus55
 
09.02.12
14:44
как можно реализовать даннный процесс
есть документ и справочник
в справочнике несколько элементов
в документе реквизит ссылка на этот справочник, если до этого был выбран данный элемент справочника то этот элемент становиться не доступен для повторного выбора
не могу у справочника найти соотвествующее свойство....????
1 Wobland
 
09.02.12
14:46
запрет присутствия элемента справочника более чем в одном документе? нет такого свойства. да и ересь это
2 rbcvg
 
09.02.12
14:48
кажись надо в документе причину искать, а не в справочнике.
3 Wobland
 
09.02.12
14:48
(2) "как можно реализовать даннный процесс"
4 rs_trade
 
09.02.12
14:49
(0) а что у справочников должны быть свойства на все случаи жизни? отбор используй.
5 Рэйв
 
09.02.12
14:51
(0)Ты имеешь ввиду повторный выбор в тот же док? Или нет?
6 Vasus55
 
09.02.12
14:57
(5) в новый док
7 Wobland
 
09.02.12
14:59
хехе. выдайте мне чёрный пояс по телепатии ;)
8 Рэйв
 
09.02.12
15:00
(6)т.е если выбрано в одном документе, то навсегда закрыть выбор?..  Фигасе функционал..
9 Rounder
 
09.02.12
15:02
ОбработкаВыбора на поле документа, ищешь в остальных в документах реквизит, если нашел - отказ в выборе, если нет - выбрал.
10 Шапокляк
 
09.02.12
15:03
СписокДляВыбора
11 Rounder
 
09.02.12
15:04
(10) даже правильней.
В моем (9) варианте пользователю элемент будет доступен, но выбрать не сможет.
А если самому предварительно готовить список для выбора, то пользователь и увидит только доступные элементы.
12 Vasus55
 
09.02.12
15:31
(11)
че то пока не очень с соображалкой моей
начало такое

ПоискКарты=Документы.РеализацияТоваров.НайтиПоРеквизиту("ПодарочнаяКарта",ПодарочнаяКарта);
   Если ПоискКарты = Неопределено
       Тогда
а дальше??
13 Шапокляк
 
09.02.12
15:33
Если ПоискКарты <> Неопределено
       Тогда
ПодарочнаяКарта=Справочники.подарочныеКарты.пустаяСсылка();
14 Rounder
 
09.02.12
15:34
+
Сообщить("Такая карта уже используется");
15 Шапокляк
 
09.02.12
15:36
Автор, а если карту используют, ее по второму разу уже не выдают никому?
16 Vasus55
 
09.02.12
15:37
(15)нет
17 Шапокляк
 
09.02.12
15:38
А ежели две выдали и покупатель хочет их применить для покупки одного товара? Он в пролете?
18 kosts
 
09.02.12
15:39
(0) Предлагаю сделать через регистры. При проведении пишешь элемент справочника в измерение регистра. Желательно добавить период или год или месяц, не на всегда же выбор закрывать же.
При создании нового документа, анализируешь - если в регистре в нужном периоде уже есть элемент справочника, то делаешь в документе свой реквизит недоступным. Или доступным всегда, но при записи ругаешь пользователя...
Я бы поступил как-то так.
19 ЧеловекДуши
 
09.02.12
15:40
(16)Сделай Регистр сведений, в котором бушь хранить используемую "през..." номенклатуру
В общем привязываться к документу, без регистров, это как то попахивает отсутствием знаний в 1С :)
20 Rounder
 
09.02.12
15:43
(18) А реквизит в документе должен быть я так понимаю всегда доступным - в вот в форме выбора справочника карт не должны присутствовать уже "занятые" карты. Если я верно понял автора.
21 Vasus55
 
09.02.12
15:43
(17) вот такая вот система)))
можно только одну!!!
22 kosts
 
09.02.12
15:44
(20)
> вот в форме выбора справочника карт не должны присутствовать уже "занятые" карты. Если я верно понял автора
Ну и так тоже можно...
23 kosts
 
09.02.12
15:45
Если тему еще покрутить, то лучше делать два движения приход и расход.
Первое делаем документом поступление подарочных карт. документом из (0).
При выборе показываем только карты с положительным остатком...
24 Ткачев
 
09.02.12
15:46
Реквизит в справочник, отбор по реквизиту в ФормуСпискаВыбора ?
25 Rounder
 
09.02.12
15:46
(19) Не знаю нужен ли регистр. Что по быстродействию выше - выборка из регистра или из списка документов? Особенно если делать запросом?
Если оно сопоставимо либо незаметно - то при открытии документа (либо при начале выбора карты) формировать путем запроса список доступных карт и давать выбирать именно из него. Ну или как-то так.
26 kosts
 
09.02.12
15:47
+ к (23) Хотел сказать расход делаем документом из (0)
27 Rounder
 
09.02.12
15:47
(24) тоже вариант.
Но по кол-ву телодвижений вариант не самый оптимальный - хоть и симпатичный.
28 Vasus55
 
09.02.12
15:50
(13) но карту все равно можно выбрать...
29 Vasus55
 
09.02.12
15:53
причем меня терзает смутное сомнение что ПоискКарты=Документы.РеализацияТоваров.НайтиПоРеквизиту("ПодарочнаяКарта",ПодарочнаяКарта); не работает....
30 Rounder
 
09.02.12
15:53
(28) тогда при открытии документа или при НачалоВыбора получай список "не занятых" карт, и этот список подсовывай пользователю для выбора.
31 Rounder
 
09.02.12
15:54
(29) проверь тип Реквизита, и тип того что ты ищешь.
32 Rounder
 
09.02.12
15:55
+ к (28) еще нужно будет проверять и при записи - не занял ли кто карту, пока твой клиент думал.
33 Rounder
 
09.02.12
15:55
вернее передЗаписью
34 Vasus55
 
09.02.12
16:02
(29) тип карты
в справочнике строка
в документе справочник ссылка
35 Vasus55
 
09.02.12
16:02
(30) а нет какой нить обработки????
36 Vasus55
 
09.02.12
16:02
по этому поводу...
37 Rounder
 
09.02.12
16:12
(34) ПоискКарты=Документы.РеализацияТоваров.НайтиПоРеквизиту("ПодарочнаяКарта",ПодарочнаяКарта)

Вот здесь какого типа твоя переменная ПодарочнаяКарта?

Самое смешное, что сам только что на типах сморозил и в соседней ветке меня попинали за это:)
38 Шапокляк
 
09.02.12
16:15
(28) а в какой процедуре такое условие используете?
39 Vasus55
 
09.02.12
16:17
(37) справочник сслыка
40 Vasus55
 
09.02.12
16:17
(38)обработка выбора
41 Шапокляк
 
09.02.12
16:20
(40) В ПриИзменении поставьте
42 Vasus55
 
09.02.12
17:00
(41) она при люом случае выдает Сообщить("Такая карта уже используется");
43 Vasus55
 
09.02.12
17:05
(30) каким образом вывести список только не занятых карт?
44 Шапокляк
 
09.02.12
17:07
(42) Код процедуры в студию. И еще - документ с этой подарочной карточкой в базу записан?
45 Vasus55
 
09.02.12
17:13
(44)и на записанный и не на записанный сообщает!
46 Vasus55
 
09.02.12
17:13
ПоискКарты=Документы.РеализацияТоваров.НайтиПоРеквизиту("ПодарочнаяКарта",ЭлементыФормы.ПодарочнаяКарта.Значение);
Сообщить(ПоискКарты);
Если ПоискКарты <>     Неопределено
      Тогда
           ПодарочнаяКарта=Справочники.ПодарочныеКарты.ПустаяСсылка();
           Сообщить("Такая карта уже используется");
           КонецЕсли;
47 Шапокляк
 
09.02.12
17:17
(46)
ПоискКарты=Документы.РеализацияТоваров.НайтиПоРеквизиту("ПодарочнаяКарта",ЭлементыФормы.ПодарочнаяКарта.Значение);
Сообщить(ПоискКарты);
Если ПоискКарты <>  Документы.РеализациятоваровУслуг.Пустаяссылка()
       Тогда
           ПодарочнаяКарта=Справочники.ПодарочныеКарты.ПустаяСсылка();
           Сообщить("Такая карта уже используется");
           КонецЕсли;
48 Vasus55
 
09.02.12
17:21
а как можно вывести список только не занятых карт?
49 kosts
 
09.02.12
19:43
(48) Если не будет использоваться регистр, и в свете того, что жизнь элемента справочника коротка. Можно попробовать добавить в справочник реквизит "документ_что_то_там" и записывать в реквизит ссылку на документ при проведении.
А в форме выбора достаточно установить отбор по пустым значениям добавленного реквизита.
Программист всегда исправляет последнюю ошибку.