Как в 1с закрыть документ программно
Перейти к содержимому

Как в 1с закрыть документ программно

  • автор:

Как в 1с закрыть документ программно

Станислав я вот что подумал вот мне тут кодер сказал что в 8.0 все стало прозрачней и понятней (ну типа типизация — кажется так, ну и прочие понятия кодерские, а вот мне чета не привысно — писать ЭтаФорма.Закрыть()
Это хорошо или как. Тоесть придется книжки по программированию читать.
(я серьезно)

(2) А что тебе не нравится? По-моему, очень логично. Можно даже догадаться без заглядывания в синтакс-помощник.

Ага я вот теперь не могу в 8.0 сразу ответить так как не помню названия (мне то как раз нравится. Сидел УПП ковырял открыл «Oбщий мoдуль Плaниpoвaниe: Moдуль [Toлькo для чтeния]» и там как нестранно почти все понятно:)))

Как в 1с закрыть документ программно

Управляемое приложение.
Открываю форму в основном окне, а именно форму документа.
После заполнения наживаю кнопку «Провести и закрыть». Документ записывается и проводиться, но не закрывается. Более того на команду ЭтаФорма.Закрыть(); вообще никак не реагирует.
И так вопрос. как закрыть форму программно если форма открыта в главном окне приложения?

Ап или не ап? Вот в чем вопрос.
(1) голосовалку!
А что ты хочешь увидеть, когда окно закроется? Пустую рабочую область подсистемы?
(4) Перейти по навигационной ссылке не предлагать?
(2) Голосовалку на что?
И я ее не умею делать))))

(5) Да, перейти по навигационной ссылке может спасти отца русской демократии, но это больше подходит на почесать левое ухо правой рукой.

(7) Ну, ровно как и открытие документов в основном окне. Так что будь последователен.

(8) Давайте абстрагируемся от конкретно формы документа, пускай это будет форма списка и ее нужно закрыть.
Ведь система должна закрывать форму когда ее просят закрыть.
Или чего-то я не понимаю?

(9) Насколько я помню управляемый интерфейс (я тут вернулся к обычному на некоторое время), дело обстоит так: Если открыто отдельное окно, пусть и с формой списка — его можно закрыть. А формы, открытые в основном окне, зарыть можно только переходом по ссылке (программным или интерактивным). При этом события ПередЗакрытием, ПриЗакрытии в этих формах отрабатывают, а попытка программного закрытия такой формы вроде бы должна приводить к исключению. Все ИМХО.

(10) К исключению не приводит. А в целом похоже на это.
В любом случае спасибо, буду чесать левое ухо тем же путем)))

Форма ~ Программно закрыть ВСЕ открытые окна и активировать рабочий стол?

Распечатать

Распечатать

1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » — конкретный продукт, который выпускает компания 1С . Что такое Microsoft SQL Server Native Client Добавление значения в столбец «datetime» привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец «datetime» привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени QR код в 1С 21
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог SMTP greeting failure: 421 SMTP connection broken (reply) 8
Опи­са­ние ошиб­ки: С сен­тяб­ря 2014 Ян­декс.Почта, Mail.ru пе­ре­шли на про­то­кол SSL, что сде­ла­ло их еще более без­опас­ны­ми. Чтобы и даль­ше ра­бо­тать с пись­ма­ми через 1С, Вам нужно из­ме­нить их на­строй­ки и вне­сти до­ра­бот­ки в код Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая » примерно» делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура РасчетШириныКолонок(Табличный Посмотреть все результаты поиска похожих

Еще в этой же категории

Как обновить динамический список или реквизит на форме клиента? 26
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором? 22
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом » ДинамическийСписок» В поле » Основная табли Как установить параметр динамического списка? 17
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма ~ Программное создание таблицы значений с условным оформлением 13
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме 11
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами

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

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

Gluk8888

а просто Закрыть() пробовали?
упс Форма.Закрыть()

KSergei

к синтакс-помощнику не пробовали обращаться?

SaschaL

Добрый день!
Функция Закрыть() работает только для формы документа и применение её актуально в том случае если вы открыли форму документа.
Если же вы создаете документ программно и так программно заполняете документ данными то в таком случае достаточно использовать функцию Записать()
например:

Вот примерно так!

Natalya

Мне нужно из обработки записать изменения в документ. Всё работает. Я хотела бы, если документ открыт, с помощью программы его закрыть, и записать изменения. Только не знаю с помощью какой функции это сделать.

процедура грузополучатель(док) док1=создатьобъект("документ"); док1.выбратьдокументы(); док1.найтидокумент(док); док1.грузополучатель = грузополучатель.текущийэлемент(); //док1.закрыть(); док1.записать(); конецпроцедуры
SaschaL

То есть если вас правильно понял, нужно документ принудительно закрыть, если он открыт у кого нибудь из пользователей?

Natalya

То есть если вас правильно понял, нужно документ принудительно закрыть, если он открыт у кого нибудь из пользователей?

vitfil

Никак. Штатно — никак. Посему и запись документа рекомендуется обрамлять в Попытку. В 7.7 не возможно отловить факт блокировки данных кем-то из пользователей, кроме как через исключения. Потому как живность эта подключается к базе данных одним пользователем. Пользователи 1С:Предприятие — это НЕ пользователи базы данных. О них даже записей в БД ВООБЩЕ НЕТ.

Hryv

А вам это зачем?
Если что-то разовое — заходите монопольно и никто кроме вас ничего не откроет
Если постоянно, то интересно ради чего это надо

Natalya

Спасибо всем.
Сделаю без закрытия формы.

vitfil

Запись без закрытия формы документа, открытого другим пользователем? Готично! 1С не даст этого сделать!

Darlock

Снятие блокировки и закрытие формы документа у другого пользователя возможно сделать. Дописать конфигурацию самую малость и можно будет закрывать форму документа у соседа. Ничего сверхестественного в этом нет.

vitfil

Darlock, а я где-то хоть словом обмолвился, что этого нельзя сделать? Вот только возникает вопрос, надо ли это делать?

Natalya

Суть такая: нужно реквизиту документа присвоить значение.

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

При записи изменений в конфигуратор нужно будет вносить изменения при обновлении и проверять правильность записи значения. Изменения внесённые в обработку упрощают это.

simply1

Снятие блокировки и закрытие формы документа у другого пользователя возможно сделать. Дописать конфигурацию самую малость и можно будет закрывать форму документа у соседа. Ничего сверхестественного в этом нет.

Darlock, а как дописать?
Расскажи, пожалуйста! Очень заинтригован, особенно, если это DBF!

simply1

Darlock!
Ответа не будет.

jmunya

Возможно, и есть ли вообще функция в 1C проверка закрытия программы?? («Закрыть программу?»)

puh14

Я вот задумался — а как бы это сделать. Получилось примерно так — делается константа СписокНаЗакрытие, тип — строка, длина неограничена.

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

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

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

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

раз в пять сек буду всех пользователей с открытыми документами этого типа будет вызываться процедура ЗакрытьПоЗапросу() получать список документов на закрытие, если нашел себя — то закрываться без запросов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *