Отбитие чека возврата прихода на другой день на Штрих онлайн

1. melis 95 22.08.20 10:47 Сейчас в теме
Может кто-то подскажет что должно быть написано в коде обработки для Отбития чека возврата прихода на другой день на Штрих онлайн?

// Объект полключается - здесь все хорошо
Если ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
	Возврат 0;
КонецЕсли;

//Чек прихода и Чек возврата в тот же день отбивается за нал и безнал (безнал ФизЛицу и ЮрЛицу по корп карте) - все ок. в ОФД отправляется - тоже все ОК
// Не получается отбить Чек на возврат (Возврат прихода) на другой день - что нужно сделать обработке? 
// Признак возврата в Чек передаю, может снесение нужной суммы нужно сделать перед отбитием или какой-то флаг проверки отвключить на ФР?

// Пример кода обработки (ошибок по синтаксису кода и его работы явных нет, даже если что-то пропущено при отображении примера):

// ПризнВозврата=1 - это Чек на возварт, иначе значение ПризнВозврата=0
Функция ПечататьЧек(Объект, Пароль, СписокТоваров, СуммаЧека, Получено, Скидка, ПризнВозврата, ....... ) 

	Если СокрЛП(ИННкассира) = "" Тогда
		ИННкассира = ?(ПустоеЗначение(Док.Автор)=0,?(ПустоеЗначение(Док.Автор.птдФизЛицо)=0,СокрЛП(Док.Автор.птдФизЛицо.ИНН),""),"");	
	КонецЕсли;	
	
	Если ПустоеЗначение(Объект) = 1 Тогда
		ОписаниеРезультата = "устройство не подключено";
		Возврат 0;
	ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
		Возврат 0;
	КонецЕсли;

/// ..... здесь некоторый подготовительный код


	Если ЕстьПоддержка54ФЗ = 1 Тогда   //начало 54ФЗ
		Если ПриемНаличныхОтЮрЛиц = 1 Тогда   /// тогда ОСНО - юрик платит через РКО с чеком
			СНО = 1;   // ОСНО
		Иначе	
		    СНО = 8; // ЕНВД                               
		КонецЕсли;	
		Объект.Password		= "30"; //глФРПарольАдминистратора ???
		Объект.TableNumber	= 18;  //таблица "Fiscal Storage"
		Объект.RowNumber	= 1; //в таблице всего одна строка
		Объект.FieldNumber	= 5;  //поле "Tax system"
		Объект.ReadTable();
		Если Объект.ValueOfFieldInteger <> СНО Тогда
			Объект.ValueOfFieldInteger = СНО;
			Объект.WriteTable();
		КонецЕсли;
		Объект.Password = Пароль; //пользователя

               // ..... код передачи e-mail покупателя
	КонецЕсли;

	Объект.Password          = Пароль;
	Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
		Объект.Password          = Пароль;          
                // // для FNOperation свойство CheckType:  1 -Приход, 2 -Возврат прихода, 3 -расход, 4 -возврат расхода
		Объект.CheckType = ?(ПризнВозврата = 0,1,2); 
		Объект.StringForPrinting = СписокТоваров.ТовНаим; //тщи 54ФЗ "";  ??? Лев(СписокТоваров.ТовНаим, ДлинаНаименования)
		Если НДСЕсть = 1 Тогда  //\\//\\+ 2019-08-10
		    Объект.StringForPrinting = СокрЛП(Объект.StringForPrinting) + ", НДС"+СписокТоваров.СтавкаНДС+"%="+СписокТоваров.СуммаНДС;
		КонецЕсли;

		Кол = СписокТоваров.Количество; // тщи 54ФЗ
		ЦенаСоСкд = ?(Кол=0, СписокТоваров.Цена, окр(СписокТоваров.Сумма / Кол,2)); //тщи 54ФЗ
		Объект.Price             = ЦенаСоСкд; //тщи 54ФЗ
		Объект.Quantity          = СписокТоваров.Количество;
		Объект.Department        = НомерСекции;     
Показать


....... и т.д.

Объект.PaymentTypeSign = PaymentTypeSign; //\\//\\+ 2019.01.03 
		Если СписокТоваров.КоличествоКолонок() = 6 Тогда
		    PaymentItemSign = 1;// Товар    4. Услуга
		Иначе
			PaymentItemSign = ?(PaymentTypeSign=4,СписокТоваров.PaymentItemSign,10); //\\//\\+ 2019.01.03 
		КонецЕсли;
		Объект.PaymentItemSign = PaymentItemSign;
		Объект.FNOperation();    
		Объект.StringForPrinting = ?(PaymentTypeSign=4,"Полный расчет","Предоплата 100%");
		Объект.PrintString();		
		Объект.StringForPrinting = ?(PaymentItemSign = 1,"Товар","Услуга");
		Объект.PrintString();		                                //4

		Если Объект.ResultCode <> 0 Тогда    
			Объект.Password          = Пароль;
			Объект.FNGetStatus();
			ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
			АннулированиеЧека(Объект, Пароль);
			ОтключитьсяОтФР(Объект, Пароль, 0);
			Возврат 0;
		КонецЕсли;
		
	КонецЦикла;

	Если сокрлп(ИННкассира) <> "" Тогда 
	 	Объект.Password		= Пароль; 
	    Объект.TagNumber  = 1203;
		Объект.TagType = 7;
		Объект.TagValueStr =  сокрлп(ИННкассира);
		Объект.FNSendTag();
	КонецЕсли;     

	Объект.Password          = Пароль;
	Объект.Summ4    = 0; 
	Объект.Summ5    = 0; 
	Объект.Summ6    = 0; 
	Объект.Summ7    = 0; 
	Объект.Summ8    = 0; 
	Объект.Summ9    = 0; 
	Объект.Summ10    = 0; 
	Объект.Summ11    = 0; 
	Объект.Summ12    = 0; 
	Объект.Summ13    = 0; 
	
	Объект.Summ15    = 0; 
	Объект.Summ16    = 0; 
	Объект.RoundingSumm = 0;

	этоЗачетАванса = Док.птдЧекЗачетАванса;
	Если этоЗачетАванса = 1 Тогда
		Объект.Summ14 = СуммаЧека;
		Получено = 0;
		СуммаЧека = 0;
	Иначе	
		Объект.Summ14 = 0;
	КонецЕсли;  

	Если Док.птдБезнал = 1 Тогда
		   Объект.Summ2 = СуммаЧека;   //пласт. картой
		   Объект.Summ1 = 0;     
		   Объект.Summ3    = 0;
		   Если НДСЕсть = 1 Тогда  //\\//\\+ 2019-08-10 Тогда   Объект.Tax1 = 4; // Без налога (ЕНВД)
		       Объект.Tax1 = 0;
		   	Объект.Tax2 = _Tax;  //1 - 20%
	   	        Объект.Tax3 = 0;
		   КонецЕсли;
		   Если Док.птдБезналПоСчету = 1 Тогда  //\\//\\+ 2018-06
			   Объект.Summ2 = 0;
			   Объект.Summ1 = 0;     
			   Объект.Summ3    = СуммаЧека;
			   Если НДСЕсть = 1 Тогда  //\\//\\+ 2019-08-10 Тогда   Объект.Tax1 = 4; // Без налога (ЕНВД)
			       Объект.Tax1 = 0;
			   	   Объект.Tax2 = 0;  // 20%
			   	   Объект.Tax3 = _Tax;
			   КонецЕсли;
		   КонецЕсли;
		Иначе
			Объект.Summ2 = 0;
			Объект.Summ1 = СуммаЧека;  //наличными
			Объект.Summ3    = 0;   //\\//\\+ 2018-06
		КонецЕсли;

		Если Объект.ResultCode <> 0 Тогда
			ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
			АннулированиеЧека(Объект, Пароль);
			ОтключитьсяОтФР(Объект, Пароль, 0);
			Возврат 0;
		КонецЕсли;

	Объект.FNCloseCheckEx();

   //   ... здесь проверки, что все прошло успешно

	Объект.Password = Пароль;
	Объект.GetECRStatus();

	НомерЧека = Объект.OpenDocumentNumber+?(Объект.ECRAdvancedMode=5,1,0);
	ОтрезатьЧек(Объект, Пароль);

	Возврат ОтключитьсяОтФР(Объект, Пароль);
	
КонецФункции
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user958326 22.08.20 20:02 Сейчас в теме
(1)
Конфигурация хоть какая?
12. melis 95 28.08.20 10:54 Сейчас в теме
(2) Конфигурация 1С77 ТиС и обработка - очень не типовые
13. user958326 28.08.20 21:29 Сейчас в теме
(12)
если они обе очень не типовые, то может быть что угодно. Без базы помочь сложно будет
3. muskul 24.08.20 03:08 Сейчас в теме
Так может надо начать с описания ошибки и не листинга кода. может у вас на след день денег нет в кассе
4. DanDy 51 24.08.20 16:35 Сейчас в теме
(3)плюсую))) а то получается "у меня ошибка ,вот код" а что за ошибка не понятно
9. melis 95 28.08.20 06:31 Сейчас в теме
(4) ФР просто не отбивает чек - явной ошибки не пишет - если он куда-то логирует, то я не знаю куда
10. muskul 28.08.20 07:08 Сейчас в теме
11. melis 95 28.08.20 10:52 Сейчас в теме
(4) Напишите тогда где смотреть код ошибки для ФР штрих онлайн и 1С77 ТиС на 10-й винде?
8. melis 95 28.08.20 06:30 Сейчас в теме
(3) в ящике денги есть, но внесение не делает кассир на ФР
5. DanDy 51 24.08.20 16:36 Сейчас в теме
радует когда люди скрывают куски кода,видимо чтобы "не украли уникальную разработку" которых на гуглить можно за 2 минуты))))
7. melis 95 28.08.20 06:29 Сейчас в теме
(5) там просто много строк - посчитала, что не выжны некоторые моменты - позже, после решения проблемы, могу выложить весь код
6. melis 95 28.08.20 06:28 Сейчас в теме
14. Иваныч 23 13.12.21 20:39 Сейчас в теме
А такой механизм разве возможен? Если штатно делается закрытие кассовой смены и формируется ОтчетККМ, то чеки либо удаляются (изначально) . Либо сами в конфигуратор лезете и подправляете код, если есть необходимость в контроле за чеками. А возврат делается документом ВозвратОтПокупателя(купля-продажа), в котором указываете документ-основание. Ну и после вводится РКО. где автоматом выбирается вид движения ДС как "возврат покупателю". Во всяком случае моя фирма так работает.
П.С. А в вашем случае нужно изначально внесение денег в кассу делать, а Закрытие смены проводить через внешний драйвер (не из 1С). Но это как предположение, не уверен...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот