Архив метки: розница 2.2

Собственная реализация функционала печати чеков по 54-ФЗ из 1С Розница 2.2

Собственно причиной сподвигнувшей меня на написание данного «велосипеда» послужило то, для того чтобы распечатался полноценный чек из 1С, не используюя РМК, нужно очень много телодвижений от менеджера.  А именно: создать документ реализации, на основании его создать документ «Чек» или «ПКО». Если печатать чек прямо из документа реализации, то в чеке выходят не понятные надписи «Кредит». Читать далее Собственная реализация функционала печати чеков по 54-ФЗ из 1С Розница 2.2

Костылище при работе с ККМ в Розница 2.2.

С какого-то момента на одном из компьютеров с 1С, перестали печататься чеки на онлайн-кассе. Причем ошибок 1С никаких не показывала.  Причем при открытии/закрытии смен, чеки с Z отчетами выдавались.  Бился два дня с разнообразными настройками и поисками решения. Грешил и на ОС, и на 1С и на ККМ. Сегодня утром уже даже отладчиком 1С стал код шерстить, чтобы понять на каком моменте, что-то не так. Нашел:

&НаКлиенте
Процедура НапечататьЧекКлиент()
	Перем Отказ, ИдентификаторУстройства, ИспользоватьКассуБезПодключенияОборудования, РаспределениеВыручкиПоСекциям;
	
	ПодготовитьИПроверитьПечатьЧека(Отказ, ИдентификаторУстройства, ИспользоватьКассуБезПодключенияОборудования, РаспределениеВыручкиПоСекциям);
	
	Если Отказ Тогда
		Возврат
	КонецЕсли;
!!!!!!!! ошибка здесь!!!!!
	Если НЕ ИспользоватьПодключаемоеОборудование ИЛИ ИспользоватьКассуБезПодключенияОборудования Тогда
		
		Если НомерДокументаКассыККМ[Объект.КассаККМ] <> Неопределено Тогда
			Объект.НомерЧекаККМ  = НомерДокументаКассыККМ[Объект.КассаККМ];
		Иначе
			Объект.НомерЧекаККМ  = ПорядковыйНомерПродажи;
		КонецЕсли;
		Объект.ПробитЧек     = Истина;
		
		Модифицированность = Истина;

ИспользоватьПодключаемоеОборудование = ВСЕГДА = ЛОЖЬ.  Причем только когда работаешь в 1С именно на этом ПК. На других всё ок. Почему? Не понятно. Галочка стоит:

Место, где заполняется значение нашел:

// Проверяет, что включена ф.о "Использовать подключаемое оборудование" и авторизовался пользователь,
// а не внешний пользователь.
Функция ИспользоватьПодключаемоеОборудование() Экспорт
	
	Возврат ПолучитьФункциональнуюОпцию("ИспользоватьПодключаемоеОборудование") И ТипЗнч(Пользователи.АвторизованныйПользователь()) = Тип("СправочникСсылка.Пользователи");
	
КонецФункции

И оно возвращает ИСТИНА! В общем, бился, бился..

Пока прибил всё это костылем:

&НаКлиенте
Процедура НапечататьЧекКлиент()
	Перем Отказ, ИдентификаторУстройства, ИспользоватьКассуБезПодключенияОборудования, РаспределениеВыручкиПоСекциям;
	
	ПодготовитьИПроверитьПечатьЧека(Отказ, ИдентификаторУстройства, ИспользоватьКассуБезПодключенияОборудования, РаспределениеВыручкиПоСекциям);
	
	Если Отказ Тогда
		Возврат
	КонецЕсли;
	// грибов
	// совершенно не понятный глюк
	ИспользоватьПодключаемоеОборудование=истина;
	//
	Если НЕ ИспользоватьПодключаемоеОборудование ИЛИ ИспользоватьКассуБезПодключенияОборудования Тогда

1С Розница 2.2, сохранить присоединенные к номенклатуре картинки

Присоединенные к номенклатуре файлы можно выгрузить например так:

&НаСервереБезКонтекста
Процедура ПолучитьФайлыНаСервере()
	ном=Справочники.Номенклатура.НайтиПоКоду("1534       ");
	сообщить(ном.ФайлКартинки);
	Запрос = Новый Запрос;
		Запрос.Текст = 		
"ВЫБРАТЬ
|	НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка,
|	НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу,
|	НоменклатураПрисоединенныеФайлы.ТипХраненияФайла КАК ТипХраненияФайла,
|	НоменклатураПрисоединенныеФайлы.Том КАК Том,
|	НоменклатураПрисоединенныеФайлы.ФайлХранилище КАК ФайлХранилище
|ИЗ
|	Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
|ГДЕ
|	НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка = &ном"	;
		
	 Запрос.УстановитьПараметр("ном", ном);					
	 файлы=Запрос.Выполнить().Выбрать();			
	 n=0;
	 Пока файлы.Следующий() Цикл		
		 сообщить(файлы.ПутьКФайлу);
		 сообщить(файлы.ТипХраненияФайла);
		 сообщить(файлы.Том);
		 сообщить(файлы.ФайлХранилище);
		 картинка=ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(файлы.Ссылка);
		 картинка.Записать("c:\temp\"+n+".jpg");
		 n=n+1;
	 конеццикла;	 
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьФайлыКлиент(Команда)
	ПолучитьФайлыНаСервере();
КонецПроцедуры