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

Проверка проведения документа

Автор Andrey5, 21 авг 2014, 12:49

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

Andrey5

При проведении документа проверять что водитель выбранный в «Рейсе» в дату документа присутствует только в одном документе, где одна поездка в день.

Вообщем сравнивает дату сам с собой, как исправить скажите пожалуйста?

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

has

При проведении смотреть есть ли документы по этому водителю кроме текущего, в чем проблема то? Просто период указать в день документа, используя НачалоДня и КонецДня

Andrey5

Теперь проводит документ, но надо чтобы водитель присутствовал только в одной дате, т.е с одинаковыми датами не разрешал проводить документ, как исправить скажите пожалуйста?

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

TreeDogNight

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

Запрос.УстановитьПараметр("Дата" , Источник.Дата);
Запрос.УстановитьПараметр("Ссылка" , Источник.Ссылка);
Запрос.УстановитьПараметр("Водитель" , Источник.Рейс.Водитель);
Результат = Запрос.Выполнить().Выбрать();

Если Результат.Количество() > 0  тогда
Сообщить ("Водитель выезжает");  //были рейсы с другим водителем
Отказ = Истина;
КонецЕсли;


Проверка должна идти по конкретной секудне или по конкретному дню?
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Теги:

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

Рейтинг@Mail.ru

Поиск