Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/428: Рейтинг темы: голосов - 428, средняя оценка - 4.96
mototyo
0 / 0 / 0
Регистрация: 01.02.2008
Сообщений: 24
1

Закрыть документ программно в 1С 7.7

08.06.2010, 14:27. Просмотров 77887. Ответов 17
Метки нет (Все метки)

Здравствуйте!

Вопрос: как программно закрыть открытый документ?

1С 7.7 Комплексная ред. 4.5 (7.70.493)
Пишу док.закрыть(), выскакивает ошибка - Поле агрегатного объекта не обнаружено (закрыть).

Заранее спасибо!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2010, 14:27
Ответы с готовыми решениями:

закрыть документ ексель
Такая проблема, отчета открывает документ эксель делает в нем кое-какие изменения, как при выходе...

Программно создать документ
доброго времени суток! пишу программу на делфи, которая будет работать с 1с. не могли бы вы помочь...

Программно закрыть отчет или обновить
Здравствуйте. Работаю в конфигурации Бухгалтерия предприятия, редакция 2.0 (2.0.43.6) на...

Программно перезаписать существующий документ
Всем доброго времени суток. Такая проблема: нужно, чтобы в уже существующем документе производилась...

Открыть программно созданный документ
Написал обработку по вводу платежек и выписки на основании доков на поступление ТМЦ. После записи...

17
ktuk8888
0 / 0 / 0
Регистрация: 31.12.2009
Сообщений: 87
08.06.2010, 14:30 2
а просто Закрыть() пробовали?
упс Форма.Закрыть()
0
KSyrkyy
0 / 0 / 0
Регистрация: 18.07.2009
Сообщений: 22
08.06.2010, 14:33 3
к синтакс-помощнику не пробовали обращаться?
0
Sosshot
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 39
09.06.2010, 06:38 4
Добрый день!
Функция Закрыть() работает только для формы документа и применение её актуально в том случае если вы открыли форму документа.
Если же вы создаете документ программно и так программно заполняете документ данными то в таком случае достаточно использовать функцию Записать()
например:

Док.Записать();

Вот примерно так!
0
09.06.2010, 06:38
mototyo
0 / 0 / 0
Регистрация: 01.02.2008
Сообщений: 24
09.06.2010, 07:38 5
Мне нужно из обработки записать изменения в документ. Всё работает. Я хотела бы, если документ открыт, с помощью программы его закрыть, и записать изменения. Только не знаю с помощью какой функции это сделать.

Полный код:


Код
процедура грузополучатель(док)
док1=создатьобъект("документ");
док1.выбратьдокументы();
док1.найтидокумент(док);
док1.грузополучатель = грузополучатель.текущийэлемент();
//док1.закрыть();
док1.записать();
конецпроцедуры
0
Sosshot
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 39
09.06.2010, 09:26 6
То есть если вас правильно понял, нужно документ принудительно закрыть, если он открыт у кого нибудь из пользователей?
0
mototyo
0 / 0 / 0
Регистрация: 01.02.2008
Сообщений: 24
09.06.2010, 10:25 7
Цитата Сообщение от SaschaL
То есть если вас правильно понял, нужно документ принудительно закрыть, если он открыт у кого нибудь из пользователей?
Да.
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
09.06.2010, 16:37 8
Цитата Сообщение от Natalya
Да.
Никак. Штатно - никак. Посему и запись документа рекомендуется обрамлять в Попытку. В 7.7 не возможно отловить факт блокировки данных кем-то из пользователей, кроме как через исключения. Потому как живность эта подключается к базе данных одним пользователем. Пользователи 1С:Предприятие - это НЕ пользователи базы данных. О них даже записей в БД ВООБЩЕ НЕТ.
0
Hryv
0 / 0 / 0
Регистрация: 24.07.2008
Сообщений: 658
09.06.2010, 17:30 9
Цитата Сообщение от Natalya
Да.
А вам это зачем?
Если что-то разовое - заходите монопольно и никто кроме вас ничего не откроет
Если постоянно, то интересно ради чего это надо
0
mototyo
0 / 0 / 0
Регистрация: 01.02.2008
Сообщений: 24
10.06.2010, 11:39 10
Спасибо всем.
Сделаю без закрытия формы.
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
10.06.2010, 12:11 11
Запись без закрытия формы документа, открытого другим пользователем? Готично! 1С не даст этого сделать!
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
10.06.2010, 13:37 12
Снятие блокировки и закрытие формы документа у другого пользователя возможно сделать. Дописать конфигурацию самую малость и можно будет закрывать форму документа у соседа. Ничего сверхестественного в этом нет.
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
10.06.2010, 14:21 13
Darlock, а я где-то хоть словом обмолвился, что этого нельзя сделать? Вот только возникает вопрос, надо ли это делать?
0
mototyo
0 / 0 / 0
Регистрация: 01.02.2008
Сообщений: 24
10.06.2010, 19:19 14
Суть такая: нужно реквизиту документа присвоить значение.

Можно, конечно, изменения внести в сам модуль формы документа. Но изменений получается много и при обновлении их придётся постоянно вносить.
Обработка специальная для записи значения не писалась, просто в некую обработку (внешний отчёт) добавлены изменения. Чтобы записать изменения в документ придётся вернуться и его закрыть (документ открывает и обработку запускает один пользователь).

При записи изменений в конфигуратор нужно будет вносить изменения при обновлении и проверять правильность записи значения. Изменения внесённые в обработку упрощают это.
0
sympty1
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 7
16.08.2010, 17:20 15
Цитата Сообщение от Darlock
Снятие блокировки и закрытие формы документа у другого пользователя возможно сделать. Дописать конфигурацию самую малость и можно будет закрывать форму документа у соседа. Ничего сверхестественного в этом нет.
Darlock, а как дописать?
Расскажи, пожалуйста! Очень заинтригован, особенно, если это DBF!
0
sympty1
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 7
25.08.2010, 11:37 16
Darlock!
Ответа не будет????
0
jmumyo
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 1
16.07.2012, 16:23 17
Возможно, и есть ли вообще функция в 1C проверка закрытия программы?? ("Закрыть программу?")
0
puh14
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
17.07.2012, 09:57 18
Я вот задумался - а как бы это сделать. Получилось примерно так - делается константа СписокНаЗакрытие, тип - строка, длина неограничена.

для закрытия вешаем на список документов кнопочку с процедуркой

процедура ВнестиВСписокНаЗакрытие()
Если СокрЛП(Константа.СписокНаЗакрытие) = "" тогда
Спс = СоздатьОбъект("списокЗначений");
иначе
Спс = ЗначениеИзСтроки(Константа.СписокНаЗакрытие);
КонецЕсли;
Спс.ДобавитьЗначение(ТекущийДокумент);
Константа.СписокНаЗакрытие = ЗначениеВСтроку(Спс);
КонецПроцелдуры

В форме документа пишем процедурку
Процедура ЗакрытьПоЗапросу()
Если СокрЛП(Константа.СписокНаЗакрытие) = "" тогда
Спс = СоздатьОбъект("списокЗначений");
иначе
Спс = ЗначениеИзСтроки(Константа.СписокНаЗакрытие);
КонецЕсли;
Нашли = Спс.НайтиЗначение(ТекущийДокумент());
Если Нашли >0 Тогда
Спс.УдалитьЗначение(Нашли);
Форма.Закрыть(0);
КонецЕсли;
КонецПроцедуры

и чтобы это работало раз в скажем 5 секунд в приОТкрытии() добавляем строчку

Форма.ОбработкаОжидания("ЗакрытьПоЗапросу",5);

раз в пять сек буду всех пользователей с открытыми документами этого типа будет вызываться процедура ЗакрытьПоЗапросу() получать список документов на закрытие, если нашел себя - то закрываться без запросов.
0
17.07.2012, 09:57
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2012, 09:57

Программно указать документ-основание в восьмерке
Не подскажете? А то я не нашел в документации. Или может плохо искал?

Программно сохранить документ с программно созданными реквизитами
Помогите кто знает как сохранить в Управляемом приложении (Управляемая Форма) документ с программно...

Провести программно Документ, при изменении реквизита
8,2 Управляемое приложение http://s020.***********/i721/1512/12/f9e01e33dc51.jpg Есть документ, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru