Вход | Регистрация
 

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

Проверка записи документа
Я
   vanyshan
 
12.04.19 - 11:09
На основании документа "ПоступлениеТоваровУслуг" создается документ "ПоступлениеДопРасходов".
Необходимо исключить ситуацию, когда дата "ПоступлениеДопРасходов" раньше даты "ПоступлениеТоваровУслуг".
Вариант1.
Для Каждого СтрокаТЧ Из Товары Цикл
        Если
            СтрокаТЧ.ДокументПартии.Дата > Дата Тогда
            Отказ = Истина;
            Сообщить("Проверка ПередЗаписью");
        КонецЕсли;
КонецЦикла;

Вариант2.
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПоступлениеДопРасходовТовары.Ссылка,
    |    ВЫРАЗИТЬ(ПоступлениеДопРасходовТовары.ДокументПартии КАК Документ.ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслуг
    |ИЗ
    |    Документ.ПоступлениеДопРасходов.Товары КАК ПоступлениеДопРасходовТовары
    |ГДЕ
    |    ПоступлениеДопРасходовТовары.ДокументПартии ССЫЛКА Документ.ПоступлениеТоваровУслуг
    |    И ПоступлениеДопРасходовТовары.Ссылка = &Ссылка
    |    И ПоступлениеДопРасходовТовары.ДокументПартии.Дата > ПоступлениеДопРасходовТовары.Ссылка.Дата";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    Результат = Запрос.Выполнить();
    
    Если Не Результат.Пустой() Тогда
        Отказ = Истина;
        Сообщить("Проверка ПриЗаписи");
    КонецЕсли;
 
 
   vanyshan
 
1 - 12.04.19 - 11:10
Как правильно такое реализовать? Заранее спасибо. Конфигурация УПП.
   piter3
 
2 - 12.04.19 - 11:10
Я знаю способ,называет приказ на премию,не включил в состав и мигом все получиться без кодирования
   piter3
 
3 - 12.04.19 - 11:11
И что мешает поменять дату позже?
   vanyshan
 
4 - 12.04.19 - 11:13
РАспоряжение руководства: Дата одного документа должна быть больше другого. Как в типовых подобное реализовано?
   vanyshan
 
5 - 12.04.19 - 11:20
Нет ни у кого вариантов?
   Галахад
 
6 - 12.04.19 - 11:56
(4) В чем проблема? Как напишешь так и будет, при чем тут типовые?
   azernot
 
7 - 12.04.19 - 12:09
Я за вариант2, только с некоторыми модификациями:

Запрос = Новый Запрос; 
    Запрос.Текст = 
    "ВЫБРАТЬ 
    |    Истина 
    |ИЗ 
    |    Документ.ПоступлениеДопРасходов.Товары КАК ПоступлениеДопРасходовТовары 
    |ГДЕ 
    |    ПоступлениеДопРасходовТовары.Ссылка = &Ссылка 
    |    И ПоступлениеДопРасходовТовары.ДокументПартии ССЫЛКА Документ.ПоступлениеТоваровУслуг 
    |    И ПоступлениеДопРасходовТовары.ДокументПартии.Дата > ПоступлениеДопРасходовТовары.Ссылка.Дата";
   catena
 
8 - 12.04.19 - 12:22
(7)Не очень красиво посылать без четкого описания ошибки. Я бы сразу скопом показывала все неприемлимые строки.
   azernot
 
9 - 12.04.19 - 12:27
(8) Согласен. Если нужно сообщить пользователю  где у него ошибка, тогда в запросе нужно получить номер строки ТЧ (или другую нужную информацию) и сообщать это пользователю.

Обращаю внимание на порядок следования условий в конструкции "ГДЕ". Важно, чтобы условие по ссылке было самым первым, поскольку оно самое эффективное.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.