Маркировка лекарств - как передать код маркировки при продаже через ККТ Штрих-М

Публикация № 1192569

Разработка - Практика программирования

ККТ Маркировка пример кода для

Пример программного кода для вывода чеков на ККМ Штрих-М с передачей информации о маркированных товарах (лекарства).

Многие знают, что при продаже маркированных товаров необходимо передавать информацию о коде маркировки с помощью тега 1162. Про это достаточно много информации.

Для Штрих-М запрограммировать это не составляет большого труда. После операции FNOperation() необходимо добавить несколько строк.

ЗагрузитьВнешнююКомпоненту ("DrvFR.dll");
голеОбъектККМ = СоздатьОбъект("AddIn.DrvFR");
...

голеОбъектККМ.FNOperation();

голеОбъектККМ.MarkingType  = MarkingType; //3 - лекарства
голеОбъектККМ.GTIN         = GTIN;        //14 символов
голеОбъектККМ.SerialNumber = SerialNumber;//13 символов
голеОбъектККМ.FNSendItemCodeData();

Код маркировки включает в себя избыточные данные. Из него необходимо выделить SGTIN длиной 27 символов, который в свою очередь делится на 2 части: первые 14 символов GTIN, остальные 13 символов это серийный номер упаковки (длина серийного номера упаковки указана для группы Лекарства).

Мой вариант функции разбора штрих-кода маркировки:

//******************************************************************************
// глЭтоКодМаркировки(Данные)
//
// Параметры: 
//  Данные
//  SGTIN - выходной параметр для передачи вырезанного из штрихкода SGTIN
//  КодТН_ВЭД - выходной параметр
//  НомерСерии - выходной параметр
//  ДатаИстеченияСрокаГодности - выходной параметр
//
// Возвращаемое значение:
//  1 да, 0 нет
//
// Описание:
//
// Примечание:
//  В настройках сканера желательно включить передачу разделителя с кодом 29
//
Функция глЭтоКодМаркировки(Данные,SGTIN,КодТН_ВЭД="",НомерСерии="",ДатаИстеченияСрокаГодности="") Экспорт
	Перем лДанные,СчЦ,ЧастьДанных,GTIN,ИндивидуальныйСерийныйНомер;
	лДанные = СокрЛП(Данные);
	Если СтрДлина(лДанные) >= 27 Тогда
		лДанные = СтрЗаменить(лДанные,Симв(29),РазделительСтрок);
		Если СтрДлина(лДанные) = 27 Тогда
			SGTIN = Данные;
			Возврат 1;
		КонецЕсли;
		Если Лев(лДанные,2) = "01" Тогда
			GTIN = Сред(лДанные,3,14);
			лДанные = Сред(лДанные,17);
			ИндивидуальныйСерийныйНомер = "";//префикс 21  длина 13
			КодТН_ВЭД                   = "";//префикс 240 длина 4
			НомерСерии                  = "";//префикс 10 длина переменная, принимает что от 4 до 10
			ДатаИстеченияСрокаГодности  = "";//префикс 17 длина 6 
			Для СчЦ = 1 По СтрКоличествоСтрок(лДанные) Цикл
				ЧастьДанных = СтрПолучитьСтроку(лДанные,СчЦ);
				
				флПродолжитьПоиск = 1;
				Пока флПродолжитьПоиск = 1 Цикл
					Если СтрДлина(ЧастьДанных) <= 2 Тогда
						Прервать;
					КонецЕсли;
					Если Лев(Прав(ЧастьДанных,15),2) = "21" Тогда
						ИндивидуальныйСерийныйНомер = Прав(ЧастьДанных,13);
						ЧастьДанных = Лев(ЧастьДанных,СтрДлина(ЧастьДанных)-15);
					ИначеЕсли Лев(ЧастьДанных,2) = "21" Тогда
						ИндивидуальныйСерийныйНомер = Сред(ЧастьДанных,3,13);
						ЧастьДанных = Сред(ЧастьДанных,16);
					ИначеЕсли Лев(ЧастьДанных,2) = "17" Тогда
						ДатаИстеченияСрокаГодности = Сред(ЧастьДанных,3,6);
						ЧастьДанных = Сред(ЧастьДанных,9);
					ИначеЕсли Лев(ЧастьДанных,3) = "240" Тогда
						КодТН_ВЭД = Сред(ЧастьДанных,4,4);
						ЧастьДанных = Сред(ЧастьДанных,8);
					ИначеЕсли Лев(Прав(ЧастьДанных,7),3) = "240" Тогда
						КодТН_ВЭД = Прав(ЧастьДанных,4);
						ЧастьДанных = Лев(ЧастьДанных,СтрДлина(ЧастьДанных)-7);
					ИначеЕсли Лев(ЧастьДанных,2) = "10" Тогда
						Если (СтрДлина(ЧастьДанных) >= 6) И (СтрДлина(ЧастьДанных) <= 12) Тогда //допустим, что длина серии от 4 до 10
						    НомерСерии = Сред(ЧастьДанных,2);
							ЧастьДанных = "";
						Иначе
							флПродолжитьПоиск = 0;
						КонецЕсли;
					ИначеЕсли Лев(ЧастьДанных,2) = "91" Тогда
						ПроверочныйКлюч = Сред(ЧастьДанных,3,4);
						ЧастьДанных = Сред(ЧастьДанных,7);
					ИначеЕсли Лев(ЧастьДанных,2) = "92" Тогда
						ПроверочныйКод = Сред(ЧастьДанных,3,44);
						ЧастьДанных = Сред(ЧастьДанных,47);
					Иначе
						флПродолжитьПоиск = 0;
					КонецЕсли;
				КонецЦикла;
			
			КонецЦикла;
			Если ПустоеЗначение(ИндивидуальныйСерийныйНомер) = 0 Тогда
				SGTIN = GTIN + ИндивидуальныйСерийныйНомер;
				Если ПустоеЗначение(SGTIN) = 0 Тогда
					Если СтрДлина(SGTIN) = 27 Тогда
						Возврат 1;
					КонецЕсли;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
		Если ПустоеЗначение(SGTIN) = 0 Тогда
			Если СтрДлина(SGTIN) = 27 Тогда
				Возврат 1;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	Возврат 0;
	
КонецФункции // глЭтоКодМаркировки()

Но при продаже лекарственных препаратов всё сложнее.

Когда я для теста сделал первый чек с кодом маркировки, то долго ждал когда же статус упаковки сменится с "in_circulation" (в обороте) на "in_sale" (продан в розницу), но этого так и не произошло.

Вот что мне ответил представитель ОФД:

Так же прошу отметить,что 54-ФЗ возлагает обязанности на оператора фискальных данных только в частности доставки кодов маркировки в составе кассового чека, а не контролировать его прием на стороне ЦРПТ.

Т.е. ОФД нет никакого дела, что именно ты передаёшь, правильно или нет.

Вот какой ответ из Честного Знака привёл один из разработчиков:

Отчёт о выбытии препарата при проведении его через ККТ не поступил в ИС "Маркировку" по причине того, что в отправляемом документе:
- отсутствуют теги 1085 и 1086, которые содержат информацию о месте деятельности, с которого происходит вывод ЛП из оборота;
- отсутствует тег 1191, который указывает именно, что производится именно продажа лекарственного препарата.

Читаем документацию и дополняем обработку.

Тег кассового чека 1084 является структурой и содержит следующие теги:
Код Наименование Тега Формат Размер
1085 наименование дополнительного реквизита пользователя Строка CP-866 64
1086 значение дополнительного реквизита пользователя Строка CP-866 256

 

Ниже приведены рекомендации по записи в структуру тега 1084 (дополнительный реквизит пользователя) данных о выбытии лекарственных препаратов.

В теге 1085 необходимо передавать следующие реквизиты:

1. Префикс «mdlp» как признак того, что тег 1086 содержит специфичную для передачи в МДЛП информацию;

2. Опционально 7 символов из диапазона «0..9», указывающих на тип документа, данные которого передаются в теге 1086, в соответствии с ОКУД.
a. Отсутствие этих символов указывает на то, что в чеке передаются данные розничной реализации ЛП по рецепту с частичным дотированием, которые преобразуются в 511 схему данных МДЛП, либо в чеке передаются данные розничной реализации ЛП по рецепту без льготы или отпускаемых без рецепта.
b. Значение «3108805» указывает на то, что в теге 1086 передаются данные льготного рецепта со 100% дотированием (тег 1086 должен содержать реквизит с префиксом «ps»), которые преобразуются в 521 схему данных МДЛП.
c. Другие значения тега 1085 не допускаются.
Все передаваемые в теге 1086 реквизиты необходимо разделять символами-разделителями «&»; каждому реквизиту сопоставить уникальный префикс для упрощения машинной обработки данных:
dn = <номер документа, учитывающего отраслевую специфику>, doc_num, не более 200 символов
dd = <дата документа, учитывающего отраслевую специфику> в формате ГГММДД, doc_date
ps = <номер серии льготного рецепта>, prescription_series

sid = <идентификатор места деятельности субъекта обращения в ИС МДЛП>, subject_id

Для самого простого случая продажи без рецепта в начало добавляем

голеОбъектККМ.CheckType = 0;
голеОбъектККМ.OpenCheck();

голеОбъектККМ.TagNumber = 1084;
голеОбъектККМ.FNBeginSTLVTag();
my_TagID = голеОбъектККМ.TagID;

голеОбъектККМ.TagID = my_TagID;
голеОбъектККМ.TagNumber = 1085;
голеОбъектККМ.TagType = 7;
голеОбъектККМ.TagValueStr = "mdlp";
голеОбъектККМ.FNAddTag();

голеОбъектККМ.TagID = my_TagID;
голеОбъектККМ.TagNumber = 1086;
голеОбъектККМ.TagType = 7;
голеОбъектККМ.TagValueStr = "sid"+subject_id+"&";
голеОбъектККМ.FNAddTag();

голеОбъектККМ.FNSendSTLVTag();

Где subject_id это идентификатор места деятельности.

В теге 1191 передаются следующие реквизиты, порядок их записи описан ниже:

sp = <часть потребительской (маркированной) упаковки, подлежащая выводу из оборота>, sold_part
ss = <сумма субсидии>, subsidy_sum (сумма, компенсируемая из федерального или регионального бюджета, при расчете за данный предмет расчета по льготному рецепту). Используется для заполнения параметра МДЛП «discount».
Идентификатор субъекта обращения (sid) - 14 разрядныйM4; номер (строка длиной 14 байт в CP-866, допустимые символы [«0»-«9»]). Завершающий символ при записи строки данных должен быть «&».
При определении максимальной суммарной длины реквизитов dn и ps необходимо учитывать ограничения длины тега 1086, установленные ФФД (256 байт в версии 1.05). Для включения в реквизиты с префиксом dn или ps символа «&» в передаваемых данных должна содержаться подстрока «&&», которая при обработке и передаче в МДЛП не интерпретируется как разделитель или завершающий символ, а заменяется на символ «&».
Реквизит sp включается в тег 1191 сразу после префикса mdlp без указания в качестве префикса названия реквизита в следующем виде: указывается общее количество отпущенных первичных упаковок (целое число в виде строки, лидирующие нули запрещены) и, далее, количество первичных упаковок в маркированной упаковке (целое число в виде строки, лидирующие нули запрещены), разделенные символом «/» с завершающим символом «&», т.е. при отпуске 4 блистеров из 12 указывается строка «4/12&». Если после префикса «mdlp» указание дробной части отсутствует, упаковка считается выведенной из оборота полностью.

Примеры допустимых значений тега 1191: «mdlp», «mdlp2/12&».
Реквизит ss для льготных ЛП содержит сумму, возмещаемую из регионального или федерального бюджета. В реквизитах чека данные суммы должны указываться суммарно по всем позициям чека , как «сумма встречным предоставлением». Передается только для льготных рецептов с частичным дотированием, для рецептов со 100% льготой этот реквизит передавать в составе ФД не нужно. Реквизит ss всегда должен следовать после первого разделителя «&», название реквизита в качестве префикса не указывается. Если тег 1191 не содержит информации о доле отпуска (отпуск полной упаковки), после префикса «mdlp» перед реквизитом ss добавляется разделитель «&».
Реквизит ss всегда завершается символом «&». Значение реквизита ss – строка, в которой допустимы только символы [0..9], которая интерпретируется как десятичное число с фиксированной точностью 2 знака после десятичного разделителя целой и дробной части.

Примеры допустимых значений тега 1191 при субсидии 123,00 руб.: «mdlp&12300&», «mdlp2/12&12300&».

Добавляем к передаче кода маркировки передачу тега 1191:

Если (ПустоеЗначение(MarkingType) = 0) И (ПустоеЗначение(GTIN) = 0) И (ПустоеЗначение(SerialNumber) = 0) Тогда
	голеОбъектККМ.MarkingType  = MarkingType; //3 - лекарства
	голеОбъектККМ.GTIN         = GTIN;        //14 символов
	голеОбъектККМ.SerialNumber = SerialNumber;//13 символов
	голеОбъектККМ.FNSendItemCodeData();
	
	Если СписокТоваров.Количество <> СписокТоваров.ОтоброжениеКоличества Тогда
		голеОбъектККМ.TagNumber      = 1191;
		голеОбъектККМ.TagType        = 7;
		голеОбъектККМ.TagValueStr    = "mdlp"+Окр(СписокТоваров.ОтоброжениеКоличества,0)+"/"+Цел(СписокТоваров.ОтоброжениеКоличества/СписокТоваров.Количество)+"&";//при продаже 1 блистера из 3 должно быть mdlp1/3
		голеОбъектККМ.FNSendTagOperation();
	Иначе
		голеОбъектККМ.TagNumber      = 1191;
		голеОбъектККМ.TagType        = 7;
		голеОбъектККМ.TagValueStr    = "mdlp";
		голеОбъектККМ.FNSendTagOperation();
	КонецЕсли;
КонецЕсли;

Если всё прошло удачно, то в личном кабинете Честного Знака в исходящих документах появится документ с типом 10511 - Розничная продажа с использованием ККТ, тип загрузки в систему - ОФД.

По поводу прошивки и драйверов

Версия драйвера использовалась 4.14.0.772

Прошивка "Сборка ПО: 5190" от 29.04.2019.

Никаких лицензий для ККТ не покупалось, было сделано только обновление прошивки через тест драйвера. Почему я хотел бы заострить на этом внимание - нас по телефону на протяжении нескольких недель терроризировал один продажник, уверяя что если мы у него не купим лицензии на все наши кассы, то маркировка у нас работать не будет.

 

Ссылки на документацию:

Формат записи данных о выбытии ЛП в ФФД (pdf, 537.54 КБ)

Руководство программиста "ШТРИХ-М: Драйвер ККТ" (ZIP, 6.73 MB)

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. KUAvanesov 11.02.20 07:36 Сейчас в теме
А как же отправка в компоненту xml? На вашей прошивке это можно уже делать.
2. victuan 3604 11.02.20 09:03 Сейчас в теме
(1) Отправка через XML не требуется!
В этом и прелесть родного (нативного) драйвера ФР, что он работает с меньшими проблемами и раньше обновляется, чем версия драйвера "по стандарту 1С".

(0)
голеОбъектККМ.MarkingType = MarkingType; //3 - лекарства

Интересно, сработает без ошибок если передать MarkingType = 17485.
Дело в том, что с 1 марта нужно уже использовать общий префикс для всех групп товара 44 4D(16) = 17485(10) согласно обновленного "Протокол информационного обмена (ОФД)".

Техподдержка Штрих-М меня уверила, что прошивка и драйвер поддержат оба значения. Но хочется лишний раз убедится на практике, что это работает.
3. Rustig 1557 11.02.20 09:13 Сейчас в теме
(0) предыстория какая у вас? обычно кассовое ПО (учетная программа 1С) или ККМ обновляется для целей маркировки, а вы решили сами программировать передачу сведений в ККМ.
Как будто у вас не обновляемая 1с-ка... Что по ситуации у вас? Какая конфа и какой ККМ?
4. victuan 3604 11.02.20 09:59 Сейчас в теме
(3) Верно, имеются не обновляемые конфигурации. Это 1С 7.7. В них не предусмотрен учет маркировки и не будет в типовых релизах.
6. user747853 29.06.20 17:05 Сейчас в теме
Здравствуйте!
Руководствовался этой статьей, за что вам огромное спасибо.! Но похоже у меня есть ошибка, пока не могу понять, какой должен быть порядок команд при формировании чека. Может кто подсказать? Тестировал продажу ЛС с функцией деления на блистеры. Чек сформировался странно, в нем продажа одного блистера отразилась 3 раза.
примерно так
"1 строка - без наименования, но с ценой и суммой"
"2 строка - уже с наименованием и с ценой и суммой"
"3 строка - с наименованием, с ценой и суммой, и с кодом товара и с признаком mdlp1/5&". Так отразилось и в чеке и в ОФД.
Алгоритм формирования чека:
1. Открытие чека
2. Если в списке товаров есть маркированный, то формируем 1 раз теги 1084,1085 и 1086
3. происходит перебор списка товаров,
Объект.StringForPrinting = СтрокаДляПечати;
Объект.Price = ЦенаСоСкидкой;
Объект.Quantity=...
....
Объект.FNOperation();
4. Если этот товар маркированный, то к нему добавляется формирование тега 1191.
Выполняю команды:
Объект.FNOperation();
Объект.MarkingType = 17485; //=444D Data Matrix
Объект.GTIN = GTIN;
Объект.SerialNumber = SerialNumber;
5. Закрытие чека "Объект.FNCloseCheckEx();"

И вот только сейчас понимаю, что проблема м.б. в повторном вызове команды "Объект.FNOperation(); ". Или может быть другая причина?
И можете подсказать, если продажа "Без НДС", то как правильно это указать или вообще не требуется? Сейчас чек печатается без таких сведений.
Прикрепленные файлы:
8. vovaapril 37 29.06.20 20:15 Сейчас в теме
(6) FNOperation() для каждой строки чека выполняется только один раз. Передача кода маркировки идёт после FNOperation()!
user747853; +1 Ответить
7. Klen2005 29.06.20 18:24 Сейчас в теме
добрый день.
Как использовать Ваше тайное знание?
Напишите по пунктам для простых людей.
Открываем.... находим вставляем сохраняем.
9. leonidt84 461 16.07.20 11:03 Сейчас в теме
А через стандартную библиотеку подключаемого оборудования можно передавать эти данные? Кто-нибудь знает?
10. user747853 05.08.20 17:24 Сейчас в теме
добрый день!
Столкнулись с проблемой , что в Честном знаке товар не ушел с остатков.
Техподдержка ответила:
"В полученном чеке отсутствуют обязательные теги: "nds" и "ndsSum".
Обратитесь к поставщику кассового оборудования, для прошивки кассы."
Это теги 1199 и 1200. У нас ЕНВД, налога нет. А командой Tax1 не пользовались, по умолчанию 0= "Без НДС" (но в чеке в подвале есть "итого без НДС=хххх"). Может есть какая хитрость и ставку надо специально отправлять? В ЧЗ по инструкции "Формат записи при выбытии Лекарств":
"Реквизит «ставка НДС» (тег 1199) включается в состав реквизита «предмет расчета», (тег 1059) за исключением случаев осуществления расчетов пользователями, не являющимися налогоплательщиками налога на добавленную стоимость" , т.е. у нас не должен включаться , но формирование тега 1200 - "Для ставок НДС 0% и без НДС ..... в самом предмете расчета необходимо указывать в теге 1200 сумму расчета, а не ноль".
Не ясно, этот тег на стороне ККМ автоматически формироваться , на стороне ОФД или мы сами ?
11. Samir 10 26.08.20 11:41 Сейчас в теме
14. user747853 26.08.20 18:10 Сейчас в теме
19. BobbieTT 10.09.20 14:03 Сейчас в теме
12. Samir 10 26.08.20 11:50 Сейчас в теме
Люди подскажите в чем может быть беда, не выбывают медикаменты. Может в Коде где ошибся?
Если Маркировка=1 Тогда
ДрайверККМ.TagNumber = 1084;
ДрайверККМ.FNBeginSTLVTag();
my_TagID = ДрайверККМ.TagID;

ДрайверККМ.TagID = my_TagID;
ДрайверККМ.TagNumber = 1085;
ДрайверККМ.TagType = 7;
ДрайверККМ.TagValueStr = "mdlp";
ДрайверККМ.FNAddTag();

ДрайверККМ.TagID = my_TagID;
ДрайверККМ.TagNumber = 1086;
ДрайверККМ.TagType = 7;
ДрайверККМ.TagValueStr = "sid"+Отдел.ИД+"&";
ДрайверККМ.FNAddTag();

ДрайверККМ.FNSendSTLVTag();
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку()>0 Цикл
ДрайверККМ.Tax1 = 4;
ДрайверККМ.FNOperation();
Если ПустоеЗначение(СГТИН)=0 Тогда
гтин=Сред(СокрЛП(СГТИН),1,14);
серия=Сред(СокрЛП(СГТИН),15,13);
ДрайверККМ.MarkingType = 17485;//3; //3 - лекарства
ДрайверККМ.GTIN = гтин;
ДрайверККМ.SerialNumber = серия;
ДрайверККМ.FNSendItemCodeData();
ДрайверККМ.StringForPrinting = ""+гтин+Серия;
ДрайверККМ.PrintString();

ДрайверККМ.TagNumber = 1191;
ДрайверККМ.TagType = 7;
ДрайверККМ.TagValueStr = "mdlp";
ДрайверККМ.FNSendTagOperation();
КонецЕсли;
КонецЦикла;
ДрайверККМ.FNCloseCheckEx();
13. wel_ko 81 26.08.20 12:53 Сейчас в теме
Попробуй
ДрайверККМ.StringForPrinting = ""+гтин+Серия;
ДрайверККМ.PrintString();

поставить после передачи тега 1191

было такое, что как печатаешь строку, теги к операции уже не прикреплялись.
15. Samir 10 27.08.20 18:08 Сейчас в теме
Тема с вознаграждением https://forum.infostart.ru/forum9/topic246801/
(13) в json ОФД Ярус появилась новая строка:
"propertiesItem": "mdlp",

Вот весь json, может увидите ошибку:

{
"dateTime": 1598527560,
"provisionSum": 0,
"fiscalDocumentFormatVer": 2,
"code": 3,
"fiscalDriveNumber": "9287440300581591",
"shiftNumber": 277,
"operator": "ХХХХХХ",
"requestNumber": 32,
"fnsUrl": "www.nalog.ru",
"ecashTotalSum": 0,
"fiscalDocumentNumber": 15823,
"ndsNo": 21512,
"userInn": "ХХХХ",
"kktRegId": "0004038926006828",
"creditSum": 0,
"cashTotalSum": 21500,
"appliedTaxationType": 4,
"totalSum": 21500,
"retailAddress": "ХХХХХ",
"fiscalSign": 1214452323,
"operationType": 1,
"prepaidSum": 0,
"items": [
{
"quantity": 1,
"productCode": "RE0D3Z3Dui42MzI2OTA5NzQ3OTA5",
"price": 21512,
"propertiesItem": "mdlp",
"name": "1. Ренни мятный без сахара N12 Делф",
"sum": 21512,
"productType": 1,
"paymentType": 4
}
],
"retailPlace": "ХХХ",
"user": "ООО \"ХХХ\""
}

