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

1. melis 94 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 94 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 48 24.08.20 16:35 Сейчас в теме
(3)плюсую))) а то получается "у меня ошибка ,вот код" а что за ошибка не понятно
9. melis 94 28.08.20 06:31 Сейчас в теме
(4) ФР просто не отбивает чек - явной ошибки не пишет - если он куда-то логирует, то я не знаю куда
10. muskul 28.08.20 07:08 Сейчас в теме
11. melis 94 28.08.20 10:52 Сейчас в теме
(4) Напишите тогда где смотреть код ошибки для ФР штрих онлайн и 1С77 ТиС на 10-й винде?
8. melis 94 28.08.20 06:30 Сейчас в теме
(3) в ящике денги есть, но внесение не делает кассир на ФР
5. DanDy 48 24.08.20 16:36 Сейчас в теме
радует когда люди скрывают куски кода,видимо чтобы "не украли уникальную разработку" которых на гуглить можно за 2 минуты))))
7. melis 94 28.08.20 06:29 Сейчас в теме
(5) там просто много строк - посчитала, что не выжны некоторые моменты - позже, после решения проблемы, могу выложить весь код
6. melis 94 28.08.20 06:28 Сейчас в теме
14. Иваныч 23 13.12.21 20:39 Сейчас в теме
А такой механизм разве возможен? Если штатно делается закрытие кассовой смены и формируется ОтчетККМ, то чеки либо удаляются (изначально) . Либо сами в конфигуратор лезете и подправляете код, если есть необходимость в контроле за чеками. А возврат делается документом ВозвратОтПокупателя(купля-продажа), в котором указываете документ-основание. Ну и после вводится РКО. где автоматом выбирается вид движения ДС как "возврат покупателю". Во всяком случае моя фирма так работает.
П.С. А в вашем случае нужно изначально внесение денег в кассу делать, а Закрытие смены проводить через внешний драйвер (не из 1С). Но это как предположение, не уверен...
Оставьте свое сообщение
Вакансии
Разработчик 1С (от middle до senior), до 300 К gross
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист 1С
Кемерово
зарплата от 80 000 руб. до 180 000 руб.
Полный день

Аналитик 1С:ЗУП
Москва
зарплата от 150 000 руб.
Полный день