Имя: Пароль:
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) Согласен. Если нужно сообщить пользователю  где у него ошибка, тогда в запросе нужно получить номер строки ТЧ (или другую нужную информацию) и сообщать это пользователю.

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