1. Нужно сделать любое свойство с типом данных Булево ("Сигареты" у меня)
2. Устанавливаем свойство у товара
3. Производим выгрузку данных во frontol стандартным способом
4. Необходимо в параметрах настройки кассы узнать, куда были выгружены файлы
5. Запускаем обработку и прописываем Имя файла
6. Нажать "выполнить" в обработке
7. Просим кассира сделать повторную загрузку данных.
ВСЕ, на кассе теперь можно торговать Табачной промаркированной продукцией
(данный способ подходит тем, кто не хочет тратиться на дорогой переход с Далион Lite на УНО или ПРОФ)
Обработка тестировалась на версии Dalion Lite 1.2.22.1 но будет работать и на более низких релизах
Как всегда, прикладываю полный текст для тех, кто не имеет возможность скачать.
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
МассивСтрок = Новый Массив();
Если Стр = Неопределено ИЛИ Стр = "" тогда Возврат МассивСтрок; КонецЕсли;
Если Разделитель = " " Тогда
Стр = СокрЛП(Стр);
Пока Истина Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз-1));
Стр = СокрЛ(Сред(Стр,Поз));
КонецЦикла;
Иначе
ДлинаРазделителя = СтрДлина(Разделитель);
Пока Истина Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз-1));
Стр = Сред(Стр,Поз+ДлинаРазделителя);
КонецЦикла;
КонецЕсли;
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
запрос =Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект,
| ЗначенияСвойствОбъектов.Объект.Код как Код1
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство
| И ЗначенияСвойствОбъектов.Значение = ИСТИНА";
Запрос.УстановитьПараметр("Свойство",СвойствоСигареты);
МСигареты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Код1");
если МСигареты.Количество() = 0 ТОгда
Возврат;
конецесли;
ТВход = Новый ТекстовыйДокумент;
ТВыход = Новый Текстовыйдокумент;
тВход.Прочитать(СокрЛП(Имяфайла));
Для А=1 По ТВход.КоличествоСтрок() Цикл
_Стр = тВход.ПолучитьСтроку(А);
если А=2 Тогда
ТВыход.ДобавитьСтроку("#");
ИначеЕсли А=1 ТОгда
ТВыход.ДобавитьСтроку(_Стр);
Иначе
МСтрок = РазложитьСтрокуВМассивПодстрок(_Стр,";");
если мСтрок.количество()>=55 ТОгда
_КодТовара = Число(мСтрок[0]);
если МСигареты.Найти(_КодТовара)= неопределено ТОгда
ТВыход.ДобавитьСтроку(_Стр);
Иначе
_СтрПол ="";
Для Б=1 По мСтрок.количество() Цикл
если Б=55 ТОгда
_СтрПол =_СтрПол+"4;";
иначе
_СтрПол =_СтрПол+мСтрок[Б-1]+";";
конецесли;
Конеццикла;
ТВыход.ДобавитьСтроку(_СтрПол);
Конецесли;
Иначе
ТВыход.ДобавитьСтроку(_Стр);
Конецесли;
Конецесли;
Конеццикла;
ТВход =неопределено;
тВыход.Записать(СокрЛП(Имяфайла),"windows-1251");
КонецПроцедуры