Имя: Пароль:
1C
1C 7.7
v7: Удаление документа, при отмене проведения
, ,
0 Alekssey
 
15.05.13
08:42
Необходимо сделать контроль создания только одного документа на одну дату. Модуль документа
   ДокМеню=СоздатьОбъект("Документ.Меню");
     ДокМеню.ВыбратьДокументы();
         Пока ДокМеню.ПолучитьДокумент()=1 цикл
             Если ДокМеню.ДатаДок=ДатаДок тогда  Предупреждение("Нельзя выдать несколько меню на одну дату");НеПроводитьДокумент();Возврат; КонецЕсли;
       КонецЦикла;

Подскажите что дописать, чтобы документ не сохранялся?
1 Aleksey
 
15.05.13
08:43
статусВозврата(0);
2 Alekssey
 
15.05.13
08:43
Либо чтобы пользователь возвращался назад в редактирование документа, и документ не сохранялся?
3 Aleksey
 
15.05.13
08:44
(2) не получится, потому что процедура записать и провести это разные разнесенные по времени процедуры
4 Aleksey
 
15.05.13
08:45
т.е. можно записать документ не проводя, но провести не записанный документ нельзя
5 1Сергей
 
15.05.13
08:56
минут 5 искал чем ваши ники отличаются
6 ЧеловекДуши
 
15.05.13
08:59
(5) Искал ошибку в Матрице :DDDD
7 НикДляЗапросов
 
15.05.13
09:00
(5) Длиной полоски ))
8 Aleksey
 
15.05.13
09:00
(5) чтобы рейтинг набить завёл твинк, теперь  вот накручиваю счётчик сообщений
9 Ёпрст
 
15.05.13
09:10
(0) зачет перебирать все документы
10 Ёпрст
 
15.05.13
09:12
если что, делай так и наслаждайся:

Процедура ПриЗаписи()
 ДокМеню=СоздатьОбъект("Документ."+Вид());
 Если ДокМеню.ВыбратьДокументы(ДатаДок,ДатаДок)=1 Тогда
       Предупреждение("Нельзя выдать несколько меню на одну  дату");
      СтатусВозврата(0);
 КонецЕсли;
КонецПроцедуры
11 Ёпрст
 
15.05.13
09:14
Хотя, лучше так:

Процедура ПриЗаписи()
 Если Выбран()=0 Тогда
   ДокМеню=СоздатьОбъект("Документ."+Вид());
   Если ДокМеню.ВыбратьДокументы(ДатаДок,ДатаДок)=1 Тогда
       Предупреждение("Нельзя выдать несколько меню на одну     дату");
         СтатусВозврата(0);
    КонецЕсли;
 КонецЕсли;
КонецПроцедуры
12 DJ Anthon
 
15.05.13
09:22
(11) получается, можно потом меню перенести в другую дату и будет два меню на одну дату?
13 DJ Anthon
 
15.05.13
09:23
лучше все-таки перебрать документы и проверить на себя. все равно их будет не много. и не понятна связь сабжа с заголовком.
14 Bigbro
 
15.05.13
09:25
(12) а при "переносе" в другую дату записи не будет?
15 Ёпрст
 
15.05.13
09:26
(12) не охота делать перебор, проще запретить менять дату, если документ записан
16 1Сергей
 
15.05.13
09:27
(14) запись будет, но это будет уже не новый документ
17 Ёпрст
 
15.05.13
09:27
Процедура ПриЗаписи()
 Если Выбран()=0 Тогда
   ДокМеню=СоздатьОбъект("Документ."+Вид());
   Если ДокМеню.ВыбратьДокументы(ДатаДок,ДатаДок)=1 Тогда
       Предупреждение("Нельзя выдать несколько меню на одну     дату");
         СтатусВозврата(0);
    КонецЕсли;
 ИначеЕсли ДатаДок<>ТекущийДокумент().ДатаДок Тогда
       Предупреждение("Нельзя менять дату записанного документа, пнх, Альфредо!");
         СтатусВозврата(0);      
 КонецЕсли;
КонецПроцедуры
18 ЧеловекДуши
 
15.05.13
09:28
+ (17) И тоже самое исполнить и в "ВводНового" и в "ВводНаОсновании" :)
19 Bigbro
 
15.05.13
09:32
(16) от того что он не новый призаписи() не выполнится?
20 Ёпрст
 
15.05.13
09:33
(18) зачем ?
21 DJ Anthon
 
15.05.13
09:33
(16) (19) вы о чем спорите?
22 Ёпрст
 
15.05.13
09:33
пусть мучается - в начале заполнит и при записи обломится.. так кошернее :)
23 DJ Anthon
 
15.05.13
09:33
(20) чтобы чел не обламывался, когда полчаса забивал таблицу. надо заранее предупредить. никто о хомяках не думает...
24 Bigbro
 
15.05.13
09:34
(21) я не понял к чему написано 16
25 DJ Anthon
 
15.05.13
09:34
(22) ))))))))))))) садист детектед )
26 ЧеловекДуши
 
15.05.13
09:34
(20) А что бы вообще нельзя было делать лишние документа на эту дату :)
И при вводе нового документа, открывать старый документ :)
27 DJ Anthon
 
15.05.13
09:34
(24) так вы вроде друг другу одно и то же и доказываете, не?
28 1Сергей
 
15.05.13
09:35
(24) первое условие глянь в (11)
29 Bigbro
 
15.05.13
09:36
(27) я вообще ничего не доказываю никому, тут уже все ответили по сабжу. просто в 16 написан какой то бред мной не понятый.
30 DJ Anthon
 
15.05.13
09:38
я бы еще проверку на дату запрета редактирования сделал...
31 Bigbro
 
15.05.13
09:38
есть 3 точки контроля - ввод нового, ввод на основании и запись. в чем проблема сделать проверку во всех трех не понимаю.
32 Bigbro
 
15.05.13
09:40
(28) и? что с этим условием?
это проверка на существование документа для ввода нового.
если мы успешно создали документ, и затем изменяем в нем дату на ту в которой документ есть - эта проверка спокойно пройдет мимо.
33 Bigbro
 
15.05.13
09:41
+32 такое чувство что у вас никогда пользователи программу не пытались "обмануть".
34 1Сергей
 
15.05.13
09:47
(32) и... ты суть разговора потерял.
в (11) предложили не перебирать документы, а тупо проверить открывается ли выборка за одну дату. Но, только для нового документа
в (12) автор сетует на то, что при перенесении на другую дату проверка выполнятся не будет. А значит возможна запись двух документов на одну дату.
в (14) ты упрекаешь автора в том, что процедура ПриЗаписи выполняется и для нового и для не записанного документа.
в (16) я тебя поправил, сказав что процедура запустится, но проверка выполнятся не будет. Т.е. замечание в (12) верное