8.х ОбработкаПроверкиЗаполнения

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем PavelA, 24 сен 2012.

  1. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Вопрос следующий, в модуле объекта моего документа создал процедуру ОбработкаПроверкиЗаполнения.

    нужно проверить отправлени ли БП (бизнес процесс) по этому документу, и если отправлен запретить проведение пока он не будет согласовани.

    Прошу помощи =(
  2. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Если между документом и БП есть связь, то какие проблемы? Можно запросом определить, есть ли БП. Если есть, выяснить, в какой точке маршрута находится, и в зависимости от этого разрешать или запрещать проведение.
  3. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    а если не запущен БП как проверку сделать?, Чтобы отказ шел?

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Ознакомление.Ссылка,
    | Ознакомление.Завершен,
    | Ознакомление.Предмет
    |ИЗ
    | БизнесПроцесс.Ознакомление КАК Ознакомление
    |ГДЕ
    | Ознакомление.Предмет = &Предмет";
    Запрос.УстановитьПараметр("Предмет", Ссылка);
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();

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

    В данном случае цикл не выполняет если не создан БП, а мне надо еще отменить проведение если не сощдан БП.
  4. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    Результат = Запрос.Выполнить();
    ЕСЛИ Результат.Пустой() Тогда
    //тут пишем что вообще БП нет
    //отказ в истину
    Иначе
    ВыборкаДетальныеЗаписи = Результат.Выбрать();

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

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Спасибо, тему можно закрывать!

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