Имя: Пароль:
1C
 
Как программно записать документ без закрытия и без запроса на сохранение?
Ø
0 johanij babaj
 
17.11.06
11:13
Есть документ, который должен сохраняться после внесения каждой записи в табличную часть. При этом нужно обойтись без запросов на сохранение... Буду признателен за любую помощь:)
1 Uho
 
17.11.06
11:18
Записать() не подходит?
2 Редкий гость
 
17.11.06
11:18
Если часто отключают свет, то надо покупать ИБП
3 johanij babaj
 
17.11.06
11:29
to(1) Если просто использовать Записать() то выпадает "Данная команда не может выполняться в формуле элемента диалога! "... Поэтому извратился как в http://www.kuban.ru/forum_new/forum9/files/277064.html..
Т.Е. Вызываю Закрыть(), а ПриЗакрытии делаю запись() и СтатусВозврата(0)... но от запроса на сохранение избавиться немогу:((
To(2) Да дело не ИБП... Просто документ важный и пользователи неквалифицированные...
4 user1C
 
17.11.06
11:31
(3)
ПриОкончанииРедактированияСтроки не лучше?
5 Ёпрст
 
17.11.06
11:32
(3)http://www.sinor.ru/~my1c/knowhow/clrmodif.html
6 johanij babaj
 
17.11.06
11:51
(4)
по отладчику глянул..в эту процедуру вообще не заходит... Может из за того что строки добавляются программно?
7 user1C
 
17.11.06
11:54
(6)
именно из-за этого
8 johanij babaj
 
17.11.06
11:58
(5) Подскажи с каким параметром вызвать эту процедуру из документа и запишется ли у меня документ при этом...
Процедура глСброситьПризнакМодифицированности(Конт) Экспорт
     // сброс признака модифицированности для формы
     Если Конт.Модифицированность()=1 Тогда
          НачатьТранзакцию();
          Конт.Записать();
          ОтменитьТранзакцию();
     КонецЕсли;
КонецПроцедуры // СброситьПризнакМодифицированности
9 johanij babaj
 
17.11.06
12:07
Народ, ну помогите пожалуйста толковым советом:)
10 Uho
 
17.11.06
12:07
чё то я не понял, строки программно добавляются, записываешь программно, при чем тут интерактивный вопрос???
11 user1C
 
17.11.06
12:08
(10)
+1
:)
12 Ёпрст
 
17.11.06
12:09
(10) Дык.. видать начитался всего, теперь не может понять, что программная запись и интерактивная - 2 разные разницы ...
13 Макс 1С
 
17.11.06
12:11
(9) самый толковый совет в (1) чего ещё?
14 johanij babaj
 
17.11.06
12:13
Строки добавляются при ОбработкеВнешнегоСобытия()
считывается магнитная карта сотрудника... далее по номеру карты наодится сотрудник и добавляется в документ... Дальше я хочу записать этот документ(без участия пользователя).. чтоб без запроса...
15 user1C
 
17.11.06
12:18
(14)
Док.Записать();
16 Biger
 
17.11.06
12:20
(15) запись заблокирована
а сымитировать нажатие #Записать
17 user1C
 
17.11.06
12:24
(16)
Записать();
18 Biger
 
17.11.06
12:25
низя в форме
19 johanij babaj
 
17.11.06
12:28
Как сымитировать нажатие #Записать?
20 Uho
 
17.11.06
12:28
пошли по второму кругу
  
  
  
  
  
  
  
  
  
  
(0) может код покажешь?
21 user1C
 
17.11.06
12:29
(18)
разве? а где можно?
22 Uho
 
17.11.06
12:33
(21) видимо, в модуле документа
23 Biger
 
17.11.06
12:37
(19)сам не пробовал, на формексе много разного добра
24 Макс 1С
 
17.11.06
12:37
меня возьмёте? ;)
25 Макс 1С
 
17.11.06
12:40
+24 а ваще развод какой-то......
26 johanij babaj
 
17.11.06
12:42
Парни, слезно у всех прошу прощения... Просто вставил Записать() в другое место и все заработало... не понимаю почему до этого не получалось:(((
Всем БОЛЬШУЩЕЕ СПАСИБО!! И еще раз мои извенения...
Uho и User1C отдельное спасибо за терпеливость и настойчивость...
27 Макс 1С
 
17.11.06
12:43
(26) ну блин... а я тока приготвился доказывать что Записать() - форева..... :(((
28 Uho
 
17.11.06
12:51
(27) ничего, сегодня пятница, еще успеешь :)))
29 johanij_babaj
 
17.11.06
12:59
Вот какая штуко получается...
Записать() заработало только после того как была открыта модально форма обработки...
фрагмент кода..
Процедура блаблабла()
.....
Записать(); //1 случай - не работает
ОткрытьФормуМодально("Отчет.СотрИнфо",СписокПараметров);
   КодКартыИзФормы=СписокПараметров.ПолучитьЗначение(1);
    Если КодКартыИзФормы<>0 тогда
      Если КодКартыИзФормы=9999999 тогда
        УдалитьСтроку();
      иначе
        ВводНомера(КодКартыИзФормы);
      КонецЕсли;
    КонецЕсли;
    Записать(); //2 случай - работает
  КонецЕсли;
...
КонецПроцедуры
30 johanij babaj
 
17.11.06
16:18
ААА !! Понял в чем заморочка!! До этого все не то!!
На форме есть реквизит диалога у которого в формуле вызывается Процедура из которой я пытаюсь записать документ..И ВОТ ТУТ ТО ОН РУГАЕТСЯ:))
Как обойти?
31 Biger
 
17.11.06
16:22
вроде Макс1С имея точку опоры хотел землю перевернуть, мож чего подскажет
32 johanij babaj
 
17.11.06
16:26
Осталось только найти МАКС1С :))
33 Макс 1С
 
17.11.06
16:26
(31) кто здесь?
по поводу (29) полного то кода нет... чё опять полдня просить код?.... нафиг надо...
Записать() - работает, единственное ограничение - когда Записывать() Вызывается в момент РЕДАКТИРОВАНИЯ какого-нибудь реквизита.... при программном заполнение - это ограничение вобще не существено
34 johanij babaj
 
17.11.06
16:40
Я Ж ГОВОРЮ ДЕЛО НЕ В КОДЕ!!!
Создал просто документ... кинул на форму реквизит.... В формуле реквизита прописал процедуру.... а в процедуре Записать()...и писец ошибка "Данная команда не может выполняться в формуле элемента диалога!"...
35 user1C
 
17.11.06
16:40
(30)
убери вызов этой "Процедуры" из реквизита :)
36 Uho
 
17.11.06
16:43
(33) я ж говорю еще успеешь :)))
37 Макс 1С
 
17.11.06
16:49
(36) ты знал!!!! но блин рабочий день заканчивается..... придётся из дома продолжать........
38 johanij_babaj
 
17.11.06
16:50
(35) Проблема конечно решается и так... придется делать через отдельную кнопку вместо Entera:((
39 Макс 1С
 
17.11.06
16:51
(34) тебе же объясняють русским языком, вызывай Записать() ПОСЛЕ того как отредактируешь реквизит.... а не в МОМЕНТ его редактирования....
40 johanij babaj
 
17.11.06
16:58
то Макс1С... Дык это просто реквизит на форме, а не реквизит документа...
41 Макс 1С
 
17.11.06
17:01
форма этого документа?
42 johanij babaj
 
17.11.06
17:03
ага
43 user1C
 
17.11.06
17:06
(42)
сделай кнопку с записью дока следующей по порядку за этим реквизитом
в формуле реквизита:
WSHShell = СоздатьОбъект("WScript.Shell");
WSHShell.SendKeys("{ENTER}");
:)
44 user1C
 
17.11.06
17:38
(43)+
если хочешь невидимую кнопку записи то назначь ей горячую клавишу на закладке Команда в ее свойствах и пропиши ее в SendKeys вместо ENTER
45 johanij babaj
 
17.11.06
17:47
user1C, спасибо за дельные советы:))
46 Макс 1С
 
17.11.06
17:57
(42) если реквизит - справочник, перечисление или документ, используй ОбработкаВыбораЗначения()
или можно использовать обработку ожидания
или можно использовать функцию на форме.....
выбирай чем лучше владеешь....
47 Дурочка 1С
 
17.11.06
20:20
Записать();
Синтаксис:
Записать()
Назначение:
Записать документ в базу данных.
Замечание:
Этот метод применяется в Модуле формы документа непосредственно к документу локального контекста. Данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой ''#Записать''.
48 johanij babaj
 
18.11.06
09:48
to 46
Еще раз поясню.... На форме документа находится строка для ввода(обычный Edit) типа строка... Так вот.. у него в свойствах прописана процедура (неважно какая), но если в ней(процедуре) добавить строку "Записать();" , то выпадает ошибка (см. выше)
49 Uho
 
18.11.06
12:49
(48) зачем?
50 Э Эх
 
21.11.06
03:35
(0) Сделай, как в (3) (через записать() в ПриЗакрытии()) Только форму закрывай Форма.Закрыть(0);
Ну еще можно в ПриОткрытии() поставить всякие АвтоВремя.