Вход | Регистрация


1С:Предприятие ::

Метки:

Пометка документа на удаление

Я
   vitaly
 
05.12.04 - 17:57
Можно ли пометить документ на удаление из формы самого этого документа?
 
  Рекламное место пустует
   Guk
 
1 - 05.12.04 - 17:58
(0) Пробовал?...
   vitaly
 
2 - 05.12.04 - 18:05
Ага, не получилось.
Я пробовал найти документ в переменную созданную СоздатьОбъект("Документ.Вид")
А потом сделать ему Удалить(0)
   427
 
3 - 05.12.04 - 18:50
с таким же успехом можно попытаться наступить на собственные яй.а - больно и не всегда получается...

Но некоторые умеют.....
   NiGMa
 
4 - 05.12.04 - 18:57
(0) Да можно. Только не прямо из формы.
В ГМ сделай удалялку:
Процедура глУдалить(Конт)
    Перем л_Объект;

    л_Объект = СоздатьОбъект("Документ");
    л_Объект.НазначитьВид(Конт.Вид());
    л_Объект.НайтиДокумент(Конт.ТекущийДокумент());
    Конт.Форма.Закрыть();
    л_Объект.Удалить(0);
КонецПроцедуры

 А в форме - ее вызови. И все!!!
   Did
 
5 - 05.12.04 - 19:15
2(4), Прикалываешься? Он сидя в объекте хочет записать его :))
   427
 
6 - 05.12.04 - 19:18
(4) Круто... Это надо так больно наступить...

P.S. эта процедура работать не будет... Объяснять, почему?
   427
 
7 - 05.12.04 - 19:19
(5) помимо блокировки - есть еще одни грабли...
   Guk
 
8 - 05.12.04 - 19:22
(4) LOL!...
   NiGMa
 
9 - 05.12.04 - 19:27
(6) Да я знаю... я ж просто дорогу показал!
   427
 
10 - 05.12.04 - 19:32
(9) Ивана Сусанина франчи ведь повесили....
 
  Рекламное место пустует
   NiGMa
 
11 - 05.12.04 - 19:33
(10) то ж не халява была ;)
   1С Дурочка
12 - 05.12.04 - 19:34
(9) Правильно. Я то же так всегда делаю. Если меня на улице спрашивают как пройти/проехать куда-нибудь, уверенно объясняю что сейчас надо пойти ... потом ... там увидите ... повернете ... сядите на автобус/трамвай/троллейбус ... доедете до остановки ...
Все равно я этого человека вижу первый и последний раз в жизни, так почему бы не сделать ему приятное?
   uchenik
 
13 - 05.12.04 - 20:16
Позволю себе поднять эту тему.
А подскажите уважаемые, а она вообще решаема, ведь действительно возникает блокировка. Как же быть?
   427
 
14 - 05.12.04 - 20:19
(13) не городить фульни...
   uchenik
 
15 - 05.12.04 - 20:20
(14) ?
   427
 
16 - 05.12.04 - 20:21
Из объекта нельзя удалить сам объект...
.
P.S. это делатеся через обработку ожидания
   NiGMa
 
17 - 05.12.04 - 20:22
(16) А можно проще - и правильнее
   uchenik
 
18 - 05.12.04 - 20:24
(16) Вызывать глУдалить, в ней запускать обработку ожидания и когда контекст становиться неопределенным помечать Док на удаление?
(17) Как?
   1С Дурочка
19 - 05.12.04 - 20:29
Чур, я в первом ряду. И, можно я тоже буду давать идиотские советы? Люблю помогать незнакомым людям.
   uchenik
 
20 - 05.12.04 - 20:45
Это нужно вставить в глобальник.
Перем Об ;
//***************************************************************************

Процедура ПроверкаОбъекта()
    Если Об.ПометкаУдаления()=0 
    Тогда
        Об.Удалить(0); 
    КонецЕсли;    
    Если Об.ПометкаУдаления()=1 
    Тогда
        ОбработкаОжидания("ПроверкаОбъекта",0);
    КонецЕсли;    
КонецПроцедуры
//***************************************************************************

Процедура глПометить(Конт) Экспорт
   Об = СоздатьОбъект("Документ."+Конт.Вид()); 
   Об.НайтиДокумент(Конт.ТекущийДокумент()); 
   Конт.Форма.Закрыть(); 
   ОбработкаОжидания("ПроверкаОбъекта",1)
КонецПроцедуры
А это в форму
глПометить(Контекст);

А Дурочке предоставляется уникальная возможность сказать, как избежать некоторой заметной паузы между закрытием документа  и установлением пометки, а так же как открыть его повторно?
Кстати, есть в этой Дурочке что-то лошадиное, вы не находите?
   427
 
21 - 05.12.04 - 21:00
(20) примерно так. Задержку ты не уберешь - у Обработки Ожидания шаг большой + еще не факт, что на сетевой версии само удаление может выполняться долго...


P.S. а за удалить(0) вообще то принято обрывать яйца...

(17) Подробности сей сенсации - в студию...
   uchenik
 
22 - 05.12.04 - 21:08
(3,21) Почему такое большое внимание к сим органам и удалить(0) чем плохо?
   427
 
23 - 05.12.04 - 21:10
Удалить(0) - приводит к нарушению ссылочной целостности...
   Guk
 
24 - 05.12.04 - 21:14
(23) Удалить(1) видимо имелось ввиду...
   uchenik
 
25 - 05.12.04 - 21:14
(23) А ты ничего не путаешь?
ИХМО нарушение ссылочной целостности если Удалить(1).Поправь, если не так.
   427
 
26 - 05.12.04 - 21:18
Сорри...
пля... спать пора ложиться.... Правы оба...
   uchenik
 
27 - 05.12.04 - 21:20
(26) Вдогонку. А открыть штатными средствами Док можно?
   427
 
28 - 05.12.04 - 21:25
(27) Это как открыть? Яснее скажи...
   uchenik
 
29 - 05.12.04 - 21:27
(28) Ну вот мы получили этот документ, закрыли, пометили на удаление, а как теперь его открыть обратно? (ну надо мне его открыть после пометки).
   427
 
30 - 05.12.04 - 21:45
Если Об.ПометкаУдаления()=0 
   Тогда 
       Об.Удалить(0); 
       ОткрытьФорму (Об, параметры) 
   КонецЕсли;     

на самом деле особого смысла повторно открывать его нет - при дальнейших интерактивных действиях с помеченным на удаление система будет раскладывать грабли.... своими вопросами...


Еще одни грабли будут если в ПриОткрытии стоит

ReMakeActionsWhenWrite(Parameter)



если использовать Конт.Форма.Закрыть() вывалит запрос на сохранение... такие у ней умолчания.
Надо либо закрывать без вопросов (закрыть(0)-но тогда изменения сбросятся), либо Записать выдавать руками.... но тогда сработает ПриЗаписи и.... смотри

ReMakeActionsWhenWrite(Parameter)
   Ёжик в тумане
 
31 - 05.12.04 - 23:04
(29) Вот что тебе точно надо, так это читать, читать и ещё раз читать.
Главным образом СП.
Про осенние книги вообще молчу..
   uchenik
 
32 - 06.12.04 - 00:08
(31) Встретишься когда-нибудь мне в тумане, я те СП наизусть процитирую, животное ты этакое. :)
   Ёжик в тумане
 
33 - 06.12.04 - 00:09
(32) Можешь прямо сейчас начать - чего тянуть.
 
  Рекламное место пустует
   uchenik
 
34 - 06.12.04 - 00:15
(33) Да ну его к черту. А ты это, слышь, в обрыв не упади за лошадью. :)
(Типа шутка, может ветку закроют).
   Ёжик в тумане
 
35 - 06.12.04 - 00:18
(34) Может и закроют.
Но тебе от этого легче не будет..
   uchenik
 
36 - 06.12.04 - 00:21
(35) Ты по теме когда-нибудь пробовал?
   Ёжик в тумане
 
37 - 06.12.04 - 00:22
(36) Ты о чём это?
   uchenik
 
38 - 06.12.04 - 00:26
Порожняк, точно закроют.
(37) На вопрос темы говорю, отвечать пробовал когда-то или кроме СП и ЖКК ничиго на ум не приходит? Ты думаешь что выйти сюда через диалап быстрее и легче чем воспользоваться контекстом СП? Если да, то ошибаешся.
   Ёжик в тумане
 
39 - 06.12.04 - 00:30
(38) Я всегда отвечаю по теме.
Покажи хотя бы одно моё замечание "не по теме".
В данном случае СП и ЖКК - самая прямая дорога для задающих подобные вопросы.
А если воспользоваться СП быстрее, то что же не пользуешься?
   uchenik
 
40 - 06.12.04 - 00:40
(39) Подскажи в СП раздел для решения задачи в (29)?
Ведь задавая вопрос интересует не синтаксис команд Удалить, Закрыть, лексем, синтаксические правила и т.д. Интерес представляет реализация задачи, алгоритм, который не найлешь в СП. Поэтому, любезный, впредь со своим СП в другое место. :)
(Этой рожей сглажу некоторую напряженность. Все таки, признайтесь Ежик, что (31) было несколько не в тему.)
   Ёжик в тумане
 
41 - 06.12.04 - 00:43
(40) Отнюдь. Как раз в тему. Вопрос в (29) демонстрирует только незнание команды ОткрытьФорму(), поскольку никакие алгоритмы для того, чтобы просто взять и открыть форму документа не нужны.
   1С Дурочка
42 - 06.12.04 - 00:44
(40) Ты понимаешь почему у тебя не получается то, что ты хочешь сделать? Что от тебя хочет система?
   uchenik
 
43 - 06.12.04 - 00:48
(41) Но ведь эту команду нужно где то разместить причем в некоторой последовательности с другими, а это уже, уважаемый Ежик, алгоритм - упорядоченный набор действий, для достижения некоторого результата (Информатика 7). И меня интересовал именно он, а не команда ОткрытьФорму.
Думаю теперь вы со мной согласитесь, а если нет, то черт с вами, а я под бочок, чего и вам советую.
   Ёжик в тумане
 
44 - 06.12.04 - 00:49
+41 из (27) так и вовсе выпирает незнание ОткрытьФорму()
   Ёжик в тумане
 
45 - 06.12.04 - 00:54
(43) В каком месте хочешь открыть - в том и открываешь?
Какой тут в жопу алгоритм? Может тебе ещё изложить алгоритм, в каком порядке надо кнопки нажимать, чтобы этого добиться?
...
Ты вообще не пытайся тут своё незнание скрыть за экивоками на учебники информатики. Это ещё школьнику простительно, который не понимает, что его познания - это всё срам болотный. Будешь честно говорить - мол, не знаю, помогите люди - так и люди тебе охотней выпятят свои умности, лишь бы тебя поучить.
   uchenik
 
46 - 06.12.04 - 01:41
(45) А ты смотрю упертый, маленький пушистый зверек, с нежной кожей. :)
Молод еще? Повзрослеешь и поймешь, что  знание команд - это не самое главное. Важно умение из имеющихся инструментов получить результат, причем получать результат с разными инструментами (читай ЯП). Смениться язык (перейдем на 8-ку), сменяться команды, но последовательность команд не перетерпит существенных изменений, поэтому,все таки, важен сам алгоритм, а если не согласен, то нет смысла в дальнейшей беседе.
Кстати, по поводу (45),единственная твоя умность - "Читай СП". Очень умно, согласен.
   Ёжик в тумане
 
47 - 06.12.04 - 02:09
(46) И что ты нового сказал всей этой пургой?
Ты, наверно, считаешь, что ты один такой умный, и что никто кроме тебя, тем более какой-то там Ёжик в тумане понятия не имеет, что алгоритм важнее инструментария? Ты, вероятно, очень удивишься, но я согласен в этом с тобой!
Но каким бы ты там алгоритмистом не был - без знания функционала алгоритма не построишь. То, что ты демонстрировал в (27) и (29) говорит как раз о незнании функционала, так что алгоритмы тут отдыхают.
А то, что ты нанёс в (43) так и вовсе говорит о том, что ты пускаешь пыль в глаза, пытаясь высосать какой-то алгоритм оттуда, где его нет.
Но даже не смотря на всё это мне до сих пор кажется, что у тебя есть шансы освоить предмет и не выставлять себя так в дальнейшем.
Будешь критичен к себе - сделаешь выводы.
На том и завяжем.
   uchenik
 
48 - 06.12.04 - 02:16
(47) Согласен.
   Э Эх
49 - 06.12.04 - 03:24
Можно ж еще старым способом - через передачу контекста в обработку, закрытие в ней документа (через контекст), удаление и повторное открытие...
 
  Рекламное место пустует
   427
 
50 - 06.12.04 - 07:00
Еще один любитель граблей... Нужный все таки инструмент...
   Э Эх
51 - 06.12.04 - 07:25
(50) Как же без них то, без граблей... Никуда практически... Сам знаешь.
   uchenik
 
52 - 06.12.04 - 09:20
Итак имеем два алгоритма, пусть похожих, но от этого не менее разных.
1. ОбработкаОжидания()
2. Через объект-обработку.
А есть еще? Я хоть не автор ветки, но тема интересна.
   Mohoshito
 
53 - 06.12.04 - 10:09
Может я пропустил, когда читал эту ветку, но я так и не нашел объяснения. В чем великий смысл сего таинства? Зачем же надо наступать себе на яйца, зачем удалять документ из открытой формы этого документа?
Если что, не пинайте сильно, я похоже еще не совсем просветленный... :)
   vitaly
 
54 - 06.12.04 - 12:40
Извините, долго не мог добраться до тачилы.
То (53) великий смысл сего таинства для меня состоял в том, что бы можно было при необходимости открыть документ, уже проведенный, поменять в нем дату и провести с новой датой.
Для этого документу надо сначала сделать отмену проведения.
   Ёжик в тумане
 
55 - 06.12.04 - 13:22
(54) А воды-то развёл! Всё это делается одной строкой.
И эта строка упоминается в (30)
   Ёжик в тумане
 
56 - 06.12.04 - 13:26
+55 есть ещё и другая логика, которая состоит в том, что проведённый документ не следует изменять.
Но чтобы дойти до этой логики своим умом, нужно сперва набить полсотни шишек и наступить на сотню грабель - вот тогда будет понятно.
   uchenik
 
57 - 06.12.04 - 14:02
Уважаемый Ежик, просто не мог пройти мимо. А как же желание клиента, для нас это закон, а у ваших клиентов закон это ВЫ?
   427
 
58 - 06.12.04 - 14:07
Желания клиентов надо грамотно строить в нужных направлениях....

А если я желаю при приезде к клиенту иметь пару ..дей и пиво?
   GrayT
 
59 - 06.12.04 - 14:10
Закон, законом, но на поводу у всех подряд ходить не стоит - желательно самому думать. А то очередное желание клиента - повесить все проблемы на программера :(
   похмелённый
60 - 06.12.04 - 14:30
А спать вы ложились?
   uchenik
 
61 - 06.12.04 - 15:16
(60) а зачем? Все равно всатвать. :)
А ты чего такой серый, как это делается?
   Ёжик в тумане
 
62 - 06.12.04 - 15:18
(57) Пока что ни один клиент не сподобился на такие желания, какие нельзя было бы реализовать через (56)
...на всякий случай поясню... ;)
...я не говорил, что проведённые документы не следует делать непроведёнными, я говорил "проведённый документ не следует изменять" - а это разные вещи...
   Ёжик в тумане
 
63 - 06.12.04 - 15:19
(61) Похмелишься - ещё не такой серый будешь....
   NiGMa
 
64 - 07.12.04 - 14:44
(54) На самом деле, великая и сермяжная правда всего, что здесь обсуждалась, состоит всего в одном: обход блокировки.
И на этот счет уже придуман один красивый механизм: 2 формы, закрывающие друг друга (в ПриЗакрытии()). Блокировка-то и обходится!
А насчет сохранения изменений (или изменения даты/времени проведенного документа прямо из формы) - это уже все вторично.

Так что все не очень и сложно: к вышеозначенной глУдалить() нужно добавить обработку, ее вызывающую. Или не ее - а все, что нужно/хочется. Ну может сделать еще пару глобальных переменных для хранения реквизитов шапки и ТЧ.
   NiGMa
 
65 - 07.12.04 - 17:29
(64+) Идея, кстати, еще не незабвенном hare.ru лежала



Список тем форума
Рекламное место пустует   Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует