| 
    
        
     
     | 
    
  | 
v7: Проблема с номером документа при создании нового документа в 7.7 | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        es3000    
     04.02.14 
            ✎
    08:37 
 | 
         
        Есть простой код:
 
        пДок = СоздатьОбъект("Документ.РасходнаяНакладная"); пДок.Новый(); пДок.ДатаДок = пДата; пДок.УстановитьНовыйНомер(); пНовыйНомер = пДок.НомерДок; Возврат пНовыйНомер; При первом вызове этого кода номер нового документа сразу становится больше последнего номера в базе на 2. Мистика какая-то. Если пощелкать кнопками, которые вызывают этот код, и сделать дату прошлого периода а потом снова первоначальную дату - то номер становится на место. Из-за чего это происходит?  | 
|||
| 
    1
    
        DrZombi    
     гуру 
    04.02.14 
            ✎
    08:44 
 | 
         
        (0) Волшебство переходного периода.
 
        Ты, милок, в какой Год документы пишешь? А рабочая дата в каком?  | 
|||
| 
    2
    
        es3000    
     04.02.14 
            ✎
    08:48 
 | 
         
        (1) 
 
        1) первый раз когда срабатывает код - дата равна сегодняшней рабочей дате 04.02.2014, 2) второй раз - меняю дату на прошлый период на 2013-й год, 3) а потом опять на 04.02.2014. в первом случае номер сразу на 2 увеличивается, а во втором и в третьем случаях - номер как положено увеличивается на 1  | 
|||
| 
    4
    
        Мимохожий Однако    
     04.02.14 
            ✎
    08:51 
 | 
         
        Установи рабочую дату перед формированием документа равной дате документа.
 
        По окончании обработки восстанови рабочую дату в исходную  | 
|||
| 
    5
    
        DrZombi    
     гуру 
    04.02.14 
            ✎
    08:52 
 | 
         
        (2) Ты про дату документа скажи :)
 
        Я так понимаю, ты сегодня пишешь документы в прошлый период. А команда "УстановитьНовыйНомер" устанавливает новый номер исходя из "Рабочей даты", а не из даты документа :) В итоге, ты пишешь документ в 2013-тый год, но номер документов берется из 2014-го :) Странно, что ты еще не напоролся на "Номер доумента не уникален" :)  | 
|||
| 
    6
    
        es3000    
     04.02.14 
            ✎
    09:01 
 | 
         
        (3) ща гляну     
         | 
|||
| 
    7
    
        es3000    
     04.02.14 
            ✎
    09:03 
 | 
         
        (5) вообще я хочу документ сегодня записать в сегодня, но программно.
 
        с прошлым периодом это я стал экспериментировать когда обнаружил, что сегодня он мне пропускает один номер  | 
|||
| 
    8
    
        Масянька    
     04.02.14 
            ✎
    09:09 
 | 
         
        (7) Дык не меняй дату - ТекущаяДата()     
         | 
|||
| 
    9
    
        dedmoroz777    
     04.02.14 
            ✎
    09:11 
 | 
         
        (7) если стоит автонумерация, то Док.Новый() уже новый номер присвоил. УстановитьНовыйНомер() установил более новый. Что непонятного?     
         | 
|||
| 
    10
    
        Масянька    
     04.02.14 
            ✎
    09:12 
 | 
         
        (9) Прав :)     
         | 
|||
| 
    11
    
        DrZombi    
     гуру 
    04.02.14 
            ✎
    09:14 
 | 
         
        (9) Ну все, ты Убил волшебство :)     
         | 
|||
| 
    12
    
        es3000    
     04.02.14 
            ✎
    09:15 
 | 
         
        (9),(10) спасибо, сейчас попробую     
         | 
|||
| 
    13
    
        dedmoroz777    
     04.02.14 
            ✎
    09:17 
 | 
         
        Извините! )     
         | 
|||
| 
    14
    
        es3000    
     04.02.14 
            ✎
    09:29 
 | 
         
        а куда ответ (3) про типовые пропал?
 
        в общем ничего особенного в типовых не нашел. вот пример: ДокПоступление = СоздатьОбъект("Документ.ПоступлениеТМЦ"); ДокПоступление.Новый(); ДокПоступление.ДатаДок = ДатаДок; ДокПоступление.АвтоВремяТекущее(); ДокПоступление.Фирма = ФирмаПокупателя; ДокПоступление.УстановитьНовыйНомер(ФирмаПокупателя.ЮрЛицо.ПрефиксНомеровДокументов);  | 
|||
| 
    15
    
        Масянька    
     04.02.14 
            ✎
    09:33 
 | 
         
        (14) У тебя СП украли?     
         | 
|||
| 
    16
    
        es3000    
     04.02.14 
            ✎
    09:43 
 | 
         
        (15) чего-чего украли?     
         | 
|||
| 
    17
    
        oslokot    
     04.02.14 
            ✎
    09:49 
 | 
         
        (16) это староверы так шутят :) Синтаксис-помощник (СП)
 
        Давно заметил, надо заниматься одним - или клюшками или восьмерой. Я полгода на КА, и в 7.7 стал тупить, хотя раньше шпарил тока в путь )  | 
|||
| 
    18
    
        oslokot    
     04.02.14 
            ✎
    09:50 
 | 
         
        (14) есть там в типовых, ищи. Где-непомню (     
         | 
|||
| 
    19
    
        Масянька    
     04.02.14 
            ✎
    09:50 
 | 
         
        (16) Чего-чего... Того.
 
        Установи курсор на букву "н" в слове "УстановитьНовыйНомер" и нажми кнопочку "F1". Справа должно открыться окошко. В нем будет написато много буков. Это окошко называется "Синтаксис-помощник" (сокращенно СП). Иногда - помогает :)))  | 
|||
| 
    20
    
        DeiMos    
     04.02.14 
            ✎
    09:54 
 | 
         
        (9): Не прав.     
         | 
|||
| 
    21
    
        Wobland    
     04.02.14 
            ✎
    09:56 
 | 
         
        (19) синтакс-помощник - это то, что внутри окна синтакс-помощника, а не само окно синтакс-помощника     
         | 
|||
| 
    22
    
        Масянька    
     04.02.14 
            ✎
    09:59 
 | 
         
        (21) Не придирайся :)     
         | 
|||
| 
    23
    
        Wobland    
     04.02.14 
            ✎
    10:05 
 | 
         
        (22) я заигрываю     
         | 
|||
| 
    24
    
        КонецЦикла    
     04.02.14 
            ✎
    10:06 
 | 
         
        (9) Феерчичная теория квантового вакуумного контимиума 1С.     
         | 
|||
| 
    25
    
        КонецЦикла    
     04.02.14 
            ✎
    10:08 
 | 
         
        (0) Возможно это не весь код. А, возможно, ты не монопольно сидишь :)     
         | 
|||
| 
    26
    
        es3000    
     04.02.14 
            ✎
    10:34 
 | 
         
        (19) Легче стало!!
 
        А я уж такое про СП подумал, и "совместное предприятие" и "семейное положение" и "спид" :) И совсем забыл про "синтаксис-помощник"  | 
|||
| 
    27
    
        es3000    
     04.02.14 
            ✎
    10:34 
 | 
         
        (25) не монопольно, но один в отладочной базе     
         | 
|||
| 
    28
    
        es3000    
     04.02.14 
            ✎
    10:38 
 | 
         
        (20) в чем не прав, конкретнее, пожалуйста     
         | 
|||
| 
    29
    
        es3000    
     04.02.14 
            ✎
    11:00 
 | 
         
        Ничего не помогает.
 
        просто две строки кода: пДок = СоздатьОбъект("Документ.РасходнаяНакладная"); пДок.Новый(); И номер сразу становится 000188, хотя в базе последний 000186. Что еще можно попробовать??  | 
|||
| 
    30
    
        КонецЦикла    
     04.02.14 
            ✎
    11:02 
 | 
         
        Переиндексация?     
         | 
|||
| 
    31
    
        es3000    
     04.02.14 
            ✎
    11:04 
 | 
         
        (30) тогда почему когда датой играюсь номер становится правильным? как я в (2) писал.
 
        переиндексацию сейчас попробую  | 
|||
| 
    32
    
        es3000    
     04.02.14 
            ✎
    17:07 
 | 
         
        нашел косяк...
 
        Обработка запускается из предопределенной процедуры ВводНового() документа "РасходнаяНакладная". А потом устанавливается код ошибки СтатусВозврата(0). Таким способом вместо формы документа запускается форма обработки. И эта обработка "эмулирует" документ. А при записи она программно создает документ и пишет в него данные. И получается что когда формируется номер документа указанным в (0) способом один созданный документ уже есть (это документ из которого запустилась обработка). Поэтому код возвращает номер больше на 2. Как от этого избавиться?  | 
|||
| 
    33
    
        Ёпрст    
     гуру 
    04.02.14 
            ✎
    17:08 
 | 
         
        закрыть форму документа из которого запущена обработка.. если он не нужен, конечно.     
         | 
|||
| 
    34
    
        es3000    
     04.02.14 
            ✎
    17:17 
 | 
         
        (33) так форма документа даже и не открывается...
 
        ты наверно чуток не допонял. 1) в журнале документов выполняем команду "создать новый документ" 2) в процедуре "ВводНового" этого документа выполняется: ОткрытьФорму("Обработка.РасходнаяНакладнаяОбр"); СтатусВозврата(0); Возврат; То есть документ, который мы создаем не открывается, но вместо него открывается обработка 3) В процедуре ПриОткрытии обработки выполняется код, приведенный в (0), который определяет номер нового документа. Но поскольку эта процедура вызывается из "ВводНового" документа, то документ в этот момент еще не закрыт. Получается в этот момент создано два новых документа "РасходнаяНакладная"  | 
|||
| 
    35
    
        Torquader    
     04.02.14 
            ✎
    17:30 
 | 
         
        (32) Ну, самый простой способ - это запомнить номер того документа, который был создан.
 
        Чтобы документ "разрушился" придётся из формы документа запускать какую-то другую обработку или ставить в ней ложное закрытие, чтобы присвоения и инициализацю документа делать тогда, когда создаваемый документ уже будет разрушен, а ссылка на номер - свободна. То, что мы пишем в ПриОткрытии обработки, исполняется ещё до того, как будет отработан СтатусВозврата(0), а нам нужно, чтобы он отработал и вернул управление системе. В обработке: Перем мчЛожноеЗакрытие; Процедура ПриОткрытии() мчЛожноеЗакрытие=1; Форма.Закрыть(0); КонецПроцедуры Процедура ПриЗакрытии() Если мчЛожноеЗакрытие=1 Тогда СтатусВозврата(0); // выполняем необходимые действия Возврат; КонецЕсли; // далее обработка стандартного закрытия КонецПроцедуры Где-то так.  | 
|||
| 
    36
    
        es3000    
     04.02.14 
            ✎
    17:30 
 | 
         
        как-нибудь можно этот эффект обойти?     
         | 
|||
| 
    37
    
        es3000    
     04.02.14 
            ✎
    17:32 
 | 
         
        (35) спасибо, попробую
 
        в (36) не успел  | 
|||
| 
    38
    
        Масянька    
     04.02.14 
            ✎
    17:34 
 | 
         
        (37) А что ты вообще делаешь? Как-то всё заморочено....     
         | 
|||
| 
    39
    
        viktor_vv    
     04.02.14 
            ✎
    17:35 
 | 
         
        А вариант закрытия формы из обработки интересно прокатит.
 
        Передавай контекст нового документа в обработку и закрывай из обработки до запуска присвоения номера. Что-то типа в документе. Функция ВзятьКонтекст(Конт) // ее вроде как в глобальник надо Возврат Конт ; КонецФункции Процедура ВводНового() Конт = ВзятьКонтекст(Контекст) ОткрытьФорму("Обработка.РасходнаяНакладнаяОбр", Конт); СтатусВозврата(0); Возврат; КонецПроцедуры В обработке Форма.Параметр.Форма.Закрыть(0); ДокПоступление = СоздатьОбъект("Документ.ПоступлениеТМЦ"); ДокПоступление.Новый(); ДокПоступление.ДатаДок = ДатаДок; ДокПоступление.АвтоВремяТекущее();  | 
|||
| 
    40
    
        Torquader    
     04.02.14 
            ✎
    17:35 
 | 
         
        (38) Подменяет форму документа какой-то другой формой, судя по (34)     
         | 
|||
| 
    41
    
        Torquader    
     04.02.14 
            ✎
    17:36 
 | 
         
        (39) Закрытие будет отработано после окончания исполнения кода, насколько я помню, были там грабли с этим.     
         | 
|||
| 
    42
    
        es3000    
     04.02.14 
            ✎
    17:37 
 | 
         
        (40) Правильно,
 
        только понять не могу зачем это было сделано.  | 
