> Двіженія.ДвіженіяСертіфікатов.Очістіть ();  
 Якщо Сертіфікати.Колічество () gt; 0 Тоді 
 //Обналічиваніє сертифіката. Пишемо зі статусом ВМагазіне 
  Для кожного стрСерт з Сертифікати цикл 
  Рух=Двіженія.ДвіженіяСертіфікатов.Добавіть (); 
  Двіженіе.Період=Дата; 
  Двіженіе.Сертіфікат=стрСерт.Сертіфікат; 
  Двіженіе.Статус=Перечісленія.СтатусДвіженіяСертіфікатов.ВМагазіне; 
  Двіженіе.Колічество=1; 
  Двіженіе.Стоімость=стрСерт.Сумма; 
 фБылаОплатаНал=(Оплата.Найти(Справочники.ВидыОплатЧекаККМ.Наличные,laquo;ВидОплатыraquo;)lt;gt;Неопределено);
  Двіженіе.ТіпОплати =? (фБилаОплатаНал=істина, Перечисления.ТипыОплатЧекаККМ.Наличные,Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта);
  КонецЦікла; 
  Інакше//Перевіряємо, чи є серед товарів Сертифікати, якщо є, то пишемо їх зі статусом наруку 
  Для кожного стор з Товари цикл 
 Карта=Справочники.ИнформационныеКарты.НайтиПоРеквизиту(laquo;КодКартыraquo;, стр.Штріхкод); 
  Якщо карта lt; gt; Справочнікі.ІнформаціонниеКарти.ПустаяСсилка () тоді 
  Рух=Двіженія.ДвіженіяСертіфікатов.Добавіть (); 
  Двіженіе.Період=Дата; 
  Двіженіе.Сертіфікат=Карта; 
  Двіженіе.Статус=Перечісленія.СтатусДвіженіяСертіфікатов.НаРуках; 
  Двіженіе.Колічество=стр.Колічество; 
  Двіженіе.Стоімость=стр.Цена * стр.Колічество; 
 фБылаОплатаНал=(Оплата.Найти(Справочники.ВидыОплатЧекаККМ.Наличные,laquo;ВидОплатыraquo;)lt;gt;Неопределено);
  Двіженіе.ТіпОплати =? (фБилаОплатаНал=істина, Перечисления.ТипыОплатЧекаККМ.Наличные,Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта);
  КонецЕсли; 
  КонецЦікла; 
  КонецЕсли; 
  КонецПроцедури//ДвіженіяПоРегістрам () 
 //Процедура викликається при виборі пункту ДействіеОк командній панелі 
 //форми. Процедура відпрацьовує вибір друкарської форми. 
 //
  Процедура ДействіяФормиДействіеОк (Кнопка) 
  Здача=Оплата.Ітог ( Сума ) - Сертификаты.Итог(laquo;Суммаraquo;)-СуммаИтогоПослеПерерасчета;//Товары.Итог(laquo;Суммаraquo;);
  ОпісаніеОшібкі= raquo ;; 
 //AG 
				
				
				
				
			  ... 
  Якщо ПереключательОплатаПростая Тоді 
  Якщо Чи не ЗначеніеЗаполнено (ВідОплати) Тоді 
  ОпісаніеОшібкі= Не вказаний тип оплати! raquo ;; 
  ІначеЕслі Оплата.Итог(laquo;Суммаraquo;)-Сертификаты.Итог(laquo;Суммаraquo;) lt; СуммаІтогоПослеПерерасчета і не фОплатаБонусом Тоді 
  ОпісаніеОшібкі= Суми недостатньо для оплати чека! raquo ;; 
  ІначеЕслі суммаОплати lt; СуммаІтогоПослеПерерасчета/100 * 1 і фОплатаБонусом тоді 
  ОпісаніеОшібкі= Суми недостатньо для оплати чека! raquo ;; 
  КонецЕсли; 
  Інакше 
  Для Кожного СтрокаОплат З Оплата Цикл 
  Якщо Чи не ЗначеніеЗаполнено (СтрокаОплат.ВідОплати) Тоді 
  ОпісаніеОшібкі= Не вказаний тип оплати! raquo ;; 
  Перервати; 
  КонецЕсли; 
  КонецЦікла; 
 //AG 
  Якщо ПустаяСтрока (ОпісаніеОшібкі) 
  І Оплата.Итог(laquo;Суммаraquo;)-Сертификаты.Итог(laquo;Суммаraquo;) lt; СуммаІтогоПослеПерерасчета і не фОплатаБонусом Тоді 
  ОпісаніеОшібкі= Суми недостатньо для оплати чека! raquo ;; 
  Інакше 
  повідомити (СуммаОплати); 
  повідомити (СуммаІтогоПослеПерерасчета/100 * 1); 
  Якщо фОплатаБонусом І СуммаОплати lt; СуммаІтогоПослеПерерасчета/100 * 1 тоді 
  ОпісаніеОшібкі= Суми недостатньо для оплати чека! raquo ;; 
  КонецЕсли 
  КонецЕсли; 
  КонецЕсли; 
  ... 
  Закрити ( Закрити чек ); 
  КонецПроцедури//ДействіяФормиДействіеОк () 
  Процедура ПересчетТовариСумма (вид) 
  ... 
  СуммаОплати=0; 
  Для кожного стор з Товари цикл