Имя: Пароль:
1C
 
Проверка в регистре сведений
0 Dmitriy1C_
Rookie
 
02.06.21
13:07
Хочу в событии "при изменении" проверить есть ли в Регистре Накопления запись, что бригада на машину собрана (каждый день в начале дня проводится документ "СоставБригады". В другом документе хочу проверить собрана ли бригада на N-машину. Если нет, то выводится нет, если есть то "Есть"
&НаКлиенте
Процедура ВремяДоставкиПриИзменении(Элемент)
    

    Если НачалоДня(Объект.ВремяДоставки) < НачалоДня(Объект.Дата)+60*60*24-1
        Тогда Объект.ВремяДоставки= " ";
        Сообщить("Доставка не может быть раньше текущей даты");
    КонецЕсли;
          
КонецПроцедуры

&НаКлиенте
Процедура ТранспортПриИзменении(Элемент)
    Проверка = Проверка(Объект.Дата);
    Если проверка = Ложь Тогда Сообщить("Есть");
    Иначе Сообщить("Нет");
    КонецЕсли
    
КонецПроцедуры

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

    еСЛИ РезультатЗапроса.Пустой() Тогда Результат = Ложь; Возврат Результат;
    Иначе Результат = Истина; Возврат Результат;
    КонецЕсли


            
КонецФункции
1 Dmitriy1C_
Rookie
 
02.06.21
13:07
первая часть кода не нужна
2 Dmitriy1C_
Rookie
 
02.06.21
13:08
неправильно набран запрос, а что не так
3 ДенисЧ
 
02.06.21
13:08
1. Сначала говоришь о РН, потом в запросе РС...
2. Вопрос-то где?
4 Dmitriy1C_
Rookie
 
02.06.21
13:10
Регистр сведений. уже третий раз почему то за день путаю
5 Dmitriy1C_
Rookie
 
02.06.21
13:10
хочу сказать одно, пишу другое
6 ДенисЧ
 
02.06.21
13:11
(5) Это своночек... Сходи к психопаталогоанатому, не запускай...
А по запросу - кто так тебя учил писать обращение к СрезПоследних()?
7 Dmitriy1C_
Rookie
 
02.06.21
13:14
Никто..
А как правильно нужно?
8 Галахад
 
гуру
02.06.21
13:16
У объекта дата-то есть?
9 Dmitriy1C_
Rookie
 
02.06.21
13:18
Дата стандартный же реквизит
10 Mankubus
 
02.06.21
13:20
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДата));
и тут не нужен срез последних
11 Dmitriy1C_
Rookie
 
02.06.21
13:22
Использовать просто регистр накопления?
12 Mankubus
 
02.06.21
14:00
(11) регистр сведений. но для него не нужна периодичность. просто поле Период.
а можно вообще без регистров просто запрос к документу делать
13 Mankubus
 
02.06.21
14:00
много вариантов. без подробного анализа нельзя однозначно советовать
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший