Настройки 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;
КонецЕсли;
КонецФункции
Всего просмотров: 6037 Оценка пользователей: (не забудьте оценить) Проголосовали: 3840, средняя оценка: 3
Комментарии: При публикации комментариев, не допускается использование html кодов, размещение ссылок, не цензурных слов и т.п. Текст не на русском языке или на транслите публиковаться не будет!
|
|
|