О важности отладки
Написал небольшую защиту перед записью чека, потому что в УНФ появились чеки, где отсутствовали строки в табличной части серий. Я это обнаружил, потому что текст серий был красным.
Первоначальный код защиты:
&Перед("ПередЗаписью") Процедура дппс_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) //Перед записью, иначе отказа не будет, после использовать нельзя //Сообщить("Контроль ПС"); Для Каждого Строка ИЗ ЭтотОбъект.БезналичнаяОплата Цикл //Сообщить("ПС: " + Строка.ПодарочныйСертификат + " номер: " + Строка.НомерСертификата); Если ЗначениеЗаполнено(Строка.ПодарочныйСертификат) И не ЗначениеЗаполнено(Строка.НомерСертификата) Тогда Отказ = истина; Сообщить("Не указан номер подарочного сертификата, проверьте что у серии сертификта стоит галочка ПРОДАН!", СтатусСообщения.Важное); КонецЕсли; КонецЦикла; Для Каждого Строка ИЗ ЭтотОбъект.Запасы Цикл Если ЗначениеЗаполнено(Строка.СокрЛП(Строка.СерииНоменклатуры)) Тогда ИскСтроки = ЭтотОбъект.Серии.НайтиСтроки(Новый Структура("КлючСвязи", Строка.КлючСвязи)); Если ИскСтроки.Количество() = 0 Тогда Отказ = истина; Сообщить("В таблице серий отсутствует серия " + Строка.СерииНоменклатуры + ", которая выбрана для товара: " + Строка.Номенклатура, СтатусСообщения.Важное); Иначе Сообщить("ОК В таблице серий серия " + Строка.СерииНоменклатуры + ", которая выбрана для товара: " + Строка.Номенклатура, СтатусСообщения.Важное); КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры
Но опыт подсказал потестировать и да, реальная запись чека выявила две проблемы, в итоге получился рабочий код, выкладываю только исправленную часть контроля по сериям:
Для Каждого Строка ИЗ ЭтотОбъект.Запасы Цикл Если ЗначениеЗаполнено(СокрЛП(Строка.СерииНоменклатуры)) Тогда ИскСтроки = ЭтотОбъект.СерииНоменклатуры.НайтиСтроки(Новый Структура("КлючСвязи", Строка.КлючСвязи)); Если ИскСтроки.Количество() = 0 Тогда Отказ = истина; Сообщить("В таблице серий отсутствует серия " + Строка.СерииНоменклатуры + ", которая выбрана для товара: " + Строка.Номенклатура, СтатусСообщения.Важное); Иначе Сообщить("ОК В таблице серий серия " + Строка.СерииНоменклатуры + ", которая выбрана для товара: " + Строка.Номенклатура, СтатусСообщения.Важное); КонецЕсли; КонецЕсли; КонецЦикла;
Ошибки предлагаю Вам найти самим.
Еще раз убеждаюсь в важности тестов. Глазами мне казалось, что все правильно.
Среда: УНФ 3.0.13.374
