Наумов Сергей | Руководитель | Команда Naumov Pro

«Интеграция инструментов отдела разработки и аналитики»

В докладе поговорим про оптимальное выстраивание процессов отдела разработки и аналитики. Посмотрим на инструменты для аналитиков, разработчиков и руководителей проектов. И самое интересное - как обосновать бизнесу затраты на внедрение таких инструментов. Темы доклада: * Обзор инструментов отдела разработки и аналитики * Все начинается с требований - опыт применения инструментов управления требованиями Enterprise Architect, Rational Requisite Pro * Построение моделей на основе требований - Enterprise Architect, Rational Rose * Автоматизация процессов разработки и баг-трекинга на СППР * Управление проектом с помощью MS Project или Enterprise Architect, а так же зачем такой инструмент нужен inHouse отделу * Интеграция инструментов и выгоды от интегрированной среды. Варианты интеграции различных инструментов * Делаем прозрачными процессы разработки и анализа для бизнеса с помощью профессионального инструментария

Редактирование шаблона чека ККТ

Оборудование - Фискальный регистратор

Добрый день. Думаю, волна вопросов по подключению онлайн-касс к 1С уже позади, достаточно просто полистать данный ресурс, поэтому можно переходить на новый уровень. С изменением ФР на ККТ изменился формат обмена между 1С и оборудованием и стало намного сложнее управлять формой чека. В этой статье я расскажу, какие методы изменения формы чека я нашел и попробовал, данная статья относится к ККТ фирмы АТОЛ, т.к. на остальных я не тестировал.

Есть три способа:

  1. Если у вас 1С: Розница 2.2, то все стандартно.
  2. Редактирование шаблона через редактор шаблона от АТОЛ (только неизменяющийся текст)
  3. Программный вывод нужных полей из 1С.

Первый способ

Сначала я соответственно расскажу про существующий функционал 1С. В Розница 2.2 1С добавила функционал редактирование шаблонов чеков ККТ. Находится он в Администрирование – Печатные формы, отчеты и обработки – Шаблоны этикеток, ценников и чеков ККМ.

Как с этим работать?

Для начала нам нужно определить, какие поля нам понадобятся, в шаблоне нажимает «Редактировать СКД» и «Редактировать схему компоновки данных», добавляем, что нам нужно и сохраняем, не забываем на закладке поля перенести поле из доступных в выбранные.

После того как мы выбрали, что мы хотим дополнительно вывести в чек, записываем шаблон и нажимаем «Редактировать макет», мы можем загрузить два стандартных шаблона «по умолчанию» и «расширенный», первый это просто типовой вариант, а второй демонстрирует пример отредактированного шаблона.

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

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

Еще немного информации можно найти здесь https://its.1c.ru/db/kkt#content:80:retail22

Вроде все замечательно и больше ничего не нужно, но что делать если компания работает не в 1С:Розница, только ради этого приобретать ее и настраивать обмены не очень удобно.

Второй способ

Второй вариант редактирование шаблона в самой ККТ. Этот способ подходит тем у кого не так много касс и нужно вывести какую нибудь шапку и подвал, т.е. фиксированный текст.

Атол выпустили редактор шаблонов ККТ.

К сожалению, при настройке я не делал скриншоты, поэтому позаимствую их из инструкции Атол.

После запуска редактора  через меню – касса – настроить соединение подключаем нашу кассу как и в драйвере ККМ.

Нажимаем касса – прочитать из кассы, выбираем номер шаблона 1 или 2 и нажимаем загрузить.

Примерно так будет выглядеть наш шаблон

Редактировать шаблон через эту программу конечно не так просто, как в Розница 2.2, но все же не трудно.

Нажав на строку шаблона справа и слева есть кнопки «+» (добавить строку нижу) или «-» (удалить строку)

Справа у нас отображаются доступные поля и окно свойств поля.

Перемещение и добавление полей ведется в основном через окно свойств.

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

Для добавления произвольного текста, нужно добавлять поля «Свободная строка». После того, как мы разместили наше поле нам нужно указать, что же будет там выводиться, для этого в меню есть кнопка редактор строк.

В наименовании поля написан номер этой свободной строк: 1, 2, 3 и т.д.  Для изменения надписи конкретного поля нужно отсчитать количество строк по номеру поля начиная с 7й строки, например, если у нас свободная строка 1, то ее текст находится в редакторе строк в строке 8.

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

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

Более подробно об этом есть в руководстве пользователя редактора шаблонов.

Скачать редактор можно в центре загрузок Атол.

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

Третий способ

Ну и последний способ это доработка функционала 1С.

Программно есть возможность вывода своих строк так же как и в функционале редактора чеков в Рознице 2.2 т.е. до таблицы товаров, после нее и отдельным нефискальным документом.

Это ограничение есть потому, что 1С отправляет в ККТ xml файл с параметрами чека и соответственно никаких наших выдуманных переменных ККТ не воспримет.

Где это все можно добавить?

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

Нам понадобится функция ПодготовитьДанныеДляФискализацииЧека в Модуле объекта ЧекККМ.

(Для ут 11 это функция ПараметрыЧека в модуле формы ФормаДокументаРМК документа ЧекККМ)

В этой функции мы можем подменить значение которые 1С подставляет на свои (например заменить продавца или вывести другое наименование номенклатуры и пр.)

Ищем в это функции цикл перебора строк ТЧ Товары

// Товарные позиции

Для Каждого СтрокаТовара Из ЧекККМ.Товары Цикл

Если мы посмотрим в «Требования к разработке драйверов подключаемого оборудования 2.1», то увидим, что  в таблице товаров передаваемы в ККТ могут быть не только товары но и текстовые строки и штрихкод, этим мы и воспользуемся.

Сначала нам нужно получить структуру нашей строки:

Для строки товаров это выглядит так

СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека();

Для текста так

СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("Мой текст");

Если посмотреть стандартную функцию ПараметрыТекстовойСтрокиЧека, то видно, что 1с не дает нам возможности выполнить собственное выравнивание и установить перенос строки, но это можно поправить.

Вот так выглядит стандартная функция

Функция ПараметрыТекстовойСтрокиЧека(Текст = Неопределено) Экспорт

       ПараметрыСтроки = Новый Структура();

       ПараметрыСтроки.Вставить("ТекстоваяСтрока");       // Тип строки. Исходящий служебный параметр.

       ПараметрыСтроки.Вставить("Текст", Текст);          // Строка, Обязательно - текстовая строка

       ПараметрыСтроки.Вставить("ПереносСтроки", Ложь);   // Булево - Перенос строки, устанавливается значение по умочанию. 

       ПараметрыСтроки.Вставить("Выравнивание" , "Лево"); // Строка - Выравнивание текста, Значения: "Лево", "Право", "Центр".

       Возврат ПараметрыСтроки;

КонецФункции

А вот немного отредактированная

Функция ПараметрыТекстовойСтрокиЧека(Текст = Неопределено, Выравнивание = "Лево", ПереносСтроки = Ложь) Экспорт

        ПараметрыСтроки = Новый Структура();

        ПараметрыСтроки.Вставить("ТекстоваяСтрока");       // Тип строки. Исходящий служебный параметр.

        ПараметрыСтроки.Вставить("Текст", Текст);          // Строка, Обязательно - текстовая строка

        ПараметрыСтроки.Вставить("ПереносСтроки", ПереносСтроки);   // Булево - Перенос строки, устанавливается значение по умочанию. 

        ПараметрыСтроки.Вставить("Выравнивание" , Выравнивание); // Строка - Выравнивание текста, Значения: "Лево", "Право", "Центр".

        Возврат ПараметрыСтроки;    

КонецФункции

Теперь добавляя текстовую строку мы можем указывать выравнивание и перенос.

Что бы добавить текстовую строку нам нужно написать следующее:

СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("Мой текст", "Центр", Ложь);

ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаЧека);

Соответственно вместо «Мой текст» можно написать что угодно и используя произвольные данные из информационной базы.

Теперь определимся куда мы хотим добавить строку:

  • До таблицы товаров

Для этого нам нужно добавить вставить наш код до цикла перебора товаров


 

СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("Мой текст", "Центр", Ложь);
ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаЧека);

// Товарные позиции
Для Каждого СтрокаТовара Из ЧекККМ.Товары Цикл

              

 

  • После таблицы товаров

Для этого вставим наш код после цикла       

   ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаЧека);

КонецЦикла;      

СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("Мой текст", "Центр", Ложь);

ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаЧека);

        МенеджерОборудованияКлиентСервер.ПровестиФорматоЛогическийКонтроль(ОбщиеПараметры);

       

  • При выводе каждого товара

В этом случае мы добавляем наш код внутри цикла, до или после товара будет выводится наша строка определяется тем когда вы добавите код,сразу после начала цикла или перед его завершением.

 

На этом все, надеюсь эта статья была понятной и кому нибудь пригодится, буду рад если кто-то сможет что-то дополнить или поделиться опытом. Спасибо.

 

См. также

Комментарии
Сортировка: Древо
1. karpik666 1927 02.10.17 09:39 Сейчас в теме
Спасибо, стоит уточнить, что ваши примеры в основном для управляемых форм, для обычных подойдет "Второй способ", либо использовать как у меня в публикации https://infostart.ru/public/590993/
2. Serj1C 472 03.10.17 08:38 Сейчас в теме
Я думал тут будет не про фискальную информацию, а как раз про внешний вид фискальных строк.
На сколько я изучал документацию (актуальную на момент внедрения онлайн касс), пользователю было доступно 11 предопроеделенных шаблонов:
https://onedrive.live.com/view.aspx?cid=189c614ed00d4c23&id=documents&resid=189C614ED00D4C23%211­28&app=OneNote&authkey=!ABE4IM6eOvPtlrQ&&wd=target%28%2F%2F54-ФЗ.one%7C27377c95-2928-4aa8-8fd7-4b03b801c6ef%2FШаблоны%20чеков%7C10d2aaad-6f33-4074-afb1-e031d581edd4%2F%29

Но, конечно, этого не достаточно. Хотя время идет, может уже больше возможностей. В пятерочке, например, уже научились QR код приживать влево, а справа от него печатать обязательную информацию.

PS: Программно можно менять шаблон так:
	Объект.Таблица = 2;
	Объект.Ряд = 1;
	Объект.Поле = 111;
	Объект.ТипПоля = 0;
	Объект.Строка = 7; // шаблон №7
	Объект.УстановитьНастройки();
3. tjurikov_ivan 162 03.10.17 09:26 Сейчас в теме
(2)с помощью редактора шаблонов от атола можно настроить и фискальную часть чека, пол поводу программного изменения я ещё не пробовал, спасибо попробую)
4. arcadics 7 17.04.18 15:52 Сейчас в теме
СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("Мой текст", "Центр", Ложь);

Как установить ширину строки для "СтрокаЧека"?

Строки печатаются с шириной меньшей чем лента.
5. arcadics 7 18.04.18 06:57 Сейчас в теме
(4) Вопрос решил.

В обработке обслуживания добавил:
мПараметрыПодключения.Вставить("ШиринаСтроки", 48);

Функция ФискализироватьЧек(Объект, ПараметрыЧека) Экспорт
	
	ПолучитьПараметрыККТ(Объект);
	
	мПараметрыПодключения.Вставить("ПараметрыРегистрации", Объект.ВыходныеПараметры);
	мПараметрыПодключения.Вставить("ШиринаСтроки", 48);
......................................
6. tjurikov_ivan 162 18.04.18 11:41 Сейчас в теме
(5)На всякий случай, не знаю какая у вас конфигурация, он должен брать ширину чека из настроек ФР, может так будет проще.
7. makaorel 54 09.06.18 14:42 Сейчас в теме
Добрый день, В Розница 2.2.8 в шаблоне ККТ при печати блок фискальных данных выводится на печать два раза- в шапке и подвале чека. Удалить его не получается.Кто -нибудь решал данную проблему?
8. tjurikov_ivan 162 11.06.18 13:17 Сейчас в теме
(7)В кассе по умолчанию есть два шаблона, попробуйте использовать второй, может в первом ошибка. А так похоже на косяк прошивки, у меня подобных случаев еще не было.
9. makaorel 54 13.06.18 08:40 Сейчас в теме
(8) вот расширенный шаблон http://prntscr.com/jubhek. Удалить предзаполненный раздел не удается
10. Dimka74 23.06.18 12:37 Сейчас в теме
Слушайте, а кто нибудь знает как вывести данные в Пользовательский тег, добавленный на шаблон Чека?
В программе Редактор шаблонов от Атола добавил в макет Польз. тег Т21: своб стр 1, а вот как в него из 1с вывести данные не могу понять. Я так понимаю нужно указать Атрибут при сеарилизации чека, но вот как он называется для пользовательского тега?
11. sk357 07.07.18 14:25 Сейчас в теме
Можно ли в Чеке вместо Наименования товара выводить НаименованиеПолное? Спасибо.
12. tjurikov_ivan 162 08.07.18 20:52 Сейчас в теме
(11) Если у вас Розница 2.2 то вы можете посмотреть это в шаблонах чека ккм, если не то скорее всего только доработкой 1С
13. sk357 09.07.18 10:20 Сейчас в теме
в шаблоне то изменить Наименования товара на НаименованиеПолное можно, но при печати чека это изменение игнорируется.
14. tjurikov_ivan 162 09.07.18 20:08 Сейчас в теме
(13)Можете тогда написать расширение к конфигурации, нужная вам строка находится
Модуль менеджера ЧекККМ - процедура ДополнитьТоварамиПараметрыПриПробитииЧека
Если вы ее добвите в расширение с признаком "Вместо" и поменяете строчку
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), " (" + Строка(СтрокаТЧ.Характеристика) + ")", "");

На
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура.НаименованиеПолное) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), " (" + Строка(СтрокаТЧ.Характеристика) + ")", "");

то должно сработать.
15. sk357 11.07.18 20:44 Сейчас в теме
(14) Большое спасибо за подсказку, на эмуляторе работает. Скоро попробуем на реальной ККТ.
Оставьте свое сообщение