|||
| 
    43
    
        Torquader    
     04.02.14 
            ✎
    17:39 
 | 
         
        (42) Видимо, чтобы не править стандартные объекты и обновляться на ура.
 
        Иногда, правда, для разных "зверей" разные формы, чтобы гарантированно не могли что-то испоганить. Но, всё равно, это неправильное решение.  | 
|||
| 
    44
    
        viktor_vv    
     04.02.14 
            ✎
    17:39 
 | 
         
        (41) Тоже несколько засомневался. в плане того когда это отработает для документа. Типа сначала все равно процедура вводнового() в документе до конца дойдет.     
         | 
|||
| 
    45
    
        Масянька    
     04.02.14 
            ✎
    17:40 
 | 
         
        (43) Решение чего? Автор, опиши задачу!     
         | 
|||
| 
    46
    
        Ёпрст    
     гуру 
    04.02.14 
            ✎
    17:40 
 | 
         
        (34) я всё допонял.
 
        Пока форма обработки не выполнится, новый док заблокирован. Надо отдать событие извне, например, в ложном закрытии формы, еще как..  | 
|||
| 
    47
    
        Torquader    
     04.02.14 
            ✎
    17:42 
 | 
         
        (46) Не форма не выполнится, а её процедура ПриОтрытии - мы из ОткрытьФорму не вернёмся назад, как бы мы этого не хотели.     
         | 
|||
| 
    48
    
        Масянька    
     04.02.14 
            ✎
    17:43 
 | 
         
        Блин! Я щас обижусь....
 
        Чё, трудно задачу описать?  | 
|||
| 
    49
    
        Torquader    
     04.02.14 
            ✎
    17:44 
 | 
         
        В общем - ложное закрытие или обработка ожидания спасут решение.
 
        А я пошёл - дискету бухи не туда влимонили, чтоб им пусто было.  | 
|||
| 
    50
    
        es3000    
     04.02.14 
            ✎
    17:44 
 | 
         
        (45),(48) ну я ж писал...
 
        Вместо формы нового документа надо открыть форму обработки, которая заменяет собой документ. В ней есть все те же поля, что и в документе. В том числе есть поле "Номер" в которое надо вставить номер нового документа  | 
|||
| 
    51
    
        es3000    
     04.02.14 
            ✎
    17:45 
 | 
         
        (49) что такое "обработка ожидания"?     
         | 
|||
| 
    52
    
        Масянька    
     04.02.14 
            ✎
    17:45 
 | 
         
        (50) Создай документ, запиши, да и запускай свою нетленку.     
         | 
|||
| 
    53
    
        Масянька    
     04.02.14 
            ✎
    17:46 
 | 
         
        +(52) Забыла спросить - а зачем?     
         | 
|||
| 
    54
    
        Torquader    
     04.02.14 
            ✎
    17:46 
 | 
         
        (52) А кто потом базу чистить будет от того, что пользователи "потеряли" - я так делал, когда терялись номера документов - потом быстро сказали, что лучше потерять номер, чем документ.     
         | 
|||
| 
    55
    
        Масянька    
     04.02.14 
            ✎
    17:47 
 | 
         
        (54) См. (53).     
         | 
|||
| 
    56
    
        Torquader    
     04.02.14 
            ✎
    17:47 
 | 
         
        (51) С 25 платформы у формы есть команда
 
        Форма.ОбработкаОжидания(ИмяПроцедуры,ЧерезСколькоВыполнять) позволяющая периодически "дёргать" процедуру из модуля формы, чтобы она что-то делала.  | 
|||
| 
    57
    
        Масянька    
     04.02.14 
            ✎
    17:47 
 | 
         
        Я просто пока не ухватываю, зачем обработка вместо док-а?     
         | 
|||
| 
    58
    
        Torquader    
     04.02.14 
            ✎
    17:48 
 | 
         
        Ладно - беседуйте без меня - у вас хорошо получается - может быть - очередную нетленку напишете совместно.
 
        (57) Например, чтобы можно было "листать" документы как это в Access реализовано, есть люди, которые если этого нельзя, говорят, что система "г.вно".  | 
|||
| 
    59
    
        Масянька    
     04.02.14 
            ✎
    17:50 
 | 
         
        (58) "Листать" - это как?     
         | 
|||
| 
    60
    
        es3000    
     04.02.14 
            ✎
    17:50 
 | 
         
        (52) не понял как это
 
        (53) сам толком не знаю, зачем так было сделано (57) вроде бы вместо ТЧ документа в обработке рисуется Таблица, но ведь и в документ можно сделать таблицу, короче не знаю, было сделано лет 5 назад, а я уже как три года эту конфигурацию поддерживаю, но с этим документом раньше вопросов не было  | 
|||
| 
    61
    
        Масянька    
     04.02.14 
            ✎
    17:53 
 | 
         
        (60) Пока ты не поймешь зачем "весь этот огород" - толку не будет. Да, раньше проблем не было, а теперь есть. Можно проблему решить, а можно "поставить заплатку". Во втором случае - рано или поздно проблемы опять вылезут.     
         | 
|||
| 
    62
    
        Torquader    
     04.02.14 
            ✎
    17:54 
 | 
         
        (59) Ну, как в таблице - следующий, предыдущий, первый за день и т.п. В общем - некое подобие формы журнала документа с данными самого документа на ней.
 
        Приходится делать через обработку, чтобы вставленная таблица растягивалась на весь экран.  | 
|||
| 
    63
    
        Torquader    
     04.02.14 
            ✎
    17:54 
 | 
         
        (61) Если он поймёт, боюсь, что переписать всю конфигурацию придётся.     
         | 
|||
| 
    64
    
        viktor_vv    
     04.02.14 
            ✎
    17:54 
 | 
         
        (60) Наверное хотели хитромудрую таблицу, типа двух табличных частей, или с подчиенением строк одной к строкам другой.     
         | 
|||
| 
    65
    
        Масянька    
     04.02.14 
            ✎
    17:55 
 | 
         
        (63) Зато - толк будет :)     
         | 
|||
| 
    66
    
        es3000    
     04.02.14 
            ✎
    17:55 
 | 
         
        (61)-(65) да, наверно все-таки из-за таблицы.
 
        В этом документе сложная табличная часть. Ее надо выводить не в виде обычной ТЧ а в виде Таблицы. В документе Таблица не работает. Поэтому и пришлось использовать обработку. Причина в этом на 100%  | 
|||
| 
    67
    
        Масянька    
     04.02.14 
            ✎
    17:55 
 | 
         
        (63) Ты ж уходить собрался? :))))     
         | 
|||
| 
    68
    
        Масянька    
     04.02.14 
            ✎
    17:56 
 | 
         
        (66) И в чем сложность?     
         | 
|||
| 
    69
    
        es3000    
     04.02.14 
            ✎
    17:59 
 | 
         
        (68) Ну сложность возникла в том, что в этой обработке нужно показать номер нового документа.
 
        Номер нового документа получали кодом (0). При этом оказалось, что этот номер перескакивает через 1 максимального номера в базе. Причина этого описана в (32). Решение предложили в (35) через ложное закрытие.  | 
|||
| 
    70
    
        Масянька    
     04.02.14 
            ✎
    18:01 
 | 
         
        (69) Не делай из меня дурочку.
 
        Сложность таблицы в чем?  | 
|||
| 
    71
    
        es3000    
     04.02.14 
            ✎
    18:07 
 | 
         
        (70) я не хотел обидеть, извиняюсь,
 
        просто вопрос был неточный сложность таблицы в переменном количестве столбцов, причем информация в столбцах этих как бы многоуровневая строки - контрагенты заголовки столбцов - номенклатура, подзаголовки - розничные и закупочные цены, в ячейках - количество и сумма  | 
|||
| 
    72
    
        Масянька    
     04.02.14 
            ✎
    18:12 
 | 
         
        (71) Прикольно. А почему нельзя прямо в форме док-та это делать? Таб. часть убрать, подсунуть свою таблицу - при открытии док-а ее заполнять.     
         | 
|||
| 
    73
    
        es3000    
     04.02.14 
            ✎
    18:23 
 | 
         
        (72) Таблица есть только в обработках и отчетах, в документах ее нету. Имеется ввиду объект "Таблица", а не "ТаблицаЗначений"     
         | 
|||
| 
    74
    
        ЧеловекДуши    
     04.02.14 
            ✎
    18:25 
 | 
         
        (34) Зачем такие сложности? :)     
         | 
|||
| 
    75
    
        ЧеловекДуши    
     04.02.14 
            ✎
    18:26 
 | 
         
        (34) Открывай свою обработку при закрытии :)     
         | 
|||
| 
    76
    
        es3000    
     04.02.14 
            ✎
    18:26 
 | 
         
        (75) при закрытии чего?     
         | 
|||
| 
    77
    
        ЧеловекДуши    
     04.02.14 
            ✎
    18:27 
 | 
         
        (76) Документа, который не должен быть :)     
         | 
|||
| 
    78
    
        es3000    
     04.02.14 
            ✎
    18:30 
 | 
         
        (77) хм... надо попробовать
 
        так все равно он в это время еще будет не закрыт, все равно придется в обработке делать ложное закрытие, чем это будет проще?  | 
|||
| 
    79
    
        Масянька    
     04.02.14 
            ✎
    18:32 
 | 
         
        (78) А зачем делать новый? Используй этот.
 
        А Таблица - это что?  | 
|||
| 
    80
    
        Torquader    
     05.02.14 
            ✎
    00:18 
 | 
         
        В общем, если хочется таблицу на форме, то проще из документа открыть форму с таблицей, привязанную к нашему документу, только нужно будет отслеживать, когда и что закрыли.
 
        У меня так вообще один документ в нескольких формах жил, пока "осла" к 1С не прикрутил. P.S. всё-таки, "осёл" он Web и можно делать всё, что душа пожелает, а то, что окно "осла" закрывает 1С, так после "осла" пользователи не хотят в 1С работать - там неправильные параметры красным не подсвечиваются.  | 
|||
| 
    81
    
        es3000    
     05.02.14 
            ✎
    03:51 
 | 
         
        (79) "А зачем делать новый? Используй этот"
 
        ни че не понял, что "делать"? и кто "этот"? Таблица - это то что обычно мы видим в отчетах. Только кроме отчетов ее можно использовать и в форме. Иногда в типовых конфигурациях тоже так делают  | 
|||
| 
    82
    
        es3000    
     05.02.14 
            ✎
    03:53 
 | 
         
        (80) "В общем, если хочется таблицу на форме, то проще из документа открыть форму с таблицей, привязанную к нашему документу, только нужно будет отслеживать, когда и что закрыли."
 
        Так ведь именно этот сценарий и обсуждается в этой теме. Разве нет? Что такое "осел"?  | 
|||
| 
    83
    
        es3000    
     05.02.14 
            ✎
    09:45 
 | 
         
        (75),(77) так не работает - проверил,
 
        остается только вариант с вызовом обработки (с ложным закрытием) из "ВводНового"  | 
|||
| 
    84
    
        КонецЦикла    
     05.02.14 
            ✎
    09:51 
 | 
         
        Вот зараза, я ж говорил не весь код :)     
         | 
|||
| 
    85
    
        AAP    
     05.02.14 
            ✎
    10:23 
 | 
         
        (83) а может так?
 
        Процедура ВводНового() ОткрытьФорму("Обработка.РасходнаяНакладнаяОбр", ДатаДок); КонецПроцедуры В обработке ДокПоступление = СоздатьОбъект("Документ.ПоступлениеТМЦ"); ДокПоступление.Новый(); ДокПоступление.ДатаДок = Форма.Параметр;  | 
|||
| 
    86
    
        AAP    
     05.02.14 
            ✎
    10:23 
 | 
         
        (85) Точнее ДокПоступление.НомерДок = Форма.Параметр;
 
        опечатка  | 
|||
| 
    87
    
        es3000    
     05.02.14 
            ✎
    10:28 
 | 
         
        (84) да что-то ты вообще ничего понятного не сказал     
         | 
|||
| 
    88
    
        Torquader    
     05.02.14 
            ✎
    14:11 
 | 
         
        (82) "Осёл" это InternetExplorer.Application - он прекрасно открывается поверх 1С и не даёт на неё переключиться.
 
        Что касается отслеживания "когда закрыли", то у пользователя на экране две формы - одна форма документа, которая показывает, что документ есть и может правится, а другая - форма обработки с таблицей, которая вызывается из документа чтобы наглядно что-то поправить в документе. При закрытии документа проверяется, что форма обработки открыта, и она закрывается. При закрытии формы обработки документу сообщают, что его обработка закрыта. Кстати, если просто открыть таблицу из формы, то можно получать события от редактирования таблицы в форму, только нет возможности узнать, закрыта таблица или нет.  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |