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