8.х Прервать выполнение процедуры на сервере, дождаться реакции клиента

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Yury, 13 апр 2016.

  1. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Добрый день!
    Задача на основании ТаблицыЗначений создавать документы в БД, перед созданием проверяем (запросом) существование документа. Если он существует, необходимо задать вопрос пользователю запустившему обработку, и по результатам ответа продолжить выполнение на сервере.

    Подскажите идеи как реализовать? Или кто как реализовывал?
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Проверяйте наличие документов сразу и выводите вопрос перед тем, как перейти на сервер.
  3. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    У меня данные изначально на сервере
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Тогда никак
  5. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Ну так сам процесс-то у вас с клиента инициируется или с сервера?
    Т.е клиентский обработчик есть какой-то?

    А еще представьте полторы тысячи документов и почти на каждый будет вылетать вопрос
    -Перезаписать документ №000123?
    -Перезаписать документ №000124?
    -Перезаписать документ №000125?
  6. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Не оптимистично :)
    А если перегнать ТЗ в реквизит формы на сервере, а дальше уже с клиента?
    --- Объединение сообщений, 13 апр 2016 ---
    Ну если так хочет заказчик, так всегда пожалуйста.
    Последнее редактирование: 13 апр 2016
  7. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    1. На клиенте вызываете ваш сервер, который "изначально с данным";
    2. На сервере получаете вашу таблицу с данными, к ней лепите колонку "ЕстьВБазе", ну и "Перезаписывать"
    и заполняете ее в этом же серверном вызове.
    3.Завершается серверный вызов, таблица в реквизите формы с признаком "ЕстьВБазе" доступна на клиенте.
    4. На клиенте цикл по таблице, если КодВозвратаДиалога.Да Тогда в колонку "Перезаписывать" = истина.
    5. После цикла вызывается серверная обработка таблицы: если Перезаписывать Тогда.....
    Yury нравится это.
  8. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    В общем, так и буду делать.
    В четвертом пункте какой вызов использовать? Асинхронный?
  9. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Какой хотите. Если в базе запрещены модальные вызовы или разрешены с предупреждением - лучше сделать по - православному.
    Если разрешены - как хотите.
  10. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Вызывать сервер на каждый документ - это ну просто убийство производительности.
  11. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Вот не совсем понятно как без модальности-то дождаться ответа от пользователя, ведь при асинхронном выполнения цикла продолжится, в вопрос повиснет в оповещении.
    --- Объединение сообщений, 13 апр 2016 ---
    Мы не будем вызывать сервер, мы таблицу подготовим как нужно..........
  12. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Не будем! :)
  13. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    В обработке оповещения будет приниматься решение
  14. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Так обработка оповещения не останавливает выполнение программы...........
  15. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Показ вопроса пользователю - последнее действие в процедуре. Дальше ждем реакции пользователя, если реакция есть, то работает обработка оповещения.
    Yury нравится это.
  16. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Ну наверное система подготовит полторы тысячи вопросов для пользователя, ему останется только прошлепать их (только бы до вечера успел бедняга..)
    А в каждом ответе да-нет ставится флаг
  17. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Думаю, заказчик быстро откажется от идеи подтверждать действие для каждого документа :)
    Dem0lisher нравится это.
  18. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    А вообще все эти галки всю жизнь делал на форме обработки.
    Представьте, что вы нажимаете, пуск-завершить работу (в винде) а она вас спросит еще и еще и так, пока в глазах не потемнеет..
    --- Объединение сообщений, 13 апр 2016 ---
    Это первое, о чем бы я спросил у заказчика :)
    Последнее редактирование: 13 апр 2016
    nomad_irk нравится это.

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