7.7 возможность закрывать открытые документы у пользователей

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем zahzahzah, 14 сен 2010.

  1. TopicStarter Overlay
    zahzahzah
    Offline

    zahzahzah

    Регистрация:
    14 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Торговля 7.7. возможность закрывать открытые документы у пользователей.
    Например запускать обработчик ожидания, который будет проверять открытые документы или иными способами. Проблема в том, что менеджеры бывают подолгу сидят в счетах своих, а бухгалтерия ничего не может с этими счетами сделать.
    Заранее благодарен!
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Все правильно - через глобальную переменную можно.
    Обработка ожидания в нужном документе. Чтобы было универсально можно передавать список значений (вид, номер документа) чтобы можно было закрывать ИЗБИРАТЕЛЬНО
  3. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Так должно работать:
    Код:
    Процедура ЗакрытьФорму()
    Форма.Закрыть(0);
    КонецПроцедуры
    
    Процедура ПриЗаписи()
    Форма.ОбработкаОжидания("ЗакрытьФорму", 20);
    КонецПроцедуры
    
    Сам не тестировал
  4. TopicStarter Overlay
    zahzahzah
    Offline

    zahzahzah

    Регистрация:
    14 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    все я понял походу... пасиба... сделаю так: возьму создам константу, где можно будет подставить номер счета. заполняю константу через внешнюю обработку. типа выбираешь счет, жмешь ок... в константа прописываем номер, а через обработчик ожидания проверяем номер открытого документы с этой константой, если он тогда Форма.Закрыть(0). Вроде все. теперь еще вопрос. 30 пользователей, в терминале, не скажется этот обработчик, допустим каждые 10-15 сек) на работоспособности 1с, тем более, что менеджер может открыть до 10 документов сразу...?
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ну и что? через 20 секунд просто закроется.
    Не надо константу - лучше глобальную переменную. ЕЕ (костанту) еще и очищать придется - иначе при входе в документ будет коллизия
  6. TopicStarter Overlay
    zahzahzah
    Offline

    zahzahzah

    Регистрация:
    14 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    чё-то неполучилось.
    Приведу модуль формы заявкиПокупателя:
    Код:
    Процедура Выгоним()
    Если ТекущийДокумент() = ЗаблокированныйСчет Тогда
    ЗаблокированныйСчет = "";
    Сообщить("Счет номер: " + НомерДок + " был принудительно закрыт!");
    Форма.Закрыть(0);
    КонецЕсли;	
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/конецпроцедуры')">КонецПроцедуры	</span>
    
    ОбработкаОжидания("Выгоним",15);
    
    Главный модуль:
    Код:
    Перем ЗаблокированныйСчет Экспорт;  /// данная переменная служит для автоматического закрытия счета, по требованию..
    Внешняя Обработка:
    Реквизит в форме "Документ". Вид = Документ.ЗаявкаПокупателю.
    
    
    В модуле пишу:
    Код:
    Процедура Сформировать()                             
    Если ПустоеЗначение(Документ) = 0 Тогда
    ЗаблокированныйСчет = Документ.ТекущийДокумент();
    Форма.Закрыть(0);
    КонецЕсли;
    КонецПроцедуры
    
    
    Открываю две программы. В одной открываю счет какой-нить, в другой запускаю обработку.
    реакции 0 (( Где ошибка?

    [warn="Внимание"]Пользуемся тегами[/warn]
  7. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Код:
    Форма.ОбработкаОжидания("Выгоним",15); 
    
    ОбработкаОжидания ищет глобальную экспортную процедуру, а Форма.ОбработкаОжидания ищет процедуру внутри формы.
  8. TopicStarter Overlay
    zahzahzah
    Offline

    zahzahzah

    Регистрация:
    14 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    чё-то хрень какая-то. (
    Задача выполняется только там, где была запучена внешняяобработка. т.е. где ты запустил обработку, только там и счет закрывается автоматически, а в паралельно запущенной программе нет. отладчик говорит
    ЗаблокированныйСчет =
  9. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    не через глобальную переменную не получится, делайте через константу... только после считывания из нее документа, очищайте значение.

    глобальные переменные для каждого сеанса свои
  10. TopicStarter Overlay
    zahzahzah
    Offline

    zahzahzah

    Регистрация:
    14 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    блин. я сначала так и хотел... :angry:
    Все работает. нормально...

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