Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Проверка совпадения значения реквизита таб части дока со значением измерения регистра

Проверка совпадения значения реквизита таб части дока со значением измерения регистра
Я
   isok
 
07.12.20 - 23:39
Здравствуйте, извиняюсь за тупость сразу, я учусь просто :). У меня есть два документа "возврат книги" и "выдача книги". По обоим документам есть регистры накопления.
Мне нужно сделать так, чтобы при проведении документа "ВОЗВРАТ КНИГИ" у меня делалась проверка - была ли выдана книга(документ выдача книги). Если нет то сообщить о том что она не была выдана.

Я написал код который по идеи должен все это делать в т.ч. отмена проведения, но как всегда что то пошло не так, и у меня документ отказывается проводиться вообще, даже если книга есть в доке "выдача книги".  Вот код:

Процедура ОбработкаПроведения(Отказ, Режим)
    
    // регистр ОстаткиКниг Приход
    Движения.ОстаткиКниг.Записывать = Истина;
    Для Каждого ТекСтрокаКнига Из Книга Цикл
        
        //Проверка была ли выдана книга
        ТаблицаВыдачи=РегистрыНакопления.РегистрВыдачиКниг.Остатки();
        Если (ТекСтрокаКнига.НазваниеКниги <> ТаблицаВыдачи[0].Книга) Тогда       //тут я сравниваю значение из таб части документа со значениями из регистра
        Сообщить("Такой книги не было выдано");
        Отказ=Ложь;
        КонецЕсли;

        Движение = Движения.ОстаткиКниг.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Книга = ТекСтрокаКнига.НазваниеКниги;
        Движение.Количество = ТекСтрокаКнига.Количество;
    КонецЦикла;
КонецПроцедуры
   Ненавижу 1С
 
1 - 08.12.20 - 01:01
ад и Израиль

это которая уже по счету 1С:Библиотека?

//зачем вы сравниваете очередную книгу из табличной части с первой попавшейся?

Если (ТекСтрокаКнига.НазваниеКниги <> ТаблицаВыдачи[0].Книга) Тогда  

//зачем вы дергаете таблицу остатков для проверки каждой книги снова и снова?

//зачем вы вообще дергаете ВСЮ библиотеку
ТаблицаВыдачи=РегистрыНакопления.РегистрВыдачиКниг.Остатки();

а где учет книг "на руках"?

З.Ы. Воообще думал, что инвентарный номер уникален для каждого экземпляра книги. Оказалось необязательно, может быть один на несколько одинаковых.

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