Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
10 дек 2024, 08:10

Задание 1С

Автор Тима22, 13 сен 2023, 12:49

0 Пользователей и 1 гость просматривают эту тему.

Тима22

В справочнике "Договоры контрагентов" есть реквизит "Вид договора", который может принимать одно из 3-ч значений:
С покупателем
С поставщиком
Прочее
Для каждого контрагента, который является владельцем договора устанавливается тип отношений(Покупатель, Поставщик, Перевозчик, Прочее).
Нужно доработать механизм создания новых договоров и контролировать соответствие вида договора с типом отношений, который установлен для контрагента.
   Если для контрагента установлен тип отношений "Покупатель", то для него можно создавать договоры только вида "С покупателем".
   Если для контрагента установлен тип отношений "Поставщик" или "Перевозчик", то для него можно создавать договоры только вида "С поставщиком".
   Если для контрагента установлен тип отношений "Прочие отношения", то для него можно создавать договоры только вида "Прочее".
Нужно добавить контроль соответствия вида договоров типу отношений с контрагентом. Контроль должен выполняться перед записью договора. Если вид договора не соответствует типу отношений с контрагентом, то такой договор не должен быть записан. Кроме того, пользователь должен получить сообщение, из которого будет понятно, почему договор не записывается.
------------------------------------------------------------------------------------
Я написал данный код. Как его дополнить, что бы выполнялись все условия описанные выше
&НаКлиенте
Процедура СоздатьДоговор(Контрагент, ВидДоговора)
   Если Контрагент.Покупатель = "Покупатель" И ВидДоговора <> "С покупателем" Тогда
      Возврат
   ИначеЕсли Контрагент.Поставщик = "Поставщик" И ВидДоговора <> "С поставщиком" Тогда
      Возврат
   ИначеЕсли Контрагент.ПрочиеОтношения = "Прочие отношения" И ВидДоговора <> "Прочее" Тогда
      Возврат
   Иначе
      // Создание договора с указанным видом для контрагента
   КонецЕсли;
КонецПроцедуры


alexandr_ll

Тима22, Какие типы значений у реквизитов "Вид договора" и "Тип отношений"?

Тима22

alexandr_ll,

antoneus

Ну, делать это надо не на клиенте

&НаСервере
Процедура СоздатьДоговор(Контрагент, ВидДоговора)
   Если Контрагент.Покупатель И ВидДоговора <> Перечисления.ВидыДоговора.СПокупателем //или как там это перечисление называется
   или Контрагент.Поставщик И ВидДоговора <> Перечисления.ВидыДоговора.СПоставщиком
   или Контрагент.ПрочиеОтношения И ВидДоговора <> Перечисления.ВидыДоговора.Прочее Тогда
      Возврат
   Иначе
      // Создание договора с указанным видом для контрагента
   КонецЕсли;
КонецПроцедуры

Похожие темы (5)

Рейтинг@Mail.ru

Поиск