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