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

Тема в разделе "1C и всё что с ней связано", создана пользователем Natalya, 9 июн 2010.

  1. Natalya

    Natalya Active Member

    Регистрация:
    2 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Здравствуйте!

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

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

    Заранее спасибо!
     
  2. Gluk8888

    Gluk8888 Гость

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

    KSergei Гость

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

    SaschaL Гость

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

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

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

    Natalya Active Member

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

    Полный код:

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

    SaschaL Гость

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

    Natalya Active Member

    Регистрация:
    2 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Да.
     
  8. vitfil

    vitfil IT-интегратор

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

    Hryv Гость

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

    Natalya Active Member

    Регистрация:
    2 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Спасибо всем.
    Сделаю без закрытия формы.
     
  11. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Запись без закрытия формы документа, открытого другим пользователем? Готично! 1С не даст этого сделать!
     
  12. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Снятие блокировки и закрытие формы документа у другого пользователя возможно сделать. Дописать конфигурацию самую малость и можно будет закрывать форму документа у соседа. Ничего сверхестественного в этом нет.
     
  13. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Darlock, а я где-то хоть словом обмолвился, что этого нельзя сделать? Вот только возникает вопрос, надо ли это делать?
     
  14. Natalya

    Natalya Active Member

    Регистрация:
    2 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Суть такая: нужно реквизиту документа присвоить значение.

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

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

    simply1 Гость

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

    simply1 Гость

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

    jmunya Гость

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

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Я вот задумался - а как бы это сделать. Получилось примерно так - делается константа СписокНаЗакрытие, тип - строка, длина неограничена.

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

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

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

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

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

    раз в пять сек буду всех пользователей с открытыми документами этого типа будет вызываться процедура ЗакрытьПоЗапросу() получать список документов на закрытие, если нашел себя - то закрываться без запросов.
     
Загрузка...
Похожие Темы - Закрыть документ программно
  1. swyatogor
    Ответов:
    40
    Просмотров:
    1.875
  2. makaset
    Ответов:
    12
    Просмотров:
    4.382
  3. Надя
    Ответов:
    3
    Просмотров:
    1.550
  4. bobo
    Ответов:
    0
    Просмотров:
    2.299
  5. Shouldercannon
    Ответов:
    3
    Просмотров:
    3.900

Поделиться этой страницей