Печать ФИО кассира в чеке

1. login1992 19.02.21 23:46 Сейчас в теме
Самописная конфа. Подключил библиотеку, подключаемое оборудование. Настроил чек как фискальный регистратор. Иначе кассовый чек не пробивается (этого я поменять не могу, касса Штрих М Онлайн). Чек пробивает отлично, в ОФД данные попадают. Но в чеке в поле кассир пишет администратор (пробывал менял в драйвере в поле 30 (наверное, не помню) на другое имя, не помогло все равно администратор).
происходит это так:
Срабатывает функция открыть чек. Печатается заголовок чека, все до перечисления номенклатуры. Там и печатается "Кассир: Администратор".
Потом происходит печать всей остальной инфы.
Чек закрывается на функцию "ОбщийМодульОборудования.ЗакрытьЧек".

Вопрос как мне получить имя кассира (например: Иванова Игоря Анатольевича)?

Функция ПечатьЧекаПоШаблону(ОбщийМодульОборудования, ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры) Экспорт
	
	Результат  = Истина;
	
	ОбщиеПараметры = ВходныеПараметры[0];
	
	ПозицииЧека  = ОбщиеПараметры.ПозицииЧека;
	ТаблицаОплат = ОбщиеПараметры.ТаблицаОплат;
	
	Если ОбщиеПараметры.Свойство("ПодписьЧека")  Тогда
		// Печать чека производиться в 2 этапа. Чека был открыт ранее.
		РасширенныеПараметры = ОбщиеПараметры.ПодписьЧека; 
		// Заполнение выходных параметров.
		ВыходныеПараметры.Очистить();
		ВыходныеПараметры.Добавить(РасширенныеПараметры.НомерСмены);
		ВыходныеПараметры.Добавить(РасширенныеПараметры.НомерЧека);
		ВыходныеПараметры.Добавить(0); // Номер документа
		ВыходныеПараметры.Добавить(МенеджерОборудованияКлиентПереопределяемый.ДатаСеанса());
		ВыходныеПараметры.Добавить(Неопределено);
		ВыходныеПараметры.Добавить(Неопределено);
		ВыходныеПараметры.Добавить(Неопределено);
	Иначе
		ТипРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодТипаРасчетаДенежнымиСредствами(ОбщиеПараметры.ТипРасчета);
		ТипЧека =  ?(ТипРасчета = 1, Ложь, Истина);
		// Открываем чек
		Результат = ОбщийМодульОборудования.ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТипЧека, Истина, ВыходныеПараметры);
	КонецЕсли;
	
	// Печатаем строки чека   
	Если Результат Тогда
		
		ОшибкаПриПечати = Ложь;
		// Печатаем позиции чека
		Для ИндексМассива = 0 По ПозицииЧека.Количество() - 1 Цикл
			
			ПозицияЧека = ПозицииЧека[ИндексМассива];
			Если ПозицияЧека.Свойство("ФискальнаяСтрока") Тогда
				Наименование  = ?(ПозицияЧека.Свойство("Наименование") , ПозицияЧека.Наименование, "");
				Количество    = ?(ПозицияЧека.Свойство("Количество")   , ПозицияЧека.Количество  , 1);
				Цена          = ?(ПозицияЧека.Свойство("Цена")         , ПозицияЧека.Цена        , 0);
				Сумма         = ?(ПозицияЧека.Свойство("Сумма")        , ПозицияЧека.Сумма       , 0);
				НомерСекции   = ?(ПозицияЧека.Свойство("НомерСекции")  , ПозицияЧека.НомерСекции , 0);
				СтавкаНДС     = ?(ПозицияЧека.Свойство("СтавкаНДС")    , ПозицияЧека.СтавкаНДС   , 0);
				Если НЕ ОбщийМодульОборудования.НапечататьФискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
									Наименование, Количество, Цена, Сумма, НомерСекции, СтавкаНДС, ВыходныеПараметры) Тогда
					ОшибкаПриПечати = Истина;   
					Прервать;
				КонецЕсли;
			ИначеЕсли ПозицияЧека.Свойство("ТекстоваяСтрока") Тогда
				Текст = ?(ПозицияЧека.Свойство("Текст"), ПозицияЧека.Текст, "");
				Если НЕ ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
											Текст, ВыходныеПараметры) Тогда
					ОшибкаПриПечати = Истина;   
					Прервать;
				КонецЕсли;
			ИначеЕсли ПозицияЧека.Свойство("Штрихкод") Тогда
				ВремВыходныеПараметры = Новый Массив();
				ТипШтрихКодаЗнач = ?(ПозицияЧека.Свойство("ТипШтрихКода"), ПозицияЧека.ТипШтрихКода, "");
				ШтрихКод     = ?(ПозицияЧека.Свойство("ШтрихКод")    , ПозицияЧека.ШтрихКод    , "");
				Если НЕ ОбщийМодульОборудования.ПечатьШтрихкода(ОбъектДрайвера, Параметры, ПараметрыПодключения,
											ТипШтрихКодаЗнач, ШтрихКод, ВремВыходныеПараметры) Тогда
					Текст = НСтр("ru='<Штрихкод %ТипШтрихКода% не распечатан>'");
					Текст = СтрЗаменить(Текст, "%ТипШтрихКода%", ТипШтрихКодаЗнач);
					Если НЕ ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
						Текст, ВремВыходныеПараметры) Тогда
						ОшибкаПриПечати = Истина;   
						Прервать;
					КонецЕсли;
				КонецЕсли;
			КонецЕсли;		
		КонецЦикла;
			
		Если НЕ ОшибкаПриПечати Тогда
		  	// Закрываем чек
			ТаблицаОплатЧека = Новый Массив();
			Если ТаблицаОплат <> Неопределено Тогда
				
				СуммаНаличными       = 0;
				СуммаЭлектронными    = 0;
				СуммаПостоплатой     = 0;
				СуммаПредоплатой     = 0;
				СуммаПредоставлением = 0;
				
				Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл
					Если ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.Электронно") Тогда
						СуммаЭлектронными = СуммаЭлектронными + ТаблицаОплат[ИндексОплаты].Сумма;
					ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.Предоплата") Тогда
						СуммаПредоплатой = СуммаПредоплатой + ТаблицаОплат[ИндексОплаты].Сумма;
					ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.Постоплата") Тогда
						СуммаПостоплатой = СуммаПостоплатой + ТаблицаОплат[ИндексОплаты].Сумма;
					ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.ВстречноеПредоставление") Тогда
						СуммаПредоставлением = СуммаПредоставлением + ТаблицаОплат[ИндексОплаты].Сумма;
					Иначе
						СуммаНаличными = СуммаНаличными + ТаблицаОплат[ИндексОплаты].Сумма;
					КонецЕсли;
				КонецЦикла;
				
				СтрокаОплаты = Новый СписокЗначений();
				СтрокаОплаты.Добавить(0);
				СтрокаОплаты.Добавить(СуммаНаличными);
				ТаблицаОплатЧека.Добавить(СтрокаОплаты);
				
				СтрокаОплаты = Новый СписокЗначений();
				СтрокаОплаты.Добавить(1);
				СтрокаОплаты.Добавить(СуммаЭлектронными + СуммаПредоставлением);
				ТаблицаОплатЧека.Добавить(СтрокаОплаты);
				
				СтрокаОплаты = Новый СписокЗначений();
				СтрокаОплаты.Добавить(2);
				СтрокаОплаты.Добавить(СуммаПостоплатой);
				ТаблицаОплатЧека.Добавить(СтрокаОплаты);
				
				СтрокаОплаты = Новый СписокЗначений();
				СтрокаОплаты.Добавить(3);
				СтрокаОплаты.Добавить(СуммаПредоплатой);
				ТаблицаОплатЧека.Добавить(СтрокаОплаты);
				
			КонецЕсли;
			Результат = ОбщийМодульОборудования.ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплатЧека, ВыходныеПараметры);
		Иначе
			Результат = Ложь;
		КонецЕсли;
			
		КонецЕсли;
	
	Возврат Результат;
	
КонецФункции
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 20.02.21 02:46 Сейчас в теме
(1)Пользователи.ТекущийПользователь(); попробуй
4. login1992 20.02.21 07:12 Сейчас в теме
Я не знаю куда загнать этот параметр что бы ФИО распечатать.
5. Nubsdale 20.02.21 10:01 Сейчас в теме
(4) Нужно поставить точку остановки
(1)
Результат = ОбщийМодульОборудования.ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплатЧека, ВыходныеПараметры);

Например тут. выделить выделить ВыходныеПараметры и через "Вычислить выражение" посмотреть где заполняется Администратор.
и как написал ( 2 ) присвоить текущего пользователя
3. burgomister 59 20.02.21 04:40 Сейчас в теме
В стандартный конфигурациях в чеке печатается физическое лицо пользователя.
trampsss; GeraltSnow; dchumak; +3 Ответить
6. pavel06 2 20.02.21 22:47 Сейчас в теме
(3)
в чеке печатается физическое лицо пользователя.


Да, правильно. Надо просто запускать типовую базу от имени пользователя, которого хочется увидеть на чеке распечатанным.
В ОФД надо еще ИНН кассира отправлять электронно без печати на чеке. Не все стандартные это умеют.
Но у ТС самописная конфа, в которой однако несамописные вызовы процедур чека используются.
На инфостарте полно разработок под разные кассы, печатающие фамилию и посылающие ИНН и маркировку за 3-5 тыс. руб.
Мне кажется, по виду чека - это Штрих-М. Для нее по штриховой документации к драйверу печать чека пишется просто,
и длина кода будет не больше приведенного.
Оставьте свое сообщение

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