На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:

  • Перед тем, как задать вопрос, желательно почитать документацию и воспользоваться поиском.
  • Когда задаёте вопрос, то обязательно указывайте платформу (7.7, 8.0, 8.1, 8.2, etc), причем желательно в заголовке. Если речь идёт о типовой конфигурации, то указывайте её название и релиз. Текущие версии можно посмотреть здесь.
  • Ещё раз напоминаем о необходимости соблюдать не только правила, но и законы. Уважайте авторские права.

Высказать своё мнение о модераторах раздела можно здесь: evGenius
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> договор контрагента
    Владелец - это хитрый реквизит, не совсем реквизит, как и Родитель. По нему нельзя так искать. Он появляется, когда справочник подчиняется другому.

    Добавлено
    Попозже вечером напишу как правильно сделать процедуру поиска договора, сейчас под рукой БП3 нет.
      Как же 1-ка меня нервирует...
      Почему в конфигураторе нет документа "Оказание производственных услуг", а в 1-ке он откуда-то берется. Вопрос откуда и как его тогда программно создавать?
      Прикреплённый файлПрикреплённый файлDocs.jpg (81,72 Кбайт, скачиваний: 558)
        Это синоним. Встаем в конфигураторе на корень "Документы", Ctrl+F - ищем по синониму.
          Я бы сделал так:
          ExpandedWrap disabled
            Функция ПолучитьДоговорКонтрагента(Контрагент, Организация, ВидДоговора)
                    // сначала ищем основной
                ЗапросПоиска = Новый Запрос(
                "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                |    ОсновныеДоговорыКонтрагента.Договор
                |ИЗ
                |    РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
                |ГДЕ
                |    ОсновныеДоговорыКонтрагента.Контрагент = &Владелец
                |    ОсновныеДоговорыКонтрагента.ВидДоговора = &ВидДоговора
                |    И ОсновныеДоговорыКонтрагента.Организация = &Организация");
                ЗапросПоиска.УстановитьПараметр("Организация", Организация);
                ЗапросПоиска.УстановитьПараметр("Владелец", Контрагент);
                ЗапросПоиска.УстановитьПараметр("ВидДоговора", ВидДоговора);
                ВыборкаПоиска = ЗапросПоиска.Выполнить().Выбрать();
                Если ВыборкаПоиска.Следующий() Тогда
                    Возврат ВыборкаПоиска.Договор;
                КонецЕсли;
                
                    // ну раз нет основного, то первый попавшийся
                ЗапросПоиска = Новый Запрос(
                "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
                |    ДоговорыКонтрагентов.Ссылка
                |ИЗ
                |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                |ГДЕ
                |    ДоговорыКонтрагентов.Владелец = &Владелец
                |    И ДоговорыКонтрагентов.Организация = &Организация
                |    И ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора
                |    И НЕ ДоговорыКонтрагентов.ПометкаУдаления");
                ЗапросПоиска.УстановитьПараметр("Организация", Организация);
                ЗапросПоиска.УстановитьПараметр("Владелец", Контрагент);
                ЗапросПоиска.УстановитьПараметр("ВидДоговора", ВидДоговора);
                ВыборкаПоиска = ЗапросПоиска.Выполнить().Выбрать();
                Если ВыборкаПоиска.Следующий() Тогда
                    Возврат ВыборкаПоиска.Ссылка;
                КонецЕсли;
                
                    // ну нету раз
                Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
            КонецФункции
          Сообщение отредактировано: evGenius -
            evGenius
            Спасибо, я примерно так и сделал.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0314 ]   [ 17 queries used ]   [ Generated: 2.05.24, 06:56 GMT ]