Изменения модулей форм документов ПриходныйОрдер, РасходныйОрдер для конфигураций 1С 7.7 "УСН, ред. 1.3"
Вставки авторского кода для лучшего ориентирования отмечены комментарием //тщи

1) В модуле формы документа ПриходныйОрдер (Приходный кассовый ордер) заменить процедуру ПечатьЧека():

//******************************************************************************
Процедура ПечатьЧека()
	Если НомерЧекаККМ <> 0 Тогда
	    Предупреждение("Чек уже пробит на фискальном регистраторе!",60);
		Возврат;
	ИначеЕсли глФРВкл=0 Тогда
	    Предупреждение("Фискальный регистратор не подключен!",60);
		Возврат;
	ИначеЕсли (РозничнаяВыручка=0) и (НП<>0) Тогда
	    Предупреждение("Чтобы распечатать чек на фискальном регистраторе" + РазделительСтрок +
		               "необходимо, чтобы НП был равен 0!",60);
		Возврат;
	ИначеЕсли ПометкаУдаления()=1 Тогда
	    Предупреждение("Документ помечен на удаление, поэтому" + РазделительСтрок +
		               "нельзя пробить чек на фискальном регистраторе!",60);
		Возврат;
	ИначеЕсли Проведен()=0 Тогда
		Если Вопрос("Провести документ и пробить чек на фискальном регистраторе?","Да+Нет")="Нет" Тогда
		    Возврат;
		КонецЕсли;
		Попытка
			Если Записать()=0 Тогда Возврат КонецЕсли; //тщи
			Если Провести()=0 Тогда Возврат КонецЕсли; //тщи
		Исключение
			Возврат;
		КонецПопытки;
		Если Проведен()=0 Тогда
			Возврат;
		КонецЕсли;
	ИначеЕсли Модифицированность()=1 Тогда
		Если Вопрос("Сохранить документ и пробить чек на фискальном регистраторе?","Да+Нет")="Нет" Тогда
		    Возврат;
		КонецЕсли;
		Попытка
			Если Записать()=0 Тогда Возврат КонецЕсли; //тщи
		Исключение
			Возврат;
		КонецПопытки;
	КонецЕсли;
	
	Список = СоздатьОбъект("ТаблицаЗначений");
	Список.НоваяКолонка("ТовНаим"   , "Строка");
	Список.НоваяКолонка("Цена"      , "Число");
	Список.НоваяКолонка("Количество", "Число");
	Список.НоваяКолонка("НДС"       , "Число");
	Список.НоваяКолонка("Сумма"	    , "Число");  //[+] тщи 54ФЗ

	ДокумОснование = "";
	
	Если Метаданные.Документ(Вид()).РеквизитШапки("ДокОснование").Выбран() = 1 Тогда	//[+] тщи
		Если (ПолучитьАтрибут("ДокОснование").Вид() = "Реализация") Тогда
	        //Если ДокОснование.Итог("Сумма") = Сумма Тогда
			    ДокумОснование = ПолучитьАтрибут("ДокОснование");
			//КонецЕсли;	                               
		КонецЕсли;                                                                  	//[-] тщи
		
	ИначеЕсли ПустоеЗначение(ДокументПоставки) = 0 Тогда
		Если (ДокументПоставки.Вид() = "Реализация") Тогда
	        //Если ДокументПоставки.Итог("Сумма") = Сумма Тогда	//тщи 54ФЗ
			    ДокумОснование = ДокументПоставки;
			//КонецЕсли;	                                    //тщи 54ФЗ
		КонецЕсли;
	КонецЕсли;	
	
	СтавкаНДСПоДокОснованию = 0;                  //[-] тщи 54ФЗ
	Если (РозничнаяВыручка=0) и (НДС<>0) Тогда
		Если ПроверитьСтавкуНДС(10) = 1 Тогда     
			СтавкаНДСПоДокОснованию = 10;
		ИначеЕсли ПроверитьСтавкуНДС(20) = 1 Тогда
			СтавкаНДСПоДокОснованию = 20;
		ИначеЕсли ПроверитьСтавкуНДС(18) = 1 Тогда
			СтавкаНДСПоДокОснованию = 18;
		КонецЕсли;
	КонецЕсли;
	ПринятоОтОснование = ?(ПустаяСтрока(ПринятоОт)=0,"Принято от ","")+СокрЛП(СокрЛП(ПринятоОт)+" "+СокрЛП(Основание)); 		//тщи 54ФЗ

	Если ПустоеЗначение(ДокумОснование) = 1 Тогда  //тщи 54ФЗ
	
	Список.НоваяСтрока();
	Список.ТовНаим    = ПринятоОтОснование; 	//тщи 54ФЗ
	Список.Цена       = Сумма;
	Список.Количество = 1;
		
	Список.НДС = СтавкаНДСПоДокОснованию; 		//тщи 54ФЗ

	Список.Сумма      = 0; //Сумма;                 //[+] тщи 54ФЗ

	Иначе
		ДокумОснование.ВыбратьСтроки();
		
		Пока ДокумОснование.ПолучитьСтроку() = 1 Цикл
			Список.НоваяСтрока();
			Если (ДокумОснование.Вид() = "Реализация") Тогда
				Список.ТовНаим    = ДокумОснование.Номенклатура.Наименование;
				Если (ДокумОснование.Номенклатура.СтавкаНДС.Ставка = 0) и (нрег(Лев(ДокумОснование.Номенклатура.СтавкаНДС.Наименование,3)) = "без") Тогда //Без налога (НДС)   Ставку НДС берем из Номенклатуры, а не документа, т.к. в документе для комиссионеров
					Список.НДС    = -1                                              //для разделения ставок 0% и Без НДС
				Иначе
					Список.НДС    = ДокумОснование.Номенклатура.СтавкаНДС.Ставка;
				КонецЕсли;
			КонецЕсли;
			Если Метаданные.Документ(ДокумОснование.Вид()).РеквизитТабличнойЧасти("Цена").Выбран()=1 Тогда
				Список.Цена       = ДокумОснование.Цена;
			КонецЕсли;
			Если Метаданные.Документ(ДокумОснование.Вид()).РеквизитТабличнойЧасти("Количество").Выбран()=1 Тогда
				Список.Количество = ДокумОснование.Количество;
			Иначе
				Список.Количество = 1;
			КонецЕсли;
			Список.Сумма	  = ДокумОснование.Сумма;
		КонецЦикла;	
		//Если глЕстьРеквизитШапки("Скидка",ДокумОснование.Вид()) = 1 Тогда
		//	Скидка = ДокумОснование.Скидка.Процент
		//КонецЕсли;
		
	КонецЕсли;                                     //[-] тщи 54ФЗ
	
	СуммаЧека         = Сумма;
	//Получено          = Сумма;                   //тщи
	Скидка            = 0;
	ПризнВозврата     = 0;
	НомерСекции       = 1;
	НомерЧека         = 0;
    
	//[+] тщи 54ФЗ
	Если Список.КоличествоСтрок() > 0 Тогда
		Список.НоваяКолонка("Данные54ФЗ");			//инфа записывается в виде списка значений в первую строку таблицы СписокТоваров
		Список.ПолучитьСтрокуПоНомеру(1);
		Список.Данные54ФЗ = СоздатьОбъект("СписокЗначений");
		Данные = Список.Данные54ФЗ;
		Данные.ДобавитьЗначение(Контекст,"Контекст");
		Если Метаданные.Документ(Вид()).РеквизитШапки("АдресПокупателя").Выбран() = 1 Тогда                //если диалог документ доработан для указания адреса покупателя
			Данные.ДобавитьЗначение(сокрлп(ПолучитьАтрибут("АдресПокупателя")),"АдресПокупателя");	//если закомментировать эту строку, то АдресПокупателя будет запрошен в обработке обслуживания ФР; если передать пустую строку (""), то будет выводиться бумажный чек без запроса АдресаПокупателя
		КонецЕсли;

		Если Метаданные.Документ(Вид()).РеквизитШапки("ОплатаКартой").Выбран() = 1 Тогда                       //если диалог документ доработан для указания типа оплаты картой
			ПризнакОплатыКартой = ПолучитьАтрибут("ОплатаКартой");
			Данные.ДобавитьЗначение(ПризнакОплатыКартой,"ТипОплаты");	 	//чтобы не запрашивать тип оплаты в отдельном диалоге перед печатью чека, (т.к. тип оплаты вводится в чеке), 1 -  запрашивать тип оплаты в отдельном диалоге перед печатью чека. Для работы этого параметра обязательно передавать параметр Контекст!
		Иначе
			ПризнакОплатыКартой = 0
		КонецЕсли;
		
		Если Метаданные.Документ(Вид()).РеквизитШапки("Получено").Выбран() = 1 Тогда                       //если диалог документ доработан для указания типа оплаты картой
			Получено = ПолучитьАтрибут("Получено");     //получено НАЛИЧНЫМИ (остальное - КАРТА)
			Если (Получено=0) и (ПризнакОплатыКартой=0) Тогда
				Получено = СуммаЧека
			КонецЕсли;
		Иначе
			Получено = ?(ПризнакОплатыКартой = 1, 0, СуммаЧека)
		КонецЕсли;
	
		Если (Получено < СуммаЧека) и (ПризнакОплатыКартой = 0) Тогда  		//тщи если Получено < СуммаЧека, то значит оплата идет по банковской карте
	 		Предупреждение("Полученной суммы недостаточно для оплаты!",60);
	 		Возврат
	 	КонецЕсли;
	 	
		Данные.ДобавитьЗначение(ПринятоОтОснование, "Основание");
		Данные.ДобавитьЗначение(СтавкаНДСПоДокОснованию, "НДСпоУмолч");
	 	Если ПустоеЗначение(ДокумОснование) = 0 Тогда
			Данные.ДобавитьЗначение(ДокумОснование,"Документ");	//ссылка на документ-основание
		КонецЕсли;
	 	Если КоррСчет.ВидСубконто(2) = ВидыСубконто.Договоры Тогда
			Данные.ДобавитьЗначение(Субконто2.Наименование,"Договор");	//договор контрагента
		КонецЕсли;

	Иначе
 		Предупреждение("Нет позиций для вывода в чек ККМ!",60);
 		Возврат
	КонецЕсли;
	//[-] тщи 54ФЗ   

	Если глФРПечататьЧек(Список, СуммаЧека, Получено, Скидка, ПризнВозврата, НомерСекции, НомерЧека) = 1 Тогда
		НомерЧекаККМ = ?(НомерЧека = 0, -1, НомерЧека);
		Попытка						//[+] тщи 54ФЗ
			АдресПокупателя = Данные.Получить("АдресПокупателя");
			НомерСменыККМ 	= Данные.Получить("НомерСмены");
			Получено 		= Данные.Получить("Получено");
			Если СуммаЧека>Получено Тогда
				Картой = СуммаЧека-Получено;
				ОплатаКартой = 1;
			Иначе
				Картой = 0;
				ОплатаКартой = 0;
			КонецЕсли
		Исключение КонецПопытки;	//[-] тщи 54ФЗ
		ПриЗаписиПерепроводить(0);
		Записать();
		ПриЗаписиПерепроводить(1);
	КонецЕсли;
	
