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

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

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

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