и послать в теге ProcessCheck в ККМ в качестве длинной строки каким-то методом драйвера.
Но, переискав методы в Руководстве программиста от фирмы Штрих, не могу найти такого метода посылки.
В типовых конфигурациях все скрывается в общих процедурах, где конкретных имен методов не найти.
Не может ли кто "на пальцах" объяснить, чем происходит такая посылка?
Там есть FNSendTag, но не думаю, что посылка производится потегово.
У меня нетиповая самописная конфигурация 8.1 и ничем типовым я воспользоваться не могу.
(1) скачайте эту обработку https://infostart.ru/public/590993/ , подключите, из списка компонент удалите этот файл EmulatorKKT_COM_2002_32_EmulatorKKT1C2.dll, затем при настройке выберите "Эмулятор", сможете печатать чеки в виде XML структуры, которые будут сразу отображаться. Так сможете изучить какие данные передаются в ОФД, если что данная обработку можно прикрутить даже не к типовой конфигурации, достаточно реализовать заполнение таблицы строк и оплаты. а остальное сделает сама обработка.
2)Насколько я увидел, у вас все скрыто в секретной двоичной Интеграционной компоненте, которая в макетах. Она, по-видимому, ретранслирует все из 1С в команды работы с драйвером? Даже просто FR.PrintReportWithoutCleaning(); который железно выполняется из 1С, не увидеть.
В каком конкретно вашем модуле можно увидеть ответ на мой вопрос, что за метод драйвера Штриха используется для посылки на фискализацию чеков в xml-виде?
Неужели надо писать FR.OpenSession(); потом FR.OpenCheck(); и потом FNGetDocumentAsString или что-то подобное?
3)В списке фискальных регистраторов от Штрих-М у вас почему-то нет моего - Штрих-М-01Ф, хотя, я думаю, основные команды у них идентичны с другими моделями.
Поставь платформу 8.2 и все увидишь. Все сделано для 8.1. но работает на 8.2
Но мне нужно, чтоб работала на 8.1. А даунгрейд вряд ли возможен.
После загрузки вашей обработки в УТ 10.3(8.2.19.130) выскакивает куча ошибок:
dropmefiles.com/upU5n
В конфигураторе, я, конечно, посмотрел, но где там обращение к бинарному макету Интеграционной компоненты я не понял в 26 формах. Я сам с такими макетами никогда дела не имел.
В каком конкретно вашем модуле можно увидеть ответ на мой вопрос, что за метод драйвера Штриха используется для посылки на фискализацию чеков в xml-виде?
Еще раз - нет такого метода. Драйвер вообще ничего про XML не знает.
Еще раз - нет такого метода. Драйвер вообще ничего про XML не знает
Тогда нужно, по-видимому, самому вручную открывать и закрывать теги методами драйвера с соответствующими значениями свойств?
Ведь, как я вижу, тут были несколько разработок, где данные чека кидаются из 1С просто в текстовый файл, а потом этот файл обрабатывается программой, написанной не на 1С, которая, по-видимому, те же обращения к методам драйвера использует.
В описании команд от штриха вы этой функции не найдёте, потому что ее там нет.
1С в новых версиях не обращается к драйверу торгового оборудования напрямую (впрочем в старых типовых он тоже так не делал, разве что в 7.7). Вместо этого 1С обращается к некой "ИнтеграционнойКомпоненте", написанной штрихом специально для 1С. Эта компонента переводит 1Сную команду "СформироватьЧек()" в набор команд для фискального регистратора. Описания внутренней структуры работы интеграционной компоненты не существует, по карйней мере за пределами отдела разработки штриха.
Вывод - Наиболее простой метод интеграции это взять компоненту и обращаться к ней по описанному одинэской api, либо вообще взять чужую обработку интеграции, чтобы не собирать потроха по типовой базе самому.
впрочем в старых типовых он тоже так не делал, разве что в 7.7
Вот в том то и дело, что в старых 7.7 как-то обращаются к методам драйвера или опять скрытая документация для своих людей?
Есть здесь в продаже обработка для нетиповой 7.7, но покупать ее странно для 8.1, если тем более, вероятно, там тоже все упрется в некий скрытый двоичный блок-ретранслятор, написанный исключительно для 7.7 на каком-нибудь С#.
Описания внутренней структуры работы интеграционной компоненты не существует, по крайней мере за пределами отдела разработки штриха.
И вы думаете, те разработчики, которые что-то смогли сделать, смогли стащить документацию по работе с компонентой у Штриха?
либо вообще взять чужую обработку интеграции, чтобы не собирать потроха по типовой базе самому.
Это вообще тихий ужас: у меня в самописном РМК вся логика операций оплат и так
подробно описана со всеми проверками. А предлагаются какие-то недоделанные кассовые программы со множеством вложенных процедур, непонятно, работающие где-либо или нет, или просто это наброски кода.
(10) вы сами привели ссылку на https://its.1c.ru/db/metod8dev#content:4829:hdoc:chapter270 , почему же вы там не увидели список методов, используемых в стандарте разработки?
современная 1с не работает напрямую с драйверами, а работает через шины, которые предоставляю производители оборудования, работают они по формату, который указан по вашей ссылке, есть более новый формат, но его компания 1С не предоставляет в общий доступ, только для производителей оборудования.
Все методы у производителей разного оборудования одинаковые. Хотите использовать современные драйвера, используйте эти компоненты, не хотите делайте что-то свое, предварительно скачайте инструкцию для разработчиков для оборудования ШтрихМ, и сидите в свое удовольствие разрабатывайте свою "недоделанную кассовую программу"
предварительно скачайте инструкцию для разработчиков для оборудования ШтрихМ
Инструкция для разработчиков - это то, что называется "Штрих-М:.Драйвер ККТ.Руководство программиста" или что-то более подробное есть?
современная 1с не работает напрямую с драйверами
У меня не современная 1С, поэтому никаких зашивок кода в платформу для 54-фз я не имею. Я купил уже у вас обработку год назад, но в ней ничего не нашел, кроме отсылок к стандартным новым платформам.
Про какие списки методов вы говорите? Если я напишу, например, FR.CheckPackage где-нибудь в программе, то драйвер это понять не должен, потому что нет CheckPackage в Руководстве программиста.
(15) а причем здесь драйвер? тут описана работа с компонентой. а 1С уже все равно, что в этой компоненте содержится, может openCheck(), а может еще что-то
С той самой интеграционной компонентой, которая в макеты включается?
(драйвер от Штриха, уж всяко, должен быть загружен, чтоб компонента работала)
Как, тогда, записать на языке 1С обращение к этой компоненте?
Вы где-то нашли документацию, как с ней работают?
не могу понять, зачем вам напрямую подключаться к драйверам?
Потому что, если я пишу обращение через драйвер, то касса мне реально печатает чек выемки/внесения наличных , х- и z-отчет, открывает/закрывает смену, данные нормально отправляются в ОФД(и все без нагромождения вложенных процедур, в одной форме). А как обратиться к этой компоненте с ее не до конца описанными методами, я просто не знаю.
Например, сейчас надо передавать ИНН кассира, а в ссылке на сайте об этом ни слова. Может где-то есть другая документация, на диске ИТС, например?
(21) инн передается в новой ревизии интерфейса, официально документации нет на сайте, пример реализации может взять из конфигурации "Розница 2.2.7", там это все есть, также это все есть и у меня в обработке.
пример реализации может взять из конфигурации "Розница 2.2.7", там это все есть, также это все есть и у меня в обработке.
Если вы про ИНН кассира, то в УТ10.3 последней редакции описано занесение этих параметров в общем модуле МенеджерОборудованияКлиентСервер
Функция ПараметрыОткрытияЗакрытияСмены() Экспорт
ПараметрыОперации = Новый Структура();
ПараметрыОперации.Вставить("Кассир" , НСтр("ru='Администратор'")); // Должность и фамилия лица, осуществившего операцию.
ПараметрыОперации.Вставить("КассирИНН" , Неопределено); // Идентификационный номер налогоплательщика кассира, при наличии.
Возврат ПараметрыОперации;
КонецФункции
Показать
У вас как-нибудь так? Это вы называете примером реализации?
у себя я это переделывал. Надо использовать то, что есть, упреками ничего не решишь.
У вас я понял будет работать только за 3000/год/1касса, (подключаются какие-то непонятные dll и еще защита, про совместимость с существуюшими драйверами вообще неизвестно). Если у меня 7 касс, то 21000/год.
(27) будет работать бессрочно, дополнительно покупать обновления не нужно, (то что на сайте указано ГОД, на инфостарте больше дату нельзя поставить.) действительно есть ограничение на одно рабочее место, т.е. на компьютер, но вы можете к одному компьютеру подключить сколько угодно касс. И по сути это разовое вложение без необходимости задумываться будет ли моя касса поддерживать ФФД 1.1, подумайте сколько времени вы уже потратили, и потратите в будущем на отладку и поддержку будущего кода.
подключаются какие-то непонятные dll и еще защита, про совместимость с существуюшими драйверами вообще неизвестно
- обработка универсальная, если понадобится обновить компоненту для работы с оборудованием, достаточно ее просто заменить в списке компонент или даже расширить функционал добавив свою. Также ее можно доработать в плане печати, для этого я предусмотрел дополнительную подключаемую обработку, то что код модуля закрыт - это защита от перепродаж обработки, а также чтобы я был точно уверен, что функционал соответствует тому, что я реализовал, так как сейчас в обработке очень много дополнительных функций.
Спасибо. Это я уже где-то на форуме видел.
Номер тега соответствует таблице в приложении 2 к приказу ММВ-7-20/229@
Можно все без имен слать по номерам, по-видимому.
Только не совсем понятна последовательность посылаемых тегов.
Вы Интеграционную компоненту - макет сами писали или где-то позаимствовали?
Как токовой интеграционной компоненты нет. Я работаю напрямую с драйвером.
Ну как же, есть интеграционная компонента какая-то в макетах.
Или она вообще к делу не относится и от чего-то другого осталась?
В том, что вы прислали, я не могу найти, например,......Объект.НомерТега = 1203; .....
Вы раньше писали, что к драйверу надо обращаться по-английски, а у вас везде по-русски в основном.
Вы используете FNOpenSession, а не OpenSession. Чем они отличаются?
(32) К драйверу можете обращаться ка на русском так и английском, так же можете обращаться в смешаном виде. Объект.НомерТега вы можете представить как Объект.TagNumber. Это одно и тоже. Или Объект.ЗначениеТегаСтрока = ИННКассира; соответствует Объект.TagValueStr
(35)Все дело в том, что вы пытаете передать ИНН кассира до открытия смены. Сначала надо начать открытие смены, затем передать ИНН кассира, затем открыть смену. Пример:
Функция ОперацияОткрытьСмену(Объект, НомерЛУ, Пароль, ПараметрыККТ)
Результат = "";
Если Объект = Неопределено Тогда
Результат = "Торговое оборудование не подключено.";
Возврат Результат;
КонецЕсли;
Объект.НомерЛУ = НомерЛУ;
Объект.УстановитьАктивноеЛУ();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
Объект.Пароль = Пароль;
Объект.УстановитьСвязь();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
Объект.Пароль = Пароль;
Объект.FNBeginOpenSession(); //Начинаем открывать смену
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
КонецЕсли;
Если ПараметрыККТ.ККМФз54ОнЛайн Тогда
//Пишем Налоги
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 1;
Объект.FieldNumber = 1;
Объект.ValueofFieldInteger = ПараметрыККТ.Налог1;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Пишем название налога 1
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 1;
Объект.FieldNumber = 2;
Если ПараметрыККТ.Налог1 = 1800 Тогда
Объект.ValueofFieldString = "НДС 18%";
ИначеЕсли ПараметрыККТ.Налог1 = 2000 Тогда
Объект.ValueofFieldString = "НДС 20%";
Иначе
Объект.ValueofFieldString = "НДС 18%";
КонецЕсли;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 2;
Объект.FieldNumber = 1;
Объект.ValueofFieldInteger = ПараметрыККТ.Налог2;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 3;
Объект.FieldNumber = 1;
Объект.ValueofFieldInteger = ПараметрыККТ.Налог3;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 4;
Объект.FieldNumber = 1;
Объект.ValueofFieldInteger = ПараметрыККТ.Налог4;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 5;
Объект.FieldNumber = 1;
Объект.ValueofFieldInteger = ПараметрыККТ.Налог5;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Пишем название налога 5
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 5;
Объект.FieldNumber = 2;
Если ПараметрыККТ.Налог1 = 1800 Тогда
Объект.ValueofFieldString = "НДС 18/118";
ИначеЕсли ПараметрыККТ.Налог1 = 2000 Тогда
Объект.ValueofFieldString = "НДС 20/120";
Иначе
Объект.ValueofFieldString = "НДС 18/118";
КонецЕсли;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
Объект.Пароль = Пароль;
Объект.TableNumber = 6;
Объект.RowNumber = 6;
Объект.FieldNumber = 1;
Объект.ValueofFieldInteger = ПараметрыККТ.Налог6;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Пишем режим исчисления скидок
Объект.Пароль = Пароль;
Объект.TableNumber = 17;
Объект.RowNumber = 1;
Объект.FieldNumber = 3;
Объект.ValueofFieldInteger = 2;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Печатать чеки или нет 0- печатать 2- нет
Объект.Пароль = Пароль;
Объект.TableNumber = 17;
Объект.RowNumber = 1;
Объект.FieldNumber = 7;
Если ПараметрыККТ.ОтправлятьТолькоЭлектронно Тогда
Объект.ValueofFieldInteger = 2;
Иначе
Объект.ValueofFieldInteger = 0;
КонецЕсли;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Пишем Налогооблажение
Объект.Пароль = Пароль;
Объект.TableNumber = 18;
Объект.RowNumber = 1;
Объект.FieldNumber = 5;
Объект.ValueofFieldInteger = ПараметрыККТ.КодНалогооблажения;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Пишет Оператора
Объект.Пароль = Пароль;
Объект.TableNumber = 18;
Объект.RowNumber = 1;
Объект.FieldNumber = 8;
Объект.ValueofFieldString = "";
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Отправка ИНН Кассира ФФД 1.05 и 1.1
Если НЕ ЗначениеНеЗаполнено(ПараметрыККТ.ИННКассира) Тогда //Отправка произвольных тегов
Объект.Пароль = Пароль;
Объект.НомерТега = 1203; //TagNumber
Объект.ТипТега = 7; //TagType
Объект.ЗначениеТегаСтрока = СокрЛП(ПараметрыККТ.ИННКассира); //TagValueStr
Объект.FNSendTag(); // отправка тега
Объект.СтрокаДляПечати = "";
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Объект.РазорватьСвязь();
Возврат Результат;
КонецЕсли;
КонецЕсли;
//Пишем не включать аванс в выручку
Объект.Пароль = Пароль;
Объект.TableNumber = 17;
Объект.RowNumber = 1;
Объект.FieldNumber = 26;
Объект.ValueofFieldInteger = ?(ПараметрыККТ.НеВключатьАвансВВыручку,1,0);
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
//Пишем новый заголовок безналичной оплаты
Если ПараметрыККТ.НовыйЗаголовокБезналичнойОплаты Тогда
Объект.Пароль = Пароль;
Объект.TableNumber = 17;
Объект.RowNumber = 1;
Объект.FieldNumber = 39;
Объект.ValueofFieldInteger = 1;
Объект.GetFieldStruct();
Объект.WriteTable();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
Возврат Результат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
//Объект.ОткрытьСмену();
Объект.Пароль = Пароль;
Объект.FNOpenSession();
Если Объект.Результат <> 0 Тогда
Результат = Объект.ОписаниеРезультата;
КонецЕсли;
Объект.РазорватьСвязь();
Возврат Результат;
КонецФункции // ОперацияОткрытьСмену()
(36)Спасибо добрый человек, дело сдвинулось с мертвой точки.
1с 77 963 стандартная обработка fr_comm.ert
В Атол 30Ф вообще ничего дописывать не пришлось, кроме Объект.ОткрытьСмену(). Прописал инн кассиров в драйвере и все работает, Налоги поставил на закладке секции. Работает на версии 6.8.
А вот Штрих-01ФР и Штрих онлайн танцы с бубном:
в чеке добавлена кнопка Xотчет
ИначеЕсли глФРОбработка = "shtrihfr_comm.ert" Тогда //Штрих
Если глФР.РежимККМ = 4 Тогда
//глФР.ОткрытьСмену();
глФР.FNBeginOpenSession(); //Начинаем открывать смену
Если глФР.Результат <> 0 Тогда
Результат = глФР.ОписаниеРезультата;
глФР.РазорватьСвязь();
Возврат;
КонецЕсли;
глФР.Password = глФРПарольПользователя;
глФР.НомерТега = 1203; //TagNumber
глФР.ТипТега = 7; //TagType
глФР.ЗначениеТегаСтрока = СокрЛП(ИННКассира); //
глФР.FNSendTag(); // отправка тега
глФР.СтрокаДляПечати = "";
Результат = ОбработкаОшибокПриПечати(глФР);
Если Результат = "Отмена" Тогда
глФР.РазорватьСвязь();
Возврат;
КонецЕсли;
глФР.Пароль = глФРПарольПользователя;
глФР.FNOpenSession();
Иначе
глФР.PrintReportWithoutCleaning();
КонецЕсли;
Если глФР.ResultCode <> 0 Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Показать
То ошибка "неверный пароль", то "неверные параметры команды" или без ошибок. Но инн кассира в драйвере ккт не передаются.
Функция ЗакрытиеЧека(СуммаЧека,Получено,Объект,Сертификат,Терминал)
Объект.Password = Пароль;
Объект.НомерТега = 1203; //TagNumber
Объект.ТипТега = 7; //TagType
Объект.ЗначениеТегаСтрока = СокрЛП(ИННКассира); //TagValueStr
Объект.FNSendTag(); // отправка тега
Объект.СтрокаДляПечати = "";
Результат = ОбработкаОшибокПриПечати(Объект);
Если Результат = "Отмена" Тогда
Объект.РазорватьСвязь();
Возврат 0;
КонецЕсли;
Пока "на экране окно вопроса" = "на экране окно вопроса" Цикл
Объект.Summ1 = Получено;
Объект.Summ2 = Терминал;
Объект.Summ3 = Сертификат;
Объект.CloseCheck();
Результат = ОбработкаОшибокПриПечати(Объект);
Если Результат = "Отмена" Тогда
Объект.CancelCheck();
Возврат 0;
ИначеЕсли Результат = 0 Тогда
Возврат 1;
КонецЕсли;
КонецЦикла;
КонецФункции
Показать
тут все замечательно работает, в 1ОФД все показывает, в СбисОФД и КонтурОФД инн не показывается. Ответ СП 28.12.18 "Задача по выводу тега "ИНН кассира" в модель чека в личном кабинете Контур.ОФД находится в работе. Сроков пока нет."
Функция ЗакрытьСмену(Объект, ПарольАдмин, ПарольПольз, НомерЛенты)
Рез = 0;
Если ПустоеЗначение(Объект) = 1 Тогда
ОписаниеРезультата = "устройство не подключено";
Иначе
// переключение в режим снятия отчета (нужен пароль администратора)
Пока "на экране окно вопроса" = "на экране окно вопроса" Цикл
Пароль = ПарольАдмин;
Объект.Password = Строка(Пароль);
Объект.Connect();
Результат = ОбработкаОшибокПриПечати(Объект);
Если Результат = "Отмена" Тогда
Объект.Disconnect();
Возврат 0;
ИначеЕсли Результат = 0 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Объект.GetECRStatus();
Если ОбработкаОшибок(Объект) = 1 Тогда
Объект.Disconnect();
Возврат 0;
КонецЕсли;
Если Объект.ECRAdvancedMode = 3 Тогда
Объект.ContinuePrint();
Объект.Password = Строка(Пароль);
Объект.GetECRStatus();
Если ОбработкаОшибок(Объект) = 1 Тогда
Объект.Disconnect();
Возврат 0;
КонецЕсли;
КонецЕсли;
Объект.Password = Пароль;
Объект.FNBeginCloseSession();
Пока "на экране окно вопроса" = "на экране окно вопроса" Цикл
Объект.Password = Пароль;
Объект.НомерТега = 1203; //TagNumber
Объект.ТипТега = 7; //TagType
Объект.ЗначениеТегаСтрока = СокрЛП(ИННКассира);
Объект.FNSendTag(); // отправка тега
Объект.СтрокаДляПечати = "";
Результат = ОбработкаОшибокПриПечати(Объект);
Если Результат = "Отмена" Тогда
Объект.РазорватьСвязь();
Возврат 0;
ИначеЕсли Результат = 0 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Объект.Password = Пароль;
Объект.FNCloseSession();
//Объект.PrintReportWithCleaning();
ОбработкаОшибок(Объект);
НомерЛенты = глДополнитьСтрокуЛ(Строка(Объект.SessionNumber), "0", 4);
Объект.Disconnect();
Рез = 1;
КонецЕсли;
Возврат Рез;
КонецФункции
Показать
тут опять: То ошибка "неверный пароль", то "неверные параметры команды" или без ошибок. Но инн кассира в драйвере ккт не передаются. Пошагово ошибка возникает на Объект.FNSendTag();. И не могу понять с чем связано, пароль=30, инн корректный, а вот в ОФД попадает, то кассир, то сис.админ.
Вот в том то и дело, что в старых 7.7 как-то обращаются к методам драйвера или опять скрытая документация для своих людей?
Вы и на управляемых формах можете обращаться напрямую к драйверу. Документация от 1С вам в таком случае вообще не нужна.
1)Пихаем drvFR.dll в rar архив
2)Закидываем архив в общий макет
3) Пишем ПодключитьВнешнююКомпоненту(ПутьКМакету,"Component"). В тонком клиенте еще и УстановитьВнешнююКомпоненту
4) Пишем свою логику, вызывая родные методы от штрих-м. Там никаких xml файлов. Всё по старинке, строчка за сточкой. Только параметров стало больше
ли есть необходимость конвертации обработок из 8.2 в 8.1 по
Здравствуйте!
Не как с Вами не получается связаться. Напишут тут ))
Подскажите пожалуйста. Иногда при печати рекламного нефискального чека неправильно отрезается, режит от 2 до 5 строк которые остаются на следующем документе.
Использую метод:
Вот таких строк до 100
FR.StringForPrinting="Привет мир";
FR.PrintString();
режу методом
FR.CutType=1;
FR.CutCheck();
Попробовал использовать:
FR.WaitForPrintingDelay = 100;
FR.WaitForPrinting();
Не помогла.