Не вижу заполнение тега 1084
16. wel_ko 81 28.08.20 08:15 Сейчас в теме
В общем с тегом 1084 такая история. Он формируется сам исходя и заполнения тегов 1085 и 1086
Тегу 1085 соответствует поле 13 17-й таблицы.
Устанавливаю его при открытии смены.
	               // Установить тэг 1085
			//голеОбъектККМ.Password = 30;
			голеОбъектККМ.TableNumber = 17;
			голеОбъектККМ.RowNumber = 1;	
			голеОбъектККМ.FieldNumber = 13;
			голеОбъектККМ.GetFieldStruct();
			голеОбъектККМ.ReadTable();
			ЗначРез = голеОбъектККМ.ValueOfFieldString;
			//Меняем значение если не mdlp
			Если СокрЛП(ЗначРез) <> "mdlp" Тогда
				голеОбъектККМ.ValueOfFieldString =  "mdlp";
				голеОбъектККМ.WriteTable();                          
			КонецЕсли;  
Показать


А с тегом 1086 следущее - на каком-то из форумов прочитал, что заполнить его как 15000.
делаю так. уже после того как пробежался по строкам таблицы
  // Тег 1086
 		голеОбъектККМ.TagNumber = 15000;    //TagNumber 15000 это внутренний тэг Штрих соответствует тегу 1086
		голеОбъектККМ.TagType = 7;            //TagType
		голеОбъектККМ.TagValueStr = "sid"+СокрЛП(М_ИДМестаДеятельности)+"&";  //TagValueStr    
		голеОбъектККМ.FNSendTag();


В Драйвере ФН в разделе 11 на вкладке данные можно посмотреть формирование этих тегов в пробитом чеке.
17. Samir 10 31.08.20 10:29 Сейчас в теме
А с тегами 1199 и 1200 никто не решил?
Может тоже внутренний тег штриха есть?
20. BobbieTT 10.09.20 14:04 Сейчас в теме
Не нашли в чём проблема?
18. Samir 10 03.09.20 14:55 Сейчас в теме
Походу надо настраивать таблицы Штриха. Не пойму как.
21. vovaapril 37 16.09.20 16:28 Сейчас в теме
(18) Возможная причина кроется вот в чём:
Код продажи примерно выглядит так
голеОбъектККМ.StringForPrinting 	= НаименованиеТовара;
гОлеОбъектККМ.CheckType        = 1;
голеОбъектККМ.Price          = Цена;
голеОбъектККМ.Quantity 	   = Количество;
голеОбъектККМ.Department 	 =  Отдел;
голеОбъектККМ.Tax1            = НомерНалоговойГруппы;
голеОбъектККМ.PaymentTypeSign = ПризнакСпособаРасчета;//  (1. Предоплата 100%, 3.Аванс 4. Полный расчет)
голеОбъектККМ.PaymentItemSign  = ПризнакПредметаРасчета;// (1. Товар, 10.Платеж)
голеОбъектККМ.FNOperation();
Показать

Возможно у вас НомерНалоговойГруппы имеет значение 0, а должен быть 4
В настройках ФР надо настроить ставки:
Налог 1 = 20% - НДС 20%
Налог 2 = 10% - НДС 10%
Налог 3 = 0% - НДС 0%
Налог 4 = 0% - Без налога
Налог 5 = 20% - НДС 20/120%
Налог 6 = 10% - НДС 10/110%
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    76247    Serginio    108    

Расчет страховых взносов в 1С 7.7 "Учет и отчетность предпринимателя, ред. 1.2" с апреля 2020

Бухгалтерский учет Практика программирования Зарплата v7.7 1cv7.md Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

В этой статье описано, какие небольшие изменения можно внести в модуль документа Начисление налогов с ФОТ, чтобы правильно рассчитывались страховые взносы с 1 апреля 2020 г.

09.04.2020    9227    Юджин58    36    

Маркировка обуви. Без паники

Оптовая торговля Розничная торговля Россия УУ Бесплатно (free)

Тезисно. Для тех, кто с этим связан. Разбираемся вместе. Добавлен раздел для разработчика

08.02.2020    31546    Rustig    123    

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки.

Практика программирования Адаптация типовых решений v7.7 1С7:Комплекс 1С7:ТиС УУ Бесплатно (free)

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    4589    ksnik    14    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    55738    Serginio    33    

Заполнение реквизитов документов из предыдущего документа

Практика программирования Универсальные функции Разработка v7.7 1cv7.md Бесплатно (free)

Функция для автоматического заполнения реквизитов документов.

04.02.2019    5095    drevilo    1    

Проверка часового пояса

Практика программирования v7.7 Бесплатно (free)

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    10965    kudenzov    3    

Важные изменения в 54-ФЗ: какой будет ККМ в 2017 году

Кассовые операции Розничная торговля Фискальный регистратор ККМ Кассовые операции Розничная торговля v7.7 v8 Розничная и сетевая торговля (FMCG) Россия Бесплатно (free)

Уже начиная с апреля 2016 года нас ждут довольно серьезные изменения по передаче данных о продажах в налоговую. Не только ожесточится контроль над тем, сколько мы продаем, но и изменятся сами ККМ.

11.05.2016    94376    alis112358    80    

1С:Предприятие 7.7. Оптимизация. Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Разгоняем 1С:Предприятие 7.7. Выжимаем последние соки.

31.01.2009    46605    alexk-is    110    

[ПОЛЕЗНЯШКА, 7.7] Как посчитать итоги по документам черным запросом с изподвывертом?

Практика программирования v7.7 1cv7.md Бесплатно (free)

Мелкая полезняшка, считает запросом итоговую сумму документов и количество документов.

12.03.2016    18987    CheBurator    18    

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д.

Разработка внешних компонент Практика программирования WEB v7.7 v8 Бесплатно (free)

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    31658    Serginio    22    

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7

Внешние источники данных Практика программирования Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v7.7 1cv7.md Россия Бесплатно (free)

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    25043    Palmer1976    3    

Как уменьшить количество заблокированных объектов Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

История о том как я решил пересобрать форму справочника клиентов и чем это все закончилось...

12.01.2012    15578    ShEvOvIcH    18    

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 Бесплатно (free)

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    17366    etmarket    14    

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7

Практика программирования Универсальные функции v7.7 1cv7.md Бесплатно (free)

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    17542    Anzhey    14    

Универсальный способ сравнения таблиц

Практика программирования v7.7 v8 Бесплатно (free)

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    19129    json    1    

Технология обновления нетиповых конфигураций 1С:Предприятия 7.7 Промо

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Данная статья рассчитана на уже подготовленного пользователя, владеющего некоторыми навыками программирования и работы в конфигураторе. Статью можно использовать как поэтапное руководство к действию. Статья была написана для повышения качества работ выполняемых сотрудниками компании Информ Сервис при обновлении нетиповых конфигураций. Я надеюсь, что эта информация окажется полезной и для вас.

12.12.2008    62761    alexk-is    25    

Числа прописью в родительном падеже в 7.7? Легко!

Практика программирования v7.7 1cv7.md Бесплатно (free)

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

20.06.2015    12747    gimalaj    3    

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    89305    shmellevich    38    

Отправка сообщения посредством почтового клиента Lotus Notes

Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Отправка сообщения посредством почтового клиента Lotus Notes из 1С 7,7 и 1с 8

21.08.2014    14621    iolko    8    

Исправление в типовой комплексной конфигурации глобальной функции глВсеРеквизитыДокументаЗаполнены()

Практика программирования v7.7 1С7:Комплекс Россия Бесплатно (free)

В типовых конфигурациях глобальная функция глВсеРеквизитыДокументаЗаполнены() не работает с реквизитами табличной части. Данная статья содержит текст исправленной функции, корректно проверяющей табличную часть.

20.08.2014    8172    hvv2002    0    

ЗаполнитьЗначенияСвойств - заставляем работать в 7.7

Практика программирования v7.7 1cv7.md Бесплатно (free)

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    22072    tomvlad    5    

Контекстный поиск в 7.7

Инструментарий разработчика Практика программирования v7.7 1cv7.md Бесплатно (free)

Процедура контекстного поиска в журнале документов.

18.04.2014    9398    cushe    2    

Проверка ИНН v.7.7

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Проверка ИНН v.7.7

08.03.2014    9615    kras_71    1    

Полезные функции. Склонение (должность и фамилия подписантов). Любой язык

Практика программирования v7.7 v8 Бесплатно (free)

Уехал директор в командировку, отпуск... , оставил доверенность на хозяйственные операции на другого сотрудника. Все договора и другие документы в обмороке - "подписант" теперь другой, по тексту тоже много правок... Пересмотрел много публикаций, вариантов много, не приглянулось. Сделал свой "Баян" . У меня всего-то крутится пять фигурантов ... Нет простого, наглядного и всепогодного варианта без языкового барьера. Всем процессом управляет пользователь.

03.03.2014    17967    kompas-dm    5    

Реализация Ctrl+Z в 1С 7.7 (ТиС)

Практика программирования v7.7 1С7:ТиС Бесплатно (free)

В семерке отсутствует возможность отменять последнее действие в формах документов. В данной статье будет рассмотрен пример реализации данной функции. Возможно, кому-нибудь пригодится.

15.07.2013    8027    a.o.popova    10    

Копия напечатанного документа или как спрятать документ.

Журнал регистрации Практика программирования v7.7 Бесплатно (free)

Возникла необходимость, чтобы при печати определённого документа (даже потом не сохранённого), создавалась его копия, т.е. запись всех напечатанных документов. (В результате чего возникла такая потребность, полагаюсь на вашу фантазию). В итоге получилось два варианта решения, остановился на втором.

11.04.2013    15599    Dima_    8    

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

Практика программирования Внешние источники данных v7.7 Бесплатно (free)

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

04.04.2013    19313    ivisor_fil    11    

Автосохранение документа в 1С 7.7

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

В данной статье мы рассмотрим автосохранение документа в 1С 7.7!

22.03.2013    13500    aagubarev    25    

Конвертация данных 2.1 (2.1.3.1) 1С 7.7 - 1С 8.Х передача параметра ПКО

Практика программирования Перенос данных из 1С7.7 в 1C8.X v7.7 v8 КД Бесплатно (free)

Передача параметров по умолчанию доступна только для баз 1С 8.х -1С 8.х. Показан пример, как передать параметры из 1С 7.7 - 1С 8.х

10.12.2012    25386    serg_gres    6    

Устранение проблемы при работе с полем, которое ограничено маской ввода

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Для поля, у которого установлена маска ввода, перед программной инициализацией необходимо начальное значение преобразовать к значению в соответствии с маской, иначе буду потеряны символы в местах разделителях. В данной публикации приведена функция, которая универсально выполняет данное действие.

08.08.2012    16501    www2000    4    

Динамическая фильтрация в справочнике при вводе наименования

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Позволяет в открытой форме списка, выбора или подбора справочника производить динамическую фильтрацию по набранному наименованию.

02.07.2012    16291    maxpiter    62    

Обновление базы 1с 7.7. с помощью движка 1с 8.х

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Если Вас угораздило в стандартную типовую конфу внести правки, причем в самый большой модуль, а именно глобальный. Если к тому же Вы внесли изменение в какую-то стандартную функцию, в которой 1с сама регулярно чего-то меняет, то любое обновление начинает доставать. Используя возможности движка платформы 1с 8.х можно существенно сэкономить себе время и нервы.

28.04.2012    18623    Valerich    31    

Ошибка при формировании отчета Авансы по налогу на имущество. В 1С:Предприятие 7.7. Регламентированная отчетность за I квартал 2012 года Обновление 12q1009 от 18.04.2012 г.

Практика программирования v77::ОУ v77::БУ 1cv7.md Россия Бесплатно (free)

При формировании отчета NIMAVP1.ERT Авансы по налогу на имущество (версия 5.03) в разделе № 1-3 не сохраняет номера Страниц при выборе, что ведет к не сохранению и выводу печати двухмерного кода.

24.04.2012    9358    leo072    7    

Запуск внешней обработки по расписанию v7.7

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Неоднократно возникали задачи организовать, например ежедневную выгрузку и отправку отчетов по эл.почте, и вот…

20.03.2012    44078    Yury1001    17    

ЗиК 321, в отчетах пропадает проводка по ПФР_страховая

Практика программирования v77::ОУ v77::Расчет 1С7:ЗиК Россия ФОМС, ПФ, ФСС Бесплатно (free)

При формировании отчета "Свод проводок" с галкой "Учет начисления налогов с ФОТ, включаемых в состав расходов" в отчет не выходит ПФР_страх

10.02.2012    6844    filh    19    

Регистрация текста окна сообщений

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Для контроля работы пользователей потребовалось записывать текст окна сообщений в файл. Получился простейший механизм регистрации лог-файла. Удержать роста папки "Temp", в качестве рекомендации, может использование bat-файла, который будет чистить или архивировать получаемые логи. Таких батников в инете полным-полно. P.S. Особо по форуму не смотрел, может, есть уже такое.

28.11.2011    7910    sdin101    9    

Прямые запросы: ускорение получения цен для типовой ТиС 7.7

Практика программирования Разработка внешних компонент v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free)

Первая статья из цикла статей "Прямые запросы:...". Рассказывается о применении класса ПрямойЗапрос и компоненты 1С++ для ускорения функции глВернутьЦену() в типовой конфигурации Торговля и склад. Платформа 7.7.

15.11.2011    15603    leshik    21    

1С:Торговля и Склад - ошибка во всех релизах, При использовании нескольких фирм и префиксов номеров документов.

Практика программирования v77::ОУ 1С7:ТиС Россия Бесплатно (free)

Собственно сегодня обнаружил ошибку, которая присутствует во всех релизах конфигурации Торговля и Склад 7.7 вплоть до текущего 7.70.969, при использовании нескольких фирм и префиксов документов для некоторых из них.

04.11.2011    15585    twilight5023    8    

Функция проверки валидности e-mail с использованием регулярных выражений RegExp (7.7)

Практика программирования openconf v77::БУ 1cv7.md Россия Бесплатно (free)

Функция проверки валидности e-mail с использованием регулярных выражений RegExp (7.7). Данную функцию можно вставить в Глобальный модуль и пользоваться, например, при вводе или сохранении e-mail.

30.10.2011    11080    zaursoft    11