КонецПроцедуры


2) В модуле формы документа РасходныйОрдер (Расходный кассовый ордер) ДОБАВИТЬ (т.к. их там нет) процедуры ПризнакПробитияЧека() и ПечатьЧека():

//******************************************************************************
Функция ПризнакПробитияЧека() //тщи 54ФЗ
    
	Если НомерЧекаККМ <> 0 Тогда
  		Если НомерЧекаККМ > 0  Тогда
			Возврат "№ чека: "+СокрЛП(НомерЧекаККМ);
		Иначе
			Возврат "Чек пробит";
		КонецЕсли;
	Иначе
		Возврат "";
    КонецЕсли;
	
КонецФункции

//******************************************************************************
Процедура ПечатьЧека() //тщи 54ФЗ
	Если НомерЧекаККМ <> 0 Тогда
	    Предупреждение("Чек уже пробит на фискальном регистраторе!",60);
		Возврат;
	ИначеЕсли глФРВкл=0 Тогда
	    Предупреждение("Фискальный регистратор не подключен!",60);
		Возврат;
	ИначеЕсли ПометкаУдаления()=1 Тогда
	    Предупреждение("Документ помечен на удаление, поэтому" + РазделительСтрок +
		               "нельзя пробить чек на фискальном регистраторе!",60);
		Возврат;
	ИначеЕсли Проведен()=0 Тогда
		Если Вопрос("Провести документ и пробить чек на фискальном регистраторе?","Да+Нет")="Нет" Тогда
		    Возврат;
		КонецЕсли;
		Попытка
			Если Записать()=0 Тогда Возврат КонецЕсли; //тщи
			Если Провести()=0 Тогда Возврат КонецЕсли; //тщи
		Исключение
			Возврат;
		КонецПопытки;
	ИначеЕсли Модифицированность()=1 Тогда
		Если Вопрос("Сохранить документ и пробить чек на фискальном регистраторе?","Да+Нет")="Нет" Тогда
		    Возврат;
		КонецЕсли;
		Попытка
			Если Записать()=0 Тогда Возврат КонецЕсли; //тщи
		Исключение
			Возврат;
		КонецПопытки;
	КонецЕсли;
	
	Список = СоздатьОбъект("ТаблицаЗначений");
	Список.НоваяКолонка("ТовНаим"   , "Строка");
	Список.НоваяКолонка("Цена"      , "Число");
	Список.НоваяКолонка("Количество", "Число");
	Список.НоваяКолонка("НДС"       , "Число");
	Список.НоваяКолонка("Сумма"	    , "Число");  //[+] тщи 54ФЗ

	ДокумОснование = "";
	
	Если Метаданные.Документ(Вид()).РеквизитШапки("ДокОснование").Выбран() = 1 Тогда	//[+] тщи
		Д = ПолучитьАтрибут("ДокОснование")
	Иначе
		Д = ДокументПоставки
	КонецЕсли;
		
	Если ПустоеЗначение(Д) = 0 Тогда
		Если (Д.Вид() = "УслугиСтороннихОрганизаций")
			или (Д.Вид() = "ПоступлениеМПЗ")
			или (Д.Вид() = "ПоступлениеОС")
			или (Д.Вид() = "ПоступлениеНМА") Тогда
	        //Если Д.Итог("Всего") = Сумма Тогда	//тщи 54ФЗ
			    ДокумОснование = Д;
			//КонецЕсли;	                                    //тщи 54ФЗ
		ИначеЕсли (Д.Вид() = "ПриходныйОрдер") Тогда		//[+] тщи 54ФЗ
			Если Метаданные.Документ(Д.Вид()).РеквизитШапки("ДокОснование").Выбран() = 1 Тогда	//[+] тщи
				Д = Д.ДокОснование
			Иначе
				Д = Д.ДокументПоставки
			КонецЕсли;
			Если ПустоеЗначение(Д) = 0 Тогда
				Если Д.Вид() = "Реализация" Тогда
					//Если Д.Итог("Всего") = Сумма Тогда  //тщи 54ФЗ
						ДокумОснование = Д;
					//КонецЕсли;	                                              //тщи 54ФЗ
				КонецЕсли;
			КонецЕсли;			                                		//[-] тщи 54ФЗ
		КонецЕсли;
	КонецЕсли;	

	СтавкаНДСПоДокОснованию = 0; //???              //тщи 54ФЗ
	ПринятоОтОснование = ?(ПустаяСтрока(Выдать)=0,"Выдано ","")+СокрЛП(СокрЛП(Выдать)+" "+СокрЛП(Основание)); 		//тщи 54ФЗ
	
	Если ПустоеЗначение(ДокумОснование) = 1 Тогда  //[-] тщи 54ФЗ
	
	Список.НоваяСтрока();
	Список.ТовНаим    = ПринятоОтОснование;		//тщи 54ФЗ;
	Список.Цена       = Сумма;
	Список.Количество = 1;
	Список.НДС        = СтавкаНДСПоДокОснованию; //тщи 54ФЗ
	Список.Сумма      = 0; //Сумма;                 //[+] тщи 54ФЗ

	Иначе
		ДокумОснование.ВыбратьСтроки();
		
		Пока ДокумОснование.ПолучитьСтроку() = 1 Цикл
			Список.НоваяСтрока();
			
			Если Метаданные.Документ(ДокумОснование.Вид()).РеквизитТабличнойЧасти("СтавкаНДС").Выбран()=1 Тогда
				Если (ДокумОснование.СтавкаНДС.Ставка = 0) и (нрег(Лев(ДокумОснование.СтавкаНДС.Наименование,3)) = "без") Тогда //Без налога (НДС)
					Список.НДС    = -1                                              //для разделения ставок 0% и Без НДС
				Иначе
					Список.НДС    = ДокумОснование.СтавкаНДС.Ставка;
				КонецЕсли;
			Иначе
				Список.НДС        = СтавкаНДСПоДокОснованию;
			КонецЕсли;
			
			Если (ДокумОснование.Вид() = "УслугиСтороннихОрганизаций") Тогда
				Список.ТовНаим    = ДокумОснование.НаименованиеУслуги;
			ИначеЕсли (ДокумОснование.Вид() = "ПоступлениеОС") Тогда
				Список.ТовНаим    = ДокумОснование.ОбъектВнеоборотныхАктивов.Наименование;
			ИначеЕсли (ДокумОснование.Вид() = "ПоступлениеНМА") Тогда
				Список.ТовНаим    = ДокумОснование.ОбъектВнеоборотныхАктивов.Наименование;
			ИначеЕсли (ДокумОснование.Вид() = "Реализация") Тогда
				Список.ТовНаим    = ДокумОснование.Номенклатура.Наименование;
				Если (ДокумОснование.Номенклатура.СтавкаНДС.Ставка = 0) и (нрег(Лев(ДокумОснование.Номенклатура.СтавкаНДС.Наименование,3)) = "без") Тогда //Без налога (НДС)   Ставку НДС берем из Номенклатуры, а не документа, т.к. в документе для комиссионеров
					Список.НДС    = -1                                              //для разделения ставок 0% и Без НДС
				Иначе
					Список.НДС    = ДокумОснование.Номенклатура.СтавкаНДС.Ставка;
				КонецЕсли;
			Иначе
				Список.ТовНаим    = ДокумОснование.Номенклатура.Наименование;
			КонецЕсли;
			Если Метаданные.Документ(ДокумОснование.Вид()).РеквизитТабличнойЧасти("Цена").Выбран()=1 Тогда
				Список.Цена       = ДокумОснование.Цена;
			КонецЕсли;
			Если Метаданные.Документ(ДокумОснование.Вид()).РеквизитТабличнойЧасти("Количество").Выбран()=1 Тогда
				Список.Количество = ДокумОснование.Количество;
			Иначе
				Список.Количество = 1;
			КонецЕсли;
			Если Метаданные.Документ(ДокумОснование.Вид()).РеквизитТабличнойЧасти("Сумма").Выбран()=1 Тогда
				Список.Сумма	  = ДокумОснование.Сумма;
			ИначеЕсли Метаданные.Документ(ДокумОснование.Вид()).РеквизитТабличнойЧасти("Всего").Выбран()=1 Тогда
				Список.Сумма	  = ДокумОснование.Всего;
			КонецЕсли;
		КонецЦикла;	
		//Если глЕстьРеквизитШапки("Скидка",ДокумОснование.Вид()) = 1 Тогда
		//	Скидка = ДокумОснование.Скидка.Процент
		//КонецЕсли;
		
	КонецЕсли;                                     //[-] тщи 54ФЗ
	
	СуммаЧека         = Сумма;
	//Получено          = Сумма;                   //тщи
	Скидка            = 0;
	ПризнВозврата     = 1;
	НомерСекции       = 1;
	НомерЧека         = 0;
    
	//начало тщи 54ФЗ
	Если Список.КоличествоСтрок() > 0 Тогда
		Список.НоваяКолонка("Данные54ФЗ");			//инфа записывается в виде списка значений в первую строку таблицы СписокТоваров
		Список.ПолучитьСтрокуПоНомеру(1);
		Список.Данные54ФЗ = СоздатьОбъект("СписокЗначений");
		Данные = Список.Данные54ФЗ;
		Данные.ДобавитьЗначение(Контекст,"Контекст");
		Если Метаданные.Документ(Вид()).РеквизитШапки("АдресПокупателя").Выбран() = 1 Тогда                //если диалог документ доработан для указания адреса покупателя
			Данные.ДобавитьЗначение(сокрлп(ПолучитьАтрибут("АдресПокупателя")),"АдресПокупателя");	//если закомментировать эту строку, то АдресПокупателя будет запрошен в обработке обслуживания ФР; если передать пустую строку (""), то будет выводиться бумажный чек без запроса АдресаПокупателя
		КонецЕсли;

		Если Метаданные.Документ(Вид()).РеквизитШапки("ОплатаКартой").Выбран() = 1 Тогда                       //если диалог документ доработан для указания типа оплаты картой
			ПризнакОплатыКартой = ПолучитьАтрибут("ОплатаКартой");
			Данные.ДобавитьЗначение(ПризнакОплатыКартой,"ТипОплаты");	 	//чтобы не запрашивать тип оплаты в отдельном диалоге перед печатью чека, (т.к. тип оплаты вводится в чеке), 1 -  запрашивать тип оплаты в отдельном диалоге перед печатью чека. Для работы этого параметра обязательно передавать параметр Контекст!
		Иначе
			ПризнакОплатыКартой = 0
		КонецЕсли;
		
		Если Метаданные.Документ(Вид()).РеквизитШапки("Получено").Выбран() = 1 Тогда                       //если диалог документ доработан для указания типа оплаты картой
			Получено = ПолучитьАтрибут("Получено");     //получено НАЛИЧНЫМИ (остальное - КАРТА)
			Если (Получено=0) и (ПризнакОплатыКартой=0) Тогда
				Получено = СуммаЧека
			КонецЕсли;
		Иначе
			Получено = ?(ПризнакОплатыКартой = 1, 0, СуммаЧека)
		КонецЕсли;
	
		Если (Получено < СуммаЧека) и (ПризнакОплатыКартой = 0) Тогда  		//тщи если Получено < СуммаЧека, то значит оплата идет по банковской карте
	 		Предупреждение("Полученной суммы недостаточно для оплаты!",60);
	 		Возврат
	 	КонецЕсли;
	 	
		Данные.ДобавитьЗначение(ПринятоОтОснование, "Основание");
		Данные.ДобавитьЗначение(СтавкаНДСПоДокОснованию, "НДСпоУмолч");
	 	Если ПустоеЗначение(ДокумОснование) = 0 Тогда
			Данные.ДобавитьЗначение(ДокумОснование,"Документ");	//ссылка на документ-основание
		КонецЕсли;
	 	Если КоррСчет.ВидСубконто(2) = ВидыСубконто.Договоры Тогда
			Данные.ДобавитьЗначение(Субконто2.Наименование,"Договор");	//договор контрагента
		КонецЕсли;

	Иначе
 		Предупреждение("Нет позиций для вывода в чек ККМ!",60);
 		Возврат
	КонецЕсли;
	//конец тщи 54ФЗ   
    
	Если глФРПечататьЧек(Список, СуммаЧека, Получено, Скидка, ПризнВозврата, НомерСекции, НомерЧека) = 1 Тогда
		НомерЧекаККМ = ?(НомерЧека = 0, -1, НомерЧека);
		Попытка						//[+] тщи 54ФЗ
			АдресПокупателя = Данные.Получить("АдресПокупателя");
			НомерСменыККМ 	= Данные.Получить("НомерСмены");
			Получено 		= Данные.Получить("Получено");
			Если СуммаЧека>Получено Тогда
				Картой = СуммаЧека-Получено;
				ОплатаКартой = 1;
			Иначе
				Картой = 0;
				ОплатаКартой = 0;
			КонецЕсли
		Исключение КонецПопытки;	//[-] тщи 54ФЗ
		ПриЗаписиПерепроводить(0);
		Записать();
		ПриЗаписиПерепроводить(1);
	КонецЕсли;
	
КонецПроцедуры


3) В модуле формы документа РасходныйОрдер (Расходный кассовый ордер) в начале процедуры ВводНового() добавить строчку:
	НомерЧекаККМ  = 0;

Процедура ВводНового(Копирование)
	НомерЧекаККМ  = 0;	//тщи
....

4) На диалог формы документа РасходныйОрдер (Расходный кассовый ордер) ДОБАВИТЬ (т.к. их там нет) реквизиты ТекстНомерЧекаККМ и кнЧек (по аналогии см. документ ПриходныйОрдер)

5) Для документа РасходныйОрдер в настройку "Ввод на основании" добавлены документы ПриходныйОрдер, УслугиСтороннихОрганизаций, ПоступлениеМПЗ, ПоступлениеОС и ПоступлениеНМА в списке "Вводить на основании" (см. подробнее в USN275_54FZ.md)

6) Новый реквизит ДокОснование в документах ПриходныйОрдер и РасходныйОрдер, данный реквизит выведен на форму указанных документов и позволяет выводить в чек ККМ наименования номенклатуры из документа-основания, внесены изменения в процедуры ВводНаОсновании(), ПечатьЧека(), ОбработкаВыбораЗначения() указанных документов, в конце модуля формы определены программно виды документов для выбора в реквизит ДокОснование. (см. подробнее в USN275_54FZ.md)