8.х Бизнес-процесс

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

  1. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Помогите, пожалуйста, разобраться. Нужно, чтобы вычислялась разность дат БП на определенных точках маршрута (не только на текущих).
    Код:
    ВЫБРАТЬ
    АБ_СМК_УправлениеНесоответствиями.Ссылка КАК Бизнес_Процесс,
    АБ_СМК_УправлениеНесоответствиями.Дата,
    ВЫБОР
    КОГДА 
    ЗадачиБП.ТочкаМаршрута = "Анализ причин несоответствия" И 
    (ЗадачиБП.ДатаВыполнения ЕСТЬ NULL 
    ИЛИ ЗадачиБП.ДатаВыполнения = ДАТАВРЕМЯ(1,1, 1, 0, 0, 0))
    ТОГДА РАЗНОСТЬДАТ(АБ_СМК_УправлениеНесоответствиями.Дата, &ТекДата, ДЕНЬ)
    ИНАЧЕ  РАЗНОСТЬДАТ(АБ_СМК_УправлениеНесоответствиями.Дата, ЗадачиБП.ДатаВыполнения, ДЕНЬ)
    КОНЕЦ КАК Просрочено1
    
    
    Здесь он вычисляет ИНАЧЕ, хотя нужно вычислять разность в первом случае.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    ЗадачиБП.ТочкаМаршрута - это строковой реквизит?
  3. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Этого реквизита нет в окне конфигурации, он есть в конструкторе запросов. Скорее всего, он не строковый. Но я не могу найти, как к нему обратиться.
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Откройте справку по метаданным и увидите, что его тип совершенно другой.

    Такое условие некорректно и Вы всегда попадете в ветку ИНАЧЕ
  5. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Понятно. Вот так пишу, но пишет, что поле не найдено.
    Код:
    АБ_СМК_Оповещения.ТочкаМаршрута = АБ_СМК_УправлениеНесоответствиями.ТочкиМаршрута.АнализПричинНесоответствия
    
    
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Читайте в справке главу Использование предопределенных данных конфигурации
  7. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Спасибо, с этим разобралась. Теперь возник еще вопрос: как вычислить эту разность дат именно в этой точке, которую я указываю. А он проверяет текущую точку.
    Код:
    "ВЫБРАТЬ    
    АБ_СМК_УправлениеНесоответствиями.Ссылка КАК Бизнес_Процесс,    АБ_СМК_УправлениеНесоответствиями.Дата,   
    ВЫБОР 
    КОГДА АБ_СМК_Оповещения.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.АБ_СМК_УправлениеНесоответствиями.Точка.АнализПричинНесоответствия)
    И (АБ_СМК_Оповещения.ДатаВыполнения ЕСТЬ NULL 
    ИЛИ АБ_СМК_Оповещения.ДатаВыполнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
    ТОГДА РАЗНОСТЬДАТ(АБ_СМК_УправлениеНесоответствиями.Дата, &ТекДата, ДЕНЬ)
    ИНАЧЕ 
    ВЫБОР
    КОГДА АБ_СМК_Оповещения.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.АБ_СМК_УправлениеНесоответствиями.Точка.АнализПричинНесоответствия)
    ТОГДА РАЗНОСТЬДАТ(АБ_СМК_УправлениеНесоответствиями.Дата, АБ_СМК_Оповещения.ДатаВыполнения, ДЕНЬ)
    КОНЕЦ
    КОНЕЦ КАК Просрочено1"
    
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Не понял вопроса...
  9. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Я имею в виду, что в запросе проверяется, является ли текущая точка маршрута точкой АнализПричинНесоответствия (или я неправильно понимаю?), а мне нужно, чтобы он в этом же БП вычислил просто разность дат, но в точке АнализПричинНесоответствия (неважно, какая текущая).
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Не понял.

    Зачем что-то вычислять в точке, где БП нету?

    Подробнее задачу изложите...
  11. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Я делаю отчет для отслеживания просроченных задач. Нужно вычислять разность даты создания БП и даты выполнения конкретной задачи.
  12. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Тогда вам надо запрос переписать :)

    Вам надо выбрать ВСЕ задачи по БП, вычислить их время выполнения (если оно есть) и вытащить точку маршрута. А дальше уже перебираете в коде, что вам нужно.

    Текст запроса выше делает немного другое, чем Вы хотели

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