Настройки Smart Terminal

Для настройки программы выбираете "Управляемое ПО" - это может быть 1С: Предприятие 8.2 или рабочее место кассира Smart Kassir

На вкладке "Устройства", добавляете внешние терминалы (смартфоны или планшетные компьютеры на Android).

Подключение к рабочему места кассира Smart Kassir

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

Данный код (id) можно посмотреть в настройках Smart Kassir, открыв окно учётной записи:

Подключение к 1С: Предприятие

Если подключение осуществляется к 1С, то в окне добавления устройства необходимо указать код организации, склада и ККМ.

Для связи с 1С в режиме On-Line, необходимо в конфигурацию программы в общие модули добавить новый модуль «SmartKassir»

Устанавливаете следующие свойства модулю «SmartKassir»:

В модуль  добавляем следующие функции:

Функция GetGoods(склад, код) Экспорт
Перем ТипЦены;
Перем название;
Перем цена;
Перем сч;
Перем стр;
ТипЦены        = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(СокрЛП("Розничная"));
номен = Справочники.Номенклатура.НайтиПоКоду(код);
Запрос = Новый Запрос;
                          Запрос.Текст =
                          "ВЫБРАТЬ
                           |НомОстаток.Номенклатура,
                           |НомОстаток.Номенклатура.Наименование КАК Наименование,
                           |НомЦена.Цена КАК Цена,
                           |НомШтрихкод.Штрихкод,
                           |КоличествоОстаток
                           |   
                           |   ИЗ
                           |РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаДок, Склад = &Склад )   КАК НомОстаток
                           |ЛЕВОЕ СОЕДИНЕНИЕ
                           |РегистрСведений.Штрихкоды КАК НомШтрихкод
                           |ПО  НомОстаток.Номенклатура = НомШтрихкод.Владелец
                           |ЛЕВОЕ СОЕДИНЕНИЕ
                           |РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаДок, ТипЦен = &ТипЦены) КАК НомЦена
                           |ПО НомОстаток.Номенклатура = НомЦена.Номенклатура
                           |ГДЕ
                           |НомОстаток.Номенклатура.Код = &Код;";
Запрос.УстановитьПараметр("ДатаДок", ТекущаяДата());
Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду(склад));
Запрос.УстановитьПараметр("ТипЦены", ТипЦены);
Запрос.УстановитьПараметр("Код", код);
Товары = Запрос.Выполнить().Выбрать();
сч=0;
Пока Товары.Следующий()  Цикл
Если  (Товары.Наименование <> NULL) и (Товары.Цена<> NULL) Тогда
название=Товары.Наименование;
цена=Формат(Товары.Цена,"ЧГ=0");

кол=Формат(Товары.КоличествоОстаток,"ЧГ=0");

сч=сч+1;
КонецЕсли;
КонецЦикла;
Если сч=0 Тогда
стр="0";
Иначе
стр=название+"|"+цена+"|"+кол+"|";
КонецЕсли;
Возврат стр;
КонецФункции

Функция SetDoc(фирма, склад, ккм, товары) Экспорт
Перем Номен;
Перем Тов;
Перем ТипЦены;
Перем стНДС;
Перем ШтрихКодСтрока;
Перем КолШтрих;
Перем ДокОКС;

Номен = Справочники.Номенклатура;
ДокОКС=Документы.ЧекККМ.СоздатьДокумент();     //ОтчетОРозничныхПродажах
ДокОКС.Дата = ТекущаяДата();
ДокОКС.Организация = Справочники.Организации.НайтиПоКоду(фирма);
ДокОКС.Склад = Справочники.Склады.НайтиПоКоду(склад);
ДокОКС.КассаККМ = Справочники.КассыККМ.НайтиПоКоду(ккм);
ДокОКС.ВидОперации = Перечисления.ВидыОперацийОтчетОРозничныхПродажах.ОтчетККМОПродажах;
ДокОКС.ТипЦен = ТипЦены;
Сумма=0;
//Создаём табличную часть
Пока Найти(товары,";")>0 Цикл
    текущий=Лев(товары,Найти(товары,";")-1);
    код=Лев(товары,Найти(товары,"-")-1);
    количество=СтрЗаменить(текущий,код+"-","");

        Товар = Номен.НайтиПоКоду(код,0);
        Если Товар<>Номен.ПустаяСсылка() Тогда
           
            стр=ДокОКС.Товары.Количество();
            ДокОКС.Товары.Добавить();
           
            ДокОКС.Товары[стр].Номенклатура=Товар;
            ДокОКС.Товары[стр].Количество=количество;
//Вычесляем цену
ТипЦены    = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(СокрЛП("Розничная"));
Запрос = Новый Запрос;
                          Запрос.Текст =
                          "ВЫБРАТЬ
                           |НомОстаток.Номенклатура,
                           |НомОстаток.Номенклатура.Наименование КАК Наименование,
                           |НомЦена.Цена КАК Цена,
                           |НомШтрихкод.Штрихкод,
                           |КоличествоОстаток
                           |   
                           |   ИЗ
                           |РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаДок, Склад = &Склад )   КАК НомОстаток
                           |ЛЕВОЕ СОЕДИНЕНИЕ
                           |РегистрСведений.Штрихкоды КАК НомШтрихкод
                           |ПО  НомОстаток.Номенклатура = НомШтрихкод.Владелец
                           |ЛЕВОЕ СОЕДИНЕНИЕ
                           |РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаДок, ТипЦен = &ТипЦены) КАК НомЦена
                           |ПО НомОстаток.Номенклатура = НомЦена.Номенклатура
                           |ГДЕ
                           |НомОстаток.Номенклатура.Код = &Код;";
                          
Запрос.УстановитьПараметр("ДатаДок", ТекущаяДата());
Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду(склад));
Запрос.УстановитьПараметр("ТипЦены", ТипЦены);
Запрос.УстановитьПараметр("Код", код);
Тов = Запрос.Выполнить().Выбрать();
Пока Тов.Следующий()  Цикл
цена=-1;
Если  (Тов.Наименование <> NULL) и (Тов.Цена<> NULL) Тогда
цена=Тов.Цена;
КонецЕсли;
КонецЦикла;
есть=0;
Если  цена>-1 Тогда
    есть=1;
            ДокОКС.Товары[стр].Цена=Тов.Цена;
            ДокОКС.Товары[стр].Сумма=Число(количество)*Тов.Цена;
            Сумма=Сумма+Число(количество)*Тов.Цена;
            ЕдИзм=Справочники.ЕдиницыИзмерения.Выбрать();
            Пока ЕдИзм.Следующий() Цикл
                Если ЕдИзм.Владелец = Товар Тогда                       
                    ДокОКС.Товары[стр].ЕдиницаИзмерения=ЕдИзм.Ссылка;
                    ДокОКС.Товары[стр].Коэффициент=ЕдИзм.Коэффициент;
                КонецЕсли;
            КонецЦикла;
КонецЕсли;
КонецЕсли;
товары=Прав(товары, СтрДлина(товары)-СтрДлина(текущий)-1);
КонецЦикла;
Если есть=1 тогда
ДокОКС.Записать();
ДокОКС.Проведен=Истина;
Возврат ДокОКС.Номер;
иначе
Возврат 0;
КонецЕсли;
КонецФункции



Всего просмотров: 5697
Оценка пользователей: (не забудьте оценить)
Проголосовали: 3623, средняя оценка: 3

Комментарии:
При публикации комментариев, не допускается использование html кодов, размещение ссылок, не цензурных слов и т.п. Текст не на русском языке или на транслите публиковаться не будет!

Имя:    E-mail: