Имя: Пароль:
1C
 
В карточке Партнера на закладке Общие нет поля Электронный чек в 1с ERP
☑
0 Kopchi
 
29.09.26
✎
13:40
1C ERP релиз 2.5.27.93 Для настройки отправки электронных чеков из документа Приходный кассовый ордер требуется выбрать в карточке Партнеры в поле Электронный чек, то что чек отправляется по электронной почте. Этого поля у меня нет. И второй вопрос, для вывода в бумажном варианте чека достаточно указать в карточке Партнеры на закладке Адреса и телефоны указать адрес электронной почты и телефон Покупателя. Кассу ККМ используем АТОЛ FPrint-22ПТК?
1 paramedic
 
29.09.26
✎
14:29
1. У вас включены розничные продажи?
2. У вас установлена отправка чеков по SMS и e-mail?
2 Kopchi
 
29.09.26
✎
15:27
Чтобы появилось поле Электронный чек у покупателя должен быть статус Физическое лицо, а у меня покупатель - ИП
3 PLUT
 
гуру
29.09.26
✎
16:12
(2) добавь костылики в общий модуль РозничныеПродажи (снять модуль с "замочка" или в расширение сознания пофигурации)

Процедура ЗаполнитьПараметрыОтправкиЭлектронногоЧекаПоПартнеру(Форма) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	ВариантОтправкиЭлектронногоЧека = Перечисления.ВариантыОтправкиЭлектронногоЧекаПокупателю.НеОтправлять; 
	
	//{ Костыль
	Если Не ЗначениеЗаполнено(Форма.Партнер) Тогда
				
		ВариантОтправкиЭлектронногоЧека = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Форма.Контрагент.Партнер, "ВариантОтправкиЭлектронногоЧека");
		
		Форма.ВариантОтправкиЭлектронногоЧекаПартнера = ВариантОтправкиЭлектронногоЧека;
		Если Не ЗначениеЗаполнено(ВариантОтправкиЭлектронногоЧека) Тогда
			ВариантОтправкиЭлектронногоЧека = Перечисления.ВариантыОтправкиЭлектронногоЧекаПокупателю.НеОтправлять;
		КонецЕсли;
		
		ИсточникиКонтактнойИнформации = Новый Массив;
		ИсточникиКонтактнойИнформации.Добавить(Форма.Контрагент.Партнер);
		
		ВидыКонтактнойИнформации = Новый Массив;
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонПартнера);
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.EmailПартнера);	 
		
		ИсточникиКонтактнойИнформации.Добавить(Форма.Контрагент); 
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.EmailКонтрагента);
		
		КонтактнаяИнформацияОбъекта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(ИсточникиКонтактнойИнформации,, ВидыКонтактнойИнформации, ТекущаяДатаСеанса());
		
		Для Каждого ЭлементКонтактнойИнформации Из КонтактнаяИнформацияОбъекта Цикл
			
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонПартнера Тогда
				Форма.Телефон10Знаков = РозничныеПродажиКлиентСервер.НомерТелефонаВФормате10Знаков(ЭлементКонтактнойИнформации.Представление);
				Форма.Телефон = РозничныеПродажиКлиентСервер.ОтформатироватьНомерТелефона(Форма.Телефон10Знаков);
				Форма.Элементы.Телефон.СписокВыбора.Добавить(Форма.Телефон);
			КонецЕсли;
			
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.EmailПартнера Тогда
				Форма.Email = ЭлементКонтактнойИнформации.Представление;
				Форма.Элементы.Email.СписокВыбора.Добавить(Форма.Email);
			КонецЕсли;
			
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента Тогда
				Форма.Телефон10Знаков = РозничныеПродажиКлиентСервер.НомерТелефонаВФормате10Знаков(ЭлементКонтактнойИнформации.Представление);
				Форма.Телефон = РозничныеПродажиКлиентСервер.ОтформатироватьНомерТелефона(Форма.Телефон10Знаков);
				Форма.Элементы.Телефон.СписокВыбора.Добавить(Форма.Телефон);
			КонецЕсли;
			
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.EmailКонтрагента Тогда
				Форма.Email = ЭлементКонтактнойИнформации.Представление;
				Форма.Элементы.Email.СписокВыбора.Добавить(Форма.Email);
			КонецЕсли
			
		КонецЦикла;
		
		Если Форма.Элементы.Телефон.СписокВыбора.Количество() > 0 Тогда
			Форма.Элементы.Телефон.КнопкаВыпадающегоСписка = Истина;
		КонецЕсли;
		
		Если Форма.Элементы.Email.СписокВыбора.Количество() > 0 Тогда
			Форма.Элементы.Email.КнопкаВыпадающегоСписка = Истина;
		КонецЕсли;
		
	КонецЕсли;	
	//} костыль
	
	Если ЗначениеЗаполнено(Форма.Партнер) И Форма.Партнер <> Справочники.Партнеры.РозничныйПокупатель Тогда
		ВариантОтправкиЭлектронногоЧека = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Форма.Партнер,
														 Метаданные.Справочники.Партнеры.Реквизиты.ВариантОтправкиЭлектронногоЧека.Имя);
		
		ИсточникиКонтактнойИнформации = Новый Массив;
		ИсточникиКонтактнойИнформации.Добавить(Форма.Партнер);
		
		ВидыКонтактнойИнформации = Новый Массив;
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонПартнера);
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.EmailПартнера);
		//{ костыль
		ИсточникиКонтактнойИнформации.Добавить(Форма.Контрагент); 
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
		ВидыКонтактнойИнформации.Добавить(Справочники.ВидыКонтактнойИнформации.EmailКонтрагента);
		//} костыль
		
		КонтактнаяИнформацияОбъекта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(ИсточникиКонтактнойИнформации,, ВидыКонтактнойИнформации, ТекущаяДатаСеанса());
		
		АдресEmail = "";
		Телефон10Знаков = "";
		Телефон = "";
		Для Каждого ЭлементКонтактнойИнформации Из КонтактнаяИнформацияОбъекта Цикл
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонПартнера Тогда
				Телефон10Знаков = РозничныеПродажиКлиентСервер.НомерТелефонаВФормате10Знаков(ЭлементКонтактнойИнформации.Представление);
				Телефон = РозничныеПродажиКлиентСервер.ОтформатироватьНомерТелефона(Телефон10Знаков);
				Форма.Элементы.Телефон.СписокВыбора.Добавить(Телефон);
			КонецЕсли;
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.EmailПартнера Тогда
				АдресEmail = ЭлементКонтактнойИнформации.Представление;
				Форма.Элементы.Email.СписокВыбора.Добавить(АдресEmail);
			КонецЕсли;   
			//{ костыль
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента Тогда
				Форма.Телефон10Знаков = РозничныеПродажиКлиентСервер.НомерТелефонаВФормате10Знаков(ЭлементКонтактнойИнформации.Представление);
				Форма.Телефон = РозничныеПродажиКлиентСервер.ОтформатироватьНомерТелефона(Форма.Телефон10Знаков);
				Форма.Элементы.Телефон.СписокВыбора.Добавить(Форма.Телефон);
			КонецЕсли;
			
			Если ЭлементКонтактнойИнформации.Вид = Справочники.ВидыКонтактнойИнформации.EmailКонтрагента Тогда
				Форма.Email = ЭлементКонтактнойИнформации.Представление;
				Форма.Элементы.Email.СписокВыбора.Добавить(Форма.Email);
			КонецЕсли
			//} костыль
		КонецЦикла;
		
		Если Форма.Элементы.Телефон.СписокВыбора.Количество() > 0 Тогда
			Форма.Элементы.Телефон.КнопкаВыпадающегоСписка = Истина;
		КонецЕсли;
		
		Если Форма.Элементы.Email.СписокВыбора.Количество() > 0 Тогда
			Форма.Элементы.Email.КнопкаВыпадающегоСписка = Истина;
		КонецЕсли;
		
		Если Не ЗначениеЗаполнено(ВариантОтправкиЭлектронногоЧека) Тогда
			ВариантОтправкиЭлектронногоЧека = Перечисления.ВариантыОтправкиЭлектронногоЧекаПокупателю.НеОтправлять;
			Если Не ПолучитьФункциональнуюОпцию("ПечататьБумажныйЧек") Тогда
				Если Не ПустаяСтрока(АдресEmail) Тогда
					ВариантОтправкиЭлектронногоЧека = Перечисления.ВариантыОтправкиЭлектронногоЧекаПокупателю.ОтправитьEmail;
				ИначеЕсли Не ПустаяСтрока(Телефон10Знаков) Тогда
					ВариантОтправкиЭлектронногоЧека = Перечисления.ВариантыОтправкиЭлектронногоЧекаПокупателю.ОтправитьSMS;	
				КонецЕсли;
			КонецЕсли;	
		КонецЕсли;
		
		Если ВариантОтправкиЭлектронногоЧека = Перечисления.ВариантыОтправкиЭлектронногоЧекаПокупателю.ОтправитьEmail Тогда
			Если Не ПустаяСтрока(АдресEmail) Тогда
				Форма.Email = АдресEmail;
			КонецЕсли;
		ИначеЕсли ВариантОтправкиЭлектронногоЧека = Перечисления.ВариантыОтправкиЭлектронногоЧекаПокупателю.ОтправитьSMS Тогда
			Если Не ПустаяСтрока(Телефон10Знаков) Тогда
				Форма.Телефон10Знаков = Телефон10Знаков;
				Форма.Телефон = Телефон;
			КонецЕсли;
		КонецЕсли;

	КонецЕсли;
		
	РозничныеПродажиКлиентСервер.УстановитьВариантОтправкиЭлектронногоЧека(Форма, ВариантОтправкиЭлектронногоЧека);
	
КонецПроцедуры
4 PLUT
 
гуру
29.09.26
✎
16:24
(2) и да, чтобы гиперсцылка <Пробить чек> появилась в документе, нужно чтобы Плательщик/Клеент был Физическое лицо

как вариант, добавить контрагентов=физиков, чтобы магия 1С ERP случилась и можно было пробить чек, а затем сделать документ взаимозачет задолженности между физиком и ИПшником
5 paramedic
 
29.09.26
✎
16:36
(2) А чеки для этого ИП вы бьете с указанием ИНН этого ИП?
6 Доминошник
 
29.09.26
✎
16:37
(5) ИНН у ИП и физика - должны быть одинаковые
7 PLUT
 
гуру
29.09.26
✎
17:05
(5) да, у физика и того самого ИП, который во взаимозачете задолженности участвует, чудесным образом одинаковые ИНН

но бывают и "оплаты левых лиц", когда х.й его знает кто с карты физика за ООО "рога и копыта" (с другим ИНН) оплачивает. тогда требуется песьмо от физика  с просьбой зачесть оплату "левого лица" в пользу ООО "пестики и тычинки" дата подпись
8 paramedic
 
29.09.26
✎
17:20
(6) Вопрос прочитайте внимательно. То, что ИНН у физика и ИП одинаковые - понятно и ежу.
А вот то, что чек, пробитый для ИП (или юрика) ОБЯЗАН содержать ИНН этого ИП (или юрика) - про это все дружно забывают.
(7) Не только с карты физика. При оплате с карты юрика вы никогда не определите, что это оплата от юрика.
9 paramedic
 
29.09.26
✎
17:28
И еще один момент: так как нет обязанности печатать чек для юриков и ИП, а чеки для них требуют специального заполнения, 1С пошли по пути наименьшего сопротивления: чеки бьются только для физиков. И это ограничение на уровне кода поставлено на интерфейсные элементы (типа ссылки "пробить чек") и на записи в регистры.
10 PLUT
 
гуру
29.09.26
✎
17:35
(9) я добавил костылей в (3) для удобства бабароботам, т.к. электропочта у Контрагента обычно чаще заполнена, чем у Партнера и можно еще на телепон контрагенту=физику чек отправить, если нет мыла, но есть номер телепона
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.