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

Запрос по выбору автора напоминания

Автор Валерия00, 04 окт 2015, 09:44

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

Валерия00

Здравствуйте, помогите разобраться пожалуйста!!!!
Существует Документ заказ покупателя и заказ наряд, их оформляют сначала заказНаряд далее на основании его ЗаказПокупателя, когда приходит товар то приходит напоминание тому кто создал например заказ наряд создал иванов а заказ покупателя петров, так вот напоминание прийдет иванову.
Как сейчас работает код ниже...
А мне надо чтобы напоминание приходило если видремонта="такойто" то напоминание приходит автору заказ наряда, а если видремонта "Другой" то АвторуЗаКАЗА покупателя

//Получим регистратор записей в регистр
   ОтборРегистратор=Источник.Отбор.Найти("Регистратор");
   Если ОтборРегистратор=Неопределено Тогда
      Возврат;
   КонецЕсли;
   Регистратор=ОтборРегистратор.Значение;
   Попытка
      Если Не Источник.ИнтерактивноеПроведение Тогда
         Возврат;
      КонецЕсли;
   Исключение
      Возврат;
   КонецПопытки;
   
   Если ТипЗнч(рЕГИСТРАТОР)=Тип("ДокументСсылка.ЗаказПокупателя") и ТипЗнч(рЕГИСТРАТОР)=Тип("ДокументСсылка.ЗаказНаряд") Тогда
      Возврат;
   КонецЕсли;
   РегистраторАвтор=Регистратор.Автор;
   
//Получим заказы и их авторов, которым требуется создать напоминание
   Запрос=Новый Запрос;
   Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
             |   ВЫРАЗИТЬ(ЗаказыПокупателей.Заказ КАК Документ.ЗаказПокупателя) КАК ЗаказПокупателя,
             |   ПРЕДСТАВЛЕНИЕ(ЗаказыПокупателей.Заказ) КАК ЗаказПокупателяПредставление,
             |   ЕСТЬNULL(Пользователи.Ссылка, ВЫРАЗИТЬ(ЗаказыПокупателей.Заказ КАК Документ.ЗаказПокупателя).Автор) КАК Автор,
             |   Пользователи.Ссылка
             |ИЗ
             |   РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
             |      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
             |      ПО (ЗначенияСвойствОбъектов.Свойство = &Свойство)
             |         И ((ВЫРАЗИТЬ(ЗаказыПокупателей.Заказ КАК Документ.ЗаказПокупателя)) = ЗначенияСвойствОбъектов.Объект)
             |      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
             |      ПО (ВЫРАЗИТЬ(ЗаказыПокупателей.Заказ КАК Документ.ЗаказПокупателя).Менеджер = Пользователи.Сотрудник)
             |         И (НЕ Пользователи.Сотрудник = ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка))
             |ГДЕ
             |   ЗаказыПокупателей.ВидДвижения = &ВидДвиженияПриход
             |   И ЗаказыПокупателей.Регистратор = &Регистратор
             |   И ЗаказыПокупателей.Заказ ССЫЛКА Документ.ЗаказПокупателя
             |   И ЕСТЬNULL(Пользователи.Ссылка, ВЫРАЗИТЬ(ЗаказыПокупателей.Заказ КАК Документ.ЗаказПокупателя).Автор) <> &ПустойАвтор
             |   И ЗаказыПокупателей.Резерв > 0
             |   И ЗначенияСвойствОбъектов.Значение = ИСТИНА
             |
             |СГРУППИРОВАТЬ ПО
             |   ВЫРАЗИТЬ(ЗаказыПокупателей.Заказ КАК Документ.ЗаказПокупателя),
             |   ЕСТЬNULL(Пользователи.Ссылка, ВЫРАЗИТЬ(ЗаказыПокупателей.Заказ КАК Документ.ЗаказПокупателя).Автор),
             |   Пользователи.Ссылка,
             |   ПРЕДСТАВЛЕНИЕ(ЗаказыПокупателей.Заказ)";
   Запрос.УстановитьПараметр("ВидДвиженияПриход",ВидДвиженияНакопления.Приход);
   Запрос.УстановитьПараметр("Регистратор",Регистратор);
   Запрос.УстановитьПараметр("ПустойАвтор",Справочники.Пользователи.ПустаяСсылка());
   Запрос.УстановитьПараметр("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.УведомлениеОРезервировании);
   Выборка=Запрос.Выполнить().Выбрать();
Если Выборка.Количество()=0 Тогда
      Возврат;
   КонецЕсли;
   
   НаборЗаписейНапоминания=РегистрыСведений.Напоминания.СоздатьНаборЗаписей();
   НаборЗаписейНапоминания.Отбор.Автор.Установить(Регистратор);
   НаборЗаписейНапоминания.Отбор.Завершено.Установить(Ложь);
   НаборЗаписейНапоминания.Прочитать();

Если (Выборка.ЗаказПокупателя.ВидРемонта=Справочники.ВидыРемонта.НайтиПоНаименованию("Кузовной"))или
         (Выборка.ЗаказПокупателя.ВидРемонта=Справочники.ВидыРемонта.НайтиПоНаименованию("Мойка"))тогда
//Для каждого автора создадим напоминание
      НоваяЗапись=НаборЗаписейНапоминания.Добавить();        
      НоваяЗапись.Пользователь=ПолучитьАдресата(Выборка.ЗаказПокупателя);
                НоваяЗапись.автор=РегистраторАвтор;   (((Вот тут должно быть новаяЗапись.Автор=Автор.ЗаказПокупателя но выдает ошибки)



Скажите пожалуйста как мне в запросе поменять чтобы заработало

SkyNetYar


Валерия00


vitasw

Цитата: Валерия00 от 04 окт 2015, 09:44Если ТипЗнч(рЕГИСТРАТОР)=Тип("ДокументСсылка.ЗаказПокупателя") и ТипЗнч(рЕГИСТРАТОР)=Тип("ДокументСсылка.ЗаказНаряд") Тогда
      Возврат;
   КонецЕсли;
Аж до слез...

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

Рейтинг@Mail.ru

Поиск