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

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

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

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

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

//зачем вы сравниваете очередную книгу из табличной части с первой попавшейся?
Если (ТекСтрокаКнига.НазваниеКниги <> ТаблицаВыдачи[0].Книга) Тогда  

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

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

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