Имя: Пароль:
1C
 
Не могу разобраться с регистром накопления
,
0 alexlencer
 
26.06.18
11:06
Делаю все аналогично, не работает. Делаю с иными дополнениями, опять не работает. Помогите разобраться, делаю отчет по практике.
https://www.youtube.com/watch?v=N69GaSTGNCU
http://rgho.st/86nBgLZQS
1 alexlencer
 
26.06.18
11:07
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ВложенныйЗапрос.Название,
    |    ВложенныйЗапрос.Состояние,
    |    ВложенныйЗапрос.Количество,
    |    ЕСТЬNULL(ПолкаОстатки.ШтукиОстаток, 0) КАК ШтукОстаток
    |ИЗ
    |    (ВЫБРАТЬ
    |        СтолВыдачаКниги.Название КАК Название,
    |        СтолВыдачаКниги.Состояние КАК Состояние,
    |        СУММА(СтолВыдачаКниги.Количество) КАК Количество
    |    ИЗ
    |        Документ.Стол.ВыдачаКниги КАК СтолВыдачаКниги
    |    ГДЕ
    |        СтолВыдачаКниги.Ссылка = &Ссылка
    |    
    |    СГРУППИРОВАТЬ ПО
    |        СтолВыдачаКниги.Название,
    |        СтолВыдачаКниги.Состояние) КАК ВложенныйЗапрос
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Полка.Остатки(&Дата, ) КАК ПолкаОстатки
    |        ПО ВложенныйЗапрос.Название = ПолкаОстатки.НаименованиеКниги
    |            И ВложенныйЗапрос.Состояние = ПолкаОстатки.Состояние";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка );
    Запрос.УстановитьПараметр("Дата", Дата );
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        
        Если Выборка.Количество>Выборка.ШтукОстаток Тогда
            Отказ = истина;
            Сообщить("Книги "+Выборка.Название+" нет в наличии или не хватает количества. На складе "+Выборка.ШтукОстаток+" Шт." );
            
             КонецЕсли;
    
        
    
    КонецЦикла;

    // регистр Полка Расход
    Движения.Полка.Записывать = Истина;
    Для Каждого ТекСтрокаВыдачаКниги Из ВыдачаКниги Цикл
        Движение = Движения.Полка.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.НаименованиеКниги = ТекСтрокаВыдачаКниги.Название;
        Движение.Состояние = ТекСтрокаВыдачаКниги.Состояние;
        Движение.Штуки = ТекСтрокаВыдачаКниги.Количество;
    КонецЦикла;

    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
2 Darych
 
26.06.18
11:08
все не правильно
3 alexlencer
 
26.06.18
11:09
Как угодно но если ставить ЕстьNULL("КОД",0), то возвращает ноль. То есть при любом раскладе проблема с подключением регистратором накопления
4 alexlencer
 
26.06.18
11:09
И так же как в видео делал 1000% так же
5 los_hooliganos
 
26.06.18
11:10
А что непонятно? Уточняйте вопросами.
С точки зрения блокировки РН сделано неверно.
6 alexlencer
 
26.06.18
11:11
Непонятно почему он выводит Остаток
7 alexlencer
 
26.06.18
11:11
Не выводит
8 los_hooliganos
 
26.06.18
11:12
(4) Соединение запроса идет по строке (название книги), а не по ссылке на справочник/объект Книга.
Если где-то есть пробел в названии, то строки не соединяться и будет 0.
9 alexlencer
 
26.06.18
11:12
Угу, вроде начинаю въезжать
10 los_hooliganos
 
26.06.18
11:13
(9) РН сделайте тип не наименование книги, а справочник ссылка
И документе также
11 Гипервизор
 
26.06.18
11:15
(0) На будущее - "делал также, не работает" - не очень информативно. Хотелось бы увидеть тексты ошибок, описание попыток диагностики, результат работы вашего кода.
12 alexlencer
 
26.06.18
11:21
Гипервизор, ошибок то нет , Просто он не цепляет значение Остатка. Производит отказ и все
13 perester
 
26.06.18
11:34
чтобы заработало надо поменять сделать соединение которое хотя бы в теории заработает - одинаковых типов ссылок с ссылками, строк со строками
а так - да, все неверно
(8) при чем тут пробелы в